From 12d9503f4931a28a109fef69f24d7d81120ba670 Mon Sep 17 00:00:00 2001
From: Noel Simbolon <84700640+noelsimbolon@users.noreply.github.com>
Date: Thu, 16 Nov 2023 12:14:37 +0700
Subject: [PATCH] feat: jar build and docker

---
 .dockerignore                             |  7 +++++++
 Dockerfile                                |  7 +++++++
 pom.xml                                   | 23 +++++++++++++++++++++++
 src/main/java/{ => org/tonality}/App.java |  4 +++-
 4 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile
 rename src/main/java/{ => org/tonality}/App.java (93%)

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..04cf8d5
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,7 @@
+.idea
+.env.example
+.gitignore
+./docker-compose.yml
+./Dockerfile
+./README.md
+./tonality-soap.iml
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..a0d1603
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,7 @@
+FROM adoptopenjdk/maven-openjdk8
+
+WORKDIR /tonality/tonality-soap
+
+COPY . .
+
+CMD ["sh", "-c", "mvn clean package && java -jar ./target/tonality-soap-1.0-SNAPSHOT-shaded.jar"]
diff --git a/pom.xml b/pom.xml
index 639daed..6981063 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,6 +14,29 @@
                 <directory>src/main/resources</directory>
             </resource>
         </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <shadedArtifactAttached>true</shadedArtifactAttached>
+                            <transformers>
+                                <transformer implementation=
+                                                     "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                                    <mainClass>org.tonality.App</mainClass>
+                                </transformer>
+                            </transformers>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
     </build>
 
     <properties>
diff --git a/src/main/java/App.java b/src/main/java/org/tonality/App.java
similarity index 93%
rename from src/main/java/App.java
rename to src/main/java/org/tonality/App.java
index bb905f9..edd367b 100644
--- a/src/main/java/App.java
+++ b/src/main/java/org/tonality/App.java
@@ -1,10 +1,12 @@
+package org.tonality;
+
 import org.tonality.service.Subscription;
 
 import javax.xml.ws.Endpoint;
 
 public class App {
     public static void main(String[] args) {
-        System.out.println("Endpoint published at http://localhost:8888/subscription");
         Endpoint.publish("http://localhost:8888/subscription", new Subscription());
+        System.out.println("Endpoint published at http://localhost:8888/subscription");
     }
 }
-- 
GitLab