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 21:36:48 UTC

[17/28] incubator-taverna-common-activities git commit: Temporarily empty repository

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
deleted file mode 100644
index 0437ff6..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * 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;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.ParserConfigurationException;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.RemoteHealthChecker;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.DisabledActivity;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.xml.sax.SAXException;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class WSDLActivityHealthChecker extends RemoteHealthChecker {
-
-	private Activity<?> activity;
-
-	public boolean canVisit(Object subject) {
-		if (subject == null) {
-			return false;
-		}
-		if (subject instanceof WSDLActivity) {
-			return true;
-		}
-		if (subject instanceof DisabledActivity) {
-			return (((DisabledActivity) subject).getActivity() instanceof WSDLActivity);
-		}
-		return false;
-	}
-
-	public VisitReport visit(Object o, List<Object> ancestors) {
-		List<VisitReport> reports = new ArrayList<VisitReport>();
-		activity = (Activity<?>) o;
-		String endpoint = null;
-
-		WSDLParser parser;
-		try {
-			JsonNode configuration = null;
-			if (activity instanceof WSDLActivity) {
-				configuration = ((WSDLActivity)activity).getConfiguration();
-			} else if (activity instanceof DisabledActivity) {
-				configuration = (JsonNode) ((DisabledActivity) activity).getActivityConfiguration();
-			}
-			endpoint = configuration.get("operation").get("wsdl").asText();
-			VisitReport wsdlEndpointReport = RemoteHealthChecker.contactEndpoint(activity, endpoint);
-			reports.add(wsdlEndpointReport);
-			if (!wsdlEndpointReport.getStatus().equals(Status.SEVERE)) {
-			    parser = new WSDLParser(endpoint);
-
-			    String operationName = configuration.get("operation").get("name").asText();
-			    try {
-                reports.add(testStyleAndUse(endpoint,
-							    parser,
-							    operationName));
-				reports.add(testEndpoint(parser, operationName));
-			    } catch (UnknownOperationException e) {
-				VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity,
-							 "Operation not found", HealthCheck.UNKNOWN_OPERATION,
-							 Status.SEVERE);
-				vr.setProperty("operationName", operationName);
-				vr.setProperty("endpoint", endpoint);
-				reports.add(vr);
-			    }
-			}
-
-		} catch (ParserConfigurationException e) {
-			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
-			vr.setProperty("exception", e);
-			vr.setProperty("endpoint", endpoint);
-			reports.add(vr);
-		} catch (WSDLException e) {
-			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
-			vr.setProperty("exception", e);
-			vr.setProperty("endpoint", endpoint);
-			reports.add(vr);
-		} catch (IOException e) {
-			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Read problem", HealthCheck.IO_PROBLEM, Status.SEVERE);
-			vr.setProperty("exception", e);
-			vr.setProperty("endpoint", endpoint);
-			reports.add(vr);
-		} catch (SAXException e) {
-			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
-			vr.setProperty("exception", e);
-			vr.setProperty("endpoint", endpoint);
-			reports.add(vr);
-		}
-
-		Status status = VisitReport.getWorstStatus(reports);
-		VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "WSDL Activity report", HealthCheck.NO_PROBLEM,
-				status, reports);
-
-		return report;
-	}
-	
-	public static boolean checkStyleAndUse(String style, String use) {
-		return !(style.equalsIgnoreCase("rpc") && use.equalsIgnoreCase("literal"));
-	}
-
-	private VisitReport testStyleAndUse(String endpoint, WSDLParser parser, String operationName) throws
-                UnknownOperationException {
-		VisitReport report;
-		String style = parser.getStyle().toLowerCase();
-		String use = "?";
-		use = parser.getUse(operationName).toLowerCase();
-		if (!checkStyleAndUse(style, use)) {
-		    report = new VisitReport(HealthCheck.getInstance(), activity,
-					     "Unsupported style", HealthCheck.UNSUPPORTED_STYLE,
-					     Status.SEVERE);
-		    report.setProperty("use", use);
-		    report.setProperty("style", style);
-		    report.setProperty("endpoint", endpoint);
-		} else {
-		    report = new VisitReport(HealthCheck.getInstance(), activity, style + "/"
-					     + use + " is OK", HealthCheck.NO_PROBLEM, Status.OK);
-		}
-		return report;
-	}
-
-	private VisitReport testEndpoint(WSDLParser parser, String operationName) {
-		List<VisitReport> reports = new ArrayList<VisitReport>();
-		List<String> endpoints = parser
-				.getOperationEndpointLocations(operationName);
-		for (String endpoint : endpoints) {
-			reports.add(RemoteHealthChecker.contactEndpoint(activity, endpoint));
-		}
-
-		Status status = VisitReport.getWorstStatus(reports);
-		if (reports.size()==1) {
-			return reports.get(0);
-		}
-		else if (reports.size()==0) {
-		    VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "Service could not be located.", HealthCheck.NO_ENDPOINTS, Status.SEVERE);
-		    report.setProperty("operationName", operationName);
-		    return report;
-		}
-		else {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Endpoint tests",  HealthCheck.NO_PROBLEM, status, reports);
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
deleted file mode 100644
index ac012ae..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2011 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;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-
-/**
- * Configuration for a WSDL operation.
- *
- * @author David Withers
- */
-@ConfigurationBean(uri = WSDLActivity.URI + "/operation")
-public class WSDLOperationConfigurationBean {
-
-	private URI wsdl;
-	private String operationName;
-
-	public URI getWsdl() {
-		return wsdl;
-	}
-
-	@ConfigurationProperty(name = "wsdl", label = "WSDL URL", description = "The location of the WSDL definition for the web service")
-	public void setWsdl(URI wsdl) {
-		this.wsdl = wsdl;
-	}
-
-	public String getOperationName() {
-		return operationName;
-	}
-
-	@ConfigurationProperty(name = "name", label = "Operation Name", description = "The name of the WSDL operation")
-	public void setOperationName(String operationName) {
-		this.operationName = operationName;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
deleted file mode 100644
index e38a14e..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<body>
-Contains the activity classes required to interact with a WSDL based web-service.
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
deleted file mode 100644
index 69033bb..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.security.GeneralSecurityException;
-import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-/**
- * This class provide various static methods that relax X509 certificate and 
- * hostname verification while using the SSL over the HTTP protocol.
- * <p>
- * Call:
- * SSLUtilities.trustAllHostnames() to turn off the default hostname verification on HTTPS connection;
- * SSLUtilities.trustAllHttpsCertificates() to turn off the default certificate validation on HTTPS connection.
- * SSLUtilities.stopTrustingAllHttpsCertificates() to stop trusting all hosts' certificates and go back to default Java settings.
- *
- * @author    Francis Labrie
- */
-public final class SSLUtilities {
-
-  /**
-   * Hostname verifier.
-   */
-  private static HostnameVerifier hostnameVerifier;
-  /**
-   * Thrust managers.
-   */
-  private static TrustManager[] trustManagers;
-
-  /**
-   * Set the default Hostname Verifier to an instance of a fake class that 
-   * trust all hostnames.
-   */
-  public static void trustAllHostnames() {
-      // Create a trust manager that does not validate certificate chains
-      if(hostnameVerifier == null) {
-          hostnameVerifier = new FakeHostnameVerifier();
-      } // if
-        // Install the all-trusting host name verifier:
-      HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
-  } // _trustAllHttpsCertificates
-  
-  /**
-   * Set the default X509 Trust Manager to an instance of a fake class that 
-   * trust all certificates, even the self-signed ones.
-   */
-  public static void trustAllHttpsCertificates() {
-      SSLContext context;
-      
-      // Create a trust manager that does not validate certificate chains
-      if(trustManagers == null) {
-          trustManagers = new TrustManager[] {new FakeX509TrustManager()};
-      } // if
-      // Install the all-trusting trust manager:
-      try {
-      context = SSLContext.getInstance("SSL");
-      context.init(null, trustManagers, new SecureRandom());
-      } catch(GeneralSecurityException gse) {
-          throw new IllegalStateException(gse.getMessage());
-      } // catch
-      HttpsURLConnection.setDefaultSSLSocketFactory(context.
-          getSocketFactory());
-  } // _trustAllHttpsCertificates
-  
-  /**
-   * This class implements a fake hostname verificator, trusting any host 
-   * name.
-   *
-   * @author    Francis Labrie
-   */
-  public static class FakeHostnameVerifier implements HostnameVerifier {
-      
-      /**
-       * Always return true, indicating that the host name is 
-       * an acceptable match with the server's authentication scheme.
-       *
-       * @param hostname        the host name.
-       * @param session         the SSL session used on the connection to 
-       * host.
-       * @return                the true boolean value 
-       * indicating the host name is trusted.
-       */
-      public boolean verify(String hostname, 
-          javax.net.ssl.SSLSession session) {
-          return(true);
-      } // verify
-  } // FakeHostnameVerifier
-
-  /**
-   * This class allow any X509 certificates to be used to authenticate the 
-   * remote side of a secure socket, including self-signed certificates.
-   *
-   * @author    Francis Labrie
-   */
-  public static class FakeX509TrustManager implements X509TrustManager {
-
-      /**
-       * Empty array of certificate authority certificates.
-       */
-      private static final X509Certificate[] _AcceptedIssuers = 
-          new X509Certificate[] {};
-
-      /**
-       * Always trust for client SSL chain peer certificate 
-       * chain with any authType authentication types.
-       *
-       * @param chain           the peer certificate chain.
-       * @param authType        the authentication type based on the client 
-       * certificate.
-       */
-      public void checkClientTrusted(X509Certificate[] chain, 
-          String authType) {
-      } // checkClientTrusted
-      
-      /**
-       * Always trust for server SSL chain peer certificate 
-       * chain with any authType exchange algorithm types.
-       *
-       * @param chain           the peer certificate chain.
-       * @param authType        the key exchange algorithm used.
-       */
-      public void checkServerTrusted(X509Certificate[] chain, 
-          String authType) {
-      } // checkServerTrusted
-      
-      /**
-       * Return an empty array of certificate authority certificates which 
-       * are trusted for authenticating peers.
-       *
-       * @return                a empty array of issuer certificates.
-       */
-      public X509Certificate[] getAcceptedIssuers() {
-          return(_AcceptedIssuers);
-      } // getAcceptedIssuers
-  } // FakeX509TrustManager
-  
-  /**
-   * Stop trusting all certificates and go back to the default settings.
-   * 
-   * @author Alex Nenadic
-   */
-  public static void stopTrustingAllHttpsCertificates(){
-      HttpsURLConnection.setDefaultSSLSocketFactory((SSLSocketFactory) SSLSocketFactory.getDefault());
-  }
-} // SSLUtilities
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
deleted file mode 100644
index aa8084b..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.activities.wsdl.WSDLActivity;
-
-/**
- * Various security profiles for Web services.
- *
- * @author Alex Nenadic
- *
- */
-public class SecurityProfiles {
-
-	public static URI SECURITY = URI.create(WSDLActivity.URI).resolve("wsdl/security");
-
-	/**
-	  * Security profile for Web services that require
-	 * UsernameToken authentication with plaintext password.
-	 * Such services should typically be invoked over HTTPS.
-	 */
-	public static final URI WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD = SECURITY.resolve("#WSSecurityUsernameTokenPlainTextPassword");
-	/**
-	 * XML string for configuring Axis engine with wss4j handlers to handle setting security
-	 * headers on the SOAP message for profile WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD.
-	 */
-	public static final String WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
-	"<globalConfiguration>" +
-	"<requestFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
-	"<parameter name=\"action\" value=\"UsernameToken\"/>" +
-	"<parameter name=\"passwordType\" value=\"PasswordText\"/>" +
-	"</handler>"+
-	"</requestFlow>" +
-	"</globalConfiguration>" +
-	"<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
-	"</deployment>";
-
-	 /**
-	  * Security profile for Web services that require
-	 * UsernameToken authentication with digest password.
-	 * Such services would typically be invoked over HTTPS.
-	 */
-	public static final URI WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD = SECURITY.resolve("#WSSecurityUsernameTokenDigestPassword");
-	/**
-	 * XML string for configuring Axis engine with wss4j handlers to handle setting security
-	 * headers on the SOAP message for profile WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD.
-	 */
-	public static final String WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
-	"<globalConfiguration>" +
-	"<requestFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
-	"<parameter name=\"action\" value=\"UsernameToken\"/>" +
-	"<parameter name=\"passwordType\" value=\"PasswordDigest\"/>" +
-	"</handler>"+
-	"</requestFlow>" +
-	"</globalConfiguration>" +
-	"<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
-	"</deployment>";
-
-	 /**
-	  * Security profile for Web services that require a timestamp SOAP header
-	  * to be sent in addition to UsernameToken authentication with plaintext password.
-	 * Such services should typically be invoked over HTTPS.
-	 */
-	public static final URI WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD = SECURITY.resolve("#WSSecurityTimestampUsernameTokenPlainTextPassword");
-	/**
-	 * XML string for configuring Axis engine with wss4j handlers to handle setting security
-	 * headers on the SOAP message for profile WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD.
-	 */
-	public static final String WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTETPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
-	"<globalConfiguration>" +
-	"<requestFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
-	"<parameter name=\"action\" value=\"Timestamp UsernameToken\"/>" +
-	"<parameter name=\"passwordType\" value=\"PasswordText\"/>" +
-	"</handler>"+
-	"</requestFlow>" +
-	"<responseFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllReceiver\">" +
-	"<parameter name=\"action\" value=\"Timestamp\"/>" +
-	"</handler>"+
-	"</responseFlow>" +
-	"</globalConfiguration>" +
-	"<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
-	"</deployment>";
-
-	 /**
-	  * Security profile for Web services that require a timestamp SOAP header
-	  * to be sent in addition to UsernameToken authentication with digest password.
-	 * Such services would typically be invoked over HTTPS.
-	 */
-	public static final URI WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD = SECURITY.resolve("#WSSecurityTimestampUsernameTokenDigestPassword");
-	/**
-	 * XML string for configuring Axis engine with wss4j handlers to handle setting security
-	 * headers on the SOAP message for profile WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD.
-	 */
-	public static final String WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
-	"<globalConfiguration>" +
-	"<requestFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
-	"<parameter name=\"action\" value=\"Timestamp UsernameToken\"/>" +
-	"<parameter name=\"passwordType\" value=\"PasswordDigest\"/>" +
-	"</handler>"+
-	"</requestFlow>" +
-	"<responseFlow>" +
-	"<handler type=\"java:org.apache.ws.axis.security.WSDoAllReceiver\">" +
-	"<parameter name=\"action\" value=\"Timestamp\"/>" +
-	"</handler>"+
-	"</responseFlow>" +
-	"</globalConfiguration>" +
-	"<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
-	"</deployment>";
-
-	/**
-	 * Security profile for Web services that require HTTP Basic Authentication.
-	 * There is no WS-Security involved.
-	 * Such services should typically be invoked over HTTPS.
-	 */
-	public static final URI HTTP_BASIC_AUTHN = SECURITY.resolve("#HTTPBasicAuthNPlainTextPassword");
-
-	/**
-	 * Security profile for Web services that require HTTP Digest Authentication.
-	 * There is no WS-Security involved.
-	 * Such services would typically be invoked over HTTPS.
-	 */
-	public static final URI HTTP_DIGEST_AUTHN = SECURITY.resolve("#HTTPDigestAuthN");
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
deleted file mode 100644
index 19ecb14..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.util.Hashtable;
-
-import javax.net.ssl.SSLContext;
-
-import org.apache.axis.components.net.BooleanHolder;
-import org.apache.axis.components.net.JSSESocketFactory;
-
-public class TavernaAxisCustomSSLSocketFactory extends JSSESocketFactory {
-
-
-	public TavernaAxisCustomSSLSocketFactory(Hashtable attributes) {
-		super(attributes);
-	}
-
-	@Override
-	public Socket create(String host, int port, StringBuffer otherHeaders,
-			BooleanHolder useFullURL) throws Exception {
-		// Make sure we always pick up the default socket factory from SSLContext, which is based on 
-		// Taverna's Keystore and Truststore and gets updated when they get updated (it may have
-		// been updated in the menatime so just refresh it here just in case).
-		initFactory();
-		return super.create(host, port, otherHeaders, useFullURL);
-	}
-	
-	@Override
-	protected void initFactory() throws IOException {
-		try{
-			// Set it to the default one from the SSLContext which is set to use Taverna's Keystore and Truststore
-			sslFactory = SSLContext.getDefault().getSocketFactory();
-		}
-		catch (Exception e) {
-			throw new IOException("Could not get the Taverna's default SSLSocketFactory from SSLContext",e);
-		}
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java
deleted file mode 100644
index 5660cbe..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * 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.security;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-import org.apache.log4j.Logger;
-
-/**
- * An implementation of SSLSocketFactory which delegates to one of two internal
- * SSLSocketFactory implementations. The implementation delegated to is
- * determined by a thread local property and is either the default SSL socket or
- * a customized one with a trust manager that allows the use of unsigned server
- * certificates.
- * <p>
- * To set this as the default call install() prior to making any HTTPS
- * connections, then bracket code which needs to trust unsigned certificates in
- * the startTrustingEverything() and stopTrustingEverything() methods.
- * 
- * @author Tom Oinn
- * 
- */
-public class ThreadLocalSSLSocketFactory extends SSLSocketFactory {
-
-	private static Logger logger = Logger
-	.getLogger(ThreadLocalSSLSocketFactory.class);
-
-	/**
-	 * Calls to open HTTPS connections will trust unsigned certificates afer
-	 * this call is made, this is scoped to the current thread only.
-	 */
-	public static void startTrustingEverything() {
-		threadLocalFactory.set(createAlwaysTrustingFactory());
-	}
-
-	/**
-	 * Stop trusting unsigned certificates, reverting to the default behaviour
-	 * for the current thread.
-	 */
-	public static void stopTrustingEverything() {
-		threadLocalFactory.set(null);
-	}
-
-	/**
-	 * Set this as the default global socket factory for HTTPS connections
-	 */
-	public static void install() {
-		HttpsURLConnection
-				.setDefaultSSLSocketFactory(new ThreadLocalSSLSocketFactory());
-	}
-
-	/**
-	 * Determine whether the current thread will trust unsigned certificates
-	 */
-	public static boolean isTrustingEverything() {
-		return (threadLocalFactory.get() != null);
-	}
-
-	/**
-	 * Never construct manually
-	 */
-	private ThreadLocalSSLSocketFactory() {
-		super();
-	}
-
-	private static ThreadLocal<SSLSocketFactory> threadLocalFactory = new ThreadLocal<SSLSocketFactory>();
-
-	private static SSLSocketFactory createAlwaysTrustingFactory() {
-		SSLContext sc = null;
-		try {
-			sc = SSLContext.getInstance("SSL");
-		} catch (NoSuchAlgorithmException e1) {
-
-			logger.error("No SSL algorithm", e1);
-		}
-		TrustManager overlyTrusting = new X509TrustManager() {
-
-			public void checkClientTrusted(X509Certificate[] arg0, String arg1)
-					throws CertificateException {
-
-			}
-
-			public void checkServerTrusted(X509Certificate[] arg0, String arg1)
-					throws CertificateException {
-
-			}
-
-			public X509Certificate[] getAcceptedIssuers() {
-				return null;
-			}
-
-		};
-		try {
-			sc.init(null, new TrustManager[] { overlyTrusting },
-					new SecureRandom());
-		} catch (KeyManagementException e) {
-			logger.error("Unable to initialize SSLContext", e);
-		}
-		return sc.getSocketFactory();
-
-	}
-
-	private SSLSocketFactory getFactory() {
-		if (threadLocalFactory.get() == null) {
-			return (SSLSocketFactory) SSLSocketFactory.getDefault();
-		} else {
-			return threadLocalFactory.get();
-		}
-	}
-
-	@Override
-	public Socket createSocket(Socket arg0, String arg1, int arg2, boolean arg3)
-			throws IOException {
-		return getFactory().createSocket(arg0, arg1, arg2, arg3);
-	}
-
-	@Override
-	public String[] getDefaultCipherSuites() {
-		return getFactory().getDefaultCipherSuites();
-	}
-
-	@Override
-	public String[] getSupportedCipherSuites() {
-		return getFactory().getSupportedCipherSuites();
-	}
-
-	@Override
-	public Socket createSocket() throws IOException {
-		return getFactory().createSocket();
-	}
-
-	@Override
-	public Socket createSocket(String arg0, int arg1) throws IOException,
-			UnknownHostException {
-		return getFactory().createSocket(arg0, arg1);
-	}
-
-	@Override
-	public Socket createSocket(InetAddress arg0, int arg1) throws IOException {
-		return getFactory().createSocket(arg0, arg1);
-	}
-
-	@Override
-	public Socket createSocket(String arg0, int arg1, InetAddress arg2, int arg3)
-			throws IOException, UnknownHostException {
-		return getFactory().createSocket(arg0, arg1, arg2, arg3);
-	}
-
-	@Override
-	public Socket createSocket(InetAddress arg0, int arg1, InetAddress arg2,
-			int arg3) throws IOException {
-		return getFactory().createSocket(arg0, arg1, arg2, arg3);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java
deleted file mode 100644
index 7e9f909..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * 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.wss4j;
-
-import java.util.Vector;
-
-//import net.sf.taverna.t2.security.agents.SAException;
-//import net.sf.taverna.t2.security.agents.WSSecurityAgent;
-
-//import org.apache.commons.logging.Log;
-//import org.apache.commons.logging.LogFactory;
-//import org.apache.log4j.Logger;
-import org.apache.ws.axis.security.WSDoAllSender;
-import org.apache.ws.security.WSConstants;
-import org.apache.ws.security.WSEncryptionPart;
-import org.apache.ws.security.WSSConfig;
-import org.apache.ws.security.WSSecurityException;
-import org.apache.ws.security.handler.RequestData;
-import org.apache.ws.security.handler.WSHandlerConstants;
-import org.apache.ws.security.message.WSSecHeader;
-import org.apache.ws.security.util.WSSecurityUtil;
-import org.w3c.dom.Document;
-
-public class T2WSDoAllSender extends WSDoAllSender{
-	
-    /**
-	 * This is a security handler for wss4j that invokes security agents
-	 * whenever access to the user's credentials (passwords, private keys) 
-	 * or secret keys is required. The security agent performs the necessary
-	 * security operations on the message to be sent and returns the message. 
-	 */
-	private static final long serialVersionUID = 1L;
-
-	//private static Log log = LogFactory.getLog(T2WSDoAllSender.class.getName());
-
-   // private boolean doDebug = log.isDebugEnabled();
-    
-   // private static Logger logger = Logger.getLogger(T2WSDoAllSender.class);
-    
-    /**                                                             
-     * Performs all defined security actions to set-up the SOAP request.
-     * 
-     * This method overrides the doSenderAction() method of WSHandler class
-     * by setting the actions to be executed to use T2 security agents.
-     * 
-     * 
-     * @param doAction a set defining the actions to do 
-     * @param doc   the request as DOM document 
-     * @param reqData a data storage to pass values around bewteen methods
-     * @param actions a vector holding the actions to do in the order defined
-     *                in the deployment file or property
-     * @throws WSSecurityException
-     */
-    @Override
-    protected void doSenderAction(int doAction, Document doc,
-                                  RequestData reqData, Vector actions, 
-				  boolean isRequest)
-            throws WSSecurityException {
-    	
-
-        boolean mu = decodeMustUnderstand(reqData);
-
-        WSSConfig wssConfig = WSSConfig.getNewInstance();
-        
-        wssConfig
-	    .setEnableSignatureConfirmation(decodeEnableSignatureConfirmation(reqData));
-        
-        wssConfig
-	    .setPrecisionInMilliSeconds(decodeTimestampPrecision(reqData));
-        reqData.setWssConfig(wssConfig);
-
-        Object mc = reqData.getMsgContext();
-        String actor = getString(WSHandlerConstants.ACTOR, mc);
-        reqData.setActor(actor);
-
-        WSSecHeader secHeader = new WSSecHeader(actor, mu);
-        secHeader.insertSecurityHeader(doc);
-        
-        reqData.setSecHeader(secHeader);
-        reqData.setSoapConstants(WSSecurityUtil.getSOAPConstants(doc
-                .getDocumentElement()));
-        /*
-         * Here we have action, username, password, and actor, mustUnderstand.
-         * Now get the action specific parameters.
-         */
-        if ((doAction & WSConstants.UT) == WSConstants.UT) {
-            decodeUTParameter(reqData);
-        }
-        /*
-         * Here we have action, username, password, and actor, mustUnderstand.
-         * Now get the action specific parameters.
-         */
-        if ((doAction & WSConstants.UT_SIGN) == WSConstants.UT_SIGN) {
-            decodeUTParameter(reqData);
-            decodeSignatureParameter(reqData);
-        }
-        /*
-         * Get and check the Signature specific parameters first because they
-         * may be used for encryption too.
-         */
-        if ((doAction & WSConstants.SIGN) == WSConstants.SIGN) {
-            reqData.setSigCrypto(loadSignatureCrypto(reqData));
-            decodeSignatureParameter(reqData);
-        }
-        /*
-         * If we need to handle signed SAML token then we need may of the
-         * Signature parameters. The handle procedure loads the signature crypto
-         * file on demand, thus don't do it here.
-         */
-        if ((doAction & WSConstants.ST_SIGNED) == WSConstants.ST_SIGNED) {
-            decodeSignatureParameter(reqData);
-        }
-        /*
-         * Set and check the encryption specific parameters, if necessary take
-         * over signature parameters username and crypto instance.
-         */
-        if ((doAction & WSConstants.ENCR) == WSConstants.ENCR) {
-            reqData.setEncCrypto(loadEncryptionCrypto(reqData));
-            decodeEncryptionParameter(reqData);
-        }
-        /*
-         * If after all the parsing no Signature parts defined, set here a
-         * default set. This is necessary because we add SignatureConfirmation
-         * and therefore the default (Body) must be set here. The default setting
-         * in WSSignEnvelope doesn't work because the vector is not empty anymore.
-         */
-        if (reqData.getSignatureParts().isEmpty()) {
-            WSEncryptionPart encP = new WSEncryptionPart(reqData.getSoapConstants()
-                    .getBodyQName().getLocalPart(), reqData.getSoapConstants()
-                    .getEnvelopeURI(), "Content");
-            reqData.getSignatureParts().add(encP);
-        }
-        /*
-         * If SignatureConfirmation is enabled and this is a reqsponse then
-         * insert SignatureCOnfrmation elements, note their wsu:id in the signature
-         * parts. They will be signed automatically during a (probably) defined
-         * SIGN action.
-         */
-        if (wssConfig.isEnableSignatureConfirmation() && !isRequest) {
-            String done;
-            if ((done = (String) getProperty(reqData.getMsgContext(),
-                    WSHandlerConstants.SIG_CONF_DONE)) == null
-                    || !DONE.equals(done)) {
-                Vector results = null;
-                if ((results = (Vector) getProperty(reqData.getMsgContext(),
-                        WSHandlerConstants.RECV_RESULTS)) != null) {
-                    wssConfig.getAction(WSConstants.SC).execute(this, WSConstants.SC, doc, reqData);
-                }
-            }
-        }
-        /*
-         * Here we have all necessary information to perform the requested
-         * action(s).
-         */
-        
-        // Get the security agent
-       /* WSSecurityAgent sa = (WSSecurityAgent) ((MessageContext)reqData.getMsgContext()).getProperty("security_agent");
-   
-        // Perform security actions
-        for (int i = 0; i < actions.size(); i++) {
-
-            int actionToDo = ((Integer) actions.get(i)).intValue();
-            if (doDebug) {
-                log.debug("Performing Action: " + actionToDo);
-            }
-
-            switch (actionToDo) {
-                case WSConstants.UT:{
-                	try {
-    					sa.wssUsernameToken(doc, reqData);
-    				} catch (SAException e) {
-    					logger.error("", e);
-    				} break;
-				}
-                case WSConstants.ENCR:
-                case WSConstants.SIGN:{//sa.wssSign(doc, reqData); break;}
-                case WSConstants.ST_SIGNED:
-                case WSConstants.ST_UNSIGNED:
-                case WSConstants.TS:
-                case WSConstants.UT_SIGN:
-                    wssConfig.getAction(actionToDo).execute(this, actionToDo, doc, reqData);
-                    break;
-                case WSConstants.NO_SERIALIZE:
-                    reqData.setNoSerialization(true);
-                    break;
-            }
-        } */
-
-        /*
-         * If this is a request then store all signature values. Add ours to
-         * already gathered values because of chained handlers, e.g. for
-         * other actors.
-         */
-
-        if (wssConfig.isEnableSignatureConfirmation() && isRequest) {
-            if (reqData.getSignatureValues().size() > 0) {
-                Vector sigv = null;
-                if ((sigv = (Vector) getProperty(reqData.getMsgContext(),
-                        WSHandlerConstants.SEND_SIGV)) == null) {
-                    sigv = new Vector();
-                    setProperty(reqData.getMsgContext(),
-                            WSHandlerConstants.SEND_SIGV, sigv);
-                }
-                // sigv.add(reqData.getSignatureValues());
-                sigv.addAll(reqData.getSignatureValues());
-            }
-        }
-    }
-
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java
deleted file mode 100644
index a30c6a2..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * 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 java.util.ArrayList;
-import java.util.List;
-
-import net.sf.taverna.t2.activities.wsdl.WSDLActivity;
-import net.sf.taverna.t2.workflowmodel.CompoundEdit;
-import net.sf.taverna.t2.workflowmodel.Dataflow;
-import net.sf.taverna.t2.workflowmodel.Edit;
-import net.sf.taverna.t2.workflowmodel.EditException;
-import net.sf.taverna.t2.workflowmodel.Edits;
-import net.sf.taverna.t2.workflowmodel.EventForwardingOutputPort;
-import net.sf.taverna.t2.workflowmodel.EventHandlingInputPort;
-import net.sf.taverna.t2.workflowmodel.InputPort;
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-import net.sf.taverna.t2.workflowmodel.Processor;
-import net.sf.taverna.t2.workflowmodel.ProcessorInputPort;
-import net.sf.taverna.t2.workflowmodel.ProcessorOutputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.utils.Tools;
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class AddXMLSplitterEdit implements Edit<Dataflow> {
-
-	private final Edits edits;
-	private final Activity<?> activity;
-	private final String portName;
-	private final boolean isInput;
-	private CompoundEdit compoundEdit1 = null;
-	private Edit<?> linkUpEdit;
-	private final Dataflow dataflow;
-	private boolean applied = false;
-
-	public AddXMLSplitterEdit(Dataflow dataflow, Activity<?> activity,
-			String portName, boolean isInput, Edits edits) {
-		this.dataflow = dataflow;
-		this.activity = activity;
-		this.portName = portName;
-		this.isInput = isInput;
-		this.edits = edits;
-	}
-
-	@Override
-	public Dataflow doEdit() throws EditException {
-		if (applied) throw new EditException("Edit has already been applied!");
-		List<Edit<?>> editList = new ArrayList<Edit<?>>();
-
-		Activity<JsonNode> splitter = null;
-		String sourcePortName = "";
-		Processor sourceProcessor = null;
-		Activity<?> sourceActivity = null;
-
-		String sinkPortName = "";
-		Processor sinkProcessor = null;
-		Activity<?> sinkActivity = null;
-
-
-		Processor activityProcessor = findProcessorForActivity(dataflow,
-				activity);
-		if (activityProcessor == null) {
-			throw new EditException(
-					"Cannot find the processor that the activity belongs to");
-		}
-
-
-		String displayName = portName;
-		if (portName.equals("parameters")) {
-			displayName = isInput ? "input" : "output";
-		}
-		String processorName = activityProcessor.getLocalName();
-		String candidateName;
-		if (displayName.startsWith(processorName)) {
-			// No need to make GetRequest_GetRequestResponse
-			candidateName = displayName;
-		} else {
-			// Combine with processor name
-			String displayProcessorName;
-			if (activity instanceof XMLOutputSplitterActivity || activity instanceof XMLInputSplitterActivity) {
-				// For splitters on splitters - avoid adding up blah_bluh_blih_more_stuff
-				String[] processorNameSplit = processorName.replace("_input", "").replace("_output", "").split("_");
-				displayProcessorName = processorNameSplit[processorNameSplit.length-1];
-			} else {
-				displayProcessorName = activityProcessor.getLocalName();
-			}
-			candidateName = displayProcessorName + "_" + displayName;
-		}
-		String name = Tools.uniqueProcessorName(candidateName, dataflow);
-		Processor splitterProcessor = edits.createProcessor(name);
-
-		try {
-			if (activity instanceof XMLInputSplitterActivity) {
-				if (!isInput) {
-					throw new EditException(
-							"Can only add an input splitter to another input splitter");
-				}
-				TypeDescriptor descriptor = ((XMLInputSplitterActivity) activity)
-						.getTypeDescriptorForInputPort(portName);
-				if (descriptor instanceof ArrayTypeDescriptor && !((ArrayTypeDescriptor)descriptor).isWrapped()) {
-					descriptor=((ArrayTypeDescriptor)descriptor).getElementType();
-				}
-
-				JsonNode bean = XMLSplitterConfigurationBeanBuilder
-						.buildBeanForInput(descriptor);
-				splitter = new XMLInputSplitterActivity();
-				editList.add(edits.getConfigureActivityEdit(splitter, bean));
-
-			} else if (activity instanceof XMLOutputSplitterActivity) {
-				if (isInput) {
-					throw new EditException(
-							"Can only add an output splitter to another output splitter");
-				}
-				TypeDescriptor descriptor = ((XMLOutputSplitterActivity) activity)
-						.getTypeDescriptorForOutputPort(portName);
-
-				if (descriptor instanceof ArrayTypeDescriptor && !((ArrayTypeDescriptor)descriptor).isWrapped()) {
-					descriptor=((ArrayTypeDescriptor)descriptor).getElementType();
-				}
-
-				JsonNode bean = XMLSplitterConfigurationBeanBuilder
-						.buildBeanForOutput(descriptor);
-				splitter = new XMLOutputSplitterActivity();
-				editList.add(edits.getConfigureActivityEdit(splitter, bean));
-
-			} else if (activity instanceof WSDLActivity) {
-				if (isInput) {
-					TypeDescriptor descriptor = ((WSDLActivity) activity)
-							.getTypeDescriptorForInputPort(portName);
-					JsonNode bean = XMLSplitterConfigurationBeanBuilder
-							.buildBeanForInput(descriptor);
-					splitter = new XMLInputSplitterActivity();
-					editList
-							.add(edits.getConfigureActivityEdit(splitter, bean));
-				} else {
-					TypeDescriptor descriptor = ((WSDLActivity) activity)
-							.getTypeDescriptorForOutputPort(portName);
-					JsonNode bean = XMLSplitterConfigurationBeanBuilder
-							.buildBeanForOutput(descriptor);
-					splitter = new XMLOutputSplitterActivity();
-					editList
-							.add(edits.getConfigureActivityEdit(splitter, bean));
-				}
-			} else {
-				throw new EditException(
-						"The activity type is not suitable for adding xml processing processors");
-			}
-		} catch (Exception e) {
-			throw new EditException(
-					"An error occured whilst tyring to add an XMLSplitter to the activity:"
-							+ activity, e);
-		}
-
-		if (isInput) {
-			sourcePortName = "output";
-			sinkPortName = portName;
-			sinkProcessor = activityProcessor;
-			sinkActivity = activity;
-			sourceProcessor = splitterProcessor;
-			sourceActivity = splitter;
-		}
-		else {
-			sourcePortName = portName;
-			sinkPortName = "input";
-			sinkProcessor = splitterProcessor;
-			sinkActivity = splitter;
-			sourceProcessor = activityProcessor;
-			sourceActivity = activity;
-		}
-
-		editList.add(edits.getDefaultDispatchStackEdit(splitterProcessor));
-		editList.add(edits.getAddActivityEdit(splitterProcessor, splitter));
-//		editList.add(edits
-//				.getMapProcessorPortsForActivityEdit(splitterProcessor));
-		editList.add(edits.getAddProcessorEdit(dataflow, splitterProcessor));
-
-		compoundEdit1 = new CompoundEdit(editList);
-		compoundEdit1.doEdit();
-
-		List<Edit<?>> linkUpEditList = new ArrayList<Edit<?>>();
-
-		EventForwardingOutputPort source = getSourcePort(sourceProcessor, sourceActivity,
-				sourcePortName, linkUpEditList);
-		EventHandlingInputPort sink = getSinkPort(sinkProcessor, sinkActivity, sinkPortName, linkUpEditList);
-
-		if (source == null)
-			throw new EditException(
-					"Unable to find the source port when linking up "
-							+ sourcePortName + " to " + sinkPortName);
-		if (sink == null)
-			throw new EditException(
-					"Unable to find the sink port when linking up "
-							+ sourcePortName + " to " + sinkPortName);
-
-		linkUpEditList.add(net.sf.taverna.t2.workflowmodel.utils.Tools.getCreateAndConnectDatalinkEdit(dataflow, source, sink, edits));
-
-		linkUpEdit = new CompoundEdit(linkUpEditList);
-		linkUpEdit.doEdit();
-		applied = true;
-		return dataflow;
-	}
-
-	private EventHandlingInputPort getSinkPort(Processor processor, Activity<?> activity,
-			String portName, List<Edit<?>> editList) {
-		InputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools.getActivityInputPort(activity, portName);
-		//check if processor port exists
-		EventHandlingInputPort input = net.sf.taverna.t2.workflowmodel.utils.Tools.getProcessorInputPort(processor, activity, activityPort);
-		if (input == null) {
-			//port doesn't exist so create a processor port and map it
-			ProcessorInputPort processorInputPort =
-				edits.createProcessorInputPort(processor, activityPort.getName(), activityPort.getDepth());
-			editList.add(edits.getAddProcessorInputPortEdit(processor, processorInputPort));
-			editList.add(edits.getAddActivityInputPortMappingEdit(activity, activityPort.getName(), activityPort.getName()));
-			input = processorInputPort;
-		}
-		return input;
-	}
-
-	private EventForwardingOutputPort getSourcePort(Processor processor, Activity<?> activity,
-			String portName, List<Edit<?>> editList) {
-		OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools.getActivityOutputPort(activity, portName);
-		//check if processor port exists
-		EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools.getProcessorOutputPort(processor, activity, activityPort);
-		if (output == null) {
-			//port doesn't exist so create a processor port and map it
-			ProcessorOutputPort processorOutputPort =
-				edits.createProcessorOutputPort(processor, activityPort.getName(), activityPort.getDepth(), activityPort.getGranularDepth());
-			editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort));
-			editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName()));
-			output = processorOutputPort;
-		}
-		return output;
-	}
-
-	@Override
-	public void undo() {
-		if (!applied) {
-			throw new RuntimeException(
-					"Attempt to undo edit that was never applied");
-		}
-		if (linkUpEdit.isApplied())
-			linkUpEdit.undo();
-		if (compoundEdit1.isApplied())
-			compoundEdit1.undo();
-		applied = false;
-	}
-
-	@Override
-	public boolean isApplied() {
-		return applied;
-	}
-
-	private Processor findProcessorForActivity(Dataflow dataflow,
-			Activity<?> activity) {
-		for (Processor p : dataflow.getProcessors()) {
-			for (Activity<?> a : p.getActivityList()) {
-				if (a == activity)
-					return p;
-			}
-		}
-		return null;
-	}
-
-	@Override
-	public Object getSubject() {
-		return dataflow;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java
deleted file mode 100644
index 3feb6f8..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * 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 java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.wsdl.InputPortTypeDescriptorActivity;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.ReferenceServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AbstractAsynchronousActivity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback;
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.xmlsplitter.XMLInputSplitter;
-import net.sf.taverna.wsdl.xmlsplitter.XMLSplitterSerialisationHelper;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * An activity that replicates the behaviour of the Taverna 1 XMLInputSplitters.
- *
- * @author Stuart Owen
- *
- */
-public class XMLInputSplitterActivity extends AbstractAsynchronousActivity<JsonNode> implements InputPortTypeDescriptorActivity {
-
-	public static final String URI = "http://ns.taverna.org.uk/2010/activity/xml-splitter/in";
-
-	JsonNode configBean;
-	TypeDescriptor typeDescriptor;
-
-	@Override
-	public void configure(JsonNode configBean) throws ActivityConfigurationException {
-		this.configBean = configBean;
-
-		try {
-			String wrappedType = configBean.get("wrappedType").textValue();
-			Element element = new SAXBuilder().build(new StringReader(wrappedType)).getRootElement();
-			typeDescriptor = XMLSplitterSerialisationHelper.extensionXMLToTypeDescriptor(element);
-		} catch (JDOMException | IOException e) {
-			throw new ActivityConfigurationException(e);
-		}
-	}
-
-	@Override
-	public void executeAsynch(final Map<String, T2Reference> data,
-			final AsynchronousActivityCallback callback) {
-		callback.requestRun(new Runnable() {
-
-			public void run() {
-				try {
-					ReferenceService referenceService = callback.getContext().getReferenceService();
-					XMLInputSplitter splitter = createSplitter();
-					Map<String,Object> inputMap = buildInputMap(data,referenceService);
-					Map<String,String> outputMap = splitter.execute(inputMap);
-					callback.receiveResult(createOutputData(outputMap,referenceService), new int[0]);
-				}
-				catch(Exception e) {
-					callback.fail("Error in XMLInputSplitterActivity",e);
-				}
-			}
-
-			private Map<String, T2Reference> createOutputData(
-					Map<String, String> outputMap,ReferenceService referenceService) throws ReferenceServiceException {
-				Map<String,T2Reference> result = new HashMap<String, T2Reference>();
-				for (String outputName : outputMap.keySet()) {
-					String xmlOut = outputMap.get(outputName);
-					result.put(outputName, referenceService.register(xmlOut, 0, true, callback.getContext()));
-				}
-				return result;
-			}
-
-			private XMLInputSplitter createSplitter() {
-				List<String> inputNames = new ArrayList<String>();
-				List<String> inputTypes = new ArrayList<String>();
-				List<String> outputNames = new ArrayList<String>();
-
-				//FIXME: need to use the definition beans for now to get the mimetype. Need to use the actual InputPort once the mimetype becomes available again.
-				if (configBean.has("inputPorts")) {
-					for (JsonNode inputPort : configBean.get("inputPorts")) {
-						inputNames.add(inputPort.get("name").textValue());
-						inputTypes.add(inputPort.get("mimeType").textValue());
-					}
-				}
-
-				for (OutputPort outputPorts : getOutputPorts()) {
-					outputNames.add(outputPorts.getName());
-				}
-
-				return new XMLInputSplitter(typeDescriptor,inputNames.toArray(new String[]{}),inputTypes.toArray(new String[]{}),outputNames.toArray(new String[]{}));
-			}
-
-			private Map<String,Object> buildInputMap(Map<String, T2Reference> data,ReferenceService referenceService) throws ReferenceServiceException {
-				Map<String,Object> result = new HashMap<String, Object>();
-				for (String inputName : data.keySet()) {
-					T2Reference id = data.get(inputName);
-					result.put(inputName, referenceService.renderIdentifier(id,String.class, callback.getContext()));
-
-				}
-				return result;
-			}
-		});
-
-	}
-
-	@Override
-	public JsonNode getConfiguration() {
-		return configBean;
-	}
-
-	/**
-	 * Returns a TypeDescriptor for the given port name. If the port cannot be found, or is not based upon a complex type, then null is returned.
-	 * @param portName
-	 * @return
-	 */
-	public TypeDescriptor getTypeDescriptorForInputPort(String portName) {
-		TypeDescriptor result = null;
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			for (TypeDescriptor desc : ((ComplexTypeDescriptor)typeDescriptor).getElements()) {
-				if (desc.getName().equals(portName)) {
-					result = desc;
-					break;
-				}
-			}
-		}
-		else if (typeDescriptor instanceof ArrayTypeDescriptor) {
-			TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType();
-
-			if (typeDescriptor.getName().equals(portName)) {
-				result = desc;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 */
-	public Map<String, TypeDescriptor> getTypeDescriptorsForInputPorts()
-			throws UnknownOperationException, IOException {
-		Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>();
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			for (TypeDescriptor desc : ((ComplexTypeDescriptor)typeDescriptor).getElements()) {
-				descriptors.put(desc.getName(), desc);
-			}
-		}
-		else if (typeDescriptor instanceof ArrayTypeDescriptor) {
-			TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType();
-			descriptors.put(typeDescriptor.getName(), desc);
-		}
-		return descriptors;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java
deleted file mode 100644
index 2730637..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2010 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 java.io.IOException;
-import java.net.URI;
-import java.util.HashSet;
-import java.util.Set;
-
-import net.sf.taverna.t2.workflowmodel.Edits;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * An {@link ActivityFactory} for creating <code>XMLInputSplitterActivity</code>.
- *
- * @author David Withers
- */
-public class XMLInputSplitterActivityFactory implements ActivityFactory {
-
-	private Edits edits;
-
-	@Override
-	public XMLInputSplitterActivity createActivity() {
-		return new XMLInputSplitterActivity();
-	}
-
-	@Override
-	public URI getActivityType() {
-		return URI.create(XMLInputSplitterActivity.URI);
-	}
-
-	@Override
-	public JsonNode getActivityConfigurationSchema() {
-		ObjectMapper objectMapper = new ObjectMapper();
-		try {
- 			return objectMapper.readTree(getClass().getResource("/xml-splitter.schema.json"));
-		} catch (IOException e) {
-			return objectMapper.createObjectNode();
-		}
-	}
-
-	public void setEdits(Edits edits) {
-		this.edits = edits;
-	}
-
-	@Override
-	public Set<ActivityInputPort> getInputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		Set<ActivityInputPort> inputPorts = new HashSet<>();
-		if (configuration.has("inputPorts")) {
-			for (JsonNode inputPort : configuration.get("inputPorts")) {
-				inputPorts.add(edits.createActivityInputPort(inputPort.get("name").textValue(),
-						inputPort.get("depth").intValue(), false, null, String.class));
-			}
-		}
-		return inputPorts;
-	}
-
-	@Override
-	public Set<ActivityOutputPort> getOutputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		Set<ActivityOutputPort> outputPorts = new HashSet<>();
-		if (configuration.has("outputPorts")) {
-			for (JsonNode outputPort : configuration.get("outputPorts")) {
-				outputPorts.add(edits.createActivityOutputPort(outputPort.get("name").textValue(),
-						outputPort.get("depth").intValue(), outputPort.get("granularDepth").intValue()));
-			}
-		}
-		return outputPorts;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java
deleted file mode 100644
index 57d47d4..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * 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 java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.xmlsplitter.XMLSplitterSerialisationHelper;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-public class XMLInputSplitterHealthChecker implements HealthChecker<XMLInputSplitterActivity> {
-
-	public boolean canVisit(Object subject) {
-		return subject!=null && subject instanceof XMLInputSplitterActivity;
-	}
-
-	public VisitReport visit(XMLInputSplitterActivity activity, List<Object> ancestors) {
-		Element element;
-		try {
-			String wrappedType = activity.getConfiguration().get("wrappedType").textValue();
-			element = new SAXBuilder().build(new StringReader(wrappedType)).getRootElement();
-		} catch (JDOMException | IOException e) {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Error reading wrapped type", HealthCheck.INVALID_CONFIGURATION, Status.SEVERE);
-		}
-		TypeDescriptor typeDescriptor = XMLSplitterSerialisationHelper.extensionXMLToTypeDescriptor(element);
-		if (typeDescriptor==null) {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Unknown datatype for port", HealthCheck.NULL_DATATYPE, Status.SEVERE);
-		}
-		else {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Recognized datatype", HealthCheck.NO_PROBLEM, Status.OK);
-		}
-	}
-
-	public boolean isTimeConsuming() {
-		return false;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java
deleted file mode 100644
index 8a63681..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * 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 java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.wsdl.OutputPortTypeDescriptorActivity;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.ReferenceServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.InputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AbstractAsynchronousActivity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback;
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.xmlsplitter.XMLOutputSplitter;
-import net.sf.taverna.wsdl.xmlsplitter.XMLSplitterSerialisationHelper;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * An activity that replicates the behaviour of the Taverna 1 XMLOutputSplitter.
- *
- * @author Stuart Owen
- *
- */
-public class XMLOutputSplitterActivity extends
-		AbstractAsynchronousActivity<JsonNode> implements
-		OutputPortTypeDescriptorActivity {
-
-	public static final String URI = "http://ns.taverna.org.uk/2010/activity/xml-splitter/out";
-
-	JsonNode configBean;
-	TypeDescriptor typeDescriptor;
-
-	@Override
-	public void configure(JsonNode configBean)
-			throws ActivityConfigurationException {
-		this.configBean = configBean;
-
-		try {
-			String wrappedType = configBean.get("wrappedType").textValue();
-			Element element = new SAXBuilder().build(new StringReader(wrappedType)).getRootElement();
-			typeDescriptor = XMLSplitterSerialisationHelper.extensionXMLToTypeDescriptor(element);
-		} catch (JDOMException | IOException e) {
-			throw new ActivityConfigurationException(e);
-		}
-	}
-
-	@Override
-	public void executeAsynch(final Map<String, T2Reference> data,
-			final AsynchronousActivityCallback callback) {
-		callback.requestRun(new Runnable() {
-
-			public void run() {
-				try {
-					ReferenceService referenceService = callback.getContext()
-							.getReferenceService();
-					XMLOutputSplitter splitter = createSplitter();
-					Map<String, String> inputMap = buildInputMap(data,
-							referenceService);
-					Map<String, Object> outputMap = splitter.execute(inputMap);
-					callback.receiveResult(createOutputData(outputMap,
-							referenceService), new int[0]);
-				} catch (Exception e) {
-					callback.fail("Error in XMLInputSplitterActivity", e);
-				}
-			}
-
-			private Map<String, T2Reference> createOutputData(
-					Map<String, Object> outputMap,
-					ReferenceService referenceService)
-					throws ReferenceServiceException {
-				Map<String, T2Reference> result = new HashMap<String, T2Reference>();
-				for (String outputName : outputMap.keySet()) {
-					Object output = outputMap.get(outputName);
-					// TODO check if the output can be anything other than
-					// String or List
-					if (output instanceof List) {
-						result.put(outputName, referenceService.register(
-								output, 1, true, callback.getContext()));
-					} else {
-						result.put(outputName, referenceService.register(
-								output, 0, true, callback.getContext()));
-					}
-				}
-				return result;
-			}
-
-			private XMLOutputSplitter createSplitter() {
-				List<String> inputNames = new ArrayList<String>();
-				List<String> outputTypes = new ArrayList<String>();
-				List<String> outputNames = new ArrayList<String>();
-
-				// FIXME: need to use the definition beans for now to get the
-				// mimetype. Need to use the actual InputPort once the mimetype
-				// becomes available again.
-				if (configBean.has("outputPorts")) {
-					for (JsonNode outputPort : configBean.get("outputPorts")) {
-						outputNames.add(outputPort.get("name").textValue());
-						outputTypes.add(outputPort.get("mimeType").textValue());
-					}
-				}
-
-				for (InputPort outputPorts : getInputPorts()) {
-					inputNames.add(outputPorts.getName());
-				}
-
-				return new XMLOutputSplitter(typeDescriptor, outputNames
-						.toArray(new String[] {}), outputTypes
-						.toArray(new String[] {}), inputNames
-						.toArray(new String[] {}));
-			}
-
-			private Map<String, String> buildInputMap(
-					Map<String, T2Reference> data,
-					ReferenceService referenceService)
-					throws ReferenceServiceException {
-				Map<String, String> result = new HashMap<String, String>();
-				for (String inputName : data.keySet()) {
-					T2Reference id = data.get(inputName);
-					result.put(inputName, (String) referenceService
-							.renderIdentifier(id, String.class, callback
-									.getContext()));
-
-				}
-				return result;
-			}
-		});
-	}
-
-	@Override
-	public JsonNode getConfiguration() {
-		return configBean;
-	}
-
-	public TypeDescriptor getTypeDescriptorForOutputPort(String portName) {
-		TypeDescriptor result = null;
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			for (TypeDescriptor desc : ((ComplexTypeDescriptor) typeDescriptor)
-					.getElements()) {
-				if (desc.getName().equals(portName)) {
-					result = desc;
-					break;
-				}
-			}
-		}
-		else if (typeDescriptor instanceof ArrayTypeDescriptor) {
-			TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType();
-
-			if (typeDescriptor.getName().equals(portName)) {
-				result = desc;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 */
-	public Map<String, TypeDescriptor> getTypeDescriptorsForOutputPorts()
-			throws UnknownOperationException, IOException {
-		Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>();
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			for (TypeDescriptor desc : ((ComplexTypeDescriptor) typeDescriptor)
-					.getElements()) {
-				descriptors.put(desc.getName(), desc);
-			}
-		}
-		else if (typeDescriptor instanceof ArrayTypeDescriptor) {
-			TypeDescriptor desc = ((ArrayTypeDescriptor)typeDescriptor).getElementType();
-			descriptors.put(typeDescriptor.getName(), desc);
-		}
-		return descriptors;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java
deleted file mode 100644
index a4272e1..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2010 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 java.io.IOException;
-import java.net.URI;
-import java.util.HashSet;
-import java.util.Set;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import net.sf.taverna.t2.workflowmodel.Edits;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-
-/**
- * An {@link ActivityFactory} for creating <code>XMLOutputSplitterActivity</code>.
- *
- * @author David Withers
- */
-public class XMLOutputSplitterActivityFactory implements ActivityFactory {
-
-	private Edits edits;
-
-	@Override
-	public XMLOutputSplitterActivity createActivity() {
-		return new XMLOutputSplitterActivity();
-	}
-
-	@Override
-	public URI getActivityType() {
-		return URI.create(XMLOutputSplitterActivity.URI);
-	}
-
-	@Override
-	public JsonNode getActivityConfigurationSchema() {
-		ObjectMapper objectMapper = new ObjectMapper();
-		try {
- 			return objectMapper.readTree(getClass().getResource("/xml-splitter.schema.json"));
-		} catch (IOException e) {
-			return objectMapper.createObjectNode();
-		}
-	}
-
-	@Override
-	public Set<ActivityInputPort> getInputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		Set<ActivityInputPort> inputPorts = new HashSet<>();
-		if (configuration.has("inputPorts")) {
-			for (JsonNode inputPort : configuration.get("inputPorts")) {
-				inputPorts.add(edits.createActivityInputPort(inputPort.get("name").textValue(),
-						inputPort.get("depth").intValue(), false, null, String.class));
-			}
-		}
-		return inputPorts;
-	}
-
-	@Override
-	public Set<ActivityOutputPort> getOutputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		Set<ActivityOutputPort> outputPorts = new HashSet<>();
-		if (configuration.has("outputPorts")) {
-			for (JsonNode outputPort : configuration.get("outputPorts")) {
-				outputPorts.add(edits.createActivityOutputPort(outputPort.get("name").textValue(),
-						outputPort.get("depth").intValue(), outputPort.get("granularDepth").intValue()));
-			}
-		}
-		return outputPorts;
-	}
-
-	public void setEdits(Edits edits) {
-		this.edits = edits;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java
deleted file mode 100644
index 7634b6d..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * 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 java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.xmlsplitter.XMLSplitterSerialisationHelper;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-public class XMLOutputSplitterHealthChecker implements HealthChecker<XMLOutputSplitterActivity> {
-
-	public boolean canVisit(Object subject) {
-		return subject!=null && subject instanceof XMLOutputSplitterActivity;
-	}
-
-	public VisitReport visit(XMLOutputSplitterActivity activity, List<Object> ancestors) {
-		Element element;
-		try {
-			String wrappedType = activity.getConfiguration().get("wrappedType").textValue();
-			element = new SAXBuilder().build(new StringReader(wrappedType)).getRootElement();
-		} catch (JDOMException | IOException e) {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Error reading wrapped type", HealthCheck.INVALID_CONFIGURATION, Status.SEVERE);
-		}
-		TypeDescriptor typeDescriptor = XMLSplitterSerialisationHelper.extensionXMLToTypeDescriptor(element);
-		if (typeDescriptor==null) {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Unknown datatype for port", HealthCheck.NULL_DATATYPE, Status.SEVERE);
-		}
-		else {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Recognized datatype", HealthCheck.NO_PROBLEM, Status.OK);
-		}
-	}
-
-	public boolean isTimeConsuming() {
-		return false;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java b/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java
deleted file mode 100644
index 2045260..0000000
--- a/taverna-wsdl-activity/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * 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 org.jdom.Element;
-
-import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityPortsDefinitionBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-
-@ConfigurationBean(uri = "http://ns.taverna.org.uk/2010/activity/xml-splitter#Config")
-public class XMLSplitterConfigurationBean extends ActivityPortsDefinitionBean {
-	Element wrappedTypeXML;
-
-	public Element getWrappedTypeXML() {
-		return wrappedTypeXML;
-	}
-
-	@ConfigurationProperty(name = "wrappedType", label = "Wrapped Type XML")
-	public void setWrappedTypeXML(Element wrappedTypeXML) {
-		this.wrappedTypeXML = wrappedTypeXML;
-	}
-
-}