Author: heiko.braun(a)jboss.com
Date: 2007-01-18 10:42:20 -0500 (Thu, 18 Jan 2007)
New Revision: 1997
Added:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonManagementEndpoint.java
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonRegistrationEndpoint.java
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonTestCase.java
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonUtil.java
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/jboss-web.xml
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/web.xml
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/sysmon.wsdl
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-addr.xsd
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.xsd
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/common/EventingEndpointBase.java
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/AttributedURIType.java
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/EndpointReferenceType.java
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/ReferenceParametersType.java
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java
trunk/jbossws-tests/ant-import/build-jars-jaxrpc.xml
trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/samples/wseventing/SysmonUtil.java
Log:
migrate eventing samples to jaxws
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/common/EventingEndpointBase.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/common/EventingEndpointBase.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/common/EventingEndpointBase.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -86,6 +86,8 @@
{
if (null == inProps)
throw new SOAPFaultException(Constants.SOAP11_FAULT_CODE_CLIENT,
"Addressing headers missing from request", "wse:InvalidMessage",
null);
+ if(null == inProps.getTo())
+ throw new SOAPFaultException(Constants.SOAP11_FAULT_CODE_CLIENT, "Event
source URI missing from request (wsa:To)", "wse:InvalidMessage", null);
}
public QName buildFaultQName(String elementName)
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/AttributedURIType.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/AttributedURIType.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/AttributedURIType.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -97,4 +97,7 @@
return otherAttributes;
}
+ public String toString() {
+ return this.getValue();
+ }
}
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/EndpointReferenceType.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/EndpointReferenceType.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/EndpointReferenceType.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -55,142 +55,146 @@
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EndpointReferenceType", namespace =
"http://www.w3.org/2005/08/addressing", propOrder = {
- "address",
- "referenceParameters",
- "metadata",
- "any"
-})
+ "address",
+ "referenceParameters",
+ "metadata",
+ "any"
+ })
public class EndpointReferenceType {
- @XmlElement(name = "Address", namespace =
"http://www.w3.org/2005/08/addressing")
- protected AttributedURIType address;
- @XmlElement(name = "ReferenceParameters", namespace =
"http://www.w3.org/2005/08/addressing")
- protected ReferenceParametersType referenceParameters;
- @XmlElement(name = "Metadata", namespace =
"http://www.w3.org/2005/08/addressing")
- protected MetadataType metadata;
- @XmlAnyElement(lax = true)
- protected List<Object> any;
- @XmlAnyAttribute
- private Map<QName, String> otherAttributes = new HashMap<QName,
String>();
+ @XmlElement(name = "Address", namespace =
"http://www.w3.org/2005/08/addressing")
+ protected AttributedURIType address;
+ @XmlElement(name = "ReferenceParameters", namespace =
"http://www.w3.org/2005/08/addressing")
+ protected ReferenceParametersType referenceParameters;
+ @XmlElement(name = "Metadata", namespace =
"http://www.w3.org/2005/08/addressing")
+ protected MetadataType metadata;
+ @XmlAnyElement(lax = true)
+ protected List<Object> any;
+ @XmlAnyAttribute
+ private Map<QName, String> otherAttributes = new HashMap<QName,
String>();
- /**
- * Gets the value of the address property.
- *
- * @return
- * possible object is
- * {@link AttributedURIType }
- *
- */
- public AttributedURIType getAddress() {
- return address;
- }
+ /**
+ * Gets the value of the address property.
+ *
+ * @return
+ * possible object is
+ * {@link AttributedURIType }
+ *
+ */
+ public AttributedURIType getAddress() {
+ return address;
+ }
- /**
- * Sets the value of the address property.
- *
- * @param value
- * allowed object is
- * {@link AttributedURIType }
- *
- */
- public void setAddress(AttributedURIType value) {
- this.address = value;
- }
+ /**
+ * Sets the value of the address property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttributedURIType }
+ *
+ */
+ public void setAddress(AttributedURIType value) {
+ this.address = value;
+ }
- /**
- * Gets the value of the referenceParameters property.
- *
- * @return
- * possible object is
- * {@link ReferenceParametersType }
- *
- */
- public ReferenceParametersType getReferenceParameters() {
- return referenceParameters;
- }
+ /**
+ * Gets the value of the referenceParameters property.
+ *
+ * @return
+ * possible object is
+ * {@link ReferenceParametersType }
+ *
+ */
+ public ReferenceParametersType getReferenceParameters() {
+ return referenceParameters;
+ }
- /**
- * Sets the value of the referenceParameters property.
- *
- * @param value
- * allowed object is
- * {@link ReferenceParametersType }
- *
- */
- public void setReferenceParameters(ReferenceParametersType value) {
- this.referenceParameters = value;
- }
+ /**
+ * Sets the value of the referenceParameters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ReferenceParametersType }
+ *
+ */
+ public void setReferenceParameters(ReferenceParametersType value) {
+ this.referenceParameters = value;
+ }
- /**
- * Gets the value of the metadata property.
- *
- * @return
- * possible object is
- * {@link MetadataType }
- *
- */
- public MetadataType getMetadata() {
- return metadata;
- }
+ /**
+ * Gets the value of the metadata property.
+ *
+ * @return
+ * possible object is
+ * {@link MetadataType }
+ *
+ */
+ public MetadataType getMetadata() {
+ return metadata;
+ }
- /**
- * Sets the value of the metadata property.
- *
- * @param value
- * allowed object is
- * {@link MetadataType }
- *
- */
- public void setMetadata(MetadataType value) {
- this.metadata = value;
- }
+ /**
+ * Sets the value of the metadata property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MetadataType }
+ *
+ */
+ public void setMetadata(MetadataType value) {
+ this.metadata = value;
+ }
- /**
- * Gets the value of the any property.
- *
- * <p>
- * This accessor method returns a reference to the live list,
- * not a snapshot. Therefore any modification you make to the
- * returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the any
property.
- *
- * <p>
- * For example, to add a new item, do as follows:
- * <pre>
- * getAny().add(newItem);
- * </pre>
- *
- *
- * <p>
- * Objects of the following type(s) are allowed in the list
- * {@link Element }
- * {@link Object }
- *
- *
- */
- public List<Object> getAny() {
- if (any == null) {
- any = new ArrayList<Object>();
- }
- return this.any;
- }
+ /**
+ * Gets the value of the any property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the any
property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAny() {
+ if (any == null) {
+ any = new ArrayList<Object>();
+ }
+ return this.any;
+ }
- /**
- * Gets a map that contains attributes that aren't bound to any typed property on
this class.
- *
- * <p>
- * the map is keyed by the name of the attribute and
- * the value is the string value of the attribute.
- *
- * the map returned by this method is live, and you can add new attribute
- * by updating the map directly. Because of this design, there's no setter.
- *
- *
- * @return
- * always non-null
- */
- public Map<QName, String> getOtherAttributes() {
- return otherAttributes;
- }
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on
this class.
+ *
+ * <p>
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map<QName, String> getOtherAttributes() {
+ return otherAttributes;
+ }
+ public String toString() {
+ return "EPR {address="+this.getAddress()+",
refParam="+this.getReferenceParameters()+"}";
+ }
+
}
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/ReferenceParametersType.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/ReferenceParametersType.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/jaxws/ReferenceParametersType.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -72,61 +72,64 @@
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReferenceParametersType", namespace =
"http://www.w3.org/2005/08/addressing", propOrder = {
- "any"
-})
+ "any"
+ })
public class ReferenceParametersType {
- @XmlAnyElement(lax = true)
- protected List<Object> any;
- @XmlAnyAttribute
- private Map<QName, String> otherAttributes = new HashMap<QName,
String>();
+ @XmlAnyElement(lax = true)
+ protected List<Object> any;
+ @XmlAnyAttribute
+ private Map<QName, String> otherAttributes = new HashMap<QName,
String>();
- /**
- * Gets the value of the any property.
- *
- * <p>
- * This accessor method returns a reference to the live list,
- * not a snapshot. Therefore any modification you make to the
- * returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the any
property.
- *
- * <p>
- * For example, to add a new item, do as follows:
- * <pre>
- * getAny().add(newItem);
- * </pre>
- *
- *
- * <p>
- * Objects of the following type(s) are allowed in the list
- * {@link Element }
- * {@link Object }
- *
- *
- */
- public List<Object> getAny() {
- if (any == null) {
- any = new ArrayList<Object>();
- }
- return this.any;
- }
+ /**
+ * Gets the value of the any property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the any
property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAny() {
+ if (any == null) {
+ any = new ArrayList<Object>();
+ }
+ return this.any;
+ }
- /**
- * Gets a map that contains attributes that aren't bound to any typed property on
this class.
- *
- * <p>
- * the map is keyed by the name of the attribute and
- * the value is the string value of the attribute.
- *
- * the map returned by this method is live, and you can add new attribute
- * by updating the map directly. Because of this design, there's no setter.
- *
- *
- * @return
- * always non-null
- */
- public Map<QName, String> getOtherAttributes() {
- return otherAttributes;
- }
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on
this class.
+ *
+ * <p>
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map<QName, String> getOtherAttributes() {
+ return otherAttributes;
+ }
+ public String toString() {
+ return this.getAny().toString();
+ }
}
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -177,7 +177,7 @@
}
catch (Exception e)
{
- log.warn("Failed to send subscription end message", e);
+ log.warn("Failed to send subscription end message to: " + this.endTo,
e);
}
}
Modified: trunk/jbossws-tests/ant-import/build-jars-jaxrpc.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-jars-jaxrpc.xml 2007-01-18 13:59:21 UTC (rev
1996)
+++ trunk/jbossws-tests/ant-import/build-jars-jaxrpc.xml 2007-01-18 15:42:20 UTC (rev
1997)
@@ -1552,35 +1552,7 @@
<include name="wsdl/**"/>
</metainf>
</jar>
-
- <!-- jaxrpc-samples-wseventing.war -->
- <war warfile="${tests.output.dir}/libs/jaxrpc-samples-wseventing.war"
webxml="${tests.output.dir}/resources/jaxrpc/samples/wseventing/WEB-INF/web.xml">
- <classes dir="${tests.output.dir}/classes">
- <include name="org/jboss/ws/samples/wseventing/*.class"/>
- <include
name="org/jboss/test/ws/jaxrpc/samples/wseventing/*.class"/>
- </classes>
- <webinf
dir="${tests.output.dir}/resources/jaxrpc/samples/wseventing/WEB-INF">
- <include name="jaxrpc-mapping.xml"/>
- <include name="webservices.xml"/>
- <include name="wsdl/sysmon.wsdl"/>
- <include name="wsdl/jbwse.wsdl"/>
- <include name="wsdl/jbwse.xsd"/>
- </webinf>
- </war>
- <jar
jarfile="${tests.output.dir}/libs/jaxrpc-samples-wseventing-client.jar">
- <fileset dir="${tests.output.dir}/classes">
- <include name="org/jboss/ws/samples/wseventing/*.class"/>
- </fileset>
- <metainf
dir="${tests.output.dir}/resources/jaxrpc/samples/wseventing/WEB-INF">
- <include name="jaxrpc-mapping.xml"/>
- <include name="wsdl/**"/>
- </metainf>
- <metainf
dir="${tests.output.dir}/resources/jaxrpc/samples/wseventing/META-INF">
- <include name="application-client.xml"/>
- <include name="jboss-client.xml"/>
- </metainf>
- </jar>
-
+
<!-- jaxrpc-samples-wssecurity-sign -->
<war
warfile="${tests.output.dir}/libs/jaxrpc-samples-wssecurity-sign.war"
webxml="${tests.output.dir}/resources/jaxrpc/samples/wssecurity/WEB-INF/web.xml">
<classes dir="${tests.output.dir}/classes">
@@ -1743,32 +1715,6 @@
<include name="wsdl/**"/>
</metainf>
</jar>
-
- <!-- jaxrpc-wseventing -->
- <!--war warfile="${tests.output.dir}/libs/jaxrpc-wseventing.war"
webxml="${tests.output.dir}/resources/jaxrpc/wseventing/WEB-INF/web.xml">
- <classes dir="${tests.output.dir}/classes">
- <include name="org/jboss/ws/eventing/*.class"/>
- <include name="org/jboss/test/ws/jaxrpc/wseventing/*.class"/>
- </classes>
- <webinf
dir="${tests.output.dir}/resources/jaxrpc/wseventing/WEB-INF">
- <include name="jaxrpc-mapping.xml"/>
- <include name="webservices.xml"/>
- <include name="wsdl/**"/>
- </webinf>
- </war>
- <jar
jarfile="${tests.output.dir}/libs/jaxrpc-wseventing-client.jar">
- <fileset dir="${tests.output.dir}/classes">
- <include name="org/jboss/ws/eventing/*.class"/>
- </fileset>
- <metainf
dir="${tests.output.dir}/resources/jaxrpc/wseventing/WEB-INF">
- <include name="jaxrpc-mapping.xml"/>
- <include name="wsdl/**"/>
- </metainf>
- <metainf
dir="${tests.output.dir}/resources/jaxrpc/wseventing/META-INF">
- <include name="application-client.xml"/>
- <include name="jboss-client.xml"/>
- </metainf>
- </jar-->
<!-- jaxrpc-wsse-account-signup.war -->
<war warfile="${tests.output.dir}/libs/jaxrpc-wsse-account-signup.war"
webxml="${tests.output.dir}/resources/jaxrpc/wsse/account-signup/WEB-INF/web.xml">
Modified: trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-01-18 13:59:21 UTC (rev
1996)
+++ trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-01-18 15:42:20 UTC (rev
1997)
@@ -726,18 +726,22 @@
<include name="wsdl/**"/>
</webinf>
</war>
- <!--jar
jarfile="${tests.output.dir}/libs/jaxws-wseventing-client.jar">
- <fileset dir="${tests.output.dir}/classes">
- <include name="org/jboss/ws/eventing/*.class"/>
- </fileset>
- <metainf
dir="${tests.output.dir}/resources/jaxws/wseventing/WEB-INF">
- <include name="wsdl/**"/>
- </metainf>
- <metainf
dir="${tests.output.dir}/resources/jaxws/wseventing/META-INF">
- <include name="application-client.xml"/>
- <include name="jboss-client.xml"/>
- </metainf>
- </jar-->
+
+ <!-- jaxws-samples-wseventing.war -->
+ <war warfile="${tests.output.dir}/libs/jaxws-samples-wseventing.war"
+
webxml="${tests.output.dir}/resources/jaxws/samples/wseventing/WEB-INF/web.xml">
+ <classes dir="${tests.output.dir}/classes">
+ <include
name="org/jboss/test/ws/jaxws/samples/wseventing/*.class"/>
+ </classes>
+ <webinf
dir="${tests.output.dir}/resources/jaxws/samples/wseventing/WEB-INF">
+ <include name="wsdl/jboss-web.xml"/>
+ <include name="wsdl/sysmon.wsdl"/>
+ <include name="wsdl/ws-eventing.wsdl"/>
+ <include name="wsdl/ws-eventing.xsd"/>
+ <include name="wsdl/ws-addr.xsd"/>
+ </webinf>
+ </war>
+
</target>
</project>
Modified:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/samples/wseventing/SysmonUtil.java
===================================================================
---
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/samples/wseventing/SysmonUtil.java 2007-01-18
13:59:21 UTC (rev 1996)
+++
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/samples/wseventing/SysmonUtil.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -1,19 +1,20 @@
package org.jboss.test.ws.jaxrpc.samples.wseventing;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Date;
+import org.jboss.logging.Logger;
+import org.jboss.ws.core.soap.SOAPElementImpl;
+import org.jboss.ws.extensions.addressing.AddressingClientUtil;
+import org.jboss.ws.extensions.eventing.jaxws.EndpointReferenceType;
+import org.jboss.ws.extensions.eventing.jaxws.SubscribeResponse;
-import javax.xml.rpc.Stub;
+import javax.xml.ws.BindingProvider;
import javax.xml.ws.addressing.AddressingBuilder;
import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.EndpointReference;
import javax.xml.ws.addressing.JAXWSAConstants;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Date;
-import org.jboss.logging.Logger;
-import org.jboss.ws.extensions.addressing.AddressingClientUtil;
-import org.jboss.ws.extensions.eventing.jaxrpc.element.EndpointReference;
-import org.jboss.ws.extensions.eventing.jaxrpc.element.SubscribeResponse;
-
/**
* Util methods that drive the SysmoneTestCase.
*
@@ -27,8 +28,8 @@
public static void printSubscriptionDetails(SubscribeResponse subscribeResponse)
{
- EndpointReference managerEPR = subscribeResponse.getSubscriptionManager();
- URI subscriptionID = managerEPR.getReferenceParams().getIdentifier();
+ EndpointReferenceType managerEPR = subscribeResponse.getSubscriptionManager();
+ String subscriptionID = subscribeResponse.getSubscriptionId();
Date expiryTime = subscribeResponse.getExpires();
log.info("SubscriptionManager " + managerEPR.getAddress());
@@ -39,34 +40,47 @@
/**
* Bind request properties.
*/
- public static void setRequestProperties(Stub stub, AddressingProperties props)
+ public static void setRequestProperties(BindingProvider binding, AddressingProperties
props)
{
- stub._setProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, props);
+
binding.getRequestContext().put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND,
props);
}
/**
* Access response properties.
*/
- public static AddressingProperties getResponseProperties(Stub stub)
+ public static AddressingProperties getResponseProperties(BindingProvider binding)
{
- return
(AddressingProperties)stub._getProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND);
+ return
(AddressingProperties)binding.getResponseContext().get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND);
}
/**
* Followup addressing properties basically use the
* subscription id as wsa:ReferenceParameter
*/
- public static AddressingProperties buildFollowupProperties(SubscribeResponse response,
String wsaAction, String wsaTo)
- {
+ public static AddressingProperties buildFollowupProperties(SubscribeResponse response,
String wsaAction, String wsaTo) {
try
{
AddressingBuilder addrBuilder = AddressingBuilder.getAddressingBuilder();
- AddressingProperties props = addrBuilder.newAddressingProperties();
-
props.initializeAsDestination(response.getSubscriptionManager().toWsaEndpointReference());
- props.setTo(addrBuilder.newURI(wsaTo));
- props.setAction(addrBuilder.newURI(wsaAction));
- props.setMessageID(AddressingClientUtil.createMessageID());
- return props;
+ AddressingProperties followupProps = addrBuilder.newAddressingProperties();
+
+ //followupProps.setTo(addrBuilder.newURI(wsaTo));
+ followupProps.setAction(addrBuilder.newURI(wsaAction));
+ followupProps.setMessageID(AddressingClientUtil.createMessageID());
+
+ // necessary in order to parse ref params
+ EndpointReference epr = addrBuilder.newEndpointReference(new URI(wsaTo));
+
+ String subscriptionID = response.getSubscriptionId();
+ SOAPElementImpl element = new SOAPElementImpl(
+ "Identifier",
+ "wse", "http://schemas.xmlsoap.org/ws/2004/08/eventing"
+ );
+ element.setValue(subscriptionID);
+ epr.getReferenceParameters().addElement(element);
+
+ followupProps.initializeAsDestination(epr);
+
+ return followupProps;
}
catch (URISyntaxException e)
{
Added:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonManagementEndpoint.java
===================================================================
---
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonManagementEndpoint.java
(rev 0)
+++
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonManagementEndpoint.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.wseventing;
+
+import org.jboss.ws.annotation.EndpointConfig;
+import org.jboss.ws.extensions.eventing.jaxws.AbstractSubscriptionManagerEndpoint;
+import org.jboss.logging.Logger;
+
+import javax.jws.WebService;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since 18.01.2007
+ */
+@WebService(
+ name = "SubscriptionManager",
+ portName = "SubscriptionManagerPort",
+ targetNamespace = "http://schemas.xmlsoap.org/ws/2004/08/eventing",
+ wsdlLocation = "/WEB-INF/wsdl/sysmon.wsdl",
+ endpointInterface =
"org.jboss.ws.extensions.eventing.jaxws.SubscriptionManagerEndpoint")
+@EndpointConfig(configName = "Standard WSAddressing Endpoint")
+public class SysmonManagementEndpoint extends AbstractSubscriptionManagerEndpoint {
+
+ private static final Logger log = Logger.getLogger(SysmonManagementEndpoint.class);
+
+ protected Logger getLogger() {
+ return log;
+ }
+}
Added:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonRegistrationEndpoint.java
===================================================================
---
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonRegistrationEndpoint.java
(rev 0)
+++
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonRegistrationEndpoint.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.wseventing;
+
+import org.jboss.ws.annotation.EndpointConfig;
+import org.jboss.ws.extensions.eventing.jaxws.AbstractEventSourceEndpoint;
+import org.jboss.logging.Logger;
+
+import javax.jws.WebService;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since 18.01.2007
+ */
+@WebService(
+ name = "EventSource",
+ portName = "EventSourcePort",
+ targetNamespace = "http://schemas.xmlsoap.org/ws/2004/08/eventing",
+ wsdlLocation = "/WEB-INF/wsdl/sysmon.wsdl",
+ endpointInterface =
"org.jboss.ws.extensions.eventing.jaxws.EventSourceEndpoint")
+@EndpointConfig(configName = "Standard WSAddressing Endpoint")
+public class SysmonRegistrationEndpoint extends AbstractEventSourceEndpoint {
+
+ private static final Logger log = Logger.getLogger(SysmonRegistrationEndpoint.class);
+
+ protected Logger getLogger()
+ {
+ return log;
+ }
+}
Added:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonTestCase.java
===================================================================
---
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonTestCase.java
(rev 0)
+++
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonTestCase.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,161 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.wseventing;
+
+// $Id: SysmonTestCase.java 1994 2007-01-18 12:54:34Z heiko.braun(a)jboss.com $
+
+import junit.framework.Test;
+import org.jboss.test.ws.JBossWSTest;
+import org.jboss.test.ws.JBossWSTestSetup;
+import org.jboss.ws.extensions.addressing.AddressingClientUtil;
+import org.jboss.ws.extensions.eventing.EventingConstants;
+import org.jboss.ws.extensions.eventing.jaxws.*;
+import org.jboss.ws.core.StubExt;
+
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.ws.addressing.AddressingProperties;
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+/**
+ * Test the eventing example service.
+ *
+ * @author heiko(a)openj.net
+ * @since 29-Apr-2005
+ */
+public class SysmonTestCase extends JBossWSTest
+{
+
+ // event source endpoint
+ private EventSourceEndpoint subscriptionPort = null;
+
+ // subscription manager endpoint
+ private SubscriptionManagerEndpoint managementPort = null;
+
+ // the logical event source name
+ private final static String eventSourceURI =
"http://www.jboss.org/sysmon/SystemInfo";
+
+ public static Test suite()
+ {
+ return JBossWSTestSetup.newTestSetup(SysmonTestCase.class,
"jaxws-samples-wseventing.war");
+ }
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ if (subscriptionPort == null || managementPort == null)
+ {
+ if (isTargetJBoss())
+ {
+ URL wsdlURL = new
File("resources/jaxws/samples/wseventing/WEB-INF/wsdl/sysmon.wsdl").toURL();
+ QName defaultServiceName = new
QName("http://schemas.xmlsoap.org/ws/2004/08/eventing",
"EventingService");
+
+ Service service = Service.create(wsdlURL, defaultServiceName);
+ subscriptionPort =
(EventSourceEndpoint)service.getPort(EventSourceEndpoint.class);
+ managementPort =
(SubscriptionManagerEndpoint)service.getPort(SubscriptionManagerEndpoint.class);
+
+ ((StubExt)subscriptionPort).setConfigName("Standard WSAddressing
Client");
+ ((StubExt)managementPort).setConfigName("Standard WSAddressing
Client");
+ }
+ else
+ {
+
+ throw new IllegalArgumentException("JBossAS is the only supported
target");
+ }
+ }
+ }
+
+ /**
+ * Subscribe using a custom notification filter.
+ */
+ public void testSubscribe() throws Exception
+ {
+ SubscribeResponse subscribeResponse =
doSubscribe("/SystemStatus/HostName/text()='localhost'");
+ SysmonUtil.printSubscriptionDetails(subscribeResponse);
+ }
+
+ /**
+ * Cancel subscription and check if it was really removed.
+ */
+ public void testUnsubscribe() throws Exception
+ {
+
+ SubscribeResponse subscribeResponse = doSubscribe(null);
+ //SysmonUtil.printSubscriptionDetails(subscribeResponse);
+
+ String subscriptionID = subscribeResponse.getSubscriptionId();
+
+ // addressing correlation
+ AddressingProperties unsubscribeProps =
SysmonUtil.buildFollowupProperties(subscribeResponse,
EventingConstants.UNSUBSCRIBE_ACTION, eventSourceURI);
+ SysmonUtil.setRequestProperties((BindingProvider)managementPort,
unsubscribeProps);
+ managementPort.unsubscribeOp(new Unsubscribe());
+
+ AddressingProperties getStatusProps =
SysmonUtil.buildFollowupProperties(subscribeResponse, EventingConstants.GET_STATUS_ACTION,
eventSourceURI);
+ SysmonUtil.setRequestProperties((BindingProvider)managementPort, getStatusProps);
+
+ try {
+ managementPort.getStatusOp(new GetStatus());
+ } catch (Exception e) {
+ // Ignore
+ return;
+ }
+
+ fail("Unsubscribe error! The subscription was not removed");
+ }
+
+ private SubscribeResponse doSubscribe(String filterString) throws URISyntaxException
+ {
+ AddressingProperties reqProps =
AddressingClientUtil.createDefaultProps(EventingConstants.SUBSCRIBE_ACTION,
eventSourceURI);
+ reqProps.setMessageID(AddressingClientUtil.createMessageID());
+ SysmonUtil.setRequestProperties((BindingProvider)subscriptionPort, reqProps);
+
+ // build subscription payload
+ Subscribe request = new Subscribe();
+
+ // default delivery type with notification EPR
+ DeliveryType delivery = SysmonUtil.getDefaultDelivery();
+ request.setDelivery(delivery);
+
+ // receive endTo messages at the same port
+ request.setEndTo(delivery.getNotifyTo());
+
+ if (filterString != null)
+ {
+ // custom filter that applies to a certain hostname only
+ FilterType filter = SysmonUtil.wrapFilterString(filterString);
+ }
+
+ // invoke subscription request
+ SubscribeResponse subscriptionTicket = subscriptionPort.subscribeOp(request);
+
+ // check message constraints
+ AddressingProperties resProps =
SysmonUtil.getResponseProperties((BindingProvider)subscriptionPort);
+ assertEquals(reqProps.getMessageID().getURI(),
resProps.getRelatesTo()[0].getID());
+
+ return subscriptionTicket;
+ }
+}
Added:
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonUtil.java
===================================================================
---
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonUtil.java
(rev 0)
+++
trunk/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/samples/wseventing/SysmonUtil.java 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,117 @@
+package org.jboss.test.ws.jaxws.samples.wseventing;
+
+import org.jboss.logging.Logger;
+import org.jboss.ws.core.soap.SOAPElementImpl;
+import org.jboss.ws.extensions.addressing.AddressingClientUtil;
+import org.jboss.ws.extensions.eventing.jaxws.*;
+import org.jboss.ws.extensions.eventing.EventingConstants;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.EndpointReference;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Date;
+
+/**
+ * Util methods that drive the SysmoneTestCase.
+ *
+ * @author Heiko Braun, <heiko(a)openj.net>
+ * @since 28-Mar-2006
+ */
+public class SysmonUtil
+{
+ // provide logging
+ private static final Logger log = Logger.getLogger(SysmonUtil.class);
+
+ public static void printSubscriptionDetails(SubscribeResponse subscribeResponse)
+ {
+ EndpointReferenceType managerEPR = subscribeResponse.getSubscriptionManager();
+ String subscriptionID = subscribeResponse.getSubscriptionId();
+ Date expiryTime = subscribeResponse.getExpires();
+
+ log.info("SubscriptionManager " + managerEPR.getAddress());
+ log.info("SubscriptionID " + subscriptionID);
+ log.info("ExpiryTime " + expiryTime);
+ }
+
+ /**
+ * Bind request properties.
+ */
+ public static void setRequestProperties(BindingProvider binding, AddressingProperties
props)
+ {
+
binding.getRequestContext().put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND,
props);
+ }
+
+ /**
+ * Access response properties.
+ */
+ public static AddressingProperties getResponseProperties(BindingProvider binding)
+ {
+ return
(AddressingProperties)binding.getResponseContext().get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND);
+ }
+
+ /**
+ * Followup addressing properties basically use the
+ * subscription id as wsa:ReferenceParameter
+ */
+ public static AddressingProperties buildFollowupProperties(SubscribeResponse response,
String wsaAction, String wsaTo) {
+ try
+ {
+ AddressingBuilder addrBuilder = AddressingBuilder.getAddressingBuilder();
+ AddressingProperties followupProps = addrBuilder.newAddressingProperties();
+
+ //followupProps.setTo(addrBuilder.newURI(wsaTo));
+ followupProps.setAction(addrBuilder.newURI(wsaAction));
+ followupProps.setMessageID(AddressingClientUtil.createMessageID());
+
+ // necessary in order to parse ref params
+ EndpointReference epr = addrBuilder.newEndpointReference(new URI(wsaTo));
+
+ String subscriptionID = response.getSubscriptionId();
+ SOAPElementImpl element = new SOAPElementImpl(
+ "Identifier",
+ "wse", "http://schemas.xmlsoap.org/ws/2004/08/eventing"
+ );
+ element.setValue(subscriptionID);
+ epr.getReferenceParameters().addElement(element);
+
+ followupProps.initializeAsDestination(epr);
+
+ return followupProps;
+ }
+ catch (URISyntaxException e)
+ {
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ }
+
+ public static DeliveryType getDefaultDelivery()
+ {
+ try
+ {
+ DeliveryType delivery = new DeliveryType();
+ delivery.setMode(EventingConstants.getDeliveryPush().toString());
+ EndpointReferenceType notifyEPR = new EndpointReferenceType();
+ AttributedURIType attURI = new AttributedURIType();
+ attURI.setValue("http://jboss.org");
+ notifyEPR.setAddress(attURI);
+ delivery.setNotifyTo(notifyEPR);
+ return delivery;
+ }
+ catch (Exception e)
+ {
+ throw new IllegalStateException("Failed to create delivery payload",
e);
+ }
+ }
+
+ public static FilterType wrapFilterString(String s)
+ {
+ FilterType filter = new FilterType();
+ filter.setDialect(EventingConstants.getDialectXPath().toString());
+ filter.getContent().add(s);
+ return filter;
+ }
+}
Added:
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/jboss-web.xml
===================================================================
--- trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/jboss-web.xml
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/jboss-web.xml 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
+
+<jboss-web>
+ <context-root>/jaxws-samples-wseventing</context-root>
+</jboss-web>
\ No newline at end of file
Added: trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/web.xml
===================================================================
--- trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/web.xml
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/web.xml 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+
+ <display-name>System monitor samples (WS-Eventing)</display-name>
+
+ <servlet>
+ <servlet-name>EventSource</servlet-name>
+
<servlet-class>org.jboss.test.ws.jaxws.samples.wseventing.SysmonRegistrationEndpoint</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>EventSource</servlet-name>
+ <url-pattern>/subscribe</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>SubscriptionManager</servlet-name>
+
<servlet-class>org.jboss.test.ws.jaxws.samples.wseventing.SysmonManagementEndpoint</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>SubscriptionManager</servlet-name>
+ <url-pattern>/manage</url-pattern>
+ </servlet-mapping>
+
+ <session-config>
+ <session-timeout>54</session-timeout>
+ </session-config>
+</web-app>
\ No newline at end of file
Added:
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/sysmon.wsdl
===================================================================
---
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/sysmon.wsdl
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/sysmon.wsdl 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions
+
targetNamespace="http://www.jboss.org/sysmon"
+
xmlns:tns="http://www.jboss.org/sysmon"
+
xmlns:wse='http://schemas.xmlsoap.org/ws/2004/08/eventing'
+
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
+
xmlns:wsa10='http://www.w3.org/2005/08/addressing'
+
xmlns:xs='http://www.w3.org/2001/XMLSchema'
+
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+
+ <wsdl:import
+
namespace='http://schemas.xmlsoap.org/ws/2004/08/eventing'
+ location='ws-eventing.wsdl' />
+
+ <wsdl:types>
+
+ <xs:schema
targetNamespace='http://schemas.xmlsoap.org/ws/2004/08/eventing'>
+ <xs:include schemaLocation='ws-eventing.xsd'/>
+ </xs:schema>
+
+ <xs:schema
+
targetNamespace="http://www.jboss.org/sysmon"
+ elementFormDefault="qualified"
+ blockDefault="#all">
+
+ <xs:element name="SystemStatus">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Time "
type="xs:dateTime"/>
+ <xs:element name="HostName"
type="xs:string"/>
+ <xs:element name="HostAddress"
type="xs:string"/>
+ <xs:element name="ActiveThreadCount"
type="xs:int"/>
+ <xs:element name="FreeMemory"
type="xs:string"/>
+ <xs:element name="MaxMemory"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ </xs:schema>
+
+ </wsdl:types>
+
+ <wsdl:message name='SystemInfoMsg'>
+ <wsdl:part name='body' element='tns:SystemStatus'/>
+ </wsdl:message>
+
+ <wsdl:portType name='SystemInfo' wse:EventSource='true'>
+ <wsdl:operation name='SysmonOp'>
+ <wsdl:output message='tns:SystemInfoMsg'/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="SystemInfoBinding"
type="tns:SystemInfo">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="SysmonOp">
+ <soap:operation soapAction=""/>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+</wsdl:definitions>
\ No newline at end of file
Added:
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-addr.xsd
===================================================================
---
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-addr.xsd
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-addr.xsd 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN"
"http://www.w3.org/2001/XMLSchema.dtd">
+<!--
+ W3C XML Schema defined in the Web Services Addressing 1.0 specification
+
http://www.w3.org/TR/ws-addr-core
+
+ Copyright © 2005 World Wide Web Consortium,
+
+ (Massachusetts Institute of Technology, European Research Consortium for
+ Informatics and Mathematics, Keio University). All Rights Reserved. This
+ work is distributed under the W3C® Software License [1] in the hope that
+ it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ [1]
http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+ $Id: ws-addr.xsd,v 1.3 2005/08/09 13:17:35 hugo Exp $
+-->
+<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+
xmlns:tns="http://www.w3.org/2005/08/addressing"
+
targetNamespace="http://www.w3.org/2005/08/addressing"
+ blockDefault="#all"
+ elementFormDefault="qualified"
+ finalDefault=""
+ attributeFormDefault="unqualified">
+
+ <!-- Constructs from the WS-Addressing Core -->
+
+ <xs:element name="EndpointReference"
type="tns:EndpointReferenceType"/>
+ <xs:complexType name="EndpointReferenceType" mixed="false">
+ <xs:sequence>
+ <xs:element name="Address" type="tns:AttributedURIType"/>
+ <xs:element name="ReferenceParameters"
type="tns:ReferenceParametersType" minOccurs="0"/>
+ <xs:element ref="tns:Metadata" minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+
+ <xs:complexType name="ReferenceParametersType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+
+ <xs:element name="Metadata" type="tns:MetadataType"/>
+ <xs:complexType name="MetadataType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+
+ <xs:element name="MessageID" type="tns:AttributedURIType"/>
+ <xs:element name="RelatesTo" type="tns:RelatesToType"/>
+ <xs:complexType name="RelatesToType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="RelationshipType"
type="tns:RelationshipTypeOpenEnum" use="optional"
default="http://www.w3.org/2005/08/addressing/reply"/>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:simpleType name="RelationshipTypeOpenEnum">
+ <xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="RelationshipType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration
value="http://www.w3.org/2005/08/addressing/reply"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="From" type="tns:EndpointReferenceType"/>
+ <xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="To" type="tns:AttributedURIType"/>
+ <xs:element name="Action" type="tns:AttributedURIType"/>
+
+ <xs:complexType name="AttributedURIType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Constructs from the WS-Addressing SOAP binding -->
+
+ <xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+
+ <xs:simpleType name="FaultCodesOpenEnumType">
+ <xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="FaultCodesType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:InvalidAddressingHeader"/>
+ <xs:enumeration value="tns:InvalidAddress"/>
+ <xs:enumeration value="tns:InvalidEPR"/>
+ <xs:enumeration value="tns:InvalidCardinality"/>
+ <xs:enumeration value="tns:MissingAddressInEPR"/>
+ <xs:enumeration value="tns:DuplicateMessageID"/>
+ <xs:enumeration value="tns:ActionMismatch"/>
+ <xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+ <xs:enumeration value="tns:DestinationUnreachable"/>
+ <xs:enumeration value="tns:ActionNotSupported"/>
+ <xs:enumeration value="tns:EndpointUnavailable"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="RetryAfter"
type="tns:AttributedUnsignedLongType"/>
+ <xs:complexType name="AttributedUnsignedLongType"
mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:unsignedLong">
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:element name="ProblemHeaderQName"
type="tns:AttributedQNameType"/>
+ <xs:complexType name="AttributedQNameType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:QName">
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:element name="ProblemHeader"
type="tns:AttributedAnyType"/>
+ <xs:complexType name="AttributedAnyType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"
minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+
+ <xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+
+ <xs:element name="ProblemAction"
type="tns:ProblemActionType"/>
+ <xs:complexType name="ProblemActionType" mixed="false">
+ <xs:sequence>
+ <xs:element ref="tns:Action" minOccurs="0"/>
+ <xs:element name="SoapAction" minOccurs="0"
type="xs:anyURI"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+
+</xs:schema>
\ No newline at end of file
Added:
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl
===================================================================
---
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions
+
targetNamespace='http://schemas.xmlsoap.org/ws/2004/08/eventing'
+
xmlns:wse='http://schemas.xmlsoap.org/ws/2004/08/eventing'
+
xmlns:wsa10='http://www.w3.org/2005/08/addressing'
+
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
+
xmlns:xs='http://www.w3.org/2001/XMLSchema'
+
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+
+ <wsdl:types>
+ <xs:import
namespace="http://schemas.xmlsoap.org/ws/2004/08/eventing"
schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/eventing/event...
+ </wsdl:types>
+
+ <wsdl:message name='SubscribeMsg'>
+ <wsdl:part name='body' element='wse:Subscribe'/>
+ </wsdl:message>
+ <wsdl:message name='SubscribeResponseMsg'>
+ <wsdl:part name='body' element='wse:SubscribeResponse'/>
+ </wsdl:message>
+
+ <wsdl:message name='RenewMsg'>
+ <wsdl:part name='body' element='wse:Renew'/>
+ </wsdl:message>
+ <wsdl:message name='RenewResponseMsg'>
+ <wsdl:part name='body' element='wse:RenewResponse'/>
+ </wsdl:message>
+
+ <wsdl:message name='GetStatusMsg'>
+ <wsdl:part name='body' element='wse:GetStatus'/>
+ </wsdl:message>
+ <wsdl:message name='GetStatusResponseMsg'>
+ <wsdl:part name='body' element='wse:GetStatusResponse'/>
+ </wsdl:message>
+
+ <wsdl:message name='UnsubscribeMsg'>
+ <wsdl:part name='body' element='wse:Unsubscribe'/>
+ </wsdl:message>
+ <wsdl:message name='UnsubscribeResponseMsg'/>
+
+ <wsdl:message name='SubscriptionEnd'>
+ <wsdl:part name='body' element='wse:SubscriptionEnd'/>
+ </wsdl:message>
+
+ <wsdl:portType name='EventSource'>
+ <wsdl:operation name='SubscribeOp'>
+ <wsdl:input message='wse:SubscribeMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscrib...
+ <wsdl:output message='wse:SubscribeResponseMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscrib...
+ </wsdl:operation>
+ <wsdl:operation name='SubscriptionEnd'>
+ <wsdl:output message='wse:SubscriptionEnd'/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:portType name='SubscriptionManager'>
+ <wsdl:operation name='RenewOp'>
+ <wsdl:input message='wse:RenewMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/Renew...
+ <wsdl:output message='wse:RenewResponseMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/RenewRes...
+ </wsdl:operation>
+ <wsdl:operation name='GetStatusOp'>
+ <wsdl:input message='wse:GetStatusMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/GetStatu...
+ <wsdl:output message='wse:GetStatusResponseMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/GetStatu...
+ </wsdl:operation>
+ <wsdl:operation name='UnsubscribeOp'>
+ <wsdl:input message='wse:UnsubscribeMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscr...
+ <wsdl:output message='wse:UnsubscribeResponseMsg'
wsa10:Action='http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscr...
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="EventSourceBinding"
type="wse:EventSource">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="SubscribeOp">
+ <soap:operation soapAction=""/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="SubscriptionEnd">
+ <soap:operation soapAction=""/>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:binding name="SubscriptionManagerBinding"
type="wse:SubscriptionManager">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="GetStatusOp">
+ <soap:operation soapAction=""/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RenewOp">
+ <soap:operation soapAction=""/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UnsubscribeOp">
+ <soap:operation soapAction=""/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="EventingService">
+ <wsdl:port name="EventSourcePort"
binding="wse:EventSourceBinding">
+ <soap:address
location="http://@jbosstest.host.name@:8080/jaxws-samples-wseventing/subscribe"/>
+ </wsdl:port>
+ <wsdl:port name="SubscriptionManagerPort"
binding="wse:SubscriptionManagerBinding">
+ <soap:address
location="http://@jbosstest.host.name@:8080/jaxws-samples-wseventing/manage"/>
+ </wsdl:port>
+ </wsdl:service>
+
+
+</wsdl:definitions>
\ No newline at end of file
Added:
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.xsd
===================================================================
---
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.xsd
(rev 0)
+++
trunk/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.xsd 2007-01-18
15:42:20 UTC (rev 1997)
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+(c) 2004 BEA Systems Inc., Computer Associates International, Inc., International
Business Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc., and
TIBCO Software Inc. All rights reserved.
+
+BEA Systems Inc., Computer Associates International, Inc., International Business
Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc, and TIBCO
Software Inc (collectively, the "Authors") hereby grant you permission to copy
and display the WS-Eventing Specification (the "Specification", which includes
WSDL and schema documents), in any medium without fee or royalty, provided that you
include the following on ALL copies of the Specification, that you make:
+
+1. A link or URL to the WS-Eventing Specification at one of the Authors' websites
+2. The copyright notice as shown in the WS-Eventing Specification.
+
+BEA, CA, IBM, Microsoft, Sun and TIBCO (collectively, the "Authors") each agree
to grant you a license, under royalty-free and otherwise reasonable, non-discriminatory
terms and conditions, to their respective essential patent claims that they deem necessary
to implement the Specification.
+
+THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS
OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE
CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF
SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER
RIGHTS.
+
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE
SPECIFICATION.
+
+The name and trademarks of the Authors may NOT be used in any manner, including
advertising or publicity pertaining to the Specification or its contents without specific,
written prior permission. Title to copyright in the Specification will at all times remain
with the Authors.
+
+No other rights are granted by implication, estoppel or otherwise.
+-->
+<xs:schema
targetNamespace="http://schemas.xmlsoap.org/ws/2004/08/eventing"
+
xmlns:tns="http://schemas.xmlsoap.org/ws/2004/08/eventing"
+
xmlns:wsa="http://www.w3.org/2005/08/addressing"
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ blockDefault="#all">
+
+ <xs:import
namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <xs:import
namespace="http://www.w3.org/2005/08/addressing"
schemaLocation="ws-addr.xsd"/>
+
+ <!-- Types and global elements -->
+ <xs:complexType name="DeliveryType" mixed="true">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="Mode" type="xs:anyURI"
use="optional"/>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+
+ <xs:element name="NotifyTo"
type="wsa:EndpointReferenceType"/>
+
+ <xs:simpleType name="NonNegativeDurationType">
+ <xs:restriction base="xs:duration">
+ <xs:minInclusive value="P0Y0M0DT0H0M0S"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ExpirationType">
+ <xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType"/>
+ </xs:simpleType>
+
+ <xs:complexType name="FilterType" mixed="true">
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="Dialect" type="xs:anyURI"
use="optional"/>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+
+ <xs:complexType name="LanguageSpecificStringType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="xml:lang"/>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Subscribe request -->
+ <xs:element name="Subscribe">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="EndTo" type="wsa:EndpointReferenceType"
minOccurs="0"/>
+ <xs:element name="Delivery" type="tns:DeliveryType"/>
+ <xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0"/>
+ <xs:element name="Filter" type="tns:FilterType"
minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="Identifier" type="xs:anyURI"/>
+
+ <!-- Subscribe response -->
+ <xs:element name="SubscribeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SubscriptionManager"
type="wsa:EndpointReferenceType"/>
+ <xs:element name="Expires" type="tns:ExpirationType"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Used in a fault if there's an unsupported dialect -->
+ <xs:element name="SupportedDialect" type="xs:anyURI"/>
+
+ <!-- Used in a fault if there's an unsupported delivery mode -->
+ <xs:element name="SupportedDeliveryMode" type="xs:anyURI"/>
+
+ <!-- Renew request -->
+ <xs:element name="Renew">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Renew response -->
+ <xs:element name="RenewResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- GetStatus request -->
+ <xs:element name="GetStatus">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- GetStatus response -->
+ <xs:element name="GetStatusResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Expires" type="tns:ExpirationType"
minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Unsubscribe request -->
+ <xs:element name="Unsubscribe">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- count(/s:Envelope/s:Body/*) = 0 for Unsubscribe response -->
+
+ <!-- SubscriptionEnd message -->
+ <xs:element name="SubscriptionEnd">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SubscriptionManager"
type="wsa:EndpointReferenceType"/>
+ <xs:element name="Code"
type="tns:OpenSubscriptionEndCodeType"/>
+ <xs:element name="Reason"
type="tns:LanguageSpecificStringType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other"
processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="SubscriptionEndCodeType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:DeliveryFailure"/>
+ <xs:enumeration value="tns:SourceShuttingDown"/>
+ <xs:enumeration value="tns:SourceCancelling"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="OpenSubscriptionEndCodeType">
+ <xs:union memberTypes="tns:SubscriptionEndCodeType xs:QName"/>
+ </xs:simpleType>
+
+ <xs:attribute name="EventSource" type="xs:boolean"/>
+
+</xs:schema>
\ No newline at end of file