You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 12:36:51 UTC

[31/70] [abbrv] incubator-taverna-common-activities git commit: taverna-wsdl-activity/

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityTest.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityTest.java b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityTest.java
new file mode 100644
index 0000000..9a73adf
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityTest.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program 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 program 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 program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.wsdl.xmlsplitter;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.StringReader;
+
+import net.sf.taverna.t2.workflowmodel.impl.EditsImpl;
+import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
+import net.sf.taverna.wsdl.parser.BaseTypeDescriptor;
+import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
+
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class XMLInputSplitterActivityTest {
+
+	@Test
+	public void testGetTypeDescriptorForInputPort() throws Exception {
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"personToString\" name=\"parameters\" qname=\"{http://xfire.codehaus.org/BookService}personToString\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"person\" qname=\"{http://xfire.codehaus.org/BookService}&gt;personToString&gt;person\"><s:elements><s:complextype optional=\"true\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;address\"><s:elements><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;city\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;road\" /><s:basetype optional=\"true\" unbounded=\"false\" typ
 ename=\"int\" name=\"roadNumber\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;roadNumber\" /></s:elements></s:complextype><s:basetype optional=\"true\" unbounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;age\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"firstName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;firstName\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"lastName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;lastName\" /></s:elements></s:complextype></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForInput(element);
+		XMLInputSplitterActivity a = new XMLInputSplitterActivity();
+		a.configure(bean);
+		XMLInputSplitterActivityFactory af = new XMLInputSplitterActivityFactory();
+		af.setEdits(new EditsImpl());
+
+		boolean exists = false;
+		for (ActivityInputPort p : af.getInputPorts(bean)) {
+			if (p.getName().equals("person")) {
+				exists=true;
+				break;
+			}
+		}
+
+		assertTrue("The input port named person should have been found",exists);
+
+		assertNotNull("There should be a type descriptor for person",a.getTypeDescriptorForInputPort("person"));
+		assertTrue("The descriptor should be complex",a.getTypeDescriptorForInputPort("person") instanceof ComplexTypeDescriptor);
+	}
+
+	@Test
+	public void testGetTypeDescriptorForInputPort2() throws Exception {
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"person\" qname=\"{http://xfire.codehaus.org/BookService}&gt;personToString&gt;person\"><s:elements><s:complextype optional=\"true\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;address\"><s:elements><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;city\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;road\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"int\" name=\"roadNumber\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;roadNumber\" /></s:elements></s:complextype><s:basetype optional=\"true\" unb
 ounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;age\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"firstName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;firstName\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"lastName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;lastName\" /></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForInput(element);
+		XMLInputSplitterActivity a = new XMLInputSplitterActivity();
+		a.configure(bean);
+		XMLInputSplitterActivityFactory af = new XMLInputSplitterActivityFactory();
+		af.setEdits(new EditsImpl());
+
+		boolean exists = false;
+		for (ActivityInputPort p : af.getInputPorts(bean)) {
+			if (p.getName().equals("firstName")) {
+				exists=true;
+				break;
+			}
+		}
+
+		assertTrue("The input port named firstName should have been found",exists);
+
+		assertNotNull("There should be a type descriptor for person",a.getTypeDescriptorForInputPort("firstName"));
+		assertTrue("The descriptor should be base type",a.getTypeDescriptorForInputPort("firstName") instanceof BaseTypeDescriptor);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityTest.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityTest.java b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityTest.java
new file mode 100644
index 0000000..b98e243
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityTest.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program 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 program 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 program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.wsdl.xmlsplitter;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.StringReader;
+
+import net.sf.taverna.t2.workflowmodel.impl.EditsImpl;
+import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
+
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class XMLOutputSplitterActivityTest {
+
+	@Test
+	public void testGetTypeDescriptorForOutputPort() throws Exception {
+
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"getPersonResponse\" name=\"parameters\" qname=\"{http://testing.org}getPersonResponse\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"getPersonReturn\" qname=\"{http://testing.org}&gt;getPersonResponse&gt;getPersonReturn\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://testing.org}Person&gt;address\"><s:elements><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://testing.org}Address&gt;city\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"int\" name=\"number\" qname=\"{http://testing.org}Address&gt;number\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://testing.org}Address&gt;road\" /></s:element
 s></s:complextype><s:basetype optional=\"false\" unbounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://testing.org}Person&gt;age\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"name\" qname=\"{http://testing.org}Person&gt;name\" /></s:elements></s:complextype></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForOutput(element);
+		XMLOutputSplitterActivity a = new XMLOutputSplitterActivity();
+		a.setEdits(new EditsImpl());
+		a.configure(bean);
+
+		assertNotNull("There should be a descriptor for the port getPersonReturn",a.getTypeDescriptorForOutputPort("getPersonReturn"));
+		assertTrue("The descriptor should be complex",a.getTypeDescriptorForOutputPort("getPersonReturn") instanceof ComplexTypeDescriptor);
+
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilderTest.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilderTest.java b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilderTest.java
new file mode 100644
index 0000000..a3d2f3b
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilderTest.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program 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 program 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 program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.wsdl.xmlsplitter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.StringReader;
+
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class XMLSplitterConfigurationBeanBuilderTest {
+
+	@Test
+	public void testBuildBeanForInput() throws Exception  {
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"personToString\" name=\"parameters\" qname=\"{http://xfire.codehaus.org/BookService}personToString\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"person\" qname=\"{http://xfire.codehaus.org/BookService}&gt;personToString&gt;person\"><s:elements><s:complextype optional=\"true\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;address\"><s:elements><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;city\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;road\" /><s:basetype optional=\"true\" unbounded=\"false\" typ
 ename=\"int\" name=\"roadNumber\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;roadNumber\" /></s:elements></s:complextype><s:basetype optional=\"true\" unbounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;age\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"firstName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;firstName\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"lastName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;lastName\" /></s:elements></s:complextype></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForInput(element);
+		assertNotNull("The bean should not be null",bean);
+
+		assertEquals("There should be 1 input",1,bean.get("inputPorts").size());
+		assertEquals("There should be 1 output",1,bean.get("outputPorts").size());
+
+		assertEquals("The input should be named person","person",bean.get("inputPorts").get(0).get("name").textValue());
+		assertEquals("The output should be named output","output",bean.get("outputPorts").get(0).get("name").textValue());
+
+		assertEquals("The type xml definition should match",xml,bean.get("wrappedType").textValue());
+	}
+
+	@Test
+	public void testBuildBeanForInput2() throws Exception {
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"person\" qname=\"{http://xfire.codehaus.org/BookService}&gt;personToString&gt;person\"><s:elements><s:complextype optional=\"true\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;address\"><s:elements><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;city\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;road\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"int\" name=\"roadNumber\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Address&gt;roadNumber\" /></s:elements></s:complextype><s:basetype optional=\"true\" unb
 ounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;age\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"firstName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;firstName\" /><s:basetype optional=\"true\" unbounded=\"false\" typename=\"string\" name=\"lastName\" qname=\"{http://complex.pojo.axis2.menagerie.googlecode}Person&gt;lastName\" /></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForInput(element);
+		assertNotNull("The bean should not be null",bean);
+
+		assertEquals("There should be 4 inputs",4,bean.get("inputPorts").size());
+		assertEquals("There should be 1 output",1,bean.get("outputPorts").size());
+
+		assertEquals("The first input should be named address","address",bean.get("inputPorts").get(0).get("name").textValue());
+		assertEquals("The output should be named output","output",bean.get("outputPorts").get(0).get("name").textValue());
+
+		assertEquals("The type xml definition should match",xml,bean.get("wrappedType").textValue());
+	}
+
+	@Test
+	public void testBuildBeanForOutput() throws Exception {
+		String xml = "<s:extensions xmlns:s=\"http://org.embl.ebi.escience/xscufl/0.1alpha\"><s:complextype optional=\"false\" unbounded=\"false\" typename=\"getPersonResponse\" name=\"parameters\" qname=\"{http://testing.org}getPersonResponse\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Person\" name=\"getPersonReturn\" qname=\"{http://testing.org}&gt;getPersonResponse&gt;getPersonReturn\"><s:elements><s:complextype optional=\"false\" unbounded=\"false\" typename=\"Address\" name=\"address\" qname=\"{http://testing.org}Person&gt;address\"><s:elements><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"city\" qname=\"{http://testing.org}Address&gt;city\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"int\" name=\"number\" qname=\"{http://testing.org}Address&gt;number\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"road\" qname=\"{http://testing.org}Address&gt;road\" /></s:element
 s></s:complextype><s:basetype optional=\"false\" unbounded=\"false\" typename=\"int\" name=\"age\" qname=\"{http://testing.org}Person&gt;age\" /><s:basetype optional=\"false\" unbounded=\"false\" typename=\"string\" name=\"name\" qname=\"{http://testing.org}Person&gt;name\" /></s:elements></s:complextype></s:elements></s:complextype></s:extensions>";
+		Element element = new SAXBuilder().build(new StringReader(xml)).getRootElement();
+		JsonNode bean = XMLSplitterConfigurationBeanBuilder.buildBeanForOutput(element);
+
+		assertNotNull("The bean should not be null",bean);
+
+		assertEquals("There should be 1 input",1,bean.get("inputPorts").size());
+		assertEquals("There should be 1 output",1,bean.get("outputPorts").size());
+
+		assertEquals("The input should be named input","input",bean.get("inputPorts").get(0).get("name").textValue());
+		assertEquals("The output shouldbe named getPersonResponse","getPersonReturn",bean.get("outputPorts").get(0).get("name").textValue());
+
+		assertEquals("The type xml definition should match",xml,bean.get("wrappedType").textValue());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/log4j.properties b/taverna-wsdl-activity/src/test/resources/log4j.properties
new file mode 100644
index 0000000..e8980e5
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/log4j.properties
@@ -0,0 +1,8 @@
+log4j.rootLogger=WARN, CONSOLE
+
+# Default output to console
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %d{ISO8601} (%c:%L) - %m%n
+
+log4j.logger.net.sf.taverna.t2.activities.wsdl=INFO
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/CounterService_.wsdl
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/CounterService_.wsdl b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/CounterService_.wsdl
new file mode 100644
index 0000000..7e628e0
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/CounterService_.wsdl
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="Counter" targetNamespace="http://counter.com/service" xmlns:binding="http://counter.com/bindings" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsdl:import location="counter_bindings.wsdl" namespace="http://counter.com/bindings"/>
+  <wsdl:service name="CounterService">
+    <wsdl:port binding="binding:CounterPortTypeSOAPBinding" name="CounterPortTypePort">
+      <soap:address location="http://localhost:8080/wsrf/services/CounterService"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-Addressing.xsd
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-Addressing.xsd b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-Addressing.xsd
new file mode 100644
index 0000000..008c65e
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-Addressing.xsd
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Legal Disclaimer
+
+The presentation, distribution or other dissemination of the information 
+contained in this document is not a license, either expressly or impliedly, 
+to any intellectual property owned or controlled by BEA or IBM or Microsoft
+and\or any other third party.  BEA and IBM and Microsoft and\or any other
+third party may have patents, patent applications, trademarks, copyrights, 
+or other intellectual property rights covering subject matter in this 
+document.  The furnishing of this document does not give you any license 
+to BEA's and IBM's and Microsoft's or any other third party's patents, 
+trademarks, copyrights, or other intellectual property.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and to the maximum extent permitted by applicable law, BEA and IBM 
+and Microsoft provide the document AS IS AND WITH ALL FAULTS, and hereby 
+disclaims all other warranties and conditions, either express, implied or 
+statutory, including, but not limited to, any (if any) implied warranties, 
+duties or conditions of merchantability, of fitness for a particular 
+purpose, of accuracy or completeness of responses, of results, of 
+workmanlike effort, of lack of viruses, and of lack of negligence, all with
+regard to the document. ALSO, THERE IS NO WARRANTY OR CONDITION OF 
+TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR 
+NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE 
+DOCUMENT.
+
+IN NO EVENT WILL BEA or IBM or MICROSOFT BE LIABLE TO ANY OTHER PARTY FOR THE
+COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, 
+LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL 
+DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY 
+WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS DOCUMENT, WHETHER OR 
+NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Copyright Notice
+
+Copyright 2003,2004 BEA Systems Inc. and IBM Corporation and Microsoft Corporation. All rights reserved.--><xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" elementFormDefault="qualified" blockDefault="#all" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+  <!--//////////////////// WS-Addressing ////////////////////-->
+  <!--Endpoint reference-->
+  <xs:element name="EndpointReference" type="wsa:EndpointReferenceType"/>
+  <xs:complexType name="EndpointReferenceType">
+    <xs:sequence>
+      <xs:element name="Address" type="wsa:AttributedURI"/>
+      <xs:element name="ReferenceProperties" type="wsa:ReferencePropertiesType" minOccurs="0"/>
+      <xs:element name="PortType" type="wsa:AttributedQName" minOccurs="0"/>
+      <xs:element name="ServiceName" type="wsa:ServiceNameType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>If "Policy" elements from namespace "http://schemas.xmlsoap.org/ws/2002/12/policy#policy" are used, they must appear first (before any extensibility elements).</xs:documentation>
+        </xs:annotation>
+      </xs:any>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="ReferencePropertiesType">
+    <xs:sequence>
+      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="ServiceNameType">
+    <xs:simpleContent>
+      <xs:extension base="xs:QName">
+        <xs:attribute name="PortName" type="xs:NCName"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <!--Message information header blocks-->
+  <xs:element name="MessageID" type="wsa:AttributedURI"/>
+  <xs:element name="RelatesTo" type="wsa:Relationship"/>
+  <xs:element name="To" type="wsa:AttributedURI"/>
+  <xs:element name="Action" type="wsa:AttributedURI"/>
+  <xs:element name="From" type="wsa:EndpointReferenceType"/>
+  <xs:element name="ReplyTo" type="wsa:EndpointReferenceType"/>
+  <xs:element name="FaultTo" type="wsa:EndpointReferenceType"/>
+  <xs:complexType name="Relationship">
+    <xs:simpleContent>
+      <xs:extension base="xs:anyURI">
+        <xs:attribute name="RelationshipType" type="xs:QName" use="optional"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:simpleType name="RelationshipTypeValues">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="wsa:Reply"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="ReplyAfter"/>
+  <xs:complexType name="ReplyAfterType">
+    <xs:simpleContent>
+      <xs:extension base="xs:nonNegativeInteger">
+        <xs:anyAttribute namespace="##other"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:simpleType name="FaultSubcodeValues">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="wsa:InvalidMessageInformationHeader"/>
+      <xs:enumeration value="wsa:MessageInformationHeaderRequired"/>
+      <xs:enumeration value="wsa:DestinationUnreachable"/>
+      <xs:enumeration value="wsa:ActionNotSupported"/>
+      <xs:enumeration value="wsa:EndpointUnavailable"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:attribute name="Action" type="xs:anyURI"/>
+  <!--Common declarations and definitions-->
+  <xs:complexType name="AttributedQName">
+    <xs:simpleContent>
+      <xs:extension base="xs:QName">
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="AttributedURI">
+    <xs:simpleContent>
+      <xs:extension base="xs:anyURI">
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseFaults.xsd
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseFaults.xsd b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseFaults.xsd
new file mode 100644
index 0000000..87d3798
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseFaults.xsd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director. 
+
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director. 
+
+Copyright (C) OASIS Open (2004). All Rights Reserved. 
+
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.--><xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd">
+  <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="WS-Addressing.xsd"/>
+  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd">
+    <xsd:annotation>
+      <xsd:documentation>Get access to the xml: attribute groups for xml:lang as declared on 'schema'
+        and 'documentation' below</xsd:documentation>
+    </xsd:annotation>
+  </xsd:import>
+  <!--====================== BaseFault Types =======================-->
+  <xsd:element name="BaseFault" type="wsbf:BaseFaultType"/>
+  <xsd:complexType name="BaseFaultType">
+    <xsd:sequence>
+      <xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
+      <xsd:element name="Originator" type="wsa:EndpointReferenceType" minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="ErrorCode" minOccurs="0" maxOccurs="1">
+        <xsd:complexType>
+          <xsd:complexContent mixed="true">
+            <xsd:extension base="xsd:anyType">
+              <xsd:attribute name="dialect" type="xsd:anyURI" use="required"/>
+            </xsd:extension>
+          </xsd:complexContent>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="Description" minOccurs="0" maxOccurs="unbounded">
+        <xsd:complexType>
+          <xsd:simpleContent>
+            <xsd:extension base="xsd:string">
+              <xsd:attribute ref="xml:lang" use="optional"/>
+            </xsd:extension>
+          </xsd:simpleContent>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="FaultCause" type="wsbf:BaseFaultType" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.wsdl
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.wsdl b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.wsdl
new file mode 100644
index 0000000..418e66c
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.wsdl
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director.
+
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director.
+
+Copyright (C) OASIS Open (2004). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.--><wsdl:definitions name="WS-BaseNotification" targetNamespace="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy" xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd" xmlns:wsntw="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" xmlns:wsrp="http://docs.oasi
 s-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wsbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl">
+  <!--========================== Imports ===========================-->
+  <wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="WS-ResourceProperties.wsdl"/>
+  <wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" location="WS-ResourceLifetime.wsdl"/>
+  <!--===================== Types Definitions ======================-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
+      <xsd:include schemaLocation="WS-BaseN.xsd"/>
+      <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="WS-Addressing.xsd"/>
+      <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" schemaLocation="WS-BaseFaults.xsd"/>
+      <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" schemaLocation="WS-ResourceProperties.xsd"/>
+      <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" schemaLocation="WS-ResourceLifetime.xsd"/>
+      <!--=============== Resource Property Related  ===================-->
+      <!--======== Resource Properties for NotificationProducer ========-->
+      <xsd:element name="NotificationProducerRP">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element ref="wsnt:Topic" minOccurs="1" maxOccurs="unbounded"/>
+            <xsd:element ref="wsnt:FixedTopicSet" minOccurs="1" maxOccurs="1"/>
+            <xsd:element ref="wsnt:TopicExpressionDialects" minOccurs="1" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <!--======== Resource Properties for SubscriptionManager =========-->
+      <xsd:element name="SubscriptionManagerRP">
+        <xsd:complexType>
+          <xsd:sequence>
+            <!--From WS-ResourceLifetime ScheduledResourceTermination-->
+            <xsd:element ref="wsrl:CurrentTime" minOccurs="1" maxOccurs="1"/>
+            <xsd:element ref="wsrl:TerminationTime" minOccurs="1" maxOccurs="1"/>
+            <!--SubscriptionManager specific-->
+            <xsd:element ref="wsnt:ConsumerReference" minOccurs="1" maxOccurs="1"/>
+            <xsd:element ref="wsnt:TopicExpression" minOccurs="1" maxOccurs="1"/>
+            <xsd:element ref="wsnt:UseNotify" minOccurs="1" maxOccurs="1"/>
+            <xsd:element ref="wsnt:Precondition" minOccurs="0" maxOccurs="1"/>
+            <xsd:element ref="wsnt:Selector" minOccurs="0" maxOccurs="1"/>
+            <xsd:element ref="wsnt:SubscriptionPolicy" minOccurs="0" maxOccurs="1"/>
+            <xsd:element ref="wsnt:CreationTime" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <!--================== Message Helper Types  =====================-->
+      <xsd:complexType name="NotificationMessageHolderType">
+        <xsd:sequence>
+          <xsd:element name="Topic" type="wsnt:TopicExpressionType" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="ProducerReference" type="wsa:EndpointReferenceType" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="Message" type="xsd:anyType" minOccurs="1" maxOccurs="1"/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <!--========== Message Types for NotificationConsumer  ===========-->
+      <xsd:element name="Notify">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="NotificationMessage" type="wsnt:NotificationMessageHolderType" minOccurs="1" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <!--========== Message Types for NotificationProducer  ===========-->
+      <xsd:element name="SubscribeResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="SubscriptionReference" type="wsa:EndpointReferenceType" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="GetCurrentMessage">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="Topic" type="wsnt:TopicExpressionType"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="GetCurrentMessageResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:any/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:complexType name="ResourceUnknownFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="ResourceUnknownFault" type="wsnt:ResourceUnknownFaultType"/>
+      <xsd:complexType name="SubscribeCreationFailedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="SubscribeCreationFailedFault" type="wsnt:SubscribeCreationFailedFaultType"/>
+      <xsd:complexType name="TopicPathDialectUnknownFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="TopicPathDialectUnknownFault" type="wsnt:TopicPathDialectUnknownFaultType"/>
+      <xsd:complexType name="InvalidTopicExpressionFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="InvalidTopicExpressionFault" type="wsnt:InvalidTopicExpressionFaultType"/>
+      <xsd:complexType name="TopicNotSupportedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="TopicNotSupportedFault" type="wsnt:TopicNotSupportedFaultType"/>
+      <xsd:complexType name="NoCurrentMessageOnTopicFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="NoCurrentMessageOnTopicFault" type="wsnt:NoCurrentMessageOnTopicFaultType"/>
+      <!--========== Message Types for SubscriptionManager  ===========-->
+      <xsd:element name="PauseSubscription">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:element name="PauseSubscriptionResponse">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:element name="ResumeSubscription">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:element name="ResumeSubscriptionResponse">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:complexType name="PauseFailedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="PauseFailedFault" type="wsnt:PauseFailedFaultType"/>
+      <xsd:complexType name="ResumeFailedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="ResumeFailedFault" type="wsnt:ResumeFailedFaultType"/>
+    </xsd:schema>
+  </wsdl:types>
+  <!--================ NotificationConsumer::Notify ================ 
+  Notify(
+    NotificationMessage
+      (TopicExpression, ProducerReference, Message)*
+  returns: n/a (one way)-->
+  <wsdl:message name="Notify">
+    <wsdl:part name="Notify" element="wsnt:Notify"/>
+  </wsdl:message>
+  <!--============== NotificationProducer::Subscribe =============== 
+  Subscribe(
+   (ConsumerEndpointReference, TopicExpression, [UseNotify],
+   [Precondition], [Selector], [SubscriptionPolicy], 
+   [InitialTerminationTime])   
+  returns: WS-Resource qualified EPR to a Subscription-->
+  <wsdl:message name="SubscribeRequest">
+    <wsdl:part name="SubscribeRequest" element="wsnt:Subscribe"/>
+  </wsdl:message>
+  <wsdl:message name="SubscribeResponse">
+    <wsdl:part name="SubscribeResponse" element="wsnt:SubscribeResponse"/>
+  </wsdl:message>
+  <wsdl:message name="ResourceUnknownFault">
+    <part name="ResourceUnknownFault" element="wsnt:ResourceUnknownFault"/>
+  </wsdl:message>
+  <wsdl:message name="SubscribeCreationFailedFault">
+    <part name="SubscribeCreationFailedFault" element="wsnt:SubscribeCreationFailedFault"/>
+  </wsdl:message>
+  <wsdl:message name="TopicPathDialectUnknownFault">
+    <part name="TopicPathDialectUnknownFault" element="wsnt:TopicPathDialectUnknownFault"/>
+  </wsdl:message>
+  <!--========== NotificationProducer::GetCurrentMessage =========== 
+  GetCurrentMessage(topicExpression)
+  returns: a NotificationMessage (xsd:any)-->
+  <wsdl:message name="GetCurrentMessageRequest">
+    <wsdl:part name="GetCurrentMessageRequest" element="wsnt:GetCurrentMessage"/>
+  </wsdl:message>
+  <wsdl:message name="GetCurrentMessageResponse">
+    <wsdl:part name="GetCurrentMessageResponse" element="wsnt:GetCurrentMessageResponse"/>
+  </wsdl:message>
+  <wsdl:message name="InvalidTopicExpressionFault">
+    <part name="InvalidTopicExpressionFault" element="wsnt:InvalidTopicExpressionFault"/>
+  </wsdl:message>
+  <wsdl:message name="TopicNotSupportedFault">
+    <part name="TopicNotSupportedFault" element="wsnt:TopicNotSupportedFault"/>
+  </wsdl:message>
+  <wsdl:message name="NoCurrentMessageOnTopicFault">
+    <part name="NoCurrentMessageOnTopicFault" element="wsnt:NoCurrentMessageOnTopicFault"/>
+  </wsdl:message>
+  <!--========== SubscriptionManager::PauseSubscription ============
+   PauseSubscription()
+   returns: empty-->
+  <wsdl:message name="PauseSubscriptionRequest">
+    <wsdl:part name="PauseSubscriptionRequest" element="wsnt:PauseSubscription"/>
+  </wsdl:message>
+  <wsdl:message name="PauseSubscriptionResponse">
+    <wsdl:part name="PauseSubscriptionResponse" element="wsnt:PauseSubscriptionResponse"/>
+  </wsdl:message>
+  <wsdl:message name="PauseFailedFault">
+    <part name="PauseFailedFault" element="wsnt:PauseFailedFault"/>
+  </wsdl:message>
+  <!--========= SubscriptionManager::ResumeSubscription ============
+   ResumeSubscription()
+   returns: empty-->
+  <wsdl:message name="ResumeSubscriptionRequest">
+    <wsdl:part name="ResumeSubscriptionRequest" element="wsnt:ResumeSubscription"/>
+  </wsdl:message>
+  <wsdl:message name="ResumeSubscriptionResponse">
+    <wsdl:part name="ResumeSubscriptionResponse" element="wsnt:ResumeSubscriptionResponse"/>
+  </wsdl:message>
+  <wsdl:message name="ResumeFailedFault">
+    <part name="ResumeFailedFault" element="wsnt:ResumeFailedFault"/>
+  </wsdl:message>
+  <!--=================== PortType Definitions =====================-->
+  <!--========= NotificationConsumer PortType Definition ===========-->
+  <wsdl:portType name="NotificationConsumer">
+    <wsdl:operation name="Notify">
+      <wsdl:input message="wsntw:Notify" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/Notify"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <!--========= NotificationProducer PortType Definition ===========-->
+  <wsdl:portType name="NotificationProducer" wsrp:ResourceProperties="wsnt:NotificationProducerRP">
+    <!--========== extends wsrpw:ResourceProperties =============-->
+    <wsdl:operation name="GetResourceProperty">
+      <wsdl:input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
+      <wsdl:output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
+      <wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
+    </wsdl:operation>
+    <!--=========== NotificationProducer Specific ==============-->
+    <wsdl:operation name="Subscribe">
+      <wsdl:input message="wsntw:SubscribeRequest" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/Subscribe"/>
+      <wsdl:output message="wsntw:SubscribeResponse" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/SubscribeResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+      <wsdl:fault name="SubscribeCreationFailedFault" message="wsntw:SubscribeCreationFailedFault"/>
+      <wsdl:fault name="TopicPathDialectUnknownFault" message="wsntw:TopicPathDialectUnknownFault"/>
+      <wsdl:fault name="InvalidTopicExpressionFault" message="wsntw:InvalidTopicExpressionFault"/>
+      <wsdl:fault name="TopicNotSupportedFault" message="wsntw:TopicNotSupportedFault"/>
+    </wsdl:operation>
+    <wsdl:operation name="GetCurrentMessage">
+      <wsdl:input message="wsntw:GetCurrentMessageRequest" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/GetCurrentMessage"/>
+      <wsdl:output message="wsntw:GetCurrentMessageResponse" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/GetCurrentMessageResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+      <wsdl:fault name="InvalidTopicExpressionFault" message="wsntw:InvalidTopicExpressionFault"/>
+      <wsdl:fault name="TopicNotSupportedFault" message="wsntw:TopicNotSupportedFault"/>
+      <wsdl:fault name="NoCurrentMessageOnTopicFault" message="wsntw:NoCurrentMessageOnTopicFault"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <!--========== SubscriptionManager PortType Definition ===========-->
+  <wsdl:portType name="SubscriptionManager" wsrp:ResourceProperties="wsnt:SubscriptionManagerRP">
+    <!--========== extends wsrpw:ResourceProperties =============-->
+    <wsdl:operation name="GetResourceProperty">
+      <wsdl:input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
+      <wsdl:output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
+      <wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
+    </wsdl:operation>
+    <!--=== extends wsrlw:ImmediateResourceTermination ==========-->
+    <wsdl:operation name="Destroy">
+      <wsdl:input message="wsrlw:DestroyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/Destroy"/>
+      <wsdl:output message="wsrlw:DestroyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/DestroyResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsrlw:ResourceUnknownFault"/>
+      <wsdl:fault name="ResourceNotDestroyedFault" message="wsrlw:ResourceNotDestroyedFault"/>
+    </wsdl:operation>
+    <!--=== extends wsrl:ScheduledResourceTermination ==========-->
+    <wsdl:operation name="SetTerminationTime">
+      <wsdl:input message="wsrlw:SetTerminationTimeRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTime"/>
+      <wsdl:output message="wsrlw:SetTerminationTimeResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTimeResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsrlw:ResourceUnknownFault"/>
+      <wsdl:fault name="UnableToSetTerminationTimeFault" message="wsrlw:UnableToSetTerminationTimeFault"/>
+      <wsdl:fault name="TerminationTimeChangeRejectedFault" message="wsrlw:TerminationTimeChangeRejectedFault"/>
+    </wsdl:operation>
+    <!--========= SubscriptionManager specific operations ======-->
+    <wsdl:operation name="PauseSubscription">
+      <wsdl:input message="wsntw:PauseSubscriptionRequest" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/PauseSubscription"/>
+      <wsdl:output message="wsntw:PauseSubscriptionResponse" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/PauseSubscriptionResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+      <wsdl:fault name="PauseFailedFault" message="wsntw:PauseFailedFault"/>
+    </wsdl:operation>
+    <wsdl:operation name="ResumeSubscription">
+      <wsdl:input message="wsntw:ResumeSubscriptionRequest" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/ResumeSubscription"/>
+      <wsdl:output message="wsntw:ResumeSubscriptionResponse" wsa:Action="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/ResumeSubscriptionResponse"/>
+      <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+      <wsdl:fault name="ResumeFailedFault" message="wsntw:ResumeFailedFault"/>
+    </wsdl:operation>
+  </wsdl:portType>
+</wsdl:definitions>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.xsd
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.xsd b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.xsd
new file mode 100644
index 0000000..9bdf6ae
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-BaseN.xsd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director.
+
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director.
+
+Copyright (C) OASIS Open (2004). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.--><xsd:schema targetNamespace="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd">
+  <!--======================== Imports  ============================-->
+  <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="WS-Addressing.xsd"/>
+  <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" schemaLocation="WS-ResourceProperties.xsd"/>
+  <!--========== Message Types for NotificationProducer  ===========-->
+  <xsd:element name="Subscribe">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType" minOccurs="1" maxOccurs="1"/>
+        <xsd:element name="TopicExpression" type="wsnt:TopicExpressionType" minOccurs="1" maxOccurs="1"/>
+        <xsd:element name="UseNotify" type="xsd:boolean" default="true" minOccurs="0" maxOccurs="1"/>
+        <xsd:element name="Precondition" type="wsrp:QueryExpressionType" minOccurs="0" maxOccurs="1"/>
+        <xsd:element name="Selector" type="wsrp:QueryExpressionType" minOccurs="0" maxOccurs="1"/>
+        <xsd:element name="SubscriptionPolicy" type="xsd:anyType" minOccurs="0" maxOccurs="1"/>
+        <xsd:element name="InitialTerminationTime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
+      </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+  <!--================= Topic Expression Container =================-->
+  <xsd:complexType name="TopicExpressionType" mixed="true">
+    <xsd:sequence>
+      <xsd:any minOccurs="0" maxOccurs="1" processContents="lax"/>
+    </xsd:sequence>
+    <xsd:attribute name="Dialect" type="xsd:anyURI"/>
+  </xsd:complexType>
+  <xsd:element name="TopicExpression" type="wsnt:TopicExpressionType"/>
+  <!--=============== Resource Property Related  ===================-->
+  <!--======== Resource Properties for NotificationProducer ========-->
+  <xsd:element name="Topic" type="wsnt:TopicExpressionType"/>
+  <xsd:element name="FixedTopicSet" type="xsd:boolean"/>
+  <xsd:element name="TopicExpressionDialects" type="xsd:anyURI"/>
+  <!--======== Resource Properties for SubscriptionManager =========-->
+  <xsd:element name="ConsumerReference" type="wsa:EndpointReferenceType"/>
+  <xsd:element name="UseNotify" type="xsd:boolean"/>
+  <xsd:element name="Precondition" type="wsrp:QueryExpressionType"/>
+  <xsd:element name="Selector" type="wsrp:QueryExpressionType"/>
+  <xsd:element name="SubscriptionPolicy" type="xsd:anyType"/>
+  <xsd:element name="CreationTime" type="xsd:dateTime"/>
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.wsdl
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.wsdl b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.wsdl
new file mode 100644
index 0000000..3d81ce5
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.wsdl
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director.
+
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director.
+
+Copyright (C) OASIS Open (2004). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.--><wsdl:definitions name="WS-ResourceLifetime" targetNamespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addr
 essing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema">
+      <xsd:include schemaLocation="WS-ResourceLifetime.xsd"/>
+      <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="WS-Addressing.xsd"/>
+      <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd" schemaLocation="WS-BaseFaults.xsd"/>
+      <!--==== Resource Properties for ScheduledResourceTermination ====-->
+      <xsd:element name="ScheduledResourceTerminationRP">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element maxOccurs="1" minOccurs="1" ref="wsrl:CurrentTime"/>
+            <xsd:element maxOccurs="1" minOccurs="1" ref="wsrl:TerminationTime"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <!--====== Message Types for ImmediateResourceTermination  =======-->
+      <xsd:element name="Destroy">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:element name="DestroyResponse">
+        <xsd:complexType/>
+      </xsd:element>
+      <xsd:complexType name="ResourceUnknownFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="ResourceUnknownFault" type="wsrl:ResourceUnknownFaultType"/>
+      <xsd:complexType name="ResourceNotDestroyedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="ResourceNotDestroyedFault" type="wsrl:ResourceNotDestroyedFaultType"/>
+      <!--====== Message Types for ScheduledResourceTermination  =======-->
+      <xsd:element name="SetTerminationTime">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="RequestedTerminationTime" nillable="true" type="xsd:dateTime"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="SetTerminationTimeResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="NewTerminationTime" nillable="true" type="xsd:dateTime"/>
+            <xsd:element name="CurrentTime" type="xsd:dateTime"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:complexType name="UnableToSetTerminationTimeFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="UnableToSetTerminationTimeFault" type="wsrl:UnableToSetTerminationTimeFaultType"/>
+      <xsd:complexType name="TerminationTimeChangeRejectedFaultType">
+        <xsd:complexContent>
+          <xsd:extension base="wsbf:BaseFaultType"/>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:element name="TerminationTimeChangeRejectedFault" type="wsrl:TerminationTimeChangeRejectedFaultType"/>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="DestroyResponse">
+    <wsdl:part element="wsrl:DestroyResponse" name="DestroyResponse"/>
+  </wsdl:message>
+  <wsdl:message name="SetTerminationTimeRequest">
+    <wsdl:part element="wsrl:SetTerminationTime" name="SetTerminationTimeRequest"/>
+  </wsdl:message>
+  <wsdl:message name="ResourceUnknownFault">
+    <wsdl:part element="wsrl:ResourceUnknownFault" name="ResourceUnknownFault"/>
+  </wsdl:message>
+  <wsdl:message name="DestroyRequest">
+    <wsdl:part element="wsrl:Destroy" name="DestroyRequest"/>
+  </wsdl:message>
+  <wsdl:message name="UnableToSetTerminationTimeFault">
+    <wsdl:part element="wsrl:UnableToSetTerminationTimeFault" name="UnableToSetTerminationTimeFault"/>
+  </wsdl:message>
+  <wsdl:message name="SetTerminationTimeResponse">
+    <wsdl:part element="wsrl:SetTerminationTimeResponse" name="SetTerminationTimeResponse"/>
+  </wsdl:message>
+  <wsdl:message name="ResourceNotDestroyedFault">
+    <wsdl:part element="wsrl:ResourceNotDestroyedFault" name="ResourceNotDestroyedFault"/>
+  </wsdl:message>
+  <wsdl:message name="TerminationTimeChangeRejectedFault">
+    <wsdl:part element="wsrl:TerminationTimeChangeRejectedFault" name="TerminationTimeChangeRejectedFault"/>
+  </wsdl:message>
+  <wsdl:portType name="ScheduledResourceTermination" wsrp:ResourceProperties="wsrl:ScheduledResourceTerminationRP">
+    <wsdl:operation name="SetTerminationTime">
+      <wsdl:input message="wsrlw:SetTerminationTimeRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTime"/>
+      <wsdl:output message="wsrlw:SetTerminationTimeResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTimeResponse"/>
+      <wsdl:fault message="wsrlw:UnableToSetTerminationTimeFault" name="UnableToSetTerminationTimeFault"/>
+      <wsdl:fault message="wsrlw:ResourceUnknownFault" name="ResourceUnknownFault"/>
+      <wsdl:fault message="wsrlw:TerminationTimeChangeRejectedFault" name="TerminationTimeChangeRejectedFault"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="ImmediateResourceTermination">
+    <wsdl:operation name="Destroy">
+      <wsdl:input message="wsrlw:DestroyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/Destroy"/>
+      <wsdl:output message="wsrlw:DestroyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/DestroyResponse"/>
+      <wsdl:fault message="wsrlw:ResourceNotDestroyedFault" name="ResourceNotDestroyedFault"/>
+      <wsdl:fault message="wsrlw:ResourceUnknownFault" name="ResourceUnknownFault"/>
+    </wsdl:operation>
+  </wsdl:portType>
+</wsdl:definitions>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.xsd
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.xsd b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.xsd
new file mode 100644
index 0000000..a6dbef7
--- /dev/null
+++ b/taverna-wsdl-activity/src/test/resources/net/sf/taverna/t2/activities/wsdl/wsrf/counterService/WS-ResourceLifetime.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director.
+
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director.
+
+Copyright (C) OASIS Open (2004). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.--><xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">
+  <!--=============== Resource Property Related  ===================-->
+  <!--==== Resource Properties for ScheduledResourceTermination ====-->
+  <xsd:element name="CurrentTime" type="xsd:dateTime"/>
+  <xsd:element name="TerminationTime" nillable="true" type="xsd:dateTime"/>
+  <!--============= Notification Message Related  ==================-->
+  <xsd:element name="TerminationNotification">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="TerminationTime" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
+        <xsd:element name="TerminationReason" type="xsd:anyType" minOccurs="0" maxOccurs="1"/>
+      </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+</xsd:schema>
\ No newline at end of file