SWS-921 Use varargs for XSD schemas

XML schema validation accepting multiple schemas currently uses arrays
of Resource objects. They would be a bit easier and more succinct to
use if the setters were switched to varargs. Such a change would be
backwards compatible.

This change includes:

 * change AbstractValidatingInterceptor#setSchemas to use varargs
 * change the CommonsXsdSchemaCollection constructor to use varargs
 * change CommonsXsdSchemaCollection.setXsds to use varargs
 * update the tests to use varargs

Issue: SWS-921
https://jira.spring.io/browse/SWS-921
This commit is contained in:
Philippe Marschall
2015-10-16 08:28:30 +02:00
committed by Greg Turnquist
parent 35f3fb9102
commit 3c7a6b9911
8 changed files with 32 additions and 33 deletions

View File

@@ -87,7 +87,7 @@ public abstract class AbstractValidatingInterceptor extends TransformerObjectSup
* #setSchemas(Resource[]) schemas} is required.
*/
public void setSchema(Resource schema) {
setSchemas(new Resource[]{schema});
setSchemas(schema);
}
/**
@@ -95,7 +95,7 @@ public abstract class AbstractValidatingInterceptor extends TransformerObjectSup
* #setXsdSchemaCollection(XsdSchemaCollection) xsdSchemaCollection}, {@link #setSchema(Resource) schema}, or {@link
* #setSchemas(Resource[]) schemas} is required.
*/
public void setSchemas(Resource[] schemas) {
public void setSchemas(Resource... schemas) {
Assert.notEmpty(schemas, "schemas must not be empty or null");
for (Resource schema : schemas) {
Assert.notNull(schema, "schema must not be null");

View File

@@ -93,7 +93,7 @@ public abstract class AbstractValidatingInterceptor extends TransformerObjectSup
* #setSchemas(Resource[]) schemas} is required.
*/
public void setSchema(Resource schema) {
setSchemas(new Resource[]{schema});
setSchemas(schema);
}
/**
@@ -101,7 +101,7 @@ public abstract class AbstractValidatingInterceptor extends TransformerObjectSup
* #setXsdSchemaCollection(XsdSchemaCollection) xsdSchemaCollection}, {@link #setSchema(Resource) schema}, or {@link
* #setSchemas(Resource[]) schemas} is required.
*/
public void setSchemas(Resource[] schemas) {
public void setSchemas(Resource... schemas) {
Assert.notEmpty(schemas, "schemas must not be empty or null");
for (Resource schema : schemas) {
Assert.notNull(schema, "schema must not be null");

View File

@@ -30,7 +30,6 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.ws.MockWebServiceMessage;
import org.springframework.ws.MockWebServiceMessageFactory;
import org.springframework.ws.client.WebServiceClientException;
@@ -188,8 +187,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandlerInvalidRequestMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage(new ClassPathResource(INVALID_MESSAGE, getClass()));
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -207,8 +206,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleValidRequestMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage(new ClassPathResource(VALID_MESSAGE, getClass()));
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -220,8 +219,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleInvalidResponseMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage();
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -233,8 +232,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleValidResponseMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage();
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());

View File

@@ -242,8 +242,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandlerInvalidRequestMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage(new ClassPathResource(INVALID_MESSAGE, getClass()));
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -253,8 +253,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleValidRequestMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage(new ClassPathResource(VALID_MESSAGE, getClass()));
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -266,8 +266,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleInvalidResponseMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage();
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
@@ -279,8 +279,8 @@ public class PayloadValidatingInterceptorTest {
@Test
public void testHandleValidResponseMultipleSchemas() throws Exception {
interceptor.setSchemas(new Resource[]{new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass())});
interceptor.setSchemas(new ClassPathResource(PRODUCT_SCHEMA, getClass()),
new ClassPathResource(SIZE_SCHEMA, getClass()));
interceptor.afterPropertiesSet();
MockWebServiceMessage request = new MockWebServiceMessage();
context = new DefaultMessageContext(request, new MockWebServiceMessageFactory());

View File

@@ -79,7 +79,7 @@ public class DefaultWsdl11DefinitionTest {
@Test
public void testInclude() throws Exception {
ClassPathResource resource = new ClassPathResource("including.xsd", getClass());
CommonsXsdSchemaCollection schemaCollection = new CommonsXsdSchemaCollection(new Resource[]{resource});
CommonsXsdSchemaCollection schemaCollection = new CommonsXsdSchemaCollection(resource);
schemaCollection.setInline(true);
schemaCollection.afterPropertiesSet();
definition.setSchemaCollection(schemaCollection);
@@ -100,7 +100,7 @@ public class DefaultWsdl11DefinitionTest {
@Test
public void testImport() throws Exception {
ClassPathResource resource = new ClassPathResource("importing.xsd", getClass());
CommonsXsdSchemaCollection schemaCollection = new CommonsXsdSchemaCollection(new Resource[]{resource});
CommonsXsdSchemaCollection schemaCollection = new CommonsXsdSchemaCollection(resource);
schemaCollection.setInline(true);
schemaCollection.afterPropertiesSet();
definition.setSchemaCollection(schemaCollection);

View File

@@ -76,7 +76,7 @@ public class InliningXsdSchemaTypesProviderTest {
definition.addNamespace("schema", schemaNamespace);
Resource resource = new ClassPathResource("A.xsd", getClass());
CommonsXsdSchemaCollection collection = new CommonsXsdSchemaCollection(new Resource[]{resource});
CommonsXsdSchemaCollection collection = new CommonsXsdSchemaCollection(resource);
collection.setInline(true);
collection.afterPropertiesSet();

View File

@@ -87,7 +87,7 @@ public class CommonsXsdSchemaCollection implements XsdSchemaCollection, Initiali
*
* @param resources the schema resources to load
*/
public CommonsXsdSchemaCollection(Resource[] resources) {
public CommonsXsdSchemaCollection(Resource... resources) {
this.xsdResources = resources;
}
@@ -96,7 +96,7 @@ public class CommonsXsdSchemaCollection implements XsdSchemaCollection, Initiali
*
* @param xsdResources the schema resources to be loaded
*/
public void setXsds(Resource[] xsdResources) {
public void setXsds(Resource... xsdResources) {
this.xsdResources = xsdResources;
}

View File

@@ -59,7 +59,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testSingle() throws Exception {
Resource resource = new ClassPathResource("single.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{resource});
collection.setXsds(resource);
collection.afterPropertiesSet();
Assert.assertEquals("Invalid amount of XSDs loaded", 1, collection.getXsdSchemas().length);
}
@@ -67,7 +67,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testInlineComplex() throws Exception {
Resource a = new ClassPathResource("A.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{a});
collection.setXsds(a);
collection.setInline(true);
collection.afterPropertiesSet();
XsdSchema[] schemas = collection.getXsdSchemas();
@@ -91,7 +91,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testCircular() throws Exception {
Resource resource = new ClassPathResource("circular-1.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{resource});
collection.setXsds(resource);
collection.setInline(true);
collection.afterPropertiesSet();
XsdSchema[] schemas = collection.getXsdSchemas();
@@ -101,7 +101,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testXmlNamespace() throws Exception {
Resource resource = new ClassPathResource("xmlNamespace.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{resource});
collection.setXsds(resource);
collection.setInline(true);
collection.afterPropertiesSet();
XsdSchema[] schemas = collection.getXsdSchemas();
@@ -111,7 +111,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testCreateValidator() throws Exception {
Resource a = new ClassPathResource("A.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{a});
collection.setXsds(a);
collection.setInline(true);
collection.afterPropertiesSet();
@@ -122,7 +122,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testInvalidSchema() throws Exception {
Resource invalid = new ClassPathResource("invalid.xsd", AbstractXsdSchemaTestCase.class);
collection.setXsds(new Resource[]{invalid});
collection.setXsds(invalid);
try {
collection.afterPropertiesSet();
Assert.fail("CommonsXsdSchemaException expected");
@@ -135,7 +135,7 @@ public class CommonsXsdSchemaCollectionTest {
@Test
public void testIncludesAndImports() throws Exception {
Resource hr = new ClassPathResource("hr.xsd", getClass());
collection.setXsds(new Resource[]{hr});
collection.setXsds(hr);
collection.setInline(true);
collection.afterPropertiesSet();