You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2022/10/25 22:50:01 UTC
[cxf] branch main updated: Include back jaxrs systests module (#1012)
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new 383c9273a0 Include back jaxrs systests module (#1012)
383c9273a0 is described below
commit 383c9273a0b88931fef8117c6f0e481fa31734e4
Author: Andriy Redko <dr...@gmail.com>
AuthorDate: Tue Oct 25 18:49:54 2022 -0400
Include back jaxrs systests module (#1012)
* Include back jaxrs systests module
* Fixing JAXRS20ClientServerBookTest test cases
* Fixing JAXRSClientServerBookTest test cases
* Fixing Netty version conflicts (tests only)
* Added missing jetty-client dependency (tests only)
* Fixed com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider usage
* Fixed jakarta.ws.rs.Application usage
* Fixing JAXRSJmsTest test cases
* Fixing JsrJsonbProviderTest test cases
* Fixing OpenApiCustomPropertiesTest test cases
* Fixing JAXRSRequestDispatcherTest test cases
* Fixing JAXRSSpringSecurityClassTest test cases
* Fixing JAXRSSpringSecurityInterfaceTest and JAXRSSpringSecurityNoAnnotationsTest test cases
* Fixing JAXRSClientMetricsTest test cases
* Fixing AsyncTest test cases
---
.../apache/cxf/bus/spring/SpringBeanLocator.java | 2 +-
parent/pom.xml | 1 +
.../cxf/jaxrs/provider/JAXBElementProvider.java | 4 +-
.../apache/cxf/microprofile/client/AsyncTest.java | 82 ++++++++++------------
.../cxf/transport/jms/JMSMessageHeadersType.java | 4 +-
systests/jaxrs/pom.xml | 46 ++++++++++--
.../systest/jaxrs/JAXRS20ClientServerBookTest.java | 4 +-
.../systest/jaxrs/JAXRSRequestDispatcherTest.java | 3 -
.../org/apache/cxf/systest/jaxrs/JMSBookStore.java | 2 +-
.../apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java | 25 ++++---
.../jaxrs/metrics/JAXRSClientMetricsTest.java | 65 +++++++++--------
.../security/BookServerSecuritySpringClass.java | 15 ++++
.../src/test/resources/files/swagger.properties | 5 ++
.../src/test/resources/jaxrs/WEB-INF/beans.xml | 4 +-
.../test/resources/jaxrs_cors/WEB-INF/beans.xml | 2 +-
.../test/resources/jaxrs_dispatch/WEB-INF/web.xml | 4 +-
.../jaxrs_jackson_provider/WEB-INF/beans.xml | 4 +-
.../resources/jaxrs_non_spring/WEB-INF/web.xml | 6 +-
.../resources/jaxrs_security/WEB-INF/beans.xml | 1 +
.../jaxrs_security_cglib/WEB-INF/beans.xml | 1 +
.../WEB-INF/beans.xml | 1 +
systests/pom.xml | 12 +---
22 files changed, 172 insertions(+), 121 deletions(-)
diff --git a/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java b/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java
index 1c5433473b..e1a15e85c7 100644
--- a/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java
+++ b/core/src/main/java/org/apache/cxf/bus/spring/SpringBeanLocator.java
@@ -158,7 +158,7 @@ public class SpringBeanLocator implements ConfiguredBeanLocator {
return lst;
}
private <T> void tryOSGI(Collection<T> lst, Class<T> type) {
- if (!osgi) {
+ if (!osgi || bundleContext == null) {
return;
}
try {
diff --git a/parent/pom.xml b/parent/pom.xml
index 1331258b02..d3d0f95390 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -87,6 +87,7 @@
<cxf.ehcache3.version>3.10.0</cxf.ehcache3.version>
<cxf.el-api.version>3.0.3</cxf.el-api.version>
<cxf.findbugs.version>3.0.2</cxf.findbugs.version>
+ <cxf.hoverfly.version>0.14.0</cxf.hoverfly.version>
<cxf.geronimo.jta.version>1.1.1</cxf.geronimo.jta.version>
<cxf.geronimo.openapi.version>1.0.15</cxf.geronimo.openapi.version>
<cxf.glassfish.el.version>4.0.0</cxf.glassfish.el.version>
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
index 0918600aed..87cf39c62d 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
@@ -83,8 +83,8 @@ import org.apache.cxf.staxutils.transform.TransformUtils;
@Provider
public class JAXBElementProvider<T> extends AbstractJAXBProvider<T> {
private static final String XML_PI_START = "<?xml version=\"1.0\" encoding=\"";
- private static final String XML_PI_PROPERTY_RI = "com.sun.xml.bind.xmlHeaders";
- private static final String XML_PI_PROPERTY_RI_INT = "com.sun.xml.internal.bind.xmlHeaders";
+ private static final String XML_PI_PROPERTY_RI = "org.glassfish.jaxb.xmlHeaders";
+ private static final String XML_PI_PROPERTY_RI_INT = "org.glassfish.jaxb.internal.bind.xmlHeaders";
private static final String[] MARSHALLER_PROPERTIES = {
Marshaller.JAXB_ENCODING,
diff --git a/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/AsyncTest.java b/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/AsyncTest.java
index b0e7f06022..a4b0243b44 100644
--- a/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/AsyncTest.java
+++ b/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/AsyncTest.java
@@ -18,70 +18,69 @@
*/
package org.apache.cxf.microprofile.client;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
import java.net.URI;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
-import com.github.tomakehurst.wiremock.common.FileSource;
-import com.github.tomakehurst.wiremock.extension.Parameters;
-import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
-import com.github.tomakehurst.wiremock.http.Request;
-import com.github.tomakehurst.wiremock.http.Response;
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpServer;
import org.apache.cxf.microprofile.client.mock.AsyncClient;
import org.apache.cxf.microprofile.client.mock.NotFoundExceptionMapper;
import org.eclipse.microprofile.rest.client.RestClientBuilder;
-import org.junit.Rule;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.notFound;
-import static com.github.tomakehurst.wiremock.client.WireMock.ok;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class AsyncTest {
- @SuppressWarnings("unchecked")
- @Rule
- public WireMockRule wireMockRule = new WireMockRule(wireMockConfig()
- .extensions(SimpleTransformer.class).dynamicPort());
-
- public static class SimpleTransformer extends ResponseTransformer {
- private final Queue<String> queue = new ArrayBlockingQueue<>(2);
-
- public SimpleTransformer() {
- queue.add("Hello");
- queue.add("World");
- }
-
- @Override
- public Response transform(Request request, Response response, FileSource fileSource, Parameters parameters) {
- return Response.Builder
- .like(response)
- .but().body(queue.poll())
- .build();
- }
+ private HttpServer server;
+ private final Queue<String> queue = new ArrayBlockingQueue<>(2);
+ public class SimpleHandler implements HttpHandler {
@Override
- public boolean applyGlobally() {
- return false;
+ public void handle(HttpExchange exchange) throws IOException {
+ final String body = queue.poll();
+ if (body == null) {
+ exchange.sendResponseHeaders(404, 0);
+ } else {
+ exchange.sendResponseHeaders(200, body.length());
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(body.getBytes());
+ }
+ }
}
+ }
- @Override
- public String getName() {
- return "enqueue-transformer";
- }
+ @Before
+ public void setUp() throws IOException {
+ server = HttpServer.create(new InetSocketAddress(0), 2);
+ server.createContext("/", new SimpleHandler());
+ server.start();
}
-
+
+ @After
+ public void tearDown() throws IOException {
+ server.stop(0);
+ queue.clear();
+ }
+
@Test
public void testAsyncClient() throws Exception {
- URI uri = URI.create(wireMockRule.baseUrl());
+ queue.add("Hello");
+ queue.add("World");
+
+ URI uri = URI.create("http://localhost:" + server.getAddress().getPort());
AsyncClient client = RestClientBuilder.newBuilder()
.baseUri(uri)
.connectTimeout(5, TimeUnit.SECONDS)
@@ -89,8 +88,6 @@ public class AsyncTest {
.build(AsyncClient.class);
assertNotNull(client);
- wireMockRule.stubFor(get("/").willReturn(ok().withTransformers("enqueue-transformer")));
-
String combined = client.get().thenCombine(client.get(), (a, b) -> {
return a + " " + b;
}).toCompletableFuture().get(10, TimeUnit.SECONDS);
@@ -100,14 +97,13 @@ public class AsyncTest {
@Test
public void testAsyncClientCanMapExceptionResponses() throws Exception {
- URI uri = URI.create(wireMockRule.baseUrl());
+ URI uri = URI.create("http://localhost:" + server.getAddress().getPort());
AsyncClient client = RestClientBuilder.newBuilder()
.baseUri(uri)
.connectTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.register(NotFoundExceptionMapper.class)
.build(AsyncClient.class);
- wireMockRule.stubFor(get("/").willReturn(notFound()));
CompletionStage<?> cs = client.get().exceptionally(t -> {
Throwable t2 = t.getCause();
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
index 16e5a9fa66..de2db40b08 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageHeadersType.java
@@ -373,13 +373,13 @@ public class JMSMessageHeadersType {
while (enm.hasMoreElements()) {
String name = enm.nextElement();
String val = message.getStringProperty(name);
- String unescapedName = name.replace("__", ".");
+ String unescapedName = name.replace("_$_", "-").replace("__", ".");
putProperty(unescapedName, val);
}
}
public void writeProp(Message jmsMessage, String origName, Object value) throws JMSException {
- String name = origName.replace(".", "__").replace("-", "___");
+ String name = origName.replace(".", "__").replace("-", "_$_");
if (value == null) {
jmsMessage.setStringProperty(name, null);
return;
diff --git a/systests/jaxrs/pom.xml b/systests/jaxrs/pom.xml
index 3f26188ff0..42ae8adca1 100644
--- a/systests/jaxrs/pom.xml
+++ b/systests/jaxrs/pom.xml
@@ -102,6 +102,11 @@
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>${cxf.swagger.ui.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-client</artifactId>
+ <version>${cxf.jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
@@ -217,6 +222,12 @@
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-jakarta-server</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
@@ -437,6 +448,12 @@
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
@@ -506,14 +523,14 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.github.tomakehurst</groupId>
- <artifactId>wiremock</artifactId>
- <version>${cxf.wiremock.version}</version>
+ <groupId>io.specto</groupId>
+ <artifactId>hoverfly-java</artifactId>
+ <version>${cxf.hoverfly.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
- <groupId>org.xmlunit</groupId>
- <artifactId>xmlunit-core</artifactId>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
@@ -528,6 +545,25 @@
<classifier>jakarta</classifier>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.johnzon</groupId>
+ <artifactId>johnzon-mapper</artifactId>
+ <version>${cxf.johnzon.version}</version>
+ <classifier>jakarta</classifier>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec-socks</artifactId>
+ <version>${cxf.netty.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-handler-proxy</artifactId>
+ <version>${cxf.netty.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
index 69700e8505..1445238a8a 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
@@ -976,8 +976,8 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase
.get()
.readEntity(String.class);
- assertThat(response, equalTo("2020-01-01{javax.ws.rs.GET,javax.ws.rs.Path,javax.ws.rs.Produces,"
- + "javax.ws.rs.ext.Provider,javax.ws.rs.Consumes}"));
+ assertThat(response, equalTo("2020-01-01{jakarta.ws.rs.GET,jakarta.ws.rs.Path,jakarta.ws.rs.Produces,"
+ + "jakarta.ws.rs.ext.Provider,jakarta.ws.rs.Consumes}"));
}
private static class ReplaceBodyFilter implements ClientRequestFilter {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSRequestDispatcherTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSRequestDispatcherTest.java
index 8497440d19..8707b2c68b 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSRequestDispatcherTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSRequestDispatcherTest.java
@@ -30,7 +30,6 @@ import org.apache.cxf.jaxrs.ext.xml.XMLSource;
import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.containsString;
@@ -80,7 +79,6 @@ public class JAXRSRequestDispatcherTest extends AbstractBusClientServerTestBase
}
@Test
- @Ignore("JSP pages need to be precompiled by Maven build")
public void testGetBookJSPRequestScope() throws Exception {
String endpointAddress =
"http://localhost:" + PORT + "/the/bookstore2/books/html/123";
@@ -94,7 +92,6 @@ public class JAXRSRequestDispatcherTest extends AbstractBusClientServerTestBase
}
@Test
- @Ignore("JSP pages need to be precompiled by Maven build")
public void testGetBookJSPSessionScope() throws Exception {
String endpointAddress =
"http://localhost:" + PORT + "/the/bookstore3/books/html/456";
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
index a189e26f63..f12f105a51 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
@@ -152,7 +152,7 @@ public class JMSBookStore {
private Context getContext() throws Exception {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
- "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
+ "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory");
props.setProperty(Context.PROVIDER_URL, "tcp://localhost:" + EmbeddedJMSBrokerLauncher.PORT);
return new InitialContext(props);
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
index 50f02a2a4a..2d52a4cce7 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
@@ -379,9 +379,9 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
MessageProducer producer = session.createProducer(destination);
Message message = session.createBytesMessage();
message.setJMSReplyTo(replyTo);
- message.setStringProperty("Accept", "application/xml");
- message.setStringProperty(org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/books/123");
- message.setStringProperty(org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "GET");
+ setStringProperty(message, "Accept", "application/xml");
+ setStringProperty(message, org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/books/123");
+ setStringProperty(message, org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "GET");
producer.send(message);
producer.close();
}
@@ -393,9 +393,9 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
byte[] payload = writeBook(new Book("JMS OneWay", 125L));
BytesMessage message = session.createBytesMessage();
message.writeBytes(payload);
- message.setStringProperty("Content-Type", "application/xml");
- message.setStringProperty(org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/oneway");
- message.setStringProperty(org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "PUT");
+ setStringProperty(message, "Content-Type", "application/xml");
+ setStringProperty(message, org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/oneway");
+ setStringProperty(message, org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "PUT");
producer.send(message);
producer.close();
@@ -422,11 +422,11 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
// POST
// Message.REQUEST_URI : "/"
- message.setStringProperty("Content-Type", "application/xml");
- message.setStringProperty("Accept", "text/xml");
- message.setStringProperty(org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/books");
- message.setStringProperty(org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "POST");
- message.setStringProperty("custom.protocol.header", "custom.value");
+ setStringProperty(message, "Content-Type", "application/xml");
+ setStringProperty(message, "Accept", "text/xml");
+ setStringProperty(message, org.apache.cxf.message.Message.REQUEST_URI, "/bookstore/books");
+ setStringProperty(message, org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, "POST");
+ setStringProperty(message, "custom.protocol.header", "custom.value");
producer.send(message);
producer.close();
@@ -457,4 +457,7 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
}
}
+ private static void setStringProperty(Message message, String name, String value) throws JMSException {
+ message.setStringProperty(name.replace(".", "__").replace("-", "_$_"), value);
+ }
}
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/metrics/JAXRSClientMetricsTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/metrics/JAXRSClientMetricsTest.java
index c2438af86d..f25f5afaf9 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/metrics/JAXRSClientMetricsTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/metrics/JAXRSClientMetricsTest.java
@@ -22,7 +22,6 @@ package org.apache.cxf.systest.jaxrs.metrics;
import java.util.Arrays;
import com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider;
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
import jakarta.ws.rs.NotFoundException;
import jakarta.ws.rs.ProcessingException;
@@ -37,9 +36,13 @@ import org.apache.cxf.metrics.MetricsContext;
import org.apache.cxf.metrics.MetricsFeature;
import org.apache.cxf.metrics.MetricsProvider;
import org.apache.cxf.service.model.BindingOperationInfo;
-import org.springframework.util.SocketUtils;
+import org.apache.cxf.testutil.common.TestUtil;
+
+import io.specto.hoverfly.junit.core.SimulationSource;
+import io.specto.hoverfly.junit.rule.HoverflyRule;
import org.junit.Before;
+import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -47,19 +50,16 @@ import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static io.specto.hoverfly.junit.core.HoverflyConfig.localConfigs;
+import static io.specto.hoverfly.junit.dsl.HoverflyDsl.response;
+import static io.specto.hoverfly.junit.dsl.HoverflyDsl.service;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.times;
@RunWith(MockitoJUnitRunner.class)
public class JAXRSClientMetricsTest {
- @Rule public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort());
+ @ClassRule public static HoverflyRule hoverflyRule = HoverflyRule.inSimulationMode(localConfigs().asWebServer());
@Rule public ExpectedException expectedException = ExpectedException.none();
private MetricsProvider provider;
@@ -94,13 +94,14 @@ public class JAXRSClientMetricsTest {
public void usingClientProxyStopIsCalledWhenServerReturnsNotFound() throws Exception {
final JAXRSClientFactoryBean factory = new JAXRSClientFactoryBean();
factory.setResourceClass(Library.class);
- factory.setAddress("http://localhost:" + wireMockRule.port() + "/");
+ factory.setAddress("http://localhost:" + hoverflyRule.getProxyPort() + "/");
factory.setFeatures(Arrays.asList(new MetricsFeature(provider)));
factory.setProvider(JacksonJsonProvider.class);
-
- stubFor(get(urlEqualTo("/books/10"))
- .willReturn(aResponse()
- .withStatus(404)));
+
+ hoverflyRule.simulate(SimulationSource.dsl(
+ service("localhost")
+ .get("/books/10")
+ .willReturn(response().status(404))));
try {
final Library client = factory.create(Library.class);
@@ -122,14 +123,15 @@ public class JAXRSClientMetricsTest {
.register(new MetricsFeature(provider))
.register(JacksonJsonProvider.class);
- stubFor(get(urlEqualTo("/books/10"))
- .willReturn(aResponse()
- .withStatus(404)));
+ hoverflyRule.simulate(SimulationSource.dsl(
+ service("localhost")
+ .get("/books/10")
+ .willReturn(response().status(404))));
try {
expectedException.expect(ProcessingException.class);
client
- .target("http://localhost:" + wireMockRule.port() + "/books/10")
+ .target("http://localhost:" + hoverflyRule.getProxyPort() + "/books/10")
.request(MediaType.APPLICATION_JSON).get()
.readEntity(Book.class);
} finally {
@@ -143,7 +145,7 @@ public class JAXRSClientMetricsTest {
@Test
public void usingClientStopIsCalledWhenConnectionIsRefused() throws Exception {
- final int port = SocketUtils.findAvailableTcpPort();
+ final int port = Integer.parseInt(TestUtil.getNewPortNumber(getClass()));
final Client client = ClientBuilder
.newClient()
@@ -173,16 +175,18 @@ public class JAXRSClientMetricsTest {
.register(new MetricsFeature(provider))
.register(JacksonJsonProvider.class);
- stubFor(get(urlEqualTo("/books/10"))
- .withHeader("Accept", equalTo(MediaType.APPLICATION_JSON))
- .willReturn(aResponse()
- .withHeader("Content-Type", MediaType.APPLICATION_JSON)
- .withBody("{}")
- .withStatus(200)));
+ hoverflyRule.simulate(SimulationSource.dsl(
+ service("localhost")
+ .get("/books/10")
+ .header("Accept", MediaType.APPLICATION_JSON)
+ .willReturn(response()
+ .header("Content-Type", MediaType.APPLICATION_JSON)
+ .body("{}")
+ .status(200))));
try {
client
- .target("http://localhost:" + wireMockRule.port() + "/books/10")
+ .target("http://localhost:" + hoverflyRule.getProxyPort() + "/books/10")
.request(MediaType.APPLICATION_JSON)
.get()
.readEntity(Book.class);
@@ -197,12 +201,13 @@ public class JAXRSClientMetricsTest {
@Test
public void usingWebClientStopIsCalledWhenServerReturnsNotFound() throws Exception {
- final WebClient client = WebClient.create("http://localhost:" + wireMockRule.port() + "/books/10",
+ final WebClient client = WebClient.create("http://localhost:" + hoverflyRule.getProxyPort() + "/books/10",
Arrays.asList(JacksonJsonProvider.class), Arrays.asList(new MetricsFeature(provider)), null);
- stubFor(get(urlEqualTo("/books/10"))
- .willReturn(aResponse()
- .withStatus(404)));
+ hoverflyRule.simulate(SimulationSource.dsl(
+ service("localhost")
+ .get("/books/10")
+ .willReturn(response().status(404))));
try {
expectedException.expect(ProcessingException.class);
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/BookServerSecuritySpringClass.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/BookServerSecuritySpringClass.java
index f58dc9f138..b6493680ca 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/BookServerSecuritySpringClass.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/BookServerSecuritySpringClass.java
@@ -20,6 +20,10 @@
package org.apache.cxf.systest.jaxrs.security;
import org.apache.cxf.systest.jaxrs.AbstractSpringServer;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.HandlerCollection;
+import org.eclipse.jetty.webapp.WebAppContext;
@@ -29,6 +33,17 @@ public class BookServerSecuritySpringClass extends AbstractSpringServer {
public BookServerSecuritySpringClass() {
super("/jaxrs_security_cglib", PORT);
}
+
+ @Override
+ protected void configureServer(Server server) throws Exception {
+ final HandlerCollection collection = (HandlerCollection) server.getHandler();
+ for (Handler handler: collection.getHandlers()) {
+ if (handler instanceof WebAppContext) {
+ final WebAppContext webappcontext = (WebAppContext) handler;
+ webappcontext.setClassLoader(getClass().getClassLoader());
+ }
+ }
+ }
public static void main(String[] args) {
try {
diff --git a/systests/jaxrs/src/test/resources/files/swagger.properties b/systests/jaxrs/src/test/resources/files/swagger.properties
new file mode 100644
index 0000000000..417045b753
--- /dev/null
+++ b/systests/jaxrs/src/test/resources/files/swagger.properties
@@ -0,0 +1,5 @@
+contact=cxf@apache.org
+title=CXF unittest
+description=API Description
+license=API License
+license.url=API License URL
\ No newline at end of file
diff --git a/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml
index 16c85c7080..c39ac77175 100644
--- a/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml
@@ -148,7 +148,7 @@
<ref bean="serviceBean"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
- <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
+ <bean class="com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider"/>
<bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPreStreamInterceptor"/>
</jaxrs:providers>
<jaxrs:inInterceptors>
@@ -239,7 +239,7 @@
<bean class="org.apache.cxf.systest.jaxrs.DocumentResourceImpl"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
- <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
+ <bean class="com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider"/>
</jaxrs:providers>
</jaxrs:server>
<bean id="jaxbProviderForTypes" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
diff --git a/systests/jaxrs/src/test/resources/jaxrs_cors/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs_cors/WEB-INF/beans.xml
index 5b6dc21240..94b9249ce8 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_cors/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_cors/WEB-INF/beans.xml
@@ -50,7 +50,7 @@
<ref bean="config-server"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
- <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
+ <bean class="com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider"/>
</jaxrs:providers>
</jaxrs:server>
<bean id="config-server" class="org.apache.cxf.systest.jaxrs.cors.ConfigServer">
diff --git a/systests/jaxrs/src/test/resources/jaxrs_dispatch/WEB-INF/web.xml b/systests/jaxrs/src/test/resources/jaxrs_dispatch/WEB-INF/web.xml
index 470c541190..29d65c062c 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_dispatch/WEB-INF/web.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_dispatch/WEB-INF/web.xml
@@ -46,7 +46,7 @@
<init-param>
<param-name>redirect-attributes</param-name>
<param-value>
- javax.servlet.include.request_uri
+ jakarta.servlet.include.request_uri
</param-value>
</init-param>
<init-param>
@@ -146,7 +146,7 @@
<init-param>
<param-name>redirect-attributes</param-name>
<param-value>
- javax.servlet.include.request_uri
+ jakarta.servlet.include.request_uri
</param-value>
</init-param>
<init-param>
diff --git a/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
index 4ca5850c8d..52214292fe 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
@@ -121,8 +121,8 @@ http://cxf.apache.org/schemas/jaxrs.xsd">
</jaxrs:providers>
</jaxrs:server>
- <bean id="jackson" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
- <bean id="jackson2" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
+ <bean id="jackson" class="com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider"/>
+ <bean id="jackson2" class="com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider"/>
<bean id="jaxb" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="unmarshallAsJaxbElement" value="true"/>
<property name="marshallAsJaxbElement" value="true"/>
diff --git a/systests/jaxrs/src/test/resources/jaxrs_non_spring/WEB-INF/web.xml b/systests/jaxrs/src/test/resources/jaxrs_non_spring/WEB-INF/web.xml
index c0f0cb03b8..2a678fdbcb 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_non_spring/WEB-INF/web.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_non_spring/WEB-INF/web.xml
@@ -64,7 +64,7 @@
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
- <param-name>javax.ws.rs.Application</param-name>
+ <param-name>jakarta.ws.rs.Application</param-name>
<param-value>
org.apache.cxf.systest.jaxrs.BookApplication
(defaultName=default defaultId=543)
@@ -127,7 +127,7 @@
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
- <param-name>javax.ws.rs.Application</param-name>
+ <param-name>jakarta.ws.rs.Application</param-name>
<param-value>org.apache.cxf.systest.jaxrs.BookApplication</param-value>
</init-param>
<init-param>
@@ -143,7 +143,7 @@
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
- <param-name>javax.ws.rs.Application</param-name>
+ <param-name>jakarta.ws.rs.Application</param-name>
<param-value>
org.apache.cxf.systest.jaxrs.BookApplication,
org.apache.cxf.systest.jaxrs.BookApplication2
diff --git a/systests/jaxrs/src/test/resources/jaxrs_security/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs_security/WEB-INF/beans.xml
index 5c2e625531..083dfd838c 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_security/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_security/WEB-INF/beans.xml
@@ -56,6 +56,7 @@
<security:global-method-security secured-annotations="enabled"/>
<security:http auto-config="true">
<security:http-basic/>
+ <security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</security:http>
<bean id="bookstoreGenerics" class="org.apache.cxf.systest.jaxrs.security.SecureBookStoreGenerics"/>
<security:authentication-manager>
diff --git a/systests/jaxrs/src/test/resources/jaxrs_security_cglib/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs_security_cglib/WEB-INF/beans.xml
index 340b5a75fc..67ead8598d 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_security_cglib/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_security_cglib/WEB-INF/beans.xml
@@ -58,6 +58,7 @@
<security:http auto-config="true">
<security:http-basic/>
<security:csrf disabled="true"/>
+ <security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
diff --git a/systests/jaxrs/src/test/resources/jaxrs_security_no_annotations/WEB-INF/beans.xml b/systests/jaxrs/src/test/resources/jaxrs_security_no_annotations/WEB-INF/beans.xml
index ffbf67e085..8cc834c147 100644
--- a/systests/jaxrs/src/test/resources/jaxrs_security_no_annotations/WEB-INF/beans.xml
+++ b/systests/jaxrs/src/test/resources/jaxrs_security_no_annotations/WEB-INF/beans.xml
@@ -53,6 +53,7 @@
</security:global-method-security>
<security:http auto-config="true">
<security:http-basic/>
+ <security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
diff --git a/systests/pom.xml b/systests/pom.xml
index 4f27033f7e..44097cc0c8 100644
--- a/systests/pom.xml
+++ b/systests/pom.xml
@@ -56,16 +56,6 @@
<module>transport-netty</module>
<module>transport-hc5</module>
<module>transport-jms</module>
+ <module>jaxrs</module>
</modules>
-
- <profiles>
- <!-- TODO: This profile includes modules which are still on 'javax.*' namespace and
- are not migrated to Jakarta -->
- <profile>
- <id>javax</id>
- <modules>
- <module>jaxrs</module>
- </modules>
- </profile>
- </profiles>
</project>