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

[13/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-generic/src/main/java/net/sf/taverna/wsdl/soap/LiteralBodyBuilder.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/LiteralBodyBuilder.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/LiteralBodyBuilder.java
deleted file mode 100644
index 274aa55..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/LiteralBodyBuilder.java
+++ /dev/null
@@ -1,237 +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.wsdl.soap;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.BaseTypeDescriptor;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.apache.axis.message.MessageElement;
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.utils.XMLUtils;
-import org.apache.log4j.Logger;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * An implementation of BodyBuilder that supports creating the SOAP body for
- * Webservices based upon a WSDL with Literal style.
- * 
- * @author Stuart Owen
- * @author Stian Soiland-Reyes
- * 
- */
-@SuppressWarnings("unchecked")
-public class LiteralBodyBuilder extends AbstractBodyBuilder {
-
-	private static Logger logger = Logger.getLogger(LiteralBodyBuilder.class);
-
-	private static final String TYPE = "type";
-	private static final String NS_XSI = "http://www.w3.org/2001/XMLSchema-instance";
-
-	public LiteralBodyBuilder(String style, WSDLParser parser, String operationName, List<TypeDescriptor> inputDescriptors) {
-		super(style, parser, operationName,inputDescriptors);
-	}
-
-	@Override
-	protected Use getUse() {
-		return Use.LITERAL;
-	}
-
-	@Override
-	public SOAPBodyElement build(Map inputMap) throws WSDLException,
-			ParserConfigurationException, SOAPException, IOException,
-			SAXException, UnknownOperationException {
-
-		SOAPBodyElement body = super.build(inputMap);
-
-		if (getStyle() == Style.DOCUMENT) {
-			fixTypeAttributes(body);
-		}
-
-		return body;
-	}
-
-	@Override
-	protected Element createSkeletonElementForSingleItem(
-			Map<String, String> namespaceMappings, TypeDescriptor descriptor,
-			String inputName, String typeName) {
-		if (getStyle()==Style.DOCUMENT) {
-			return XMLUtils.StringToElement("", descriptor.getQname().getLocalPart(), "");
-		}
-		else {
-			return XMLUtils.StringToElement("", inputName, "");
-		}
-	}
-	
-		private void fixTypeAttributes(Node parent) {
-		if (parent.getNodeType() == Node.ELEMENT_NODE) {
-			Element el = (Element) parent;
-			if (parent.hasAttributes()) {
-				NamedNodeMap attributes = parent.getAttributes();
-//				List<Node> attributeNodesForRemoval = new ArrayList<Node>();
-				for (int i = 0; i < attributes.getLength(); i++) {
-					Node node = attributes.item(i);
-					
-					if (NS_XSI.equals(node.getNamespaceURI()) && TYPE.equals(node.getLocalName())) {
-						// TAV-712 - don't just strip out xsi:type - let's fix the
-						// name prefixes instead
-						
-						String xsiType = node.getTextContent();
-						// Resolve prefix of xsi type
-						String[] xsiTypeSplitted = xsiType.split(":", 2);
-						String xsiTypePrefix = "";
-						String xsiTypeName;
-						if (xsiTypeSplitted.length == 1) {
-							// No prefix
-							xsiTypeName = xsiTypeSplitted[0];
-						} else {
-							xsiTypePrefix = xsiTypeSplitted[0];
-							xsiTypeName = xsiTypeSplitted[1];
-						}
-						
-						String xsiTypeNS;
-						if (parent instanceof MessageElement) {
-							xsiTypeNS = ((MessageElement)parent).getNamespaceURI(xsiTypePrefix);
-						} else {
-							xsiTypeNS = node
-									.lookupNamespaceURI(xsiTypePrefix);
-						}
-						// Use global namespace prefixes						
-						String newPrefix = namespaceMappings.get(xsiTypeNS);
-						if (newPrefix == null) {
-							logger.warn("Can't find prefix for xsi:type namespace " + xsiTypeNS + " - keeping old " + xsiType);
-						} else {
-							String newXsiType = newPrefix + ":" + xsiTypeName;
-							node.setTextContent(newXsiType);	
-							logger.info("Replacing " + xsiType + " with " + newXsiType);
-						}
-					}
-				}
-//				for (Node node : attributeNodesForRemoval) {
-//					el.removeAttributeNS(node.getNamespaceURI(), node
-//							.getLocalName());
-//				}
-			}
-		}
-		
-		if (parent instanceof SOAPElement) {
-			for (Iterator childIterator = ((SOAPElement) parent).getChildElements(); childIterator.hasNext();) {
-				Node childElement = (Node) childIterator.next();
-				fixTypeAttributes(childElement);
-			}
-		}
-//		final NodeList childNodes = parent.getChildNodes();
-//		for (int i = 0; i < childNodes.getLength(); i++) {
-//			fixTypeAttributes(childNodes.item(i));
-//		}
-	}
-
-	@Override
-	protected Element createElementForArrayType(
-			Map<String, String> namespaceMappings, String inputName,
-			Object dataValue, TypeDescriptor descriptor, String mimeType,
-			String typeName) throws ParserConfigurationException, SAXException,
-			IOException, UnknownOperationException {
-		DocumentBuilderFactory builderFactory = DocumentBuilderFactory
-				.newInstance();
-		builderFactory.setNamespaceAware(true);
-		DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
-
-		Element el;
-		ArrayTypeDescriptor arrayDescriptor = (ArrayTypeDescriptor) descriptor;
-		TypeDescriptor elementType = arrayDescriptor.getElementType();
-		int size = 0;
-
-		el = XMLUtils.StringToElement("", typeName, "");
-
-		if (dataValue instanceof List) {
-			List dataValues = (List) dataValue;
-			size = dataValues.size();
-			populateElementWithList(mimeType, el, dataValues, elementType);
-		} else {
-			
-			// if mime type is text/xml then the data is an array in xml form,
-			// else its just a single primitive element
-			if (mimeType.equals("'text/xml'")) {
-
-				Document doc = docBuilder.parse(new ByteArrayInputStream(
-						dataValue.toString().getBytes()));
-				Node child = doc.getDocumentElement().getFirstChild();
-
-				while (child != null) {
-					size++;
-					el.appendChild(el.getOwnerDocument()
-							.importNode(child, true));
-					child = child.getNextSibling();
-				}
-			} else {
-				String tag = "item";
-				if (elementType instanceof BaseTypeDescriptor) {
-					tag = elementType.getType();
-				} else {
-					tag = elementType.getName();
-				}
-				Element item = el.getOwnerDocument().createElement(tag);
-				populateElementWithObjectData(mimeType, item, dataValue, descriptor);
-				el.appendChild(item);
-			}
-
-		}
-
-		return el;
-	}
-
-	@Override
-	protected SOAPBodyElement addElementToBody(String operationNamespace, SOAPBodyElement body, Element el) throws SOAPException {
-		if (getStyle()==Style.DOCUMENT) {
-			body = new SOAPBodyElement(el);
-			body.setNamespaceURI(operationNamespace);
-		}
-		else {
-			body.addChildElement(new SOAPBodyElement(el));
-		}
-		return body;
-	}
-	
-	
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/ObjectConverter.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/ObjectConverter.java
deleted file mode 100644
index f973157..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/ObjectConverter.java
+++ /dev/null
@@ -1,159 +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.wsdl.soap;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * <p>
- * This class replicates the behaviour of data conversion when using DataThingFactory.bake in Taverna 1.
- * </p>
- * <p>
- * In particular it deals with the conversion of arrays to ArrayList
- * </p>
- * @author Stuart Owen
- * 
- *
- */
-public class ObjectConverter {
-
-	/**
-	 * Converts an Object into an appropriate type, in particular recursively converting [] arrays to List<?>'s.<br>
-	 * 
-	 * This method is a copy of convertObject in DataThingFactory from Taverna 1
-	 * @param theObject
-	 * @return
-	 */
-	public static Object convertObject(Object theObject) {
-
-		if (theObject == null) {
-			return null;
-		}
-		// If an array type...
-		Class<?> theClass = theObject.getClass();
-		if (theClass.isArray()) {
-			// Special case for byte[]
-			if (theObject instanceof byte[]) {
-				// System.out.println("Found a byte[], returning it.");
-				return theObject;
-			} //extra primitive object checks for those fun edge cases!
-			else if (theObject instanceof int[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((int[])theObject).length;i++) {
-					Object a = ((int[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof short[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((short[])theObject).length;i++) {
-					Object a = ((short[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof long[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((long[])theObject).length;i++) {
-					Object a = ((long[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof float[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((float[])theObject).length;i++) {
-					Object a = ((float[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof double[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((double[])theObject).length;i++) {
-					Object a = ((double[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof boolean[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((boolean[])theObject).length;i++) {
-					Object a = ((boolean[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else if (theObject instanceof char[]){
-				List<Object> l = new ArrayList<Object>();
-				for (int i = 0; i<((char[])theObject).length;i++) {
-					Object a = ((char[])theObject)[i];
-					l.add(convertObject(a));
-				}
-				return l;
-			} else {
-				// For all other arrays, create a new
-				// List and iterate over the array,
-				// unpackaging the item and recursively
-				// putting it into the new List after
-				// conversion				
-				
-				// System.out.println("Found an array length
-				// "+theArray.length+", repacking as List...");
-				
-				List<Object> l = new ArrayList<Object>();				
-				Object[] theArray = (Object[]) theObject;
-				for (int i = 0; i < theArray.length; i++) {
-					l.add(convertObject(theArray[i]));
-				}
-				return l;
-			}
-		}
-		// If a collection, iterate over it and copy
-		if (theObject instanceof Collection) {
-			if (theObject instanceof List) {
-				// System.out.println("Re-packing a list...");
-				List<Object> l = new ArrayList<Object>();
-				for (Iterator<?> i = ((List<?>) theObject).iterator(); i.hasNext();) {
-					l.add(convertObject(i.next()));
-				}
-				return l;
-			} else if (theObject instanceof Set) {
-				// System.out.println("Re-packing a set...");
-				Set<Object> s = new HashSet<Object>();
-				for (Iterator<?> i = ((Set<?>) theObject).iterator(); i.hasNext();) {
-					s.add(convertObject(i.next()));
-				}
-				return s;
-			}
-		}
-		// If a number then return the string representation for it
-		if (theObject instanceof Number) {
-			// System.out.println("Found a number, converting it to a
-			// string...");
-			return theObject.toString();
-		}
-		// Otherwise just return the object
-		// System.out.println("Found a "+theObject.getClass().getName()+",
-		// returning it");
-		return theObject;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedMultiRefParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedMultiRefParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedMultiRefParser.java
deleted file mode 100644
index 2266e0d..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedMultiRefParser.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponseEncodedMultiRefParser.java,v $
- * Revision           $Revision: 1.2 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/08/08 10:28:09 $
- *               by   $Author: stain $
- * Created on 05-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.utils.XMLUtils;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * A SOAPResponseParser responsible for responses that are fragmented into
- * seperate referenced blocks of XML - Multiref format. It trys to resolve each
- * reference to the corresponding multiref element, eventually generating a
- * single XML document. Cyclic references are not allows, and lead to a
- * CyclicReferenceException
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponseEncodedMultiRefParser extends
-		SOAPResponseEncodedParser {
-
-	private List resolvedReferences = new ArrayList();
-
-	private Map referenceMap;
-
-	public SOAPResponseEncodedMultiRefParser(List<TypeDescriptor> outputDescriptors) {
-		super(outputDescriptors);
-	}
-
-	/**
-	 * Expects a list of XML SOAPBodyElement fragements, with the first being
-	 * the root, and transforms this into a single XML document. Cyclic
-	 * references lead to a CyclicReferenceException being thrown. XML
-	 * namespaces are removed, leading to easier to read XML.
-	 * 
-	 * @param response -
-	 *            List of XML SOAPBodyElement fragments.
-	 */
-	@Override
-	public Map parse(List response) throws Exception, CyclicReferenceException {
-		Map result = new HashMap();
-		generateRefMap(response);
-		expandRefMap();
-		Element mainBody = ((SOAPBodyElement) response.get(0)).getAsDOM();
-
-		for (TypeDescriptor descriptor : outputDescriptors) {
-			String outputName = descriptor.getName();
-
-			Node outputNode = getOutputNode(mainBody, outputName);
-			if (outputNode != null) {
-				expandNode(outputNode, new ArrayList());
-				String xml;
-				if (getStripAttributes()) {
-					stripAttributes(outputNode);
-					outputNode = removeNamespace(outputName,
-							(Element) outputNode);
-				}
-				xml = XMLUtils.ElementToString((Element) outputNode);
-
-				result.put(outputName, xml);
-			} 
-
-		}
-
-		return result;
-	}
-
-	/**
-	 * Generates a map of each multiref element, mapped to its ID.
-	 * 
-	 * @param response
-	 * @throws Exception
-	 */
-	private void generateRefMap(List response) throws Exception {
-		Map result = new HashMap();
-
-		for (Iterator iterator = response.iterator(); iterator.hasNext();) {
-			SOAPBodyElement bodyElement = (SOAPBodyElement) iterator.next();
-			String id = bodyElement.getAttribute("id");
-			if (id != null) {
-				result.put("#" + id, bodyElement.getAsDOM());
-			}
-		}
-
-		referenceMap = result;
-	}
-
-	/**
-	 * Expands any references to other fragments within each multiref fragment,
-	 * resulting in all multiref fragments being fully expanded.
-	 * 
-	 * @throws CyclicReferenceException
-	 */
-	private void expandRefMap() throws CyclicReferenceException {
-		for (Iterator iterator = referenceMap.keySet().iterator(); iterator
-				.hasNext();) {
-			String key = (String) iterator.next();
-			if (!resolvedReferences.contains(key)) {
-				expandMultirefElement(key, new ArrayList());
-			}
-		}
-	}
-
-	private void expandMultirefElement(String key, List parentKeys)
-			throws CyclicReferenceException {
-		if (parentKeys.contains(key))
-			throw new CyclicReferenceException();
-		parentKeys.add(key);
-		Node node = (Node) referenceMap.get(key);
-		expandNode(node, parentKeys);
-		resolvedReferences.add(key);
-		parentKeys.remove(key);
-	}
-
-	private void expandNode(Node node, List parentKeys)
-			throws CyclicReferenceException {
-		String href = getHrefForNode(node);
-		if (href != null) {
-			if (!resolvedReferences.contains(href)) {
-				expandMultirefElement(href, parentKeys);
-			}
-			copyMultirefContentsToParent(node, href);
-		}
-		if (node.hasChildNodes()) {
-			Node child = node.getFirstChild();
-			while (child != null) {
-				expandNode(child, parentKeys);
-				child = child.getNextSibling();
-			}
-		}
-	}
-
-	private void copyMultirefContentsToParent(Node parent, String multirefKey) {
-		Element multiRef = (Element) referenceMap.get(multirefKey);
-		Node child = multiRef.getFirstChild();
-		while (child != null) {
-			parent.appendChild(parent.getOwnerDocument()
-					.importNode(child, true));
-			child = child.getNextSibling();
-		}
-		parent.getAttributes().removeNamedItem("href");
-	}
-
-	private String getHrefForNode(Node node) {
-		String result = null;
-		NamedNodeMap nodemap = node.getAttributes();
-		if (nodemap != null) {
-			Node attrNode = nodemap.getNamedItem("href");
-			if (attrNode != null) {
-				result = attrNode.getNodeValue();
-			}
-		}
-		return result;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedParser.java
deleted file mode 100644
index ab45289..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseEncodedParser.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponseEncodedParser.java,v $
- * Revision           $Revision: 1.2 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/08/08 10:28:09 $
- *               by   $Author: stain $
- * Created on 08-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.utils.XMLUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
-
-/**
- * SOAPResponseParser responsible for parsing SOAP responses from RPC/encoded
- * based service, but that are not fragmented to multiref documents.
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponseEncodedParser implements SOAPResponseParser {
-
-	protected List<TypeDescriptor> outputDescriptors;
-
-	private boolean stripAttributes = false;
-
-	public SOAPResponseEncodedParser(List<TypeDescriptor> outputDescriptors) {
-		this.outputDescriptors = outputDescriptors;
-	}
-
-	/**
-	 * Parses the response into a single XML document, which is placed in the
-	 * outputMap together with the given output name. Namespaces and other
-	 * attributes are stripped out according to stripAttributes.
-	 * 
-	 * @param List
-	 * @return Map
-	 */
-	public Map parse(List response) throws Exception {
-
-		Map result = new HashMap();
-		Element mainBody = ((SOAPBodyElement) response.get(0)).getAsDOM();
-
-		for (TypeDescriptor descriptor : outputDescriptors) {
-			String outputName = descriptor.getName();
-
-			Node outputNode = getOutputNode(mainBody, outputName);
-			if (outputNode != null) {
-				String xml;				
-				
-				if (stripAttributes) {					
-					stripAttributes(outputNode);
-					outputNode = removeNamespace(outputName,
-							(Element) outputNode);
-				}
-				
-				xml = XMLUtils.ElementToString((Element) outputNode);
-				result.put(outputName, xml);
-			} 
-		}
-
-		return result;
-	}
-
-	protected Node getOutputNode(Element mainBody, String outputName) {
-		// first try using body namespace ...
-		Node outputNode = mainBody.getElementsByTagNameNS(
-				mainBody.getNamespaceURI(), outputName).item(0);
-		// ... and if that doesn't work, try without namespace
-		if (outputNode == null) {
-			outputNode = mainBody.getElementsByTagName(outputName).item(
-					0);
-		}
-		if (outputNode == null) { // if still null, and there is only 1
-			// output, take the first child
-			if (outputDescriptors.size() == 1
-					&& mainBody.getChildNodes().getLength() == 1) {
-				outputNode = mainBody.getFirstChild();
-			}
-		}
-		return outputNode;
-	}
-
-	/**
-	 * Removes the namespace from the surrounding element that represents the
-	 * outputName. E.g. converts <ns1:element xmlns:ns1="http://someurl">...</ns1:element>
-	 * to <element>...</element>
-	 * 
-	 * @param outputName
-	 * @param element
-	 * @return
-	 * @throws ParserConfigurationException
-	 * @throws IOException
-	 * @throws SAXException
-	 */
-	protected Element removeNamespace(String outputName, Element element)
-			throws ParserConfigurationException, SAXException, IOException {
-		String xml;
-		String innerXML = XMLUtils.getInnerXMLString(element);
-		if (innerXML != null) {
-			xml = "<" + outputName + ">" + innerXML + "</" + outputName + ">";
-		} else {
-			xml = "<" + outputName + " />";
-		}
-		DocumentBuilder builder = DocumentBuilderFactory.newInstance()
-				.newDocumentBuilder();
-		Document doc = builder.parse(new ByteArrayInputStream(xml.getBytes()));
-		return doc.getDocumentElement();
-	}
-
-	protected void stripAttributes(Node node) {
-		List names = new ArrayList();
-		if (node.getAttributes() != null) {
-			for (int i = 0; i < node.getAttributes().getLength(); i++) {
-				names.add(node.getAttributes().item(i).getNodeName());
-			}
-		}
-
-		for (Iterator iterator = names.iterator(); iterator.hasNext();) {
-			node.getAttributes().removeNamedItem((String) iterator.next());
-		}
-
-		if (node.hasChildNodes()) {
-			Node child = node.getFirstChild();
-			while (child != null) {
-				stripAttributes(child);
-				child = child.getNextSibling();
-			}
-		}
-
-	}
-
-	/**
-	 * determines whether attributes in the resulting XML should be stripped
-	 * out, including namespace definitions, leading to XML that is much easier
-	 * to read.
-	 * 
-	 * @param stripAttributes
-	 */
-	public void setStripAttributes(boolean stripAttributes) {
-		this.stripAttributes = stripAttributes;
-	}
-
-	public boolean getStripAttributes() {
-		return this.stripAttributes;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseLiteralParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseLiteralParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseLiteralParser.java
deleted file mode 100644
index c27af9d..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseLiteralParser.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponseLiteralParser.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/11/28 16:05:45 $
- *               by   $Author: sowen70 $
- * Created on 05-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.utils.XMLUtils;
-import org.w3c.dom.Element;
-
-/**
- * Responsible for parsing the SOAP response from calling a Literal based
- * service.
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponseLiteralParser implements SOAPResponseParser {
-
-	List<TypeDescriptor>outputDescriptors;
-
-	public SOAPResponseLiteralParser(List<TypeDescriptor> outputDescriptors) {
-		this.outputDescriptors = outputDescriptors;
-	}
-
-	/**
-	 * Expects a list containing a single SOAPBodyElement, the contents of which
-	 * are transferred directly to the output, converted to a String, and placed
-	 * into the outputMaP which is returned
-	 * 
-	 * @return Map of the outputs
-	 */
-	public Map parse(List response) throws Exception {
-		Map result = new HashMap();
-
-		if (response.size()>0) {
-			SOAPBodyElement rpcElement = (SOAPBodyElement) response.get(0);
-	
-			Element dom = rpcElement.getAsDOM();
-	
-			String outputName = getOutputName();
-			String xml = XMLUtils.ElementToString(dom);
-	
-			result.put(outputName, xml);
-		}
-
-		return result;
-	}
-
-	protected String getOutputName() {
-		String result = "";
-		for (TypeDescriptor descriptor : outputDescriptors) {
-			String name=descriptor.getName();
-			if (!name.equals("attachmentList")) {
-				result = name;
-				break;
-			}
-		}
-		return result;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParser.java
deleted file mode 100644
index a2da0f8..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponseParser.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/11/28 16:05:45 $
- *               by   $Author: sowen70 $
- * Created on 05-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Inteface that defines all parsers responsible for parsing SOAP responses from
- * calling SOAP based webservices.
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public interface SOAPResponseParser {
-
-	/**
-	 * All SOAPResponseParsers take a list of SOAPBodyElement's, resulting from
-	 * invoking the service, and convert these into a suitable map of output
-	 * DataThings.
-	 * 
-	 * @param response -
-	 *            List of SOAPBodyElements
-	 * @return Map of output DataThing's mapped to their output name
-	 * @throws Exception
-	 */
-	public Map parse(List response) throws Exception;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParserFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParserFactory.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParserFactory.java
deleted file mode 100644
index 15df731..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponseParserFactory.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponseParserFactory.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/11/28 16:05:45 $
- *               by   $Author: sowen70 $
- * Created on 05-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.util.List;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-/**
- * A factory class that selects the correct type of SOAPResponseParser according
- * to the service type , the types output of that service, and the response from
- * invoking that service.
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponseParserFactory {
-
-	private static SOAPResponseParserFactory instance = new SOAPResponseParserFactory();
-
-	public static SOAPResponseParserFactory instance() {
-		return instance;
-	}
-
-	/**
-	 * returns an instance of the appropriate type of SOAPResponseParser
-	 * 
-	 * @param response -
-	 *            List of SOAPBodyElement's resulting from the service
-	 *            invokation.
-	 * @param use -
-	 *            the type of the service - 'literal' or 'encoded'
-	 * @param style -
-	 *            the style of the service - 'document' or 'rpc'
-	 * @param outputDescriptors -
-	 *            the List of {@link TypeDescriptor}'s describing the service outputs
-	 * @return
-	 * @see SOAPResponseParser
-	 */
-	public SOAPResponseParser create(List response, String use, String style,
-			List<TypeDescriptor> outputDescriptors) {
-
-		SOAPResponseParser result = null;
-		
-		if (outputIsPrimitive(outputDescriptors)) {
-			if (use.equalsIgnoreCase("literal")) {
-				result = new SOAPResponsePrimitiveLiteralParser(outputDescriptors);
-			}
-			else {
-				result = new SOAPResponsePrimitiveParser(outputDescriptors);
-			}
-		} else if (use.equals("literal")) {
-			result = new SOAPResponseLiteralParser(outputDescriptors);
-		} else {
-			if (response.size() > 1) {
-				result = new SOAPResponseEncodedMultiRefParser(outputDescriptors);
-			} else {
-				result = new SOAPResponseEncodedParser(outputDescriptors);
-			}
-		}
-
-		return result;
-	}
-
-	private boolean outputIsPrimitive(List<TypeDescriptor> outputDescriptors) {
-		boolean result = true;
-		for (TypeDescriptor d : outputDescriptors) {
-			if (d.getMimeType().equals("'text/xml'")) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveLiteralParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveLiteralParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveLiteralParser.java
deleted file mode 100644
index e26f146..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveLiteralParser.java
+++ /dev/null
@@ -1,72 +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.wsdl.soap;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * A response parser specifically for literal use services that return primative types.
- * It extends the SOAPReponseLiteralParser, but unwraps the result from the enclosing XML
- * to expose the primitive result.
- * 
- * This is specially designed for unwrapped/literal type services, and RPC/literal services (untested). 
- * @author Stuart
- *
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponsePrimitiveLiteralParser extends
-		SOAPResponseLiteralParser {
-
-	public SOAPResponsePrimitiveLiteralParser(List<TypeDescriptor> outputDescriptors) {
-		super(outputDescriptors);
-	}
-
-	@Override
-	public Map parse(List response) throws Exception {
-		Map result = super.parse(response);
-		Object dataValue = result.get(getOutputName());
-		if (dataValue!=null) {
-			String xml = dataValue.toString();
-			
-			DocumentBuilder builder = DocumentBuilderFactory.newInstance()
-			.newDocumentBuilder();
-			Document doc = builder.parse(new ByteArrayInputStream(xml.getBytes()));
-		
-			Node node = doc.getFirstChild();
-			result.put(getOutputName(), node.getFirstChild().getNodeValue());
-		}
-		return result;
-	}
-	
-	
-}
-
-	

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveParser.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveParser.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveParser.java
deleted file mode 100644
index 4bb0af4..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/SOAPResponsePrimitiveParser.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: SOAPResponsePrimitiveParser.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/11/28 16:05:45 $
- *               by   $Author: sowen70 $
- * Created on 05-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-
-import org.apache.axis.message.RPCElement;
-import org.apache.axis.message.RPCParam;
-
-/**
- * SOAPResponseParser responsible for parsing soap responses that map to outputs
- * that can be directly represented with Primitive types (i.e. int, String,
- * String[]).
- * 
- * @author sowen
- * 
- */
-@SuppressWarnings("unchecked")
-public class SOAPResponsePrimitiveParser implements SOAPResponseParser {
-
-	private List<String> outputNames;
-
-	public SOAPResponsePrimitiveParser(List<TypeDescriptor> outputDescriptors) {
-		outputNames=new ArrayList<String>();
-		for (TypeDescriptor desc : outputDescriptors) {
-			outputNames.add(desc.getName());
-		}
-	}
-
-	/**
-	 * Parses each SOAPBodyElement for the primitive type, and places it in the
-	 * output Map
-	 */
-	public Map parse(List response) throws Exception {
-		Map result = new HashMap();
-		int c = 0;
-
-		
-		RPCElement responseElement = (RPCElement) response.get(0);
-		List params = responseElement.getParams();
-
-		for (Iterator paramIterator = params.iterator(); paramIterator
-				.hasNext();) {
-			RPCParam param = (RPCParam) paramIterator.next();
-			Object value = param.getObjectValue();
-			// use the param name if it matches the outputname list,
-			// otherwise use the defined output name.
-			// Outputs should come back in the order of the outputNames
-			// as this is specified in the WSDL (only an issue for multiple
-			// outputs which is very rare, and is going to be documented as
-			// unrecommended for Taverna).
-			if (outputNames.contains(param.getName())) {
-				result.put(param.getName(), ObjectConverter.convertObject(value));
-			} else {
-				result.put(outputNames.get(c), value);
-			}
-			c++;
-		}
-
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/WSDLSOAPInvoker.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/WSDLSOAPInvoker.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/WSDLSOAPInvoker.java
deleted file mode 100644
index 36c50da..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/WSDLSOAPInvoker.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: WSDLSOAPInvoker.java,v $
- * Revision           $Revision: 1.7 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/08/28 19:39:28 $
- *               by   $Author: stain $
- * Created on 07-Apr-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.soap;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.activation.DataHandler;
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.rpc.ServiceException;
-import javax.xml.soap.SOAPException;
-
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.apache.axis.AxisFault;
-import org.apache.axis.EngineConfiguration;
-import org.apache.axis.attachments.AttachmentPart;
-import org.apache.axis.client.Call;
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.message.SOAPEnvelope;
-import org.apache.axis.message.SOAPHeaderElement;
-import org.apache.axis.transport.http.HTTPTransport;
-import org.apache.log4j.Logger;
-import org.xml.sax.SAXException;
-
-/**
- * Invoke SOAP based webservices
- * 
- * @author Stuart Owen
- * 
- */
-@SuppressWarnings("unchecked")
-public class WSDLSOAPInvoker {
-
-	private static final String ATTACHMENT_LIST = "attachmentList";
-	private BodyBuilderFactory bodyBuilderFactory = BodyBuilderFactory.instance();
-	private WSDLParser parser;
-	private String operationName;
-	private List<String> outputNames;
-	
-	private static Logger logger = Logger.getLogger(WSDLSOAPInvoker.class);
-
-	public WSDLSOAPInvoker(WSDLParser parser, String operationName,
-			List<String> outputNames) {
-		this.parser = parser;
-		this.operationName = operationName;
-		this.outputNames = outputNames;
-	}
-	
-	protected String getOperationName() {
-		return operationName;
-	}
-	
-	protected WSDLParser getParser() {
-		return parser;
-	}
-
-	protected List<String> getOutputNames() {
-		return outputNames;
-	}
-	
-
-	/**
-	 * Invokes the webservice with the supplied input Map, and returns a Map
-	 * containing the outputs, mapped against their output names.
-	 * 
-	 * @param inputMap
-	 * @return
-	 * @throws Exception
-	 */
-	public Map<String, Object> invoke(Map inputMap) throws Exception {
-		return invoke(inputMap, (EngineConfiguration)null);
-	}
-
-	/**
-	 * Invokes the webservice with the supplied input Map and axis engine configuration, 
-	 * and returns a Map containing the outputs, mapped against their output names.
-	 */
-	public Map<String, Object> invoke(Map inputMap, EngineConfiguration config)
-			throws Exception {
-		
-		Call call = getCall(config);
-		return invoke(inputMap, call);
-	}
-	
-	/**
-	 * Invokes the webservice with the supplied input Map and preconfigured axis call, 
-	 * and returns a Map containing the outputs, mapped against their output names.
-	 */
-	public Map<String, Object> invoke(Map inputMap, Call call)
-			throws Exception {
-			
-		call.setTimeout(getTimeout());
-
-		SOAPEnvelope requestEnv = makeRequestEnvelope(inputMap);
-//		logger.info("Invoking service with SOAP envelope:\n"+requestEnv);
-		
-		SOAPEnvelope responseEnv = invokeCall(call, requestEnv);
-		
-//		logger.info("Received SOAP response:\n"+responseEnv);
-
-		Map<String, Object> result;
-		if (responseEnv == null) {
-			if (outputNames.size() == 1
-					&& outputNames.get(0).equals(ATTACHMENT_LIST)) {
-				// Could be axis 2 service with no output (TAV-617)
-				result = new HashMap<String, Object>();
-			} else {
-				throw new IllegalStateException(
-						"Missing expected outputs from service");
-			}
-		} else {
-			List response = responseEnv.getBodyElements();
-//			logger.info("SOAP response was:" + response);
-			SOAPResponseParser parser = SOAPResponseParserFactory
-					.instance()
-					.create(
-							response,
-							getUse(),
-							getStyle(),
-							this.parser
-									.getOperationOutputParameters(operationName));
-			result = parser.parse(response);
-		}
-
-		result.put(ATTACHMENT_LIST, extractAttachments(call));
-
-		return result;
-	}
-
-	protected SOAPEnvelope makeRequestEnvelope(Map inputMap)
-			throws UnknownOperationException, IOException, WSDLException,
-			ParserConfigurationException, SOAPException, SAXException {
-	
-		SOAPEnvelope requestEnv = new SOAPEnvelope();
-		for (SOAPHeaderElement headerElement : makeSoapHeaders()) {
-			requestEnv.addHeader(headerElement);
-		}
-		requestEnv.addBodyElement(makeSoapBody(inputMap));
-		return requestEnv;
-	}
-
-	protected List<SOAPHeaderElement> makeSoapHeaders() {
-		return Collections.emptyList();
-	}
-
-	protected SOAPBodyElement makeSoapBody(Map inputMap)
-			throws UnknownOperationException, IOException, WSDLException,
-			ParserConfigurationException, SOAPException, SAXException {
-		BodyBuilder builder = bodyBuilderFactory.create(parser,
-				operationName,
-				parser.getOperationInputParameters(operationName));
-		return builder.build(inputMap);
-	}
-
-	protected SOAPEnvelope invokeCall(Call call, SOAPEnvelope requestEnv) throws AxisFault {
-		return call.invoke(requestEnv);
-	}
-
-	/**
-	 * Reads the property taverna.wsdl.timeout, default to 5 minutes if missing.
-	 * 
-	 * @return
-	 */
-	protected Integer getTimeout() {
-		int result = 300000;
-		String minutesStr = System.getProperty("taverna.wsdl.timeout");
-
-		if (minutesStr == null) {
-			// using default of 5 minutes
-			return result;
-		}
-		try {
-			int minutes = Integer.parseInt(minutesStr.trim());
-			result = minutes * 1000 * 60;
-		} catch (NumberFormatException e) {
-			logger.error("Non-integer timeout", e);
-			return result;
-		}
-		return result;
-	}
-
-	protected String getStyle() {
-		return parser.getStyle();
-	}
-
-	protected String getUse() throws UnknownOperationException {
-		return parser.getUse(operationName);
-	}
-
-	/**
-	 * Returns an axis based Call, initialised for the operation that needs to
-	 * be invoked
-	 * 
-	 * @return
-	 * @throws ServiceException
-	 * @throws UnknownOperationException
-	 * @throws MalformedURLException 
-	 * @throws WSDLException
-	 * @throws WSIFException
-	 */
-	protected Call getCall(EngineConfiguration config)  throws ServiceException, UnknownOperationException, MalformedURLException {
-		
-		org.apache.axis.client.Service service;
-		if (config==null) {
-			service = new org.apache.axis.client.Service();
-		}
-		else {
-			service = new org.apache.axis.client.Service(config);
-		}
-		
-		Call call = new Call(service);
-		
-		call.setTransport(new HTTPTransport());
-		call.setTargetEndpointAddress(parser.getOperationEndpointLocations(operationName).get(0));
-		//result.setPortName(parser.getPortType(operationName).getQName());
-		//result.setOperation(operationName);
-		
-		String use = parser.getUse(operationName);
-		call.setUseSOAPAction(true);
-		call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR,
-				Boolean.FALSE);
-		call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS,
-				Boolean.FALSE);
-		call
-				.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
-		
-		if (parser.getSOAPActionURI(operationName)!=null) {
-			call.setSOAPActionURI(parser.getSOAPActionURI(operationName));
-		}
-		
-		if (use.equalsIgnoreCase("literal")) {
-			call.setEncodingStyle(null);
-		}
-		return call;
-	}
-	
-
-	/**
-	 * Exctracts any attachments that result from invoking the service, and
-	 * returns them as a List wrapped within a DataThing
-	 * 
-	 * @param axisCall
-	 * @return
-	 * @throws SOAPException
-	 * @throws IOException
-	 */
-	protected List extractAttachments(Call axisCall)
-			throws SOAPException, IOException {
-		List attachmentList = new ArrayList();
-		if (axisCall.getResponseMessage() != null
-				&& axisCall.getResponseMessage().getAttachments() != null) {
-			for (Iterator i = axisCall.getResponseMessage().getAttachments(); i
-					.hasNext();) {
-				AttachmentPart ap = (AttachmentPart) i.next();
-				DataHandler dh = ap.getDataHandler();
-				BufferedInputStream bis = new BufferedInputStream(dh
-						.getInputStream());
-				ByteArrayOutputStream bos = new ByteArrayOutputStream();
-				int c;
-				while ((c = bis.read()) != -1) {
-					bos.write(c);
-				}
-				bis.close();
-				bos.close();
-				String mimeType = dh.getContentType();
-				if (mimeType.matches(".*image.*")
-						|| mimeType.matches(".*octet.*")
-						|| mimeType.matches(".*audio.*")
-						|| mimeType.matches(".*application/zip.*")) {
-					attachmentList.add(bos.toByteArray());
-				} else {
-					attachmentList.add(new String(bos.toByteArray()));
-				}
-			}
-		}
-
-		return attachmentList;
-	}
-
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/package.html
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/package.html b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/package.html
deleted file mode 100644
index 5fd36e5..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/soap/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<body>
-Contains classes required to invoke an endpoint for a SOAP based web-service described by a WSDL.<br>
-These classes are derived heavily from the original parsing classes from the Taverna 1 WSDLBasedProcessor and have been refactored<br>
-to remove references to to Taverna 1 
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLInputSplitter.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLInputSplitter.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLInputSplitter.java
deleted file mode 100644
index 031de03..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLInputSplitter.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.wsdl.xmlsplitter;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-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 org.apache.axis.encoding.Base64;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.XMLOutputter;
-
-public class XMLInputSplitter {
-
-	private TypeDescriptor typeDescriptor;
-	private String[] outputNames;
-	private String[] inputNames;
-	private String[] inputTypes;
-
-	public XMLInputSplitter(TypeDescriptor typeDescriptor, String inputNames[],
-			String inputTypes[], String[] outputNames) {
-		this.typeDescriptor = typeDescriptor;
-		this.outputNames = outputNames;
-		this.inputTypes = inputTypes;
-		this.inputNames = inputNames;
-	}
-
-	public Map<String, String> execute(Map<String, Object> inputMap)
-			throws JDOMException, IOException {
-		Map<String, String> result = new HashMap<String, String>();
-		Element outputElement = (this.typeDescriptor.getName().length() > 0 ? new Element(
-				this.typeDescriptor.getName())
-				: new Element(this.typeDescriptor.getType()));
-
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			executeForComplexType(inputMap, result, outputElement);
-
-		} else {
-			for (String key : inputMap.keySet()) {
-				Object dataObject = inputMap.get(key);
-
-				if (dataObject instanceof List) {
-					Element dataElement = buildElementFromObject(key, "");
-					for (Object dataItem : ((List<?>) dataObject)) {
-						Element itemElement = buildElementFromObject(key,
-								dataItem);
-						dataElement.addContent(itemElement);
-					}
-
-					XMLOutputter outputter = new XMLOutputter();
-					String xmlText = outputter.outputString(dataElement);
-
-					result.put(outputNames[0], xmlText);
-				} else {
-					Element dataElement = buildElementFromObject(key,
-							dataObject);
-					outputElement.addContent(dataElement);
-					XMLOutputter outputter = new XMLOutputter();
-					String xmlText = outputter.outputString(outputElement);
-					result.put(outputNames[0], xmlText);
-				}
-
-			}
-		}
-
-		return result;
-
-	}
-
-	private void executeForComplexType(Map<String, Object> inputMap,
-			Map<String, String> result, Element outputElement)
-			throws JDOMException, IOException {
-		ComplexTypeDescriptor complexDescriptor = (ComplexTypeDescriptor) typeDescriptor;
-		for (TypeDescriptor elementType : complexDescriptor.getElements()) {
-			String key = elementType.getName();
-			Object dataObject = inputMap.get(key);			
-			if (dataObject==null) {
-				if (elementType.isOptional()) {
-					continue;
-				} if (elementType.isNillable()) {
-					dataObject = "xsi:nil";
-				} else {
-					dataObject="";
-				}
-			}
-
-			if (dataObject instanceof List) {
-				Element arrayElement = buildElementFromObject(key, "");
-
-				String itemkey = "item";
-				boolean wrapped = false;
-				if (elementType instanceof ArrayTypeDescriptor) {
-					wrapped = ((ArrayTypeDescriptor) elementType).isWrapped();
-					TypeDescriptor arrayElementType = ((ArrayTypeDescriptor) elementType)
-							.getElementType();
-					if (!wrapped) {
-						itemkey = elementType.getName();
-					} else {
-						if (arrayElementType.getName() != null
-								&& arrayElementType.getName().length() > 0) {
-							itemkey = arrayElementType.getName();
-						} else {
-							itemkey = arrayElementType.getType();
-						}
-					}
-
-				}
-
-				for (Object itemObject : ((List<?>)dataObject)) {
-
-					Element dataElement = buildElementFromObject(itemkey,
-							itemObject);
-					dataElement.setNamespace(Namespace.getNamespace(elementType
-							.getNamespaceURI()));
-					if (!wrapped) {
-						dataElement.setName(itemkey);
-						outputElement.addContent(dataElement);
-					} else {
-						arrayElement.addContent(dataElement);
-					}
-				}
-				if (wrapped)
-					outputElement.addContent(arrayElement);
-			} else {
-				Element dataElement = buildElementFromObject(key, dataObject);
-				outputElement.addContent(dataElement);
-			}
-		}
-		for (TypeDescriptor attribute : complexDescriptor.getAttributes()) {
-			String key = attribute.getName();
-			Object dataObject = inputMap.get("1" + key);
-			if (dataObject == null) {
-				dataObject = inputMap.get(key);
-			}
-			if (dataObject != null) {
-				outputElement.setAttribute(key, dataObject.toString(), Namespace
-						.getNamespace(attribute.getNamespaceURI()));
-			}
-		}
-		
-		outputElement.setNamespace(Namespace.getNamespace(typeDescriptor
-				.getNamespaceURI()));
-		XMLOutputter outputter = new XMLOutputter();
-		String xmlText = outputter.outputString(outputElement);
-		result.put(outputNames[0], xmlText);
-	}
-
-	private Element buildElementFromObject(String key, Object dataObject)
-			throws JDOMException, IOException {
-
-		Element dataElement = null;
-
-		if (isXMLInput(key)) {
-			dataElement = createDataElementForXMLInput(dataObject, key);
-		} else {
-			dataElement = new Element(key);
-			setDataElementNamespace(key, dataElement);
-			Namespace xsiNs = org.jdom.Namespace
-				.getNamespace("xsi",
-						"http://www.w3.org/2001/XMLSchema-instance");
-			if (dataObject.toString().equals("xsi:nil")) {
-				dataElement.setAttribute("nil", "true", xsiNs); // changes nil value
-			} else {
-				if (dataObject instanceof byte[]) {
-				
-					dataElement
-							.setAttribute(
-									"type",
-									"xsd:base64Binary",
-									xsiNs);
-					dataObject = Base64
-							.encode(((byte[]) dataObject));
-				}
-				dataElement.setText(dataObject.toString());
-			}
-
-		}
-		return dataElement;
-	}
-
-	private Element createDataElementForXMLInput(Object dataObject, String key)
-			throws JDOMException, IOException {
-		Element dataElement = null;
-		String xml = dataObject.toString();
-		if (xml.length() > 0) {
-			Document doc = new SAXBuilder().build(new StringReader(xml));
-			dataElement = doc.getRootElement();
-			dataElement.detach();
-		} else {
-			dataElement = new Element(key);
-		}
-
-		setDataElementNamespace(key, dataElement);
-		return dataElement;
-	}
-
-	// set the namespace if it can be determined from the element TypeDescriptor
-	// by the key
-	private void setDataElementNamespace(String key, Element dataElement) {
-		if (typeDescriptor instanceof ComplexTypeDescriptor) {
-			TypeDescriptor elementTypeDescriptor = ((ComplexTypeDescriptor) typeDescriptor)
-					.elementForName(key);
-			if (elementTypeDescriptor != null) {
-				String nsURI = null;
-				if (elementTypeDescriptor instanceof BaseTypeDescriptor) {
-					nsURI = elementTypeDescriptor.getNamespaceURI();
-					// this is some protective code against old workflows that
-					// had the base element namespace incorrectly
-					// declared (it was using the type NS, rather than the
-					// element NS.
-					if (nsURI.contains("XMLSchema")
-							&& nsURI.contains("http://www.w3.org")) {
-						nsURI = typeDescriptor.getNamespaceURI();
-					}
-				} else {
-					nsURI = elementTypeDescriptor.getNamespaceURI();
-				}
-				if (nsURI != null && nsURI.length() > 0) {
-					updateElementNamespace(dataElement, nsURI);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Updates the element namespace, and also iterates all descendant elements.
-	 * If these elements have no default namespace, or is blank then it is also
-	 * set to namespaceURI (JDOM by default will not set the child elements to
-	 * the same namespace as the element modified but will override them with
-	 * blank namespaces).
-	 * 
-	 * @param dataElement
-	 * @param namespaceURI
-	 */
-	private void updateElementNamespace(Element dataElement, String namespaceURI) {
-		dataElement.setNamespace(Namespace.getNamespace(namespaceURI));
-		Iterator<?> iterator = dataElement.getDescendants();
-		while (iterator.hasNext()) {
-			Object descendantObject = iterator.next();
-			if (descendantObject instanceof Element) {
-				Element childElement = (Element) descendantObject;
-				if (childElement.getNamespaceURI() == null) {
-					childElement.setNamespace(Namespace
-							.getNamespace(namespaceURI));
-				}
-			}
-		}
-	}
-
-	private boolean isXMLInput(String key) {
-		boolean result = false;
-		for (int i = 0; i < inputNames.length; i++) {
-			if (inputNames[i].equals(key)) {
-				result = inputTypes[i].indexOf("'text/xml'") != -1;
-			}
-		}
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLOutputSplitter.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLOutputSplitter.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLOutputSplitter.java
deleted file mode 100644
index 4ad5061..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLOutputSplitter.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: XMLOutputSplitter.java,v $
- * Revision           $Revision: 1.2 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/08/08 10:28:07 $
- *               by   $Author: stain $
- * Created on 16-May-2006
- *****************************************************************/
-package net.sf.taverna.wsdl.xmlsplitter;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-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 org.apache.axis.encoding.Base64;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.XMLOutputter;
-
-public class XMLOutputSplitter {
-
-	private TypeDescriptor typeDescriptor;
-	private String[] outputNames;
-	private String[] inputNames;
-	private String[] outputTypes;
-
-	public XMLOutputSplitter(TypeDescriptor typeDescriptor,
-			String[] outputNames, String[] outputTypes,String[] inputNames) {
-		this.typeDescriptor = typeDescriptor;
-		this.outputNames = outputNames;
-		this.inputNames = inputNames;
-		this.outputTypes = outputTypes;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Map<String, Object> execute(Map<String, String> inputMap)
-			throws XMLSplitterExecutionException {
-
-		Map<String, Object> result = new HashMap<String, Object>();
-		List<String> outputNameList = Arrays.asList(outputNames);
-
-		String xml = inputMap.get(inputNames[0]);
-		try {
-			Document doc = new SAXBuilder().build(new StringReader(xml));
-			List<Element> children = doc.getRootElement().getChildren();
-			if (typeDescriptor instanceof ArrayTypeDescriptor) {
-				if (outputNames.length > 1)
-					throw new XMLSplitterExecutionException(
-							"Unexpected, multiple output names for ArrayType");
-				executeForArrayType(result, children);
-			} else {
-				executeForComplexType(result, outputNameList, children, doc.getRootElement().getAttributes());
-			}
-
-			// populate missing outputs with empty strings for basic types,
-			// empty elements for complex/array types.
-			for (int i = 0; i < outputNames.length; i++) {
-				if (result.get(outputNames[i]) == null) {
-					if (outputTypes[i].equals("'text/xml'")) {
-						result
-								.put(outputNames[i], "<" + outputNames[i]
-										+ " />");
-					} else if (outputTypes[i].startsWith("l('")) {
-						result.put(outputNames[i], new ArrayList<Object>());
-					} else {
-						result.put(outputNames[i], "");
-					}
-
-				}
-			}
-		} catch (JDOMException e) {
-			throw new XMLSplitterExecutionException("Unable to parse XML: " + xml, e);
-		} catch (IOException e) {
-			throw new XMLSplitterExecutionException("IOException parsing XML: " + xml,
-					e);
-		}
-
-		return result;
-	}
-
-	private void executeForArrayType(Map<String, Object> result,
-			List<Element> children) {
-		ArrayTypeDescriptor arrayDescriptor = (ArrayTypeDescriptor) typeDescriptor;
-		List<String> values = new ArrayList<String>();
-		XMLOutputter outputter = new XMLOutputter();
-
-		boolean isInnerBaseType = arrayDescriptor.getElementType() instanceof BaseTypeDescriptor;
-		if (isInnerBaseType) {
-			values = extractBaseTypeArrayFromChildren(children);
-		} else {
-			for (Element child : children) {
-				values.add(outputter.outputString(child));
-			}
-		}
-		result.put(outputNames[0], values);
-	}
-
-	@SuppressWarnings({ "unchecked" })
-	private void executeForComplexType(Map<String, Object> result,
-			List<String> outputNameList, List<Element> children, List<Attribute> list)
-			throws IOException {               
-
-		XMLOutputter outputter = new XMLOutputter();
-		for (Element child : children) {
-			
-			if (outputNameList.contains(child.getName())) {
-				int i = outputNameList.indexOf(child.getName());
-				TypeDescriptor descriptorForChild = ((ComplexTypeDescriptor) typeDescriptor)
-						.elementForName(outputNames[i]);
-				if (outputTypes[i].startsWith("l(")
-						&& descriptorForChild instanceof ArrayTypeDescriptor
-						&& !((ArrayTypeDescriptor) descriptorForChild)
-								.isWrapped()) {
-					boolean isXMLContent = outputTypes[i].contains("text/xml");
-					result.put(child.getName(), extractDataListFromChildList(
-							children, isXMLContent));
-                    break;
-				} else {
-					if (outputTypes[i].equals("'text/xml'")
-							|| outputTypes[i].equals("l('text/xml')")) {
-						String xmlText = outputter.outputString(child);
-						result.put(child.getName(), xmlText);
-					} else if (outputTypes[i]
-							.equals("'application/octet-stream'")) { // base64Binary
-						
-						byte[] data = Base64.decode(child
-								.getText());
-						result.put(child.getName(), data);
-					} else if (outputTypes[i].equals("l('text/plain')")) { // an
-																			// inner
-																			// element
-																			// containing
-																			// a
-																			// list
-						result.put(child.getName(),
-								extractBaseTypeArrayFromChildren(child
-										.getChildren()));
-					} else {
-						result.put(child.getName(), child.getText());
-					}
-				}
-			}
-		}
-		for (Attribute attribute : list) {
-			if (outputNameList.contains("1" + attribute.getName())) {
-				result.put("1" + attribute.getName(), attribute.getValue());
-			} else if (outputNameList.contains(attribute.getName())) {
-				result.put(attribute.getName(), attribute.getValue());
-			}
-		}
-	}
-
-	private List<String> extractDataListFromChildList(List<Element> children,
-			boolean isXMLContent) {
-		List<String> result = new ArrayList<String>();
-		XMLOutputter outputter = new XMLOutputter();
-		for (Element child : children) {
-			if (!isXMLContent) {
-				result.add(child.getTextTrim());
-			} else {
-				result.add(outputter.outputString(child));
-			}
-		}
-		return result;
-	}
-
-	private List<String> extractBaseTypeArrayFromChildren(List<Element> children) {
-		List<String> result = new ArrayList<String>();
-		for (Element child : children) {
-			result.add(child.getTextTrim());
-		}
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLSplitterExecutionException.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLSplitterExecutionException.java b/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLSplitterExecutionException.java
deleted file mode 100644
index 6ec1720..0000000
--- a/taverna-wsdl-generic/src/main/java/net/sf/taverna/wsdl/xmlsplitter/XMLSplitterExecutionException.java
+++ /dev/null
@@ -1,34 +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.wsdl.xmlsplitter;
-
-public class XMLSplitterExecutionException extends Exception {
-
-	private static final long serialVersionUID = 5623707293500493612L;
-
-	public XMLSplitterExecutionException(String msg, Throwable cause) {
-		super(msg, cause);
-	}
-
-	public XMLSplitterExecutionException(String msg) {
-		super(msg);
-	}
-}