-
Notifications
You must be signed in to change notification settings - Fork 351
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Daniel Kec <[email protected]>
- Loading branch information
Showing
29 changed files
with
1,648 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
|
||
tests | ||
===== | ||
|
||
Tests are located in jersey-spring-test module. | ||
The module contains a test webapp and test code. | ||
The tests can be run in Jersey test container or an external container. | ||
|
||
- Running tests in Jersey test container | ||
mvn clean test | ||
|
||
- Running tests in an external container | ||
build the test app | ||
deploy to an external container | ||
configure container connection info in jersey-spring-test/pom.xml, if needed | ||
run tests in integration test mode: | ||
mvn -Pit verify | ||
|
||
- Running tests in embedded Jetty instance | ||
build the test app | ||
deploy to Jetty: | ||
mvn -Pjetty jetty:run | ||
run tests in integration test mode in another console session: | ||
mvn -Pit verify | ||
|
||
test class naming conventions | ||
- *ITTest.java: run in unit and IT test mode | ||
- *Test.java: run as unit tests | ||
- *IT.java: run as IT tests | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
Copyright (c) 2012, 2019 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"> | ||
|
||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<parent> | ||
<groupId>org.glassfish.jersey.tests.integration</groupId> | ||
<artifactId>project</artifactId> | ||
<version>2.30-SNAPSHOT</version> | ||
</parent> | ||
|
||
<artifactId>spring5</artifactId> | ||
|
||
<packaging>war</packaging> | ||
<name>jersey-tests-integration-spring5</name> | ||
|
||
<description> | ||
Jersey tests for Spring 5 integration | ||
</description> | ||
|
||
<dependencies> | ||
|
||
<dependency> | ||
<groupId>jakarta.servlet</groupId> | ||
<artifactId>jakarta.servlet-api</artifactId> | ||
<version>${servlet4.version}</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>jakarta.ws.rs</groupId> | ||
<artifactId>jakarta.ws.rs-api</artifactId> | ||
<scope>compile</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.glassfish.jersey.ext</groupId> | ||
<artifactId>jersey-spring5</artifactId> | ||
<version>${project.version}</version> | ||
<scope>compile</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.glassfish.jersey.test-framework</groupId> | ||
<artifactId>jersey-test-framework-core</artifactId> | ||
<scope>test</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.glassfish.jersey.containers</groupId> | ||
<artifactId>jersey-container-servlet</artifactId> | ||
<scope>runtime</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.glassfish.jersey.test-framework.providers</groupId> | ||
<artifactId>jersey-test-framework-provider-external</artifactId> | ||
<scope>test</scope> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>commons-logging</groupId> | ||
<artifactId>commons-logging</artifactId> | ||
<scope>runtime</scope> | ||
</dependency> | ||
</dependencies> | ||
|
||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
</plugin> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-failsafe-plugin</artifactId> | ||
</plugin> | ||
<plugin> | ||
<groupId>org.eclipse.jetty</groupId> | ||
<artifactId>jetty-maven-plugin</artifactId> | ||
<configuration> | ||
<webApp> | ||
<contextPath>/</contextPath> | ||
<webInfIncludeJarPattern>.*$</webInfIncludeJarPattern> | ||
</webApp> | ||
</configuration> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
|
||
<profiles> | ||
<profile> | ||
<id>delayed-strategy-skip-test</id> | ||
<activation> | ||
<property> | ||
<name>org.glassfish.jersey.injection.manager.strategy</name> | ||
<value>delayed</value> | ||
</property> | ||
</activation> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-failsafe-plugin</artifactId> | ||
<configuration> | ||
<skipTests>true</skipTests> | ||
</configuration> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</profile> | ||
</profiles> | ||
</project> |
164 changes: 164 additions & 0 deletions
164
.../spring5/src/main/java/org/glassfish/jersey/server/spring/test/AccountJerseyResource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
/* | ||
* Copyright (c) 2013, 2019 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.server.spring.test; | ||
|
||
import java.math.BigDecimal; | ||
|
||
import javax.ws.rs.Consumes; | ||
import javax.ws.rs.GET; | ||
import javax.ws.rs.PUT; | ||
import javax.ws.rs.Path; | ||
import javax.ws.rs.PathParam; | ||
import javax.ws.rs.core.MediaType; | ||
|
||
import javax.inject.Inject; | ||
import javax.inject.Named; | ||
import javax.servlet.http.HttpServletRequest; | ||
|
||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.beans.factory.annotation.Qualifier; | ||
|
||
/** | ||
* Jersey managed JAX-RS resource for testing jersey-spring. | ||
* | ||
* @author Marko Asplund (marko.asplund at yahoo.com) | ||
*/ | ||
@Path("/jersey/account") | ||
public class AccountJerseyResource { | ||
|
||
@Inject | ||
@Named("AccountService-singleton") | ||
private AccountService accountServiceInject; | ||
|
||
@Autowired | ||
@Qualifier("AccountService-singleton") | ||
private AccountService accountServiceAutowired; | ||
|
||
@Inject | ||
@Named("AccountService-request-1") | ||
private AccountService accountServiceRequest1; | ||
|
||
@Autowired | ||
@Qualifier("AccountService-request-1") | ||
private AccountService accountServiceRequest2; | ||
|
||
@Autowired | ||
@Qualifier("AccountService-prototype-1") | ||
private AccountService accountServicePrototype1; | ||
|
||
@Autowired | ||
@Qualifier("AccountService-prototype-1") | ||
private AccountService accountServicePrototype2; | ||
|
||
@Autowired | ||
private HttpServletRequest httpServletRequest; | ||
|
||
@Inject | ||
private HK2ServiceSingleton hk2Singleton; | ||
|
||
@Inject | ||
private HK2ServiceRequestScoped hk2RequestScoped; | ||
|
||
@Inject | ||
private HK2ServicePerLookup hk2PerLookup; | ||
|
||
private String message = "n/a"; | ||
|
||
// resource methods for testing resource class scope | ||
@GET | ||
@Path("message") | ||
public String getMessage() { | ||
return message; | ||
} | ||
|
||
@PUT | ||
@Path("message") | ||
@Consumes(MediaType.TEXT_PLAIN) | ||
public String setMessage(final String message) { | ||
this.message = message; | ||
return message; | ||
} | ||
|
||
// JERSEY-2506 FIX VERIFICATION | ||
@GET | ||
@Path("server") | ||
public String verifyServletRequestInjection() { | ||
return "PASSED: " + httpServletRequest.getServerName(); | ||
} | ||
|
||
@GET | ||
@Path("singleton/server") | ||
public String verifyServletRequestInjectionIntoSingleton() { | ||
return accountServiceInject.verifyServletRequestInjection(); | ||
} | ||
|
||
@GET | ||
@Path("singleton/autowired/server") | ||
public String verifyServletRequestInjectionIntoAutowiredSingleton() { | ||
return accountServiceAutowired.verifyServletRequestInjection(); | ||
} | ||
|
||
@GET | ||
@Path("request/server") | ||
public String verifyServletRequestInjectionIntoRequestScopedBean() { | ||
return accountServiceRequest1.verifyServletRequestInjection(); | ||
} | ||
|
||
@GET | ||
@Path("prototype/server") | ||
public String verifyServletRequestInjectionIntoPrototypeScopedBean() { | ||
return accountServicePrototype1.verifyServletRequestInjection(); | ||
} | ||
|
||
// resource methods for testing singleton scoped beans | ||
@GET | ||
@Path("singleton/inject/{accountId}") | ||
public BigDecimal getAccountBalanceSingletonInject(@PathParam("accountId") final String accountId) { | ||
return accountServiceInject.getAccountBalance(accountId); | ||
} | ||
|
||
@GET | ||
@Path("singleton/autowired/{accountId}") | ||
public BigDecimal getAccountBalanceSingletonAutowired(@PathParam("accountId") final String accountId) { | ||
return accountServiceAutowired.getAccountBalance(accountId); | ||
} | ||
|
||
@PUT | ||
@Path("singleton/{accountId}") | ||
@Consumes(MediaType.TEXT_PLAIN) | ||
public void setAccountBalanceSingleton(@PathParam("accountId") final String accountId, final String balance) { | ||
accountServiceInject.setAccountBalance(accountId, new BigDecimal(balance)); | ||
} | ||
|
||
// resource methods for testing request scoped beans | ||
@PUT | ||
@Path("request/{accountId}") | ||
@Consumes(MediaType.TEXT_PLAIN) | ||
public BigDecimal setAccountBalanceRequest(@PathParam("accountId") final String accountId, final String balance) { | ||
accountServiceRequest1.setAccountBalance(accountId, new BigDecimal(balance)); | ||
return accountServiceRequest2.getAccountBalance(accountId); | ||
} | ||
|
||
// resource methods for testing prototype scoped beans | ||
@PUT | ||
@Path("prototype/{accountId}") | ||
@Consumes(MediaType.TEXT_PLAIN) | ||
public BigDecimal setAccountBalancePrototype(@PathParam("accountId") final String accountId, final String balance) { | ||
accountServicePrototype1.setAccountBalance(accountId, new BigDecimal(balance)); | ||
return accountServicePrototype2.getAccountBalance(accountId); | ||
} | ||
} |
Oops, something went wrong.