Added a test for a serverless resource testing Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/tests/integration/pom.xml b/tests/integration/pom.xml index a356b1b..dc72108 100644 --- a/tests/integration/pom.xml +++ b/tests/integration/pom.xml
@@ -34,21 +34,55 @@ <modules> <module>asm</module> + <module>async-jersey-filter</module> <module>cdi-integration</module> <module>client-connector-provider</module> <module>ejb-multimodule</module> <module>ejb-multimodule-reload</module> <module>ejb-test-webapp</module> + <module>externalproperties</module> + <module>jaxrs-component-inject</module> <module>j-376</module> <module>j-441</module> <module>j-59</module> + <module>jersey-780</module> + <module>jersey-1107</module> + <module>jersey-1223</module> + <module>jersey-1604</module> + <module>jersey-1667</module> + <!-- <module>jersey-1829</module> Jakartification--> + <module>jersey-1883</module> + <module>jersey-1928</module> + <module>jersey-1960</module> + <module>jersey-1964</module> + <module>jersey-2031</module> <module>jersey-2136</module> <module>jersey-2137</module> <module>jersey-2154</module> + <module>jersey-2160</module> + <module>jersey-2164</module> + <module>jersey-2167</module> + <module>jersey-2176</module> + <module>jersey-2184</module> + <module>jersey-2255</module> + <module>jersey-2322</module> + <module>jersey-2335</module> <module>jersey-2421</module> + <module>jersey-2551</module> + <module>jersey-2612</module> + <module>jersey-2637</module> + <module>jersey-2654</module> + <module>jersey-2673</module> + <module>jersey-2689</module> + <module>jersey-2704</module> <module>jersey-2776</module> + <module>jersey-2794</module> + <module>jersey-2846</module> + <module>jersey-2878</module> + <module>jersey-2892</module> <module>jersey-3662</module> <module>jersey-3670</module> + <module>jersey-3796</module> <module>jersey-3992</module> <module>jersey-4003</module> <module>jersey-4099</module> @@ -59,30 +93,62 @@ <module>jersey-4722</module> <module>jersey-4949</module> <module>microprofile</module> -<!-- <module>spring4</module>--> -<!-- <module>spring5</module>--> + <module>property-check</module> <module>reactive-streams</module> + <module>security-digest</module> + <module>servlet-2.5-autodiscovery-1</module> + <module>servlet-2.5-autodiscovery-2</module> + <module>servlet-2.5-filter</module> + <module>servlet-2.5-inflector-1</module> + <module>servlet-2.5-init-1</module> + <module>servlet-2.5-init-2</module> + <module>servlet-2.5-init-3</module> + <module>servlet-2.5-init-4</module> + <module>servlet-2.5-init-5</module> + <module>servlet-2.5-init-6</module> + <module>servlet-2.5-init-7</module> + <module>servlet-2.5-init-8</module> + <module>servlet-2.5-mvc-1</module> + <module>servlet-2.5-mvc-2</module> + <module>servlet-2.5-mvc-3</module> + <module>servlet-2.5-reload</module> + <module>servlet-3-async</module> + <module>servlet-3-chunked-io</module> + <module>servlet-3-filter</module> + <module>servlet-3-gf-async</module> + <module>servlet-3-inflector-1</module> + <module>servlet-3-init-1</module> + <module>servlet-3-init-2</module> + <module>servlet-3-init-3</module> + <module>servlet-3-init-4</module> + <module>servlet-3-init-5</module> + <module>servlet-3-init-6</module> + <module>servlet-3-init-7</module> + <module>servlet-3-init-8</module> + <module>servlet-3-init-9</module> + <module>servlet-3-init-provider</module> + <module>servlet-3-params</module> + <module>servlet-3-sse-1</module> + <module>servlet-4.0-mvc-1</module> + <module>servlet-tests</module> + <module>servlet-request-wrapper-binding</module> + <module>servlet-request-wrapper-binding-2</module> + <!-- <module>spring4</module>--> + <!-- <module>spring5</module>--> + <module>sonar-test</module> + <module>thin-server</module> + <module>tracing-support</module> </modules> + <properties> + <env>default</env> + <jersey.config.test.container.port>9998</jersey.config.test.container.port> + <jetty.log.file>${project.build.directory}/jetty-out.log</jetty.log.file> + </properties> + <profiles> <profile> - <id>default</id> - <properties> - <env>default</env> - <jersey.config.test.container.port>9998</jersey.config.test.container.port> - </properties> - <activation> - <jdk>[1.8,)</jdk> -<!-- <activeByDefault>true</activeByDefault> does not work ?!--> - </activation> - </profile> - <profile> <id>sonar</id> - <properties> - <env>default</env> - <jersey.config.test.container.port>9998</jersey.config.test.container.port> - <jetty.log.file>${project.build.directory}/jetty-out.log</jetty.log.file> - </properties> <build> <pluginManagement> <plugins> @@ -123,89 +189,6 @@ </pluginManagement> </build> </profile> - <profile> - <id>Jetty11</id> - <activation> - <jdk>[11,)</jdk> - </activation> - <modules> - <module>async-jersey-filter</module> - <module>externalproperties</module> - <module>jaxrs-component-inject</module> - <module>jersey-780</module> - <module>jersey-1107</module> - <module>jersey-1223</module> - <module>jersey-1604</module> - <module>jersey-1667</module> -<!-- <module>jersey-1829</module> Jakartification--> - <module>jersey-1883</module> - <module>jersey-1928</module> - <module>jersey-1960</module> - <module>jersey-1964</module> - <module>jersey-2031</module> - <module>jersey-2160</module> - <module>jersey-2164</module> - <module>jersey-2167</module> - <module>jersey-2176</module> - <module>jersey-2184</module> - <module>jersey-2255</module> - <module>jersey-2322</module> - <module>jersey-2335</module> - <module>jersey-2551</module> - <module>jersey-2612</module> - <module>jersey-2637</module> - <module>jersey-2654</module> - <module>jersey-2673</module> - <module>jersey-2689</module> - <module>jersey-2704</module> - <module>jersey-2794</module> - <module>jersey-2846</module> - <module>jersey-2878</module> - <module>jersey-2892</module> - <module>jersey-3796</module> - <module>property-check</module> - <module>security-digest</module> - <module>servlet-2.5-autodiscovery-1</module> - <module>servlet-2.5-autodiscovery-2</module> - <module>servlet-2.5-filter</module> - <module>servlet-2.5-inflector-1</module> - <module>servlet-2.5-init-1</module> - <module>servlet-2.5-init-2</module> - <module>servlet-2.5-init-3</module> - <module>servlet-2.5-init-4</module> - <module>servlet-2.5-init-5</module> - <module>servlet-2.5-init-6</module> - <module>servlet-2.5-init-7</module> - <module>servlet-2.5-init-8</module> - <module>servlet-2.5-mvc-1</module> - <module>servlet-2.5-mvc-2</module> - <module>servlet-2.5-mvc-3</module> - <module>servlet-2.5-reload</module> - <module>servlet-3-async</module> - <module>servlet-3-chunked-io</module> - <module>servlet-3-filter</module> - <module>servlet-3-gf-async</module> - <module>servlet-3-inflector-1</module> - <module>servlet-3-init-1</module> - <module>servlet-3-init-2</module> - <module>servlet-3-init-3</module> - <module>servlet-3-init-4</module> - <module>servlet-3-init-5</module> - <module>servlet-3-init-6</module> - <module>servlet-3-init-7</module> - <module>servlet-3-init-8</module> - <module>servlet-3-init-9</module> - <module>servlet-3-init-provider</module> - <module>servlet-3-params</module> - <module>servlet-3-sse-1</module> - <module>servlet-4.0-mvc-1</module> - <module>servlet-tests</module> - <module>servlet-request-wrapper-binding</module> - <module>servlet-request-wrapper-binding-2</module> - <module>sonar-test</module> - <module>tracing-support</module> - </modules> - </profile> </profiles> <build>
diff --git a/tests/integration/thin-server/pom.xml b/tests/integration/thin-server/pom.xml new file mode 100644 index 0000000..4a26ef0 --- /dev/null +++ b/tests/integration/thin-server/pom.xml
@@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + 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"> + <parent> + <artifactId>project</artifactId> + <groupId>org.glassfish.jersey.tests.integration</groupId> + <version>3.1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>thin-server</artifactId> + <name>jersey-thin-server</name> + <description> + Run server without HTTP stack in tests. + </description> + + <dependencies> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-server</artifactId> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-client</artifactId> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.test-framework</groupId> + <artifactId>jersey-test-framework-util</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-library</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + +</project>
diff --git a/tests/integration/thin-server/src/main/java/org.glassfish.jersey.integration.thinserver/ThinServerResource.java b/tests/integration/thin-server/src/main/java/org.glassfish.jersey.integration.thinserver/ThinServerResource.java new file mode 100644 index 0000000..9cb3cb7 --- /dev/null +++ b/tests/integration/thin-server/src/main/java/org.glassfish.jersey.integration.thinserver/ThinServerResource.java
@@ -0,0 +1,29 @@ +/* + * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package org.glassfish.jersey.integration.thinserver; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; + +@Path("/") +public class ThinServerResource { + @GET + @Path("someget") + public String get() { + return ThinServerResource.class.getName(); + } +}
diff --git a/tests/integration/thin-server/src/test/java/org/glassfish/jersey/integration/thinserver/ThinServerTest.java b/tests/integration/thin-server/src/test/java/org/glassfish/jersey/integration/thinserver/ThinServerTest.java new file mode 100644 index 0000000..c64bce5 --- /dev/null +++ b/tests/integration/thin-server/src/test/java/org/glassfish/jersey/integration/thinserver/ThinServerTest.java
@@ -0,0 +1,47 @@ +/* + * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package org.glassfish.jersey.integration.thinserver; + +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.core.Response; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.message.internal.OutboundJaxrsResponse; +import org.glassfish.jersey.message.internal.OutboundMessageContext; +import org.glassfish.jersey.server.ApplicationHandler; +import org.glassfish.jersey.server.ContainerRequest; +import org.glassfish.jersey.server.ContainerResponse; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.test.util.server.ContainerRequestBuilder; +import org.junit.Assert; +import org.junit.Test; + +import java.net.URI; +import java.util.concurrent.ExecutionException; + +public class ThinServerTest { + @Test + public void testGet() throws ExecutionException, InterruptedException { + ContainerRequest request = + ContainerRequestBuilder.from(URI.create("/someget"), HttpMethod.GET, new ClientConfig()).build(); + + ApplicationHandler applicationHandler = new ApplicationHandler(new ResourceConfig(ThinServerResource.class)); + ContainerResponse containerResponse = applicationHandler.apply(request).get(); + OutboundMessageContext outboundMessageContext = containerResponse.getWrappedMessageContext(); + Response response = new OutboundJaxrsResponse(containerResponse.getStatusInfo(), outboundMessageContext); + Assert.assertEquals(ThinServerResource.class.getName(), response.getEntity()); + } +}