SWS-967 Add other build profiles

* Make it possible to run the build with different dependencies and different version of JDK
* Fix JUnit to make it forward compatible
* Fix other things that are deprecated in Spring 4.3 and removed in Spring 5
This commit is contained in:
Greg Turnquist
2016-08-26 16:14:24 -05:00
parent 00e61b7393
commit 15c0213373
8 changed files with 105 additions and 8 deletions

View File

@@ -50,14 +50,14 @@ configure(allprojects) {
}
repositories {
maven { url 'http://repo.spring.io/libs-release' }
maven { url 'https://repo.spring.io/libs-release' }
}
dependencies {
compile("commons-logging:commons-logging:1.1.3")
compile("org.springframework:spring-core:$springVersion")
testCompile("junit:junit:4.10")
testCompile("junit:junit:4.12")
testCompile("org.easymock:easymock:3.1")
testCompile("xmlunit:xmlunit:1.5")
testCompile("com.sun.mail:javax.mail:1.5.4")
@@ -84,7 +84,15 @@ configure(subprojects) { subproject ->
apply plugin: "propdeps-maven"
apply from: "${rootProject.projectDir}/publish-maven.gradle"
if (project.hasProperty('platformVersion')) {
/**
* To run an alternate profile...
* ./gradlew -Pprofile=spring4-next clean build
* ./gradlew -Pprofile=spring5 clean build
*/
if (project.hasProperty('profile')) {
apply from: "${project.rootDir}/${profile}-profile.gradle"
println "+++ Configuring ${subproject.name} for Spring Framework ${springVersion}"
} else if (project.hasProperty('platformVersion')) {
apply plugin: 'spring-io'
repositories {

View File

@@ -0,0 +1,68 @@
/*
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.ws.support;
/**
* Miscellaneous utilities for web applications. Used by various framework classes.
*
* NOTE: These are the parts of org.springframework.web.util.WebUtils deprecated in Spring Framework 5.
*
* @author Greg Turnquist
* @author Rod Johnson
* @author Juergen Hoeller
* @author Sebastien Deleuze
* @since 2.4.0
*/
public abstract class WebUtils {
/**
* Extract the URL filename from the given request URL path.
* Correctly resolves nested paths such as "/products/view.html" as well.
* @param urlPath the request URL path (e.g. "/index.html")
* @return the extracted URI filename (e.g. "index")
*/
public static String extractFilenameFromUrlPath(String urlPath) {
String filename = extractFullFilenameFromUrlPath(urlPath);
int dotIndex = filename.lastIndexOf('.');
if (dotIndex != -1) {
filename = filename.substring(0, dotIndex);
}
return filename;
}
/**
* Extract the full URL filename (including file extension) from the given
* request URL path. Correctly resolve nested paths such as
* "/products/view.html" and remove any path and or query parameters.
* @param urlPath the request URL path (e.g. "/products/index.html")
* @return the extracted URI filename (e.g. "index.html")
*/
public static String extractFullFilenameFromUrlPath(String urlPath) {
int end = urlPath.indexOf('?');
if (end == -1) {
end = urlPath.indexOf('#');
if (end == -1) {
end = urlPath.length();
}
}
int begin = urlPath.lastIndexOf('/', end) + 1;
int paramIndex = urlPath.indexOf(';', begin);
end = (paramIndex != -1 && paramIndex < end ? paramIndex : end);
return urlPath.substring(begin, end);
}
}

View File

@@ -28,7 +28,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.FrameworkServlet;
import org.springframework.web.util.WebUtils;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.server.EndpointAdapter;
import org.springframework.ws.server.EndpointExceptionResolver;
@@ -36,6 +35,7 @@ import org.springframework.ws.server.EndpointMapping;
import org.springframework.ws.server.MessageDispatcher;
import org.springframework.ws.support.DefaultStrategiesHelper;
import org.springframework.ws.transport.WebServiceMessageReceiver;
import org.springframework.ws.support.WebUtils;
import org.springframework.ws.wsdl.WsdlDefinition;
import org.springframework.xml.xsd.XsdSchema;

View File

@@ -17,14 +17,14 @@
package org.springframework.ws.transport.http;
import static org.hamcrest.core.IsEqual.*;
import static org.springframework.test.util.MatcherAssertionErrors.*;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

View File

@@ -18,7 +18,7 @@
</bean>
</sws:payloadRoot>
<sws:soapAction value="mySoapAction">
<ref local="externalSoapActionInterceptor"/>
<ref bean="externalSoapActionInterceptor"/>
<bean class="org.springframework.ws.config.MyInterceptor">
<property name="order" value="5"/>
</bean>

View File

@@ -15,7 +15,7 @@
</sws:payloadRoot>
<sws:soapAction value="mySoapAction">
<bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
<ref local="externalSoapActionInterceptor"/>
<ref bean="externalSoapActionInterceptor"/>
<bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
</sws:soapAction>
</sws:interceptors>

View File

@@ -0,0 +1,6 @@
/**
* Enable with "-Pprofile=spring4-next"
*/
ext.springVersion = "4.3.2.RELEASE"
ext.springSecurityVersion = "4.1.3.RELEASE"

15
spring5-profile.gradle Normal file
View File

@@ -0,0 +1,15 @@
/**
* Enable with "-Pprofile=spring5"
*/
ext.springVersion = "5.0.0.BUILD-SNAPSHOT"
ext.springSecurityVersion = "4.2.0.BUILD-SNAPSHOT"
compileJava {
sourceCompatibility=1.8
targetCompatibility=1.8
}
repositories {
maven { url 'https://repo.spring.io/libs-snapshot' }
}