Skip to content

Commit 129139c

Browse files
committed
migrate to the spring base architecture.
1 parent d9a2cb8 commit 129139c

File tree

6 files changed

+63
-24
lines changed

6 files changed

+63
-24
lines changed

.dockerignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*
2-
!/target/struts-cookbook.war
2+
!/entrypoint.sh
3+
!/target/extracted

Dockerfile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1-
FROM docker.io/tomcat:9.0.87-jre21-temurin-jammy
2-
COPY target/struts-cookbook.war /usr/local/tomcat/webapps/
1+
FROM docker.io/azul/zulu-openjdk:21.0.1-21.30.15
2+
WORKDIR /app
3+
COPY target/extracted/dependencies/ ./
4+
COPY target/extracted/spring-boot-loader/ ./
5+
COPY target/extracted/snapshot-dependencies/ ./
6+
COPY target/extracted/application/ ./
7+
COPY entrypoint.sh ./
38

9+
ENTRYPOINT ["./entrypoint.sh"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ How to run
1414

1515
- Open the following URL with your browser.
1616

17-
http://localhost:8080/struts-cookbook/
17+
http://localhost:8080/

entrypoint.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
3+
set -eu
4+
5+
main() {
6+
launch
7+
}
8+
9+
launch() {
10+
java \
11+
${DEBUG_PORT:+ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${DEBUG_PORT}} \
12+
"org.springframework.boot.loader.launch.WarLauncher"
13+
}
14+
15+
main

pom.xml

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,24 @@
2525
<packaging>war</packaging>
2626
<name>Struts Apps - Cookbook</name>
2727
<version>1.0.0</version>
28-
28+
<properties>
29+
<maven.compiler.source>21</maven.compiler.source>
30+
<maven.compiler.target>21</maven.compiler.target>
31+
</properties>
32+
<repositories>
33+
<repository>
34+
<id>local-repo</id>
35+
<url>file:../mvn-repo</url>
36+
</repository>
37+
</repositories>
2938
<dependencies>
3039
<dependency>
31-
<groupId>org.apache.struts</groupId>
32-
<artifactId>struts-taglib</artifactId>
33-
<version>1.3.10</version>
34-
</dependency>
35-
<dependency>
36-
<groupId>javax.servlet</groupId>
37-
<artifactId>servlet-api</artifactId>
38-
<version>2.3</version>
39-
<scope>provided</scope>
40+
<groupId>io.github.iwauo.springing-struts</groupId>
41+
<artifactId>struts1-core</artifactId>
42+
<version>0.0.4</version>
4043
</dependency>
4144
</dependencies>
42-
4345
<build>
44-
<finalName>${project.artifactId}</finalName>
4546
<resources>
4647
<resource>
4748
<directory>src/main/java</directory>
@@ -52,10 +53,14 @@
5253
</resources>
5354
<plugins>
5455
<plugin>
55-
<groupId>org.apache.maven.plugins</groupId>
56-
<artifactId>maven-war-plugin</artifactId>
57-
<version>3.4.0</version>
56+
<groupId>org.springframework.boot</groupId>
57+
<artifactId>spring-boot-maven-plugin</artifactId>
58+
<configuration>
59+
<mainClass>springing.struts1.entrypoint.Main</mainClass>
60+
<layout>WAR</layout>
61+
<version>3.2.5</version>
62+
</configuration>
5863
</plugin>
59-
</plugins>
64+
</plugins>
6065
</build>
6166
</project>

scripts/start.sh

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,33 @@ set -eu
55
SCRIPT_DIR=$(realpath "$(dirname $BASH_SOURCE)")
66
PROJECT_BASE_DIR=$(realpath "$SCRIPT_DIR/..")
77

8-
APP_NAME=cookbook
9-
CONTAINER_NAME=springing-struts1-$APP_NAME
8+
APP_NAME=struts-cookbook
9+
CONTAINER_NAME=springing-struts-$APP_NAME
1010
DOCKER=$( (command -v podman &> /dev/null) && echo podman || echo docker )
1111

1212
main() {
1313
build && start
1414
}
1515

1616
build() {
17-
mvn clean package -U
17+
mvn \
18+
clean \
19+
dependency:purge-local-repository \
20+
-DreResolve=false \
21+
-DactTransitively=false \
22+
-DmanualInclude='io.github.iwauo.springing-struts' \
23+
package -U \
24+
spring-boot:repackage \
25+
&& java \
26+
-Djarmode=layertools \
27+
-jar target/$APP_NAME-*.war \
28+
extract --destination target/extracted
1829
}
1930

2031
start() {
2132
$DOCKER build -t $CONTAINER_NAME . \
22-
&& $DOCKER rm -f $CONTAINER_NAME \
33+
&& ($DOCKER stop -t 0 $CONTAINER_NAME || true) \
34+
&& ($DOCKER rm -f $CONTAINER_NAME || true) \
2335
&& $DOCKER run -d \
2436
-p 8080:8080 \
2537
-p 5005:5005 \

0 commit comments

Comments
 (0)