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
public void path() {
if (StringUtils.hasLength(this.jersey.getPath())) {
this.path = parsePath(this.jersey.getPath());
if (StringUtils.hasLength(this.jersey.getApplicationPath())) {
this.path = parseApplicationPath(this.jersey.getApplicationPath());
}
else {
this.path = findPath(AnnotationUtils.findAnnotation(this.config.getClass(),
this.path = findApplicationPath(AnnotationUtils.findAnnotation(this.config.getClass(),
ApplicationPath.class));
}
}
@ -145,17 +145,15 @@ public class JerseyAutoConfiguration implements WebApplicationInitializer {
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
if (annotation == null) {
return "/*";
}
String path = annotation.value();
return parsePath(path);
return parseApplicationPath(annotation.value());
}
private static String parsePath(String applicationPath) {
private static String parseApplicationPath(String applicationPath) {
if (!applicationPath.startsWith("/")) {
applicationPath = "/" + applicationPath;
}

View File

@ -44,9 +44,10 @@ public class JerseyProperties {
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() {
return this.filter;
@ -72,12 +73,12 @@ public class JerseyProperties {
this.init = init;
}
public String getPath() {
return this.path;
public String getApplicationPath() {
return this.applicationPath;
}
public void setPath(String path) {
this.path = path;
public void setApplicationPath(String applicationPath) {
this.applicationPath = applicationPath;
}
public enum Type {

View File

@ -28,6 +28,7 @@ import javax.ws.rs.Path;
import org.glassfish.jersey.server.ResourceConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
@ -53,7 +54,7 @@ import static org.junit.Assert.assertEquals;
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
@IntegrationTest({ "server.port=0", "spring.jersey.path=/rest" })
@IntegrationTest({ "server.port=0", "spring.jersey.application-path=/api" })
@WebAppConfiguration
public class JerseyAutoConfigurationWithoutApplicationPathTests {
@ -65,7 +66,7 @@ public class JerseyAutoConfigurationWithoutApplicationPathTests {
@Test
public void contextLoads() {
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());
}

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
# 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.init= # init params
spring.jersey.filter.order=