Polish contribution

Closes gh-4202
This commit is contained in:
Stephane Nicoll 2015-10-20 11:35:35 +02:00
parent 396cf76ef5
commit bc0eb996ff
4 changed files with 17 additions and 16 deletions

View File

@ -79,11 +79,11 @@ public class JerseyAutoConfiguration implements WebApplicationInitializer {
@PostConstruct @PostConstruct
public void path() { public void path() {
if (StringUtils.hasLength(this.jersey.getPath())) { if (StringUtils.hasLength(this.jersey.getApplicationPath())) {
this.path = parsePath(this.jersey.getPath()); this.path = parseApplicationPath(this.jersey.getApplicationPath());
} }
else { else {
this.path = findPath(AnnotationUtils.findAnnotation(this.config.getClass(), this.path = findApplicationPath(AnnotationUtils.findAnnotation(this.config.getClass(),
ApplicationPath.class)); ApplicationPath.class));
} }
} }
@ -145,17 +145,15 @@ public class JerseyAutoConfiguration implements WebApplicationInitializer {
servletContext.setInitParameter("contextConfigLocation", "<NONE>"); servletContext.setInitParameter("contextConfigLocation", "<NONE>");
} }
private static String findPath(ApplicationPath annotation) { private static String findApplicationPath(ApplicationPath annotation) {
// Jersey doesn't like to be the default servlet, so map to /* as a fallback // Jersey doesn't like to be the default servlet, so map to /* as a fallback
if (annotation == null) { if (annotation == null) {
return "/*"; return "/*";
} }
String path = annotation.value(); return parseApplicationPath(annotation.value());
return parsePath(path);
} }
private static String parsePath(String applicationPath) { private static String parseApplicationPath(String applicationPath) {
if (!applicationPath.startsWith("/")) { if (!applicationPath.startsWith("/")) {
applicationPath = "/" + applicationPath; applicationPath = "/" + applicationPath;
} }

View File

@ -44,9 +44,10 @@ public class JerseyProperties {
private Filter filter = new Filter(); private Filter filter = new Filter();
/** /**
* Path at which the application will be available. * Path that serves as the base URI for the application. Overrides
* the value of "@ApplicationPath" if specified.
*/ */
private String path; private String applicationPath;
public Filter getFilter() { public Filter getFilter() {
return this.filter; return this.filter;
@ -72,12 +73,12 @@ public class JerseyProperties {
this.init = init; this.init = init;
} }
public String getPath() { public String getApplicationPath() {
return this.path; return this.applicationPath;
} }
public void setPath(String path) { public void setApplicationPath(String applicationPath) {
this.path = path; this.applicationPath = applicationPath;
} }
public enum Type { public enum Type {

View File

@ -28,6 +28,7 @@ import javax.ws.rs.Path;
import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.server.ResourceConfig;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
@ -53,7 +54,7 @@ import static org.junit.Assert.assertEquals;
*/ */
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class) @SpringApplicationConfiguration(Application.class)
@IntegrationTest({ "server.port=0", "spring.jersey.path=/rest" }) @IntegrationTest({ "server.port=0", "spring.jersey.application-path=/api" })
@WebAppConfiguration @WebAppConfiguration
public class JerseyAutoConfigurationWithoutApplicationPathTests { public class JerseyAutoConfigurationWithoutApplicationPathTests {
@ -65,7 +66,7 @@ public class JerseyAutoConfigurationWithoutApplicationPathTests {
@Test @Test
public void contextLoads() { public void contextLoads() {
ResponseEntity<String> entity = this.restTemplate.getForEntity( ResponseEntity<String> entity = this.restTemplate.getForEntity(
"http://localhost:" + this.port + "/rest/hello", String.class); "http://localhost:" + this.port + "/api/hello", String.class);
assertEquals(HttpStatus.OK, entity.getStatusCode()); assertEquals(HttpStatus.OK, entity.getStatusCode());
} }

View File

@ -282,6 +282,7 @@ content into your application; rather pick only the properties that you need.
spring.mustache.view-names= # whitelist of view names that can be resolved spring.mustache.view-names= # whitelist of view names that can be resolved
# JERSEY ({sc-spring-boot-autoconfigure}}/jersey/JerseyProperties.{sc-ext}[JerseyProperties]) # JERSEY ({sc-spring-boot-autoconfigure}}/jersey/JerseyProperties.{sc-ext}[JerseyProperties])
spring.jersey.application-path # path that serves as the base URI for the application
spring.jersey.type=servlet # servlet or filter spring.jersey.type=servlet # servlet or filter
spring.jersey.init= # init params spring.jersey.init= # init params
spring.jersey.filter.order= spring.jersey.filter.order=