From 71451eebd5490d89dc7709f293ed2ff1f2b29c8f Mon Sep 17 00:00:00 2001 From: Manfred Riem Date: Sat, 28 Sep 2024 09:22:46 -0500 Subject: [PATCH] Fixes #4031 - Update Servlet - Create a Faces application guide (#4032) --- .github/workflows/build.yml | 3 +- .github/workflows/release.yml | 1 - .../servlet/create_a_faces_application.md | 46 ++++++++++++++++--- .../cloud/piranha/maven/plugin/StopMojo.java | 19 +++++++- test/servlet/faces/pom.xml | 46 +++++++++++++++---- .../faces/src/test/java/hello/HelloIT.java | 4 +- test/servlet/pom.xml | 15 ++++++ 7 files changed, 113 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27b226b1fc..f5810f4da6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,9 +27,8 @@ jobs: with: distribution: 'temurin' java-version: ${{ matrix.java }} - cache: 'maven' - name: Build with Maven - run: mvn --no-transfer-progress -B -T 8 install + run: mvn --no-transfer-progress -B -T 1 install - name: Publish Unit Test Results uses: EnricoMi/publish-unit-test-result-action@v1 if: ${{ runner.os != 'Windows' }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 78d4ac8231..ba610f0c69 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,6 @@ jobs: - name: Setup Java uses: actions/setup-java@v4 with: - cache: 'maven' distribution: 'temurin' java-version: 21 server-id: ossrh diff --git a/docs/src/site/markdown/servlet/create_a_faces_application.md b/docs/src/site/markdown/servlet/create_a_faces_application.md index a7146caff8..d58a86c9f5 100644 --- a/docs/src/site/markdown/servlet/create_a_faces_application.md +++ b/docs/src/site/markdown/servlet/create_a_faces_application.md @@ -27,22 +27,26 @@ create the ```pom.xml``` file with the content as below. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - cloud.piranha.guides.servlet + cloud.piranha.test.servlet faces 24.10.0-SNAPSHOT war Create a Jakarta Faces application - 21 + 5.11.0 - 3.13.0 - 3.5.0 - 3.4.0 4.0.7 + 5.1.3.Final + + 21 servlet 24.9.0 UTF-8 - 5.1.3.Final + + 3.6.0 + 3.13.0 + 3.5.0 + 3.4.0 @@ -107,6 +111,7 @@ create the ```pom.xml``` file with the content as below. servlet + ${httpPort} @@ -129,6 +134,12 @@ create the ```pom.xml``` file with the content as below. + + 1 + + ${httpPort} + + org.apache.maven.plugins @@ -138,6 +149,25 @@ create the ```pom.xml``` file with the content as below. false + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin.version} + + + reserve-network-port + + reserve-network-port + + package + + + httpPort + + + + + @@ -254,6 +284,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; public class HelloIT { + + private String portNumber = System.getProperty("httpPort"); @Test public void testHelloFacesXhtml() throws Exception { @@ -263,7 +295,7 @@ public class HelloIT { .followRedirects(ALWAYS) .build(); HttpRequest request = HttpRequest - .newBuilder(new URI("http://localhost:8080/faces/hellofaces.xhtml")) + .newBuilder(new URI("http://localhost:" + portNumber + "/faces/hellofaces.xhtml")) .build(); HttpResponse response = client.send(request, BodyHandlers.ofString()); assertTrue(response.body().contains("Hello from Jakarta Faces!")); diff --git a/maven/plugin/src/main/java/cloud/piranha/maven/plugin/StopMojo.java b/maven/plugin/src/main/java/cloud/piranha/maven/plugin/StopMojo.java index 4cce2e2bdd..49e148b811 100644 --- a/maven/plugin/src/main/java/cloud/piranha/maven/plugin/StopMojo.java +++ b/maven/plugin/src/main/java/cloud/piranha/maven/plugin/StopMojo.java @@ -63,7 +63,7 @@ public class StopMojo extends AbstractMojo { */ public StopMojo() { } - + @Override public void execute() throws MojoExecutionException { if (!skip) { @@ -73,7 +73,7 @@ public void execute() throws MojoExecutionException { */ File pidFile = new File(runtimeDirectory, "tmp/piranha.pid"); String pid = ""; - + if (pidFile.exists()) { pid = Files.readString(pidFile.toPath()); } @@ -98,6 +98,21 @@ public void execute() throws MojoExecutionException { * If the process is still active destroy it forcibly. */ ProcessHandle.of(Long.parseLong(pid.trim())).ifPresent(p -> { + int count = 0; + System.out.print("Waiting for Piranha to stop "); + while (p.isAlive()) { + try { + Thread.sleep(1000); + count++; + System.out.print("."); + } catch (InterruptedException ie) { + } + if (count == 60) { + break; + } + } + System.out.println(); + if (p.isAlive()) { System.err.println("Process still alive, destroying forcibly"); p.destroyForcibly(); diff --git a/test/servlet/faces/pom.xml b/test/servlet/faces/pom.xml index ddd7acf39e..6096d8e81b 100644 --- a/test/servlet/faces/pom.xml +++ b/test/servlet/faces/pom.xml @@ -15,7 +15,7 @@ 1. Drop the parent part below 2. Change the name of the project to read 'Create a Jakarta Faces application' - 3. Change the version to the latest released version of Piranha + 3. Change the piranha.version to the latest released version of Piranha --> @@ -29,16 +29,20 @@ war Piranha - Test - Servlet - Jakarta Faces application - 21 + 5.11.0 - 3.13.0 - 3.5.0 - 3.4.0 4.0.7 + 5.1.3.Final + + 21 servlet - 24.9.0 + ${project.version} UTF-8 - 5.1.3.Final + + 3.6.0 + 3.13.0 + 3.5.0 + 3.4.0 @@ -102,7 +106,8 @@ - servlet + ${piranha.distribution} + ${httpPort} @@ -125,6 +130,12 @@ + + 1 + + ${httpPort} + + org.apache.maven.plugins @@ -134,6 +145,25 @@ false + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin.version} + + + reserve-network-port + + reserve-network-port + + package + + + httpPort + + + + + diff --git a/test/servlet/faces/src/test/java/hello/HelloIT.java b/test/servlet/faces/src/test/java/hello/HelloIT.java index 444e4a8054..33a5b0a7c6 100644 --- a/test/servlet/faces/src/test/java/hello/HelloIT.java +++ b/test/servlet/faces/src/test/java/hello/HelloIT.java @@ -11,6 +11,8 @@ import org.junit.jupiter.api.Test; public class HelloIT { + + private String portNumber = System.getProperty("httpPort"); @Test public void testHelloFacesXhtml() throws Exception { @@ -20,7 +22,7 @@ public void testHelloFacesXhtml() throws Exception { .followRedirects(ALWAYS) .build(); HttpRequest request = HttpRequest - .newBuilder(new URI("http://localhost:8080/faces/hellofaces.xhtml")) + .newBuilder(new URI("http://localhost:" + portNumber + "/faces/hellofaces.xhtml")) .build(); HttpResponse response = client.send(request, BodyHandlers.ofString()); assertTrue(response.body().contains("Hello from Jakarta Faces!")); diff --git a/test/servlet/pom.xml b/test/servlet/pom.xml index f7b2258f08..fad0616fb5 100644 --- a/test/servlet/pom.xml +++ b/test/servlet/pom.xml @@ -15,6 +15,21 @@ Piranha - Test - Servlet - Project + + + + cloud.piranha.dist + piranha-dist-servlet + ${project.version} + pom + provided + + faces hello