diff --git a/circle.yml b/circle.yml index b747fe92..90f5f61f 100644 --- a/circle.yml +++ b/circle.yml @@ -1,22 +1,85 @@ version: 2 jobs: - build: + java_8_test_current: docker: - image: circleci/openjdk:8u141 steps: - checkout - run: - name: Test current version - command: ./mvnw -Pdistribute,snapshot,docs clean test + name: Java 8 - Test current version + command: ./mvnw -Pdistribute,snapshot clean test + + java_8_test_spring_next: + docker: + - image: circleci/openjdk:8u141 + steps: + - checkout - run: - name: Test Spring.NEXT + name: Java 8 - Test Spring.NEXT command: ./mvnw -Pspringnext clean test + + java_8_test_spring_buildsnapshot: + docker: + - image: circleci/openjdk:8u141 + steps: + - checkout - run: - name: Test Spring.NEXT snapshots + name: Java 8 - Test Spring.NEXT snapshots command: ./mvnw -Pspringnext-snapshot clean test + + java_11_test_current: + docker: + - image: circleci/openjdk:11-ea-27-jdk-sid + steps: + - checkout + - run: + name: Java 11 - Test current version + command: ./mvnw -Pdistribute,snapshot,java11 clean test + + java_11_test_spring_next: + docker: + - image: circleci/openjdk:11-ea-27-jdk-sid + steps: + - checkout + - run: + name: Java 11 - Test Spring.NEXT + command: ./mvnw -Pspringnext,java11 clean test + + java_11_test_spring_buildsnapshot: + docker: + - image: circleci/openjdk:11-ea-27-jdk-sid + steps: + - checkout + - run: + name: Java 11 - Test Spring.NEXT snapshots + command: ./mvnw -Pspringnext-snapshot,java11 clean test + + deploy: + docker: + - image: circleci/openjdk:8u141 + steps: + - checkout - run: name: Deploy to Artifactory command: ./deploy.bash +workflows: + version: 2 + build-and-deploy: + jobs: + - java_8_test_current + - java_11_test_current + - java_8_test_spring_next + - java_11_test_spring_next + - java_8_test_spring_buildsnapshot + - java_11_test_spring_buildsnapshot + - deploy: + requires: + - java_8_test_current + - java_11_test_current + - java_8_test_spring_next + - java_11_test_spring_next + - java_8_test_spring_buildsnapshot + - java_11_test_spring_buildsnapshot general: branches: diff --git a/pom.xml b/pom.xml index cec39c57..8299521b 100644 --- a/pom.xml +++ b/pom.xml @@ -105,8 +105,10 @@ 1.6 1.3.28 4.1.9 + 1.3.8 4.2.9.RELEASE 4.0.4.RELEASE + 1.7.8 1.5.4 4.2.0 1.6.3 @@ -583,6 +585,64 @@ + + java11 + + + + com.sun.xml.ws + jaxws-ri + 2.3.0 + pom + + + org.codehaus.woodstox + woodstox-core-asl + + + org.jvnet.staxex + stax-ex + + + com.sun.xml.messaging.saaj + saaj-impl + + + + + + org.jvnet.staxex + stax-ex + ${stax.version} + + + + com.sun.xml.messaging.saaj + saaj-impl + ${saaj-impl.version} + + + javax.xml.soap + javax.xml.soap-api + + + + + + javax.xml.soap + javax.xml.soap-api + ${soap-api.version} + + + + javax.xml.ws + jaxws-api + 2.3.0 + + + + + diff --git a/spring-ws-core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java b/spring-ws-core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java index c98ad956..03bf32b9 100644 --- a/spring-ws-core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java +++ b/spring-ws-core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java @@ -18,7 +18,7 @@ package org.springframework.ws.soap.saaj; import java.util.Iterator; import javax.xml.namespace.QName; -import javax.xml.soap.SOAPElement; +import javax.xml.soap.Node; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPHeaderElement; @@ -52,7 +52,7 @@ abstract class SaajSoapHeader extends SaajSoapElement implements Soa @Override @SuppressWarnings("unchecked") public Iterator examineHeaderElements(QName name) throws SoapHeaderException { - Iterator iterator = getSaajHeader().getChildElements(name); + Iterator iterator = getSaajHeader().getChildElements(name); return new SaajSoapHeaderElementIterator(iterator); } @@ -78,9 +78,9 @@ abstract class SaajSoapHeader extends SaajSoapElement implements Soa @SuppressWarnings("unchecked") @Override public void removeHeaderElement(QName name) throws SoapHeaderException { - Iterator iterator = getSaajHeader().getChildElements(name); + Iterator iterator = getSaajHeader().getChildElements(name); if (iterator.hasNext()) { - SOAPElement element = iterator.next(); + Node element = iterator.next(); element.detachNode(); } } @@ -96,9 +96,9 @@ abstract class SaajSoapHeader extends SaajSoapElement implements Soa protected static class SaajSoapHeaderElementIterator implements Iterator { - private final Iterator iterator; + private final Iterator iterator; - protected SaajSoapHeaderElementIterator(Iterator iterator) { + protected SaajSoapHeaderElementIterator(Iterator iterator) { Assert.notNull(iterator, "iterator must not be null"); this.iterator = iterator; } @@ -110,8 +110,12 @@ abstract class SaajSoapHeader extends SaajSoapElement implements Soa @Override public SoapHeaderElement next() { - SOAPHeaderElement saajHeaderElement = iterator.next(); - return new SaajSoapHeaderElement(saajHeaderElement); + Node saajHeaderElement = iterator.next(); + if (saajHeaderElement instanceof SOAPHeaderElement) { + return new SaajSoapHeaderElement((SOAPHeaderElement) saajHeaderElement); + } else { + throw new RuntimeException("saajHeaderElement is not an instance of SOAPHeaderElement"); + } } @Override