This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch WICKET-7199-master in repository https://gitbox.apache.org/repos/asf/wicket.git
commit adbf5646e60aa61e20dfc1a6255494800ea57f28 Author: Maxim Solodovnik <[email protected]> AuthorDate: Wed Sep 2 13:25:03 2026 +0700 [WICKET-7199] jetty and jackson are updated --- .../src/main/resources/archetype-resources/pom.xml | 33 +++----- pom.xml | 50 ++++++----- testing/wicket-js-tests/pom.xml | 4 +- .../testing/jstest/StartJavaScriptTests.java | 9 +- testing/wicket-threadtest/pom.xml | 8 +- .../wicket/protocol/http/WebApplicationTest.java | 2 +- .../protocol/http/BufferedHttpServletResponse.java | 22 +++-- .../http/mock/MockHttpServletResponse.java | 97 +++++++++++++--------- wicket-examples/pom.xml | 16 ++-- .../wicket/examples/JettyTestCaseDecorator.java | 11 ++- .../org/apache/wicket/examples/StartExamples.java | 13 +-- wicket-extensions/pom.xml | 10 +-- wicket-extensions/src/main/java/module-info.java | 2 +- .../requestlogger/JsonRequestLogger.java | 43 +++++----- wicket-migration/pom.xml | 4 +- .../wicket-native-websocket-javax/pom.xml | 8 +- 16 files changed, 179 insertions(+), 153 deletions(-) diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml index 68f96b348e..d77713e6b0 100644 --- a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml @@ -98,33 +98,29 @@ <scope>test</scope> <version>${jetty.version}</version> </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> - <scope>test</scope> - <version>${jetty.version}</version> - </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-jmx</artifactId> <scope>test</scope> <version>${jetty.version}</version> </dependency> + <!-- + eeXX MUST be aligned with servlet version + https://jakarta.ee/specifications/servlet/ + --> <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-jakarta-server</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> <scope>test</scope> <version>${jetty.version}</version> </dependency> - - <!-- uncomment if WebSocket support is needed + <!-- comment if WebSocket support is needed --> <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-jakarta-server</artifactId> - <version>${jetty.version}</version> + <groupId>org.eclipse.jetty.ee11.websocket</groupId> + <artifactId>jetty-ee11-websocket-jakarta-server</artifactId> <scope>test</scope> + <version>${jetty.version}</version> </dependency> - --> </dependencies> <build> <resources> @@ -179,15 +175,12 @@ <version>@maven-war-plugin.version@</version> </plugin> <plugin> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-maven-plugin</artifactId> <version>${jetty.version}</version> <configuration> <systemProperties> - <systemProperty> - <name>maven.project.build.directory.test-classes</name> - <value>${project.build.directory}/test-classes</value> - </systemProperty> + <maven.project.build.directory.test-classes>${project.build.directory}/test-classes</maven.project.build.directory.test-classes> </systemProperties> <jettyXmls>${project.basedir}/src/test/jetty/jetty.xml,${project.basedir}/src/test/jetty/jetty-ssl.xml,${project.basedir}/src/test/jetty/jetty-http.xml,${project.basedir}/src/test/jetty/jetty-https.xml</jettyXmls> </configuration> diff --git a/pom.xml b/pom.xml index b1b878cbdb..af4192f148 100644 --- a/pom.xml +++ b/pom.xml @@ -121,12 +121,12 @@ <module>wicket-native-websocket</module> <module>wicket-bean-validation</module> <module>wicket-user-guide</module> - <module>wicket-migration</module> + <module>wicket-migration</module> <module>wicket-tester</module> <module>wicket-extensions-tester</module> <!-- must stay last: aggregates the JaCoCo data of every module above --> <module>wicket-coverage</module> - </modules> + </modules> <properties> <!-- Encoding --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> @@ -170,7 +170,7 @@ <error_prone_annotations.version>2.50.0</error_prone_annotations.version> <forbiddenapis.version>3.10</forbiddenapis.version> <jacoco.version>0.8.15</jacoco.version> - <jackson.version>2.14.3</jackson.version> + <jackson.version>3.2.2</jackson.version> <jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version> <jakarta.el.version>4.0.2</jakarta.el.version> <jakarta.el-api.version>6.0.0</jakarta.el-api.version> @@ -179,9 +179,9 @@ <jakarta.servlet.jsp-api.version>4.0.0</jakarta.servlet.jsp-api.version> <jakarta.validation-api.version>3.1.1</jakarta.validation-api.version> <jakarta.websocket-api.version>2.2.0</jakarta.websocket-api.version> - <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version> + <jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version> <jdk-serializable-functional.version>1.9.0</jdk-serializable-functional.version> - <jetty.version>11.0.24</jetty.version> + <jetty.version>12.1.12</jetty.version> <junit.version>6.1.3</junit.version> <jsr305.version>3.0.2</jsr305.version> <logback.version>1.2.7</logback.version> @@ -290,12 +290,6 @@ <version>${hamcrest.version}</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>${jackson.version}</version> - <optional>true</optional> - </dependency> <dependency> <groupId>com.github.openjson</groupId> <artifactId>openjson</artifactId> @@ -593,8 +587,18 @@ </exclusion> </exclusions> </dependency> - - + <dependency> + <groupId>tools.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>${jackson.version}</version> + <optional>true</optional> + </dependency> + <!-- this one is reqired to patch extremely outdatet Xerces shipped with httpunit below --> + <dependency> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + <version>2.12.2</version> + </dependency> <dependency> <groupId>io.github.cdi-unit</groupId> <artifactId>cdi-unit</artifactId> @@ -625,15 +629,19 @@ <version>${jetty.version}</version> <scope>test</scope> </dependency> + <!-- + eeXX MUST be aligned with servlet version + https://jakarta.ee/specifications/servlet/ + --> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> <version>${jetty.version}</version> <scope>test</scope> </dependency> <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-jakarta-server</artifactId> + <groupId>org.eclipse.jetty.ee11.websocket</groupId> + <artifactId>jetty-ee11-websocket-jakarta-server</artifactId> <version>${jetty.version}</version> <scope>test</scope> </dependency> @@ -1195,12 +1203,12 @@ <version>${build-helper-maven-plugin.version}</version> </plugin> <plugin> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-maven-plugin</artifactId> <version>${jetty.version}</version> <configuration> - <scanIntervalSeconds>60</scanIntervalSeconds> - <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory> + <scan>60</scan> + <baseResource>src/main/webapp</baseResource> </configuration> </plugin> <plugin> diff --git a/testing/wicket-js-tests/pom.xml b/testing/wicket-js-tests/pom.xml index d1a614abc5..d0af8bbc9a 100644 --- a/testing/wicket-js-tests/pom.xml +++ b/testing/wicket-js-tests/pom.xml @@ -50,8 +50,8 @@ <artifactId>jetty-server</artifactId> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> </dependency> </dependencies> diff --git a/testing/wicket-js-tests/src/test/java/org/apache/wicket/testing/jstest/StartJavaScriptTests.java b/testing/wicket-js-tests/src/test/java/org/apache/wicket/testing/jstest/StartJavaScriptTests.java index d16011ab79..5cbeca2145 100644 --- a/testing/wicket-js-tests/src/test/java/org/apache/wicket/testing/jstest/StartJavaScriptTests.java +++ b/testing/wicket-js-tests/src/test/java/org/apache/wicket/testing/jstest/StartJavaScriptTests.java @@ -30,8 +30,9 @@ import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.util.resource.Resource; +import org.eclipse.jetty.util.resource.ResourceFactory; import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.eclipse.jetty.webapp.WebAppContext; +import org.eclipse.jetty.ee11.webapp.WebAppContext; /** * Separate startup class for people that want to run the examples directly. Use parameter @@ -64,7 +65,7 @@ public class StartJavaScriptTests server.addConnector(http); - Resource keystore = Resource.newClassPathResource("/keystore"); + Resource keystore = ResourceFactory.root().newClassLoaderResource("/keystore"); if (keystore != null && keystore.exists()) { // if a keystore for a SSL certificate is available, start a SSL @@ -114,9 +115,9 @@ public class StartJavaScriptTests try { server.start(); - + browse(); - + server.join(); } catch (Exception e) diff --git a/testing/wicket-threadtest/pom.xml b/testing/wicket-threadtest/pom.xml index 198c1bc138..fa012d9422 100644 --- a/testing/wicket-threadtest/pom.xml +++ b/testing/wicket-threadtest/pom.xml @@ -45,9 +45,9 @@ </exclusion> </exclusions> </dependency> - </dependencies> + </dependencies> </dependencyManagement> - + <dependencies> <dependency> <groupId>commons-httpclient</groupId> @@ -67,8 +67,8 @@ <scope>compile</scope> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> <scope>compile</scope> </dependency> <dependency> diff --git a/wicket-core-tests/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java b/wicket-core-tests/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java index ca6c333de7..ae31653af3 100644 --- a/wicket-core-tests/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java +++ b/wicket-core-tests/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java @@ -149,7 +149,7 @@ class WebApplicationTest extends WicketTestCase }; // character encoding not set yet - request.setCharacterEncoding(null); + request.setCharacterEncoding((String)null); application.createWebRequest(request, "/"); diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java index a7a971b496..8cd3a0046e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedHttpServletResponse.java @@ -42,7 +42,7 @@ import org.apache.wicket.util.string.AppendingStringBuffer; * Implementation of {@link HttpServletResponse} that saves the output in a string buffer. This is * used in REDIRECT_TO_BUFFER render strategy to create the buffer of the output that can be held on * to until the redirect part of the render strategy. - * + * * @author jcompagner */ class BufferedHttpServletResponse implements HttpServletResponse @@ -71,7 +71,7 @@ class BufferedHttpServletResponse implements HttpServletResponse /** * Constructor. - * + * * @param realResponse * The real response for encoding the url */ @@ -158,6 +158,16 @@ class BufferedHttpServletResponse implements HttpServletResponse redirect = location; } + /** + * @see jakarta.servlet.http.HttpServletResponse#sendRedirect(java.lang.String,int,boolean) + */ + @Override + public void sendRedirect(String location, int sc, boolean clearBuffer) throws IOException { + isOpen(); + redirect = location; + realResponse.sendRedirect(location, sc, clearBuffer); + } + /** * @return The redirect url */ @@ -266,7 +276,7 @@ class BufferedHttpServletResponse implements HttpServletResponse /** * Set the character encoding to use for the output. - * + * * @param encoding */ @Override @@ -423,7 +433,7 @@ class BufferedHttpServletResponse implements HttpServletResponse } /** - * + * */ public void close() { @@ -438,9 +448,9 @@ class BufferedHttpServletResponse implements HttpServletResponse /** * Convert the string into the output encoding required - * + * * @param output - * + * * @param encoding * The output encoding * @return byte[] The encoded characters converted into bytes diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java index 684dde00a8..539d72c02a 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java @@ -46,7 +46,7 @@ import org.apache.wicket.util.value.ValueMap; /** * Mock servlet response. Implements all of the methods from the standard HttpServletResponse class * plus helper methods to aid viewing the generated response. - * + * * @author Chris Turner */ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBufferingWebResponse @@ -83,7 +83,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Create the response object. - * + * * @param servletRequest */ public MockHttpServletResponse(MockHttpServletRequest servletRequest) @@ -93,7 +93,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Add a cookie to the response. - * + * * @param cookie * The cookie to add */ @@ -116,7 +116,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Add a date header. - * + * * @param name * The header value * @param l @@ -131,7 +131,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Add the given header value, including an additional entry if one already exists. - * + * * @param name * The name for the header * @param value @@ -152,7 +152,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Add an int header value. - * + * * @param name * The header name * @param i @@ -166,7 +166,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Check if the response contains the given header name. - * + * * @param name * The name to check * @return Whether header in response or not @@ -180,7 +180,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Encode the redirectLocation URL. Does no changes as this test implementation uses cookie * based url tracking. - * + * * @param url * The url to encode * @return The encoded url @@ -193,7 +193,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Encode the URL. Does no changes as this test implementation uses cookie based url tracking. - * + * * @param url * The url to encode * @return The encoded url @@ -206,7 +206,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Flush the buffer. - * + * * @throws IOException */ @Override @@ -216,7 +216,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the binary content that was written to the servlet stream. - * + * * @return The binary content */ public byte[] getBinaryContent() @@ -226,7 +226,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Return the current buffer size - * + * * @return The buffer size */ @Override @@ -248,7 +248,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the character encoding of the response. - * + * * @return The character encoding */ @Override @@ -260,7 +260,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get all of the cookies that have been added to the response. - * + * * @return The collection of cookies */ public List<Cookie> getCookies() @@ -275,7 +275,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the text document that was written as part of this response. - * + * * @return The document */ public String getDocument() @@ -292,7 +292,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the error message. - * + * * @return The error message, or null if no message */ public String getErrorMessage() @@ -302,7 +302,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Return the value of the given named header. - * + * * @param name * The header name * @return The value, or null @@ -324,7 +324,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the names of all of the headers. - * + * * @return The header names */ @Override @@ -335,7 +335,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the encoded locale - * + * * @return The locale */ @Override @@ -346,7 +346,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the output stream for writing binary data from the servlet. - * + * * @return The binary output stream. */ @Override @@ -362,7 +362,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the location that was redirected to. - * + * * @return The redirect location, or null if not a redirect */ public String getRedirectLocation() @@ -372,7 +372,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the status code. - * + * * @return The status code */ @Override @@ -383,7 +383,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Get the print writer for writing text output for this response. - * + * * @return The writer * @throws IOException * Not used @@ -452,7 +452,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Always returns false. - * + * * @return Always false */ @Override @@ -463,7 +463,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Return whether the servlet returned an error code or not. - * + * * @return Whether an error occurred or not */ public boolean isError() @@ -473,7 +473,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Check whether the response was redirected or not. - * + * * @return Whether the state was redirected or not */ public boolean isRedirect() @@ -508,7 +508,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Send an error code. This implementation just sets the internal error state information. - * + * * @param code * The code * @throws IOException @@ -523,7 +523,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Send an error code. This implementation just sets the internal error state information. - * + * * @param code * The error code * @param msg @@ -541,7 +541,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Indicate sending of a redirectLocation to a particular named resource. This implementation * just keeps hold of the redirectLocation info and makes it available for query. - * + * * @param location * The location to redirectLocation to * @throws IOException @@ -554,9 +554,28 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu status = HttpServletResponse.SC_FOUND; } + /** + * Indicate sending of a redirectLocation to a particular named resource and status code. + * This implementation just keeps hold of the redirectLocation info and makes it available for query. + * + * @param location + * The location to redirectLocation to + * @param sc + * The status code + * @param clearBuffer + * no-op + * @throws IOException + * Not used + */ + @Override + public void sendRedirect(String location, int sc, boolean clearBuffer) throws IOException { + redirectLocation = location; + status = sc; + } + /** * Method ignored. - * + * * @param size * The size */ @@ -567,7 +586,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the character encoding. - * + * * @param characterEncoding * The character encoding */ @@ -579,7 +598,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the content length. - * + * * @param length * The length */ @@ -597,7 +616,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the content type. - * + * * @param type * The content type */ @@ -618,7 +637,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set a date header. - * + * * @param name * The header name * @param l @@ -651,7 +670,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'" or "EEE, dd-MMM-yy HH:mm:ss 'GMT'"for * cookies - * + * * @param buf * @param calendar * @param cookie @@ -720,7 +739,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the given header value. - * + * * @param name * The name for the header * @param value @@ -736,7 +755,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set an int header value. - * + * * @param name * The header name * @param i @@ -750,7 +769,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the locale in the response header. - * + * * @param locale * The locale */ @@ -762,7 +781,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu /** * Set the status for this response. - * + * * @param status * The status */ diff --git a/wicket-examples/pom.xml b/wicket-examples/pom.xml index fa8d45e140..4463cdb7ff 100644 --- a/wicket-examples/pom.xml +++ b/wicket-examples/pom.xml @@ -165,8 +165,8 @@ <scope>runtime</scope> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> <scope>runtime</scope> </dependency> <dependency> @@ -174,8 +174,8 @@ <artifactId>jetty-jmx</artifactId> </dependency> <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-jakarta-server</artifactId> + <groupId>org.eclipse.jetty.ee11.websocket</groupId> + <artifactId>jetty-ee11-websocket-jakarta-server</artifactId> </dependency> <dependency> <groupId>org.glassfish</groupId> @@ -237,8 +237,8 @@ <artifactId>maven-war-plugin</artifactId> </plugin> <plugin> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-maven-plugin</artifactId> </plugin> </plugins> <pluginManagement> @@ -266,8 +266,8 @@ </configuration> </plugin> <plugin> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-maven-plugin</artifactId> <version>${jetty.version}</version> <dependencies> <dependency> diff --git a/wicket-examples/src/test/java/org/apache/wicket/examples/JettyTestCaseDecorator.java b/wicket-examples/src/test/java/org/apache/wicket/examples/JettyTestCaseDecorator.java index 96ba0f8240..465e0bec95 100644 --- a/wicket-examples/src/test/java/org/apache/wicket/examples/JettyTestCaseDecorator.java +++ b/wicket-examples/src/test/java/org/apache/wicket/examples/JettyTestCaseDecorator.java @@ -20,7 +20,7 @@ import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; -import org.eclipse.jetty.webapp.WebAppContext; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -28,7 +28,7 @@ import com.meterware.httpunit.HttpUnitOptions; /** * Test decorator that starts a jetty instance - * + * * @author ivaynberg */ public class JettyTestCaseDecorator @@ -59,17 +59,16 @@ public class JettyTestCaseDecorator server.addConnector(http); WebAppContext web = new WebAppContext(); - if (contextPath == null) - web.setContextPath("/wicket-examples"); - else - web.setContextPath(contextPath); + web.setContextPath(contextPath == null ? "/wicket-examples" : contextPath); if (webappLocation == null) { String basedir = System.getProperty("basedir"); String path = ""; if (basedir != null) + { path = basedir + "/"; + } path += "src/main/webapp"; web.setWar(path); diff --git a/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java b/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java index 1064e89e5f..48b936f12a 100644 --- a/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java +++ b/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java @@ -28,13 +28,14 @@ import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; -import org.eclipse.jetty.server.session.DefaultSessionCache; -import org.eclipse.jetty.server.session.FileSessionDataStore; -import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.session.DefaultSessionCache; +import org.eclipse.jetty.session.FileSessionDataStore; +import org.eclipse.jetty.ee11.servlet.ServletContextHandler; import org.eclipse.jetty.util.resource.Resource; +import org.eclipse.jetty.util.resource.ResourceFactory; import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.eclipse.jetty.webapp.WebAppContext; -import org.eclipse.jetty.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer; +import org.eclipse.jetty.ee11.webapp.WebAppContext; +import org.eclipse.jetty.ee11.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer; /** * Separate startup class for people that want to run the examples directly. Use parameter @@ -64,7 +65,7 @@ public class StartExamples server.addConnector(http); - Resource keystore = Resource.newClassPathResource("/keystore"); + Resource keystore = ResourceFactory.root().newClassLoaderResource("/keystore"); if (keystore != null && keystore.exists()) { // if a keystore for a SSL certificate is available, start a SSL diff --git a/wicket-extensions/pom.xml b/wicket-extensions/pom.xml index 6da475cd8c..8e858528a9 100644 --- a/wicket-extensions/pom.xml +++ b/wicket-extensions/pom.xml @@ -75,15 +75,15 @@ org.apache.wicket.extensions.wizard.dynamic;-noimport:=true <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package> </properties> <dependencies> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <optional>true</optional> - </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-core</artifactId> </dependency> + <dependency> + <groupId>tools.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <optional>true</optional> + </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-tester</artifactId> diff --git a/wicket-extensions/src/main/java/module-info.java b/wicket-extensions/src/main/java/module-info.java index 5b90e73de6..d4d4dc4784 100644 --- a/wicket-extensions/src/main/java/module-info.java +++ b/wicket-extensions/src/main/java/module-info.java @@ -19,7 +19,7 @@ module org.apache.wicket.extensions { requires java.desktop; requires static jakarta.servlet; requires org.slf4j; - requires com.fasterxml.jackson.databind; + requires tools.jackson.databind; requires com.github.openjson; requires org.apache.commons.fileupload2.core; requires org.apache.wicket.util; diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/requestlogger/JsonRequestLogger.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/requestlogger/JsonRequestLogger.java index 95a0aaa2f2..1556c4547f 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/requestlogger/JsonRequestLogger.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/requestlogger/JsonRequestLogger.java @@ -16,15 +16,16 @@ */ package org.apache.wicket.extensions.requestlogger; -import java.io.IOException; import java.io.Serializable; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.introspect.Annotated; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; -import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.SerializationFeature; +import tools.jackson.databind.cfg.MapperConfig; +import tools.jackson.databind.introspect.Annotated; +import tools.jackson.databind.introspect.JacksonAnnotationIntrospector; +import tools.jackson.databind.json.JsonMapper; +import tools.jackson.databind.ser.std.SimpleBeanPropertyFilter; +import tools.jackson.databind.ser.std.SimpleFilterProvider; import org.apache.wicket.protocol.http.AbstractRequestLogger; import org.apache.wicket.protocol.http.RequestLogger; import org.slf4j.Logger; @@ -33,17 +34,17 @@ import org.slf4j.LoggerFactory; /** * JsonRequestLogger uses Jackson to log requests in JSON-format. You will need jackson-mapper in * your classpath, ie. like: - * + * * <pre> * {@literal * <dependency> - * <groupId>com.fasterxml.jackson.core</groupId> + * <groupId>tools.jackson.core</groupId> * <artifactId>jackson-databind</artifactId> - * <version>2.7.1</version> + * <version>3.2.2</version> * </dependency> * } * </pre> - * + * * @author Emond Papegaaij */ public class JsonRequestLogger extends AbstractRequestLogger @@ -58,7 +59,7 @@ public class JsonRequestLogger extends AbstractRequestLogger private static final class FilteredIntrospector extends JacksonAnnotationIntrospector { @Override - public Object findFilterId(Annotated a) + public Object findFilterId(MapperConfig<?> config, Annotated a) { return "default"; } @@ -98,13 +99,14 @@ public class JsonRequestLogger extends AbstractRequestLogger */ public JsonRequestLogger() { - mapper = new ObjectMapper(); - mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); SimpleFilterProvider filters = new SimpleFilterProvider(); filters.addFilter("default", SimpleBeanPropertyFilter.serializeAllExcept("eventTarget", "responseTarget")); - mapper.setFilterProvider(filters); - mapper.setAnnotationIntrospector(new FilteredIntrospector()); + mapper = JsonMapper.builder() + .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) + .filterProvider(filters) + .annotationIntrospector(new FilteredIntrospector()) + .build(); } /** @@ -126,13 +128,6 @@ public class JsonRequestLogger extends AbstractRequestLogger protected String getLogString(RequestData rd, SessionData sd) { - try - { - return getMapper().writeValueAsString(new RequestSessionTuple(rd, sd)); - } - catch (IOException e) - { - throw new RuntimeException(e); - } + return getMapper().writeValueAsString(new RequestSessionTuple(rd, sd)); } } diff --git a/wicket-migration/pom.xml b/wicket-migration/pom.xml index 7a612495d8..74698b917a 100644 --- a/wicket-migration/pom.xml +++ b/wicket-migration/pom.xml @@ -59,7 +59,7 @@ <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - </exclusion> + </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> @@ -75,7 +75,7 @@ <exclusion> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> - </exclusion> + </exclusion> <exclusion> <groupId>com.google.errorprone</groupId> <artifactId>*</artifactId> diff --git a/wicket-native-websocket/wicket-native-websocket-javax/pom.xml b/wicket-native-websocket/wicket-native-websocket-javax/pom.xml index 4bc56f43b8..777c3724ee 100644 --- a/wicket-native-websocket/wicket-native-websocket-javax/pom.xml +++ b/wicket-native-websocket/wicket-native-websocket-javax/pom.xml @@ -60,12 +60,12 @@ <artifactId>jetty-server</artifactId> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-webapp</artifactId> + <groupId>org.eclipse.jetty.ee11</groupId> + <artifactId>jetty-ee11-webapp</artifactId> </dependency> <dependency> - <groupId>org.eclipse.jetty.websocket</groupId> - <artifactId>websocket-jakarta-server</artifactId> + <groupId>org.eclipse.jetty.ee11.websocket</groupId> + <artifactId>jetty-ee11-websocket-jakarta-server</artifactId> </dependency> </dependencies> </project>
