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 extends Node> iterator;
- protected SaajSoapHeaderElementIterator(Iterator iterator) {
+ protected SaajSoapHeaderElementIterator(Iterator extends Node> 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