INT-3461: Add rometools Dependency for SF 4.1
JIRA: https://jira.spring.io/browse/INT-3461 To test it: `gradlew :spring-integration-http:testAll -PspringVersion=4.1.0.BUILD-SNAPSHOT` INT-3461: Add CP condition for `rometools` into the `HttpRequestHandlingEndpointSupport` INT-3461: Add CLASSPATH check for `RequestEntity` to determine the SF 4.1
This commit is contained in:
committed by
Gary Russell
parent
db8b164425
commit
7b264e83f4
@@ -102,6 +102,7 @@ subprojects { subproject ->
|
||||
pahoMqttClientVersion = '0.4.0'
|
||||
postgresVersion = '9.1-901-1.jdbc4'
|
||||
reactorVersion = '1.1.2.RELEASE'
|
||||
romeToolsVersion = '1.5.0'
|
||||
romeVersion = '1.0.0'
|
||||
saajApiVersion = '1.3.5'
|
||||
saajImplVersion = '1.3.23'
|
||||
@@ -340,6 +341,8 @@ project('spring-integration-http') {
|
||||
exclude group: 'junit', module: 'junit'
|
||||
}
|
||||
|
||||
compile("com.rometools:rome:$romeToolsVersion", optional) //For spring-web-4.1
|
||||
|
||||
compile("javax.servlet:javax.servlet-api:$servletApiVersion", provided)
|
||||
|
||||
testCompile "commons-httpclient:commons-httpclient:$httpClientVersion"
|
||||
|
||||
@@ -110,11 +110,17 @@ import org.springframework.web.servlet.HandlerMapping;
|
||||
public abstract class HttpRequestHandlingEndpointSupport extends MessagingGatewaySupport
|
||||
implements OrderlyShutdownCapable {
|
||||
|
||||
private static final boolean spring41Present = ClassUtils.isPresent("org.springframework.http.RequestEntity",
|
||||
HttpRequestHandlingEndpointSupport.class.getClassLoader());
|
||||
|
||||
private static final boolean jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder",
|
||||
HttpRequestHandlingEndpointSupport.class.getClassLoader());
|
||||
|
||||
private static boolean romePresent = ClassUtils.isPresent("com.sun.syndication.feed.WireFeed",
|
||||
HttpRequestHandlingEndpointSupport.class.getClassLoader());
|
||||
private static boolean romePresent = ClassUtils.isPresent("com.sun.syndication.feed.atom.Feed",
|
||||
HttpRequestHandlingEndpointSupport.class.getClassLoader());
|
||||
|
||||
private static boolean romeToolsPresent = ClassUtils.isPresent("com.rometools.rome.feed.atom.Feed",
|
||||
HttpRequestHandlingEndpointSupport.class.getClassLoader());
|
||||
|
||||
private static final List<HttpMethod> nonReadableBodyHttpMethods =
|
||||
Arrays.asList(HttpMethod.GET, HttpMethod.HEAD, HttpMethod.OPTIONS);
|
||||
@@ -173,7 +179,9 @@ public abstract class HttpRequestHandlingEndpointSupport extends MessagingGatewa
|
||||
logger.debug("'MappingJackson2HttpMessageConverter' was added to the 'defaultMessageConverters'.");
|
||||
}
|
||||
}
|
||||
if (romePresent) {
|
||||
//The 'rometools' has been introduced since Spring Framework 4.1, hence we should check the version
|
||||
// of Spring Framework using the class 'org.springframework.http.RequestEntity' from that version.
|
||||
if ((spring41Present && romeToolsPresent) || romePresent) {
|
||||
this.defaultMessageConverters.add(new AtomFeedHttpMessageConverter());
|
||||
this.defaultMessageConverters.add(new RssChannelHttpMessageConverter());
|
||||
if (logger.isDebugEnabled()) {
|
||||
|
||||
Reference in New Issue
Block a user