diff --git a/src/server-cm/Dockerfile b/src/server-cm/Dockerfile index cd93f632..df5e67f9 100644 --- a/src/server-cm/Dockerfile +++ b/src/server-cm/Dockerfile @@ -18,20 +18,26 @@ COPY server-cm/ server-cm/ # Build only the specific module and its dependencies RUN mvn -B --no-transfer-progress -DskipTests clean package -pl server-cm -am -FROM docker.io/library/jetty:12-jre21-eclipse-temurin +# Create a custom Java runtime +RUN $JAVA_HOME/bin/jlink \ + --add-modules java.base,java.compiler,java.desktop,java.management,java.naming,java.net.http,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.xml.crypto,jdk.unsupported,java.xml,jdk.zipfs,java.instrument \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 \ + --output /javaruntime -# Add metadata -LABEL org.opencontainers.image.title="OSLC RefImpl CM Server" -LABEL org.opencontainers.image.description="OSLC Change Management Reference Implementation" -LABEL org.opencontainers.image.source="https://github.com/oslc-op/refimpl" -LABEL org.opencontainers.image.vendor="OSLC Open Project" -LABEL org.opencontainers.image.licenses="EPL-2.0" +FROM alpine:latest -# WARNING DO NOT CHANGE WORKDIR or set it back to what it was before -# $JETTY_BASE must be correct before starting Jetty +ENV JAVA_HOME=/opt/java/openjdk +ENV PATH="${JAVA_HOME}/bin:${PATH}" +COPY --from=build /javaruntime $JAVA_HOME -COPY --from=build /src/server-cm/target/*.war /var/lib/jetty/webapps/ROOT.war +WORKDIR /app -RUN java -jar "$JETTY_HOME/start.jar" --add-modules=ee9-deploy,ee9-jsp,ee9-jstl +COPY --from=build /src/server-cm/target/lib/ ./lib/ +COPY --from=build /src/server-cm/target/server-cm.jar ./server-cm.jar EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "server-cm.jar"] diff --git a/src/server-cm/pom.xml b/src/server-cm/pom.xml index f1da5dbb..5730bb30 100644 --- a/src/server-cm/pom.xml +++ b/src/server-cm/pom.xml @@ -17,7 +17,7 @@ co.oslc.refimpl server-cm 0.3.0-SNAPSHOT - war + jar CM UTF-8 @@ -28,6 +28,7 @@ 8801 / server-cm + 12.0.16 @@ -116,27 +117,6 @@ - - - with-jstl-impl - - - - - - jakarta.servlet.jsp.jstl - jakarta.servlet.jsp.jstl-api - - - org.glassfish.web - jakarta.servlet.jsp.jstl - - - - @@ -151,6 +131,13 @@ import pom + + org.eclipse.jetty + jetty-bom + ${jetty.version} + pom + import + @@ -163,25 +150,21 @@ + + + org.eclipse.jetty.ee10 + jetty-ee10-servlet + + org.slf4j slf4j-simple - runtime jakarta.servlet jakarta.servlet-api - provided - - - jakarta.servlet.jsp.jstl - jakarta.servlet.jsp.jstl-api - - provided org.glassfish.jersey.core @@ -245,11 +228,9 @@ org.eclipse.lyo.server oauth-consumer-store - - org.eclipse.lyo.server - oauth-webapp - war - + + org.eclipse.lyo oslc-domains @@ -308,56 +289,7 @@ - - org.eclipse.jetty - jetty-maven-plugin - 11.0.20 - - - ${application.contextpath} - <_initParams> - false - - - - ${servlet.port} - - 5 - - - - org.codehaus.cargo - cargo-maven3-plugin - 1.10.25 - - - - - tomcat10x - jetty12x - - - - - - - - - ${servlet.port} - - - - - war - ${project.build.directory}/${project.build.finalName}.war - - ${application.contextpath} - - - - - - + org.apache.maven.plugins @@ -365,6 +297,7 @@ 3.9.0 + unpack-swagger-ui prepare-package unpack @@ -377,29 +310,68 @@ ${swagger-ui.version} - ${project.build.directory}/swagger-ui + + ${project.build.outputDirectory}/static/swagger-ui + **/*.* + + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + runtime + true + - org.apache.maven.plugins - maven-war-plugin - 3.5.1 + maven-jar-plugin + 3.4.2 - - - ${project.build.directory}/swagger-ui/META-INF/resources/webjars/swagger-ui/${swagger-ui.version} - - **/*.* - - /swagger-ui/dist - - + + + true + lib/ + co.oslc.refimpl.cm.Main + false + + + + + maven-resources-plugin + 3.3.1 + + + copy-swagger-ui-dist + prepare-package + + copy-resources + + + ${project.build.outputDirectory}/static/swagger-ui/dist + + + ${project.build.outputDirectory}/static/swagger-ui/META-INF/resources/webjars/swagger-ui/${swagger-ui.version} + + + + + + + + + + + + Adaptor home + + + + + + +
+
+

CM

+

This is a homepage of the CM that was generated using Eclipse Lyo Toolchain Designer.

+
+

+ Service Provider Catalog +

+

Start from the Service Provider Catalog, to navigate your adaptor's services and resources, using the available Query capabilities, Selection and Creation Dialogs. + Note that these are end-user HTML pages, which is very useful for debugging your adaptor.

+

+ Interactive Swagger UI +

+

Use Swagger UI To interact with the adaptor services dedicated for RDF.

+

You can also copy this OpenAPI specification document (yaml file) of this adaptor to a Swagger Editor to generate client SDK code for a number of languages and platforms.

+

The OSLC Root Services document is available at services/rootservices

+
+
+ + diff --git a/src/server-cm/src/main/resources/static/swagger-ui/index.html b/src/server-cm/src/main/resources/static/swagger-ui/index.html new file mode 100644 index 00000000..e3f3a879 --- /dev/null +++ b/src/server-cm/src/main/resources/static/swagger-ui/index.html @@ -0,0 +1,76 @@ + + + + + + Swagger UI + + + + + + +
+ + + + +