diff --git a/Dockerfile b/Dockerfile
index e5e69d8..400bc56 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,34 +4,46 @@ FROM ubuntu:${ubuntu.version}
# Configure the Apache Tomcat Catalina script
ENV JAVA_MEMORY_INIT=128m
ENV JAVA_MEMORY_MAX=512m
-ENV JAVA_HOME="/usr/lib/jvm/java-${java.majorVersion}-openjdk-amd64"
-ENV CATALINA_HOME="/usr/share/tomcat${tomcat.majorVersion}"
-ENV CATALINA_BASE="/var/lib/tomcat${tomcat.majorVersion}"
+ENV JAVA_HOME="/usr/local/lib/jvm/java-openjdk-dcevm"
+ENV CATALINA_HOME="/usr/local/share/tomcat"
+ENV CATALINA_BASE="/var/lib/tomcat"
ENV CATALINA_OPTS=
-# Install the latest Apache Tomcat and its Java dependencies
-RUN apt update && apt -y install curl && \
- apt -y install openjdk-${java.majorVersion}-jdk-headless && \
- apt -y install openjdk-${java.majorVersion}-jre-dcevm && \
- apt -y install tomcat${tomcat.majorVersion} && \
- cd /var/lib/tomcat${tomcat.majorVersion}/lib && \
- curl -OL https://github.com/HotswapProjects/HotswapAgent/releases/download/RELEASE-${hotswap.version}/hotswap-agent-${hotswap.version}.jar
+# Install curl
+RUN apt update && apt -y install curl
+
+# Download & Install DCEVM Java
+RUN mkdir -p /usr/local/lib/jvm && \
+ curl -L https://github.com/TravaOpenJDK/trava-jdk-${dcevm.majorVersion}-dcevm/releases/download/dcevm-${dcevm.version}/java${dcevm.majorVersion}-openjdk-dcevm-linux.tar.gz -o /usr/local/lib/jvm/java-openjdk-dcevm.tar.gz && \
+ cd /usr/local/lib/jvm && tar xzvf java-openjdk-dcevm.tar.gz && mv dcevm-${dcevm.version} java-openjdk-dcevm && rm java-openjdk-dcevm.tar.gz
+
+# Download Hotswap Agent
+RUN curl -L https://github.com/HotswapProjects/HotswapAgent/releases/download/RELEASE-${hotswap.version}/hotswap-agent-${hotswap.version}.jar -o /usr/local/lib/jvm/hotswap-agent.jar
+
+# Download & Install Apache Tomcat
+RUN mkdir -p /usr/local/share && \
+ curl -L ${tomcat.mirror.baseUrl}/tomcat-${tomcat.majorVersion}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz -o /usr/local/share/apache-tomcat.tar.gz && \
+ cd /usr/local/share && tar xzvf apache-tomcat.tar.gz && mv apache-tomcat-${tomcat.version} tomcat && rm apache-tomcat.tar.gz
+
+# Split Catalina Home & Base
+RUN cd /usr/local/share/tomcat && \
+ mv webapps webapps.ignore && \
+ mkdir -p /var/lib/tomcat/webapps /var/lib/tomcat/lib /var/lib/tomcat/dev && \
+ mv conf work temp logs /var/lib/tomcat
+
+# Add directories for dynamic injection points
+RUN cd /var/lib/tomcat/dev && \
+ mkdir classes classes-extra1 classes-extra2 classes-extra3 classes-extra4 classes-extra5 classes-extra6 classes-extra7 && \
+ mkdir lib lib-extra1 lib-extra2 lib-extra3 lib-extra4 lib-extra5 lib-extra6 lib-extra7 && \
+ mkdir web web-extra1 web-extra2 web-extra3 web-extra4 web-extra5 web-extra6 web-extra7
# Add our Docker container initialization script
ADD docker-entrypoint.sh /usr/local/bin
# Add our Apache Tomcat configuration
# This gives us dynamic injection points into the running webapps
-COPY tomcat-context.xml /etc/tomcat${tomcat.majorVersion}/context.xml
-COPY hotswap-agent.properties /var/lib/tomcat${tomcat.majorVersion}/lib
-
-# Add directories for dynamic injection points
-RUN cd /var/lib/tomcat${tomcat.majorVersion} && \
- rm -rf webapps/ROOT* && \
- mkdir dev && cd dev && \
- mkdir classes classes-extra1 classes-extra2 classes-extra3 classes-extra4 classes-extra5 classes-extra6 classes-extra7 && \
- mkdir lib lib-extra1 lib-extra2 lib-extra3 lib-extra4 lib-extra5 lib-extra6 lib-extra7 && \
- mkdir web web-extra1 web-extra2 web-extra3 web-extra4 web-extra5 web-extra6 web-extra7
+COPY tomcat-context.xml /var/lib/tomcat/conf/context.xml
+ADD hotswap-agent.properties /var/lib/tomcat/lib
# Listening for HTTP (not HTTPS) traffic
EXPOSE 8080
@@ -46,4 +58,4 @@ EXPOSE 8000
ENTRYPOINT [ "/usr/local/bin/docker-entrypoint.sh" ]
# Start the Apache Tomcat web container using the Catalina script
-CMD [ "/usr/share/tomcat${tomcat.majorVersion}/bin/catalina.sh", "run" ]
+CMD [ "/usr/local/share/tomcat/bin/catalina.sh", "run" ]
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 8efefac..6f507fc 100644
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -1,4 +1,4 @@
#!/bin/bash
-CATALINA_OPTS="-Xms${JAVA_MEMORY_INIT} -Xmx${JAVA_MEMORY_MAX} -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n $CATALINA_OPTS"
+CATALINA_OPTS="-Xms${JAVA_MEMORY_INIT} -Xmx${JAVA_MEMORY_MAX} -XX:HotswapAgent=external -javaagent:/usr/local/lib/jvm/hotswap-agent.jar -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n $CATALINA_OPTS"
exec "$@"
diff --git a/hotswap-agent.properties b/hotswap-agent.properties
index c3992ec..b87a98b 100644
--- a/hotswap-agent.properties
+++ b/hotswap-agent.properties
@@ -7,7 +7,7 @@
# This may be useful for example in multi module maven project to load class changes from upstream project
# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
# classes from built JAR file.
-extraClasspath=/var/lib/tomcat9/dev/classes
+extraClasspath=/var/lib/tomcat/dev/classes
# Watch for changes in a directory (resources only). If not set, changes of resources won't be observed.
#
@@ -19,19 +19,19 @@ extraClasspath=/var/lib/tomcat9/dev/classes
# replacements of resources in a building step (maven filtering resource option).
# This setting will leave i.e. src/target/classes as default source for resources, but after the resource is modified
# in src/main/resources, the new changed resource is served instead.
-watchResources=/var/lib/tomcat9/dev/classes
+watchResources=/var/lib/tomcat/dev/classes
# Load static web resources from different directory.
#
# This setting is dependent on application server plugin(Jetty, Tomcat, ...).
# Jboss and Glassfish are not yet supported.
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
-webappDir=/var/lib/tomcat9/dev/web
+webappDir=/var/lib/tomcat/dev/web
# Comma separated list of disabled plugins
# Use plugin name - e.g. Hibernate, Spring, ZK, Hotswapper, AnonymousClassPatch, Tomcat, Logback ....
-disabledPlugins=
+disabledPlugins=Hibernate
# Watch for changed class files on watchResources path and reload class definition in the running application.
#
diff --git a/pom.xml b/pom.xml
index 5af81c5..187c64e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,24 +9,29 @@
-
+
+
20.04
-
- 1.4.1
+
+
+ 11.0.10+4
+ 11
-
+
+
+ 9.0.44
9
+ https://apache.osuosl.org/tomcat
-
-
- 11
+
+
+ 1.4.1
inteligr8/${project.artifactId}
${project.version}
docker.inteligr8.com
- true
@@ -65,6 +70,7 @@
maven-deploy-plugin
+ 3.0.0-M1
true
diff --git a/tomcat-context.xml b/tomcat-context.xml
index 19fc5b7..99c4354 100644
--- a/tomcat-context.xml
+++ b/tomcat-context.xml
@@ -16,7 +16,7 @@
limitations under the License.
-->
-
+
@@ -32,31 +32,31 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/tomcat-server.xml b/tomcat-server.xml
deleted file mode 100644
index b6b432e..0000000
--- a/tomcat-server.xml
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file