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:56 UTC

[36/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/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/security/ThreadLocalSSLSocketFactory.java
deleted file mode 100644
index 5660cbe..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/wss4j/T2WSDoAllSender.java
deleted file mode 100644
index 7e9f909..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/AddXMLSplitterEdit.java
deleted file mode 100644
index a30c6a2..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivity.java
deleted file mode 100644
index 3feb6f8..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterActivityFactory.java
deleted file mode 100644
index 2730637..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLInputSplitterHealthChecker.java
deleted file mode 100644
index 57d47d4..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivity.java
deleted file mode 100644
index 8a63681..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterActivityFactory.java
deleted file mode 100644
index a4272e1..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLOutputSplitterHealthChecker.java
deleted file mode 100644
index 7634b6d..0000000
--- a/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/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBean.java
deleted file mode 100644
index 2045260..0000000
--- a/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;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilder.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilder.java
deleted file mode 100644
index e8d7fa8..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/xmlsplitter/XMLSplitterConfigurationBeanBuilder.java
+++ /dev/null
@@ -1,205 +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.util.Arrays;
-import java.util.List;
-
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.BaseTypeDescriptor;
-import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
-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.output.XMLOutputter;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * A helper class to facilitate in building an XMLSplitter configuration bean
- * from the type descriptor XML, including setting up the ports.
- *
- * @author Stuart Owen
- *
- */
-public class XMLSplitterConfigurationBeanBuilder {
-
-	private static final JsonNodeFactory JSON_NODE_FACTORY = JsonNodeFactory.instance;
-
-	public static JsonNode buildBeanForInput(TypeDescriptor descriptor) throws JDOMException, IOException {
-		Element element = XMLSplitterSerialisationHelper.typeDescriptorToExtensionXML(descriptor);
-		return buildBeanForInput(element);
-	}
-
-	public static JsonNode buildBeanForOutput(TypeDescriptor descriptor) throws JDOMException, IOException {
-		Element element = XMLSplitterSerialisationHelper.typeDescriptorToExtensionXML(descriptor);
-		return buildBeanForOutput(element);
-	}
-
-	public static JsonNode buildBeanForInput(Element element) throws JDOMException, IOException {
-		ObjectNode bean = JSON_NODE_FACTORY.objectNode();
-		ArrayNode inputDefinitions = bean.arrayNode();
-		bean.put("inputPorts", inputDefinitions);
-		ArrayNode outputDefinitions = bean.arrayNode();
-		bean.put("outputPorts", outputDefinitions);
-
-		TypeDescriptor descriptor = XMLSplitterSerialisationHelper
-				.extensionXMLToTypeDescriptor(element);
-		ObjectNode outBean = outputDefinitions.addObject();
-		outBean.put("name", "output");
-		outBean.put("mimeType", "'text/xml'");
-		outBean.put("depth", 0);
-		outBean.put("granularDepth", 0);
-
-		if (descriptor instanceof ComplexTypeDescriptor) {
-			List<TypeDescriptor> elements = ((ComplexTypeDescriptor) descriptor).getElements();
-			String[] names = new String[elements.size()];
-			Class<?>[] types = new Class<?>[elements.size()];
-			TypeDescriptor.retrieveSignature(elements, names, types);
-			for (int i = 0; i < names.length; i++) {
-				ObjectNode portBean = inputDefinitions.addObject();
-				portBean.put("name", names[i]);
-				portBean.put("mimeType", TypeDescriptor.translateJavaType(types[i]));
-				portBean.put("depth", depthForDescriptor(elements.get(i)));
-			}
-
-			List<TypeDescriptor> attributes = ((ComplexTypeDescriptor) descriptor).getAttributes();
-			String[] elementNames = Arrays.copyOf(names, names.length);
-			Arrays.sort(elementNames);
-			String[] attributeNames = new String[attributes.size()];
-			Class<?>[] attributeTypes = new Class<?>[attributes.size()];
-			TypeDescriptor.retrieveSignature(attributes, attributeNames, attributeTypes);
-			for (int i = 0; i < attributeNames.length; i++) {
-				ObjectNode portBean = inputDefinitions.addObject();
-				if (Arrays.binarySearch(elementNames, attributeNames[i]) < 0) {
-					portBean.put("name", attributeNames[i]);
-				} else {
-					portBean.put("name", "1" + attributeNames[i]);
-				}
-				portBean.put("mimeType", TypeDescriptor.translateJavaType(attributeTypes[i]));
-				portBean.put("depth", depthForDescriptor(attributes.get(i)));
-			}
-			
-		} else if (descriptor instanceof ArrayTypeDescriptor) {
-			ObjectNode portBean = inputDefinitions.addObject();
-			portBean.put("name", descriptor.getName());
-
-			if (((ArrayTypeDescriptor) descriptor).getElementType() instanceof BaseTypeDescriptor) {
-				portBean.put("mimeType", "l('text/plain')");
-			} else {
-				portBean.put("mimeType", "l('text/xml')");
-			}
-			portBean.put("depth", 1);
-		}
-
-		String wrappedType = new XMLOutputter().outputString(element);
-		bean.put("wrappedType", wrappedType);
-
-		return bean;
-	}
-
-
-	private static int depthForDescriptor(TypeDescriptor desc) {
-		if (desc instanceof ArrayTypeDescriptor && (!((ArrayTypeDescriptor)desc).isWrapped() || ((ArrayTypeDescriptor)desc).getElementType() instanceof BaseTypeDescriptor)) {
-			return 1;
-		}
-		else {
-			return 0;
-		}
-	}
-
-	public static JsonNode buildBeanForOutput(Element element)
-			throws JDOMException, IOException {
-		ObjectNode bean = JSON_NODE_FACTORY.objectNode();
-		ArrayNode inputDefinitions = bean.arrayNode();
-		bean.put("inputPorts", inputDefinitions);
-		ArrayNode outputDefinitions = bean.arrayNode();
-		bean.put("outputPorts", outputDefinitions);
-
-		TypeDescriptor descriptor = XMLSplitterSerialisationHelper
-				.extensionXMLToTypeDescriptor(element);
-
-		ObjectNode inBean = inputDefinitions.addObject();
-		inBean.put("name", "input");
-		inBean.put("mimeType", "'text/xml'");
-		inBean.put("depth", 0);
-
-		if (descriptor instanceof ComplexTypeDescriptor) {
-			List<TypeDescriptor> elements = ((ComplexTypeDescriptor) descriptor).getElements();
-			String[] names = new String[elements.size()];
-			Class<?>[] types = new Class<?>[elements.size()];
-			TypeDescriptor.retrieveSignature(elements, names, types);
-			for (int i = 0; i < names.length; i++) {
-				ObjectNode portBean = outputDefinitions.addObject();
-				portBean.put("name", names[i]);
-				portBean.put("mimeType", TypeDescriptor.translateJavaType(types[i]));
-				int depth = depthForDescriptor(elements.get(i));
-				portBean.put("depth", depth);
-				portBean.put("granularDepth", depth);
-			}
-
-			List<TypeDescriptor> attributes = ((ComplexTypeDescriptor) descriptor).getAttributes();
-			String[] elementNames = Arrays.copyOf(names, names.length);
-			Arrays.sort(elementNames);
-			String[] attributeNames = new String[attributes.size()];
-			Class<?>[] attributeTypes = new Class<?>[attributes.size()];
-			TypeDescriptor.retrieveSignature(attributes, attributeNames, attributeTypes);
-			for (int i = 0; i < attributeNames.length; i++) {
-				ObjectNode portBean = outputDefinitions.addObject();
-				if (Arrays.binarySearch(elementNames, attributeNames[i]) < 0) {
-					portBean.put("name", attributeNames[i]);
-				} else {
-					portBean.put("name", "1" + attributeNames[i]);
-				}
-				portBean.put("mimeType", TypeDescriptor
-						.translateJavaType(attributeTypes[i]));
-				int depth = depthForDescriptor(attributes.get(i));
-				portBean.put("depth", depth);
-				portBean.put("granularDepth", depth);
-			}
-			
-		} else if (descriptor instanceof ArrayTypeDescriptor) {
-			ObjectNode portBean = outputDefinitions.addObject();
-			String name=descriptor.getName();
-			portBean.put("name", name);
-			portBean.put("depth", 1);
-			portBean.put("granularDepth", 1);
-			if (((ArrayTypeDescriptor) descriptor).getElementType() instanceof BaseTypeDescriptor) {
-				portBean.put("mimeType", "l('text/plain')");
-			} else {
-				portBean.put("mimeType", "l('text/xml')");
-			}
-		}
-
-
-		String wrappedType = new XMLOutputter().outputString(element);
-		bean.put("wrappedType", wrappedType);
-
-		return bean;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker b/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
deleted file mode 100644
index fb1c735..0000000
--- a/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
+++ /dev/null
@@ -1,4 +0,0 @@
-net.sf.taverna.t2.activities.wsdl.WSDLActivityHealthChecker
-net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterHealthChecker
-net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterHealthChecker
-net.sf.taverna.t2.activities.wsdl.WSDLActivityDescriptorChecker
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/resources/META-INF/spring/wsdl-activity-context-osgi.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/spring/wsdl-activity-context-osgi.xml b/src/main/resources/META-INF/spring/wsdl-activity-context-osgi.xml
deleted file mode 100644
index b8976d5..0000000
--- a/src/main/resources/META-INF/spring/wsdl-activity-context-osgi.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:beans="http://www.springframework.org/schema/beans"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                                 http://www.springframework.org/schema/beans/spring-beans.xsd
-                                 http://www.springframework.org/schema/osgi
-                                 http://www.springframework.org/schema/osgi/spring-osgi.xsd">
-
-	<service ref="wsdlActivityHealthChecker" interface="net.sf.taverna.t2.workflowmodel.health.HealthChecker" />
-	<service ref="xmlInputSplitterHealthChecker" interface="net.sf.taverna.t2.workflowmodel.health.HealthChecker" />
-	<service ref="xmlOutputSplitterHealthChecker" interface="net.sf.taverna.t2.workflowmodel.health.HealthChecker" />
-
-	<service ref="wsdlActivityFactory" interface="net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory" />
-	<service ref="xmlInputSplitterActivityFactory" interface="net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory" />
-	<service ref="xmlOutputSplitterActivityFactory" interface="net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory" />
-
-	<reference id="credentialManager" interface="net.sf.taverna.t2.security.credentialmanager.CredentialManager" />
-	<reference id="edits" interface="net.sf.taverna.t2.workflowmodel.Edits" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/resources/META-INF/spring/wsdl-activity-context.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/META-INF/spring/wsdl-activity-context.xml b/src/main/resources/META-INF/spring/wsdl-activity-context.xml
deleted file mode 100644
index fbbdf55..0000000
--- a/src/main/resources/META-INF/spring/wsdl-activity-context.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<bean id="wsdlActivityHealthChecker" class="net.sf.taverna.t2.activities.wsdl.WSDLActivityHealthChecker" />
-	<bean id="xmlInputSplitterHealthChecker" class="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterHealthChecker" />
-	<bean id="xmlOutputSplitterHealthChecker" class="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterHealthChecker" />
-
-	<bean id="wsdlActivityFactory" class="net.sf.taverna.t2.activities.wsdl.WSDLActivityFactory">
-		<property name="credentialManager" ref="credentialManager" />
-		<property name="edits" ref="edits" />
-	</bean>
-	<bean id="xmlInputSplitterActivityFactory" class="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivityFactory">
-		<property name="edits" ref="edits" />
-	</bean>
-	<bean id="xmlOutputSplitterActivityFactory" class="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivityFactory">
-		<property name="edits" ref="edits" />
-	</bean>
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/resources/schema.json
----------------------------------------------------------------------
diff --git a/src/main/resources/schema.json b/src/main/resources/schema.json
deleted file mode 100644
index bcafb67..0000000
--- a/src/main/resources/schema.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema#",
-    "id": "http://ns.taverna.org.uk/2010/activity/wsdl.schema.json",
-    "title": "WSDL activity configuration",
-    "type": "object",
-    "properties": {
-        "@context": {
-            "description": "JSON-LD context for interpreting the configuration as RDF",
-            "required": true,
-            "enum": ["http://ns.taverna.org.uk/2010/activity/wsdl.context.json"]
-        },
-        "operation": {
-            "title": "WSDL Operation",
-            "description": "The WSDL operation",
-            "type": "object",
-            "properties": {
-           		"wsdl": {
-            		"title": "WSDL URL",
-            		"description": "The location of the WSDL definition for the web service",
-            		"type": "string",
-		          	"required": true
-           		},
-           		"name": {
-            		"title": "Operation Name",
-            		"description": "The name of the WSDL operation",
-            		"type": "sting",
- 		         	"required": true
-            	}
-            },
-            "required": true
-        },
-        "securityProfile": {
-            "title": "Security Profile",
-            "description": "WS-Security settings required by the web service",
-            "type": "string",
-            "required": false
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/resources/xml-splitter.schema.json
----------------------------------------------------------------------
diff --git a/src/main/resources/xml-splitter.schema.json b/src/main/resources/xml-splitter.schema.json
deleted file mode 100644
index 3dbae7c..0000000
--- a/src/main/resources/xml-splitter.schema.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema#",
-    "id": "http://ns.taverna.org.uk/2010/activity/xml-splitter.schema.json",
-    "title": "XML splitter activity configuration",
-    "type": "object",
-    "properties": {
-        "@context": {
-            "description": "JSON-LD context for interpreting the configuration as RDF",
-            "required": true,
-            "enum": ["http://ns.taverna.org.uk/2010/activity/xml-splitter.context.json"]
-        },
-        "wrappedType": {
-            "title": "Wrapped Type XML",
-            "type": "string",
-            "required": true
-        },
-        "inputPorts": {
-            "title": "Input Ports",
-            "type": "array",
-            "required": false,
-            "items": {
-                "type": "object",
-                "properties": {
-           		    "name": {
-                		"title": "Port Name",
-            			"description": "The name of the port",
-            			"type": "string",
-		          		"required": true
-           			},
-                    "depth": {
-                 		"title": "Port Depth",
-             			"description": "The depth of the port",
-                        "type": "integer",
-                        "required": true
-           			},
-                    "mimeType": {
-                 		"title": "Mime Type",
-             			"description": "The mime type of the port",
-                        "type": "string",
-                        "required": true
-                    }
-                }
-             }
-        },
-        "outputPorts": {
-            "title": "Output Ports",
-            "type": "array",
-            "required": false,
-            "items": {
-                "type": "object",
-                "properties": {
-           		    "name": {
-                		"title": "Port Name",
-            			"description": "The name of the port",
-            			"type": "string",
-		          		"required": true
-           			},
-                    "depth": {
-                 		"title": "Port Depth",
-             			"description": "The depth of the port",
-                        "type": "integer",
-                        "required": true
-                    }
-                    "granularDepth": {
-                 		"title": "Port Granular Depth",
-             			"description": "The granular depth of the port",
-                        "type": "integer",
-                        "required": true
-           			},
-                    "mimeType": {
-                 		"title": "Mime Type",
-             			"description": "The mime type of the port",
-                        "type": "string",
-                        "required": true
-                    }
-                }
-             }
-         }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/test/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactoryTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactoryTest.java b/src/test/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactoryTest.java
deleted file mode 100644
index 9b147cf..0000000
--- a/src/test/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactoryTest.java
+++ /dev/null
@@ -1,64 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * 
- * @author David Withers
- */
-public class WSDLActivityFactoryTest {
-
-	private WSDLActivityFactory factory;
-	
-	/**
-	 * @throws java.lang.Exception
-	 */
-	@Before
-	public void setUp() throws Exception {
-		factory = new WSDLActivityFactory();
-	}
-
-	/**
-	 * Test method for {@link net.sf.taverna.t2.activities.beanshell.BeanshellActivityFactory#createActivity()}.
-	 */
-	@Test
-	public void testCreateActivity() {
-		WSDLActivity createActivity = factory.createActivity();
-		assertNotNull(createActivity);
-	}
-
-	/**
-	 * Test method for {@link net.sf.taverna.t2.activities.beanshell.BeanshellActivityFactory#getActivityType()}.
-	 */
-	@Test
-	public void testGetActivityURI() {
-		assertEquals(URI.create(WSDLActivity.URI), factory.getActivityType());
-	}
-
-}