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:37:19 UTC

[59/70] [abbrv] incubator-taverna-common-activities git commit: taverna-external-tool-activity/

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityConfigurationBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityConfigurationBean.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityConfigurationBean.java
deleted file mode 100755
index ce3387b..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityConfigurationBean.java
+++ /dev/null
@@ -1,194 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool;
-
-import java.util.List;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroup;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-
-@ConfigurationBean(uri = ExternalToolActivity.URI + "#Config")
-public final class ExternalToolActivityConfigurationBean {
-
-	private InvocationGroup group;
-
-	private String mechanismType;
-
-	private String mechanismName;
-
-	private String mechanismXML;
-
-	private transient InvocationMechanism mechanism;
-
-	protected String repositoryUrl;
-	protected String externaltoolid;
-	protected UseCaseDescription useCaseDescription = null;
-	private boolean edited = false;
-
-	private List<MechanismCreator> mechanismCreators;
-
-    public boolean isEdited() {
-		return edited;
-	}
-
-	public ExternalToolActivityConfigurationBean() {
-	}
-
-	public InvocationGroup getInvocationGroup() {
-	    return group;
-	}
-
-	@ConfigurationProperty(name = "invocationGroup", label = "InvocationGroup", required=false)
-	public void setInvocationGroup(
-			InvocationGroup group) {
-		this.group = group;
-		clearMechanismInformation();
-	}
-
-	private void clearMechanismInformation() {
-		this.mechanismType = null;
-		this.mechanismName = null;
-		this.mechanismXML = null;
-		this.mechanism = null;
-	}
-
-	/**
-	 * @return the repositoryUrl
-	 */
-	public String getRepositoryUrl() {
-		return repositoryUrl;
-	}
-
-	/**
-	 * @param repositoryUrl the repositoryUrl to set
-	 */
-	@ConfigurationProperty(name = "repositoryUrl", label = "Repository URL", required=false)
-	public void setRepositoryUrl(String repositoryUrl) {
-		this.repositoryUrl = repositoryUrl;
-	}
-
-	/**
-	 * @return the externaltoolid
-	 */
-	public String getExternaltoolid() {
-		return externaltoolid;
-	}
-
-	/**
-	 * @param externaltoolid the externaltoolid to set
-	 */
-	@ConfigurationProperty(name = "toolId", label = "Tool ID")
-	public void setExternaltoolid(String externaltoolid) {
-		this.externaltoolid = externaltoolid;
-	}
-
-	/**
-	 * @return the useCaseDescription
-	 */
-	public UseCaseDescription getUseCaseDescription() {
-		return useCaseDescription;
-	}
-
-	/**
-	 * @param useCaseDescription the useCaseDescription to set
-	 */
-	@ConfigurationProperty(name = "toolDescription", label = "Tool Description")
-	public void setUseCaseDescription(UseCaseDescription useCaseDescription) {
-		this.useCaseDescription = useCaseDescription;
-	}
-
-	@ConfigurationProperty(name = "edited", label = "Edited", required=false)
-	public void setEdited(boolean b) {
-		this.edited  = b;
-	}
-
-	/**
-	 * Note this also sets the details
-	 *
-	 * @param mechanism the mechanism to set
-	 */
-	public void setMechanism(InvocationMechanism mechanism) {
-		this.mechanism = mechanism;
-		convertMechanismToDetails();
-		this.group = null;
-	}
-
-	public void convertMechanismToDetails() {
-		if (mechanism != null) {
-			this.setMechanismXML(mechanism.getXML());
-			this.setMechanismName(mechanism.getName());
-			this.setMechanismType(mechanism.getType());
-		}
-	}
-
-	/**
-	 * @param mechanismType the mechanismType to set
-	 */
-	@ConfigurationProperty(name = "mechanismType", label = "Mechanism Type", required=false)
-	public void setMechanismType(String mechanismType) {
-		this.mechanismType = mechanismType;
-	}
-
-	/**
-	 * @param mechanismName the mechanismName to set
-	 */
-	@ConfigurationProperty(name = "mechanismName", label = "Mechanism Name", required=false)
-	public void setMechanismName(String mechanismName) {
-		this.mechanismName = mechanismName;
-	}
-
-	/**
-	 * @param mechanismXML the mechanismXML to set
-	 */
-	@ConfigurationProperty(name = "mechanismXML", label = "Mechanism XML", required=false)
-	public void setMechanismXML(String mechanismXML) {
-		this.mechanismXML = mechanismXML;
-	}
-
-	public void convertDetailsToMechanism() {
-		if (mechanismXML != null) {
-			for (MechanismCreator mc : mechanismCreators) {
-				if (mc.canHandle(getMechanismType())) {
-					mechanism = mc.convert(getMechanismXML(), getMechanismName());
-					break;
-				}
-			}
-		}
-	}
-
-	/**
-	 * @return the mechanism
-	 */
-	public InvocationMechanism getMechanism() {
-
-		return mechanism;
-	}
-
-	/**
-	 * @return the mechanismType
-	 */
-	public String getMechanismType() {
-		return mechanismType;
-	}
-
-	/**
-	 * @return the mechanismName
-	 */
-	public String getMechanismName() {
-		return mechanismName;
-	}
-
-	/**
-	 * @return the mechanismXML
-	 */
-	public String getMechanismXML() {
-		return mechanismXML;
-	}
-
-	public void setMechanismCreators(List<MechanismCreator> mechanismCreators) {
-		this.mechanismCreators = mechanismCreators;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityFactory.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityFactory.java
deleted file mode 100644
index dc27b11..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2011 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.externaltool;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator;
-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>ExternalToolActivity</code>.
- *
- * @author David Withers
- */
-public class ExternalToolActivityFactory implements ActivityFactory {
-
-	private List<InvocationCreator> invocationCreators;
-
-	private List<MechanismCreator> mechanismCreators;
-
-        private Edits edits;
-
-	@Override
-	public ExternalToolActivity createActivity() {
-		ExternalToolActivity activity = new ExternalToolActivity();
-		activity.setInvocationCreators(invocationCreators);
-                activity.setEdits(edits);
-		return activity;
-	}
-
-	@Override
-	public URI getActivityType() {
-		return URI.create(ExternalToolActivity.URI);
-	}
-
-	@Override
-	public JsonNode getActivityConfigurationSchema() {
-		ObjectMapper objectMapper = new ObjectMapper();
-		try {
- 			return objectMapper.readTree(getClass().getResource("/schema.json"));
-		} catch (IOException e) {
-			return objectMapper.createObjectNode();
-		}
-	}
-
-	public void setInvocationCreators(List<InvocationCreator> invocationCreators) {
-		this.invocationCreators = invocationCreators;
-	}
-
-	public void setMechanismCreators(List<MechanismCreator> mechanismCreators) {
-		this.mechanismCreators = mechanismCreators;
-	}
-
-	@Override
-	public Set<ActivityInputPort> getInputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public Set<ActivityOutputPort> getOutputPorts(JsonNode configuration)
-			throws ActivityConfigurationException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-        public void setEdits(Edits edits) {
-		this.edits = edits;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityHealthChecker.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityHealthChecker.java
deleted file mode 100755
index b65da68..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityHealthChecker.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 Hajo Nils Krabbenhoeft, INB, University of Luebeck
- *
- *  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.externaltool;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroup;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManager;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-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.t2.workflowmodel.utils.Tools;
-
-public class ExternalToolActivityHealthChecker implements HealthChecker<ExternalToolActivity> {
-
-	private InvocationGroupManager invocationGroupManager;
-	private ExternalToolActivity activity;
-
-	public boolean canVisit(Object subject) {
-		return subject != null && subject instanceof ExternalToolActivity;
-	}
-
-	public VisitReport visit(ExternalToolActivity activity, List<Object> ancestry) {
-		this.activity = activity;
-		ExternalToolActivityConfigurationBean configuration = activity.getConfigurationNoConversion();
-		List<VisitReport> reports = new ArrayList<VisitReport>();
-
-		VisitReport locationReport = checkLocation(configuration);
-		if (locationReport != null) {
-			reports.add(locationReport);
-		}
-
-		VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "External tool service", HealthCheck.NO_PROBLEM, reports);
-
-		return report;
-	}
-
-
-	private VisitReport checkLocation(
-			ExternalToolActivityConfigurationBean configuration) {
-
-		if (!updateLocation(configuration)) {
-			return new VisitReport(HealthCheck.getInstance(), activity, "Unmanaged invocation mechanism", HealthCheck.UNMANAGED_LOCATION, Status.WARNING);
-		} else {
-			return null;
-		}
-	}
-
-	public boolean updateLocation(ExternalToolActivityConfigurationBean configuration) {
-		InvocationGroup invocationGroup = configuration.getInvocationGroup();
-		String invocationGroupSpecification = null;
-		String invocationMechanismSpecification = null;
-		if (invocationGroup != null) {
-			if (invocationGroupManager.containsGroup(invocationGroup)) {
-				return true;
-			}
-			InvocationGroup replacementGroup = invocationGroupManager.getGroupReplacement(invocationGroup);
-			if (replacementGroup != null) {
-				configuration.setInvocationGroup(replacementGroup);
-				return true;
-			}
-			invocationGroupSpecification = invocationGroup.getName() + ":" + invocationGroup.getMechanismXML();
-			InvocationGroup importedGroup = invocationGroupManager.getImportedGroup(invocationGroupSpecification);
-			if (importedGroup != null) {
-				configuration.setInvocationGroup(importedGroup);
-				return true;
-			}
-		}
-
-		InvocationMechanism invocationMechanism = configuration.getMechanism();
-		if (invocationMechanism != null) {
-			if (invocationGroupManager.containsMechanism(invocationMechanism)) {
-				return true;
-			}
-		}
-		String mechanismXML = null;
-		String mechanismName = null;
-
-		if (invocationGroup != null) {
-			mechanismXML = invocationGroup.getMechanismXML();
-			mechanismName = invocationGroup.getMechanismName();
-		} else {
-			mechanismXML = configuration.getMechanismXML();
-			mechanismName = configuration.getMechanismName();
-		}
-		invocationMechanismSpecification = mechanismName + ":" + mechanismXML;
-
-		InvocationMechanism foundMechanism = null;
-		HashSet<String> mechanismNames = new HashSet<String>();
-		for (InvocationMechanism mechanism : invocationGroupManager.getMechanisms()) {
-			mechanismNames.add(mechanism.getName());
-			if (mechanism.getName().equals(mechanismName) && (mechanism.getXML().equals(mechanismXML))) {
-				if (invocationMechanism != mechanism) {
-					foundMechanism = mechanism;
-				}
-			}
-		}
-
-		if (foundMechanism == null) {
-			foundMechanism = invocationGroupManager.getMechanismReplacement(invocationMechanismSpecification);
-			if (foundMechanism == null) {
-				foundMechanism = invocationGroupManager.getImportedMechanism(invocationMechanismSpecification);
-			}
-		}
-
-		if (foundMechanism != null) {
-			if (invocationGroup != null) {
-				invocationGroup.setMechanism(foundMechanism);
-				// Cannot return because invocationGroup is still unknown
-			} else {
-				configuration.setMechanism(foundMechanism);
-				return true;
-			}
-		}
-
-		if (foundMechanism == null) {
-			InvocationMechanism createdMechanism;
-			if (invocationGroup != null) {
-				invocationGroup.convertDetailsToMechanism();
-				createdMechanism = invocationGroup.getMechanism();
-			} else {
-				configuration.convertDetailsToMechanism();
-				createdMechanism = configuration.getMechanism();
-			}
-
-			String chosenMechanismName = Tools.uniqueObjectName(mechanismName,
-					mechanismNames);
-			createdMechanism.setName(chosenMechanismName);
-			if (invocationGroup != null) {
-				invocationGroup.setMechanism(createdMechanism);
-			} else {
-				configuration.setMechanism(createdMechanism);
-			}
-			invocationGroupManager.importMechanism(invocationMechanismSpecification, createdMechanism);
-
-
-			if (invocationGroup == null) {
-				return true;
-			}
-		}
-
-		InvocationGroup foundGroup = null;
-		HashSet<String> groupNames = new HashSet<String>();
-		for (InvocationGroup group : invocationGroupManager.getInvocationGroups()) {
-			groupNames.add(group.getName());
-			if (group.getName().equals(invocationGroup.getName()) && (group.getMechanism() == invocationGroup.getMechanism())) {
-				foundGroup = group;
-			}
-		}
-		if (foundGroup != null) {
-			configuration.setInvocationGroup(foundGroup);
-			return true;
-		}
-		invocationGroup.setName(Tools.uniqueObjectName(invocationGroup.getName(), groupNames));
-		invocationGroupManager.importInvocationGroup(invocationGroupSpecification, invocationGroup);
-		return true;
-	}
-
-	public boolean isTimeConsuming() {
-		return false;
-	}
-
-	/**
-	 * Sets the invocationGroupManager.
-	 *
-	 * @param invocationGroupManager the new value of invocationGroupManager
-	 */
-	public void setInvocationGroupManager(InvocationGroupManager invocationGroupManager) {
-		this.invocationGroupManager = invocationGroupManager;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityMimeTypeChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityMimeTypeChecker.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityMimeTypeChecker.java
deleted file mode 100644
index 4ab8f93..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolActivityMimeTypeChecker.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.Dataflow;
-import net.sf.taverna.t2.workflowmodel.Datalink;
-import net.sf.taverna.t2.workflowmodel.Merge;
-import net.sf.taverna.t2.workflowmodel.MergeInputPort;
-import net.sf.taverna.t2.workflowmodel.MergeOutputPort;
-import net.sf.taverna.t2.workflowmodel.MergePort;
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-import net.sf.taverna.t2.workflowmodel.Port;
-import net.sf.taverna.t2.workflowmodel.Processor;
-import net.sf.taverna.t2.workflowmodel.ProcessorInputPort;
-import net.sf.taverna.t2.workflowmodel.ProcessorPort;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-import net.sf.taverna.t2.workflowmodel.utils.Tools;
-
-import org.apache.log4j.Logger;
-
-import de.uni_luebeck.inb.knowarc.usecases.ScriptInputUser;
-import de.uni_luebeck.inb.knowarc.usecases.ScriptOutput;
-
-/**
- * @author alanrw
- *
- */
-public final class ExternalToolActivityMimeTypeChecker implements HealthChecker<ExternalToolActivity> {
-	
-	private static Logger logger = Logger.getLogger(ExternalToolActivityMimeTypeChecker.class);
-
-	public boolean canVisit(Object o) {
-		return o != null && o instanceof ExternalToolActivity;
-	}
-
-	public boolean isTimeConsuming() {
-		return false;
-	}
-
-	public VisitReport visit(ExternalToolActivity o,
-			List<Object> ancestry) {
-		List<VisitReport> reports = new ArrayList<VisitReport>();
-			Processor p = (Processor) VisitReport.findAncestor(ancestry, Processor.class);
-			Dataflow d = (Dataflow) VisitReport.findAncestor(ancestry, Dataflow.class);
-			
-			for (ActivityInputPort aip : o.getInputPorts()) {
-				Set<String> sinkMimeSet = getMimeTypesForInput(o, aip);
-				if (sinkMimeSet.isEmpty()) {
-					continue;
-				}
-				ProcessorInputPort pip = Tools.getProcessorInputPort(p, (Activity<?>) o, aip);
-				
-				for (Datalink dl : d.getLinks()) {
-
-					if (dl.getSink().equals(pip)) {
-						Port source = dl.getSource();
-						Set<VisitReport> subReports = checkSource(dl, source, d, (Activity) o, aip, sinkMimeSet);
-						for (VisitReport vr : subReports) {
-							vr.setProperty("sinkProcessor", p);
-						    vr.setProperty("activity", o);
-						    vr.setProperty("sinkPort", pip);
-						}
-						reports.addAll(subReports);
-					}
-				}
-			}
-			
-		if (reports.isEmpty()) {
-			return null;
-		}
-		if (reports.size() == 1) {
-			return reports.get(0);
-		}
-		else {
-			return new VisitReport(HealthCheck.getInstance(), o, "Collation", HealthCheck.DEFAULT_VALUE, reports);
-		}
-	}
-	
-	private Set<VisitReport> checkSource(Datalink datalink, Port source, Dataflow d, Activity o, ActivityInputPort aip, Set<String> sinkMimeSet) {
-		Set<VisitReport> reports = new HashSet<VisitReport>();
-		if (source instanceof ProcessorPort) {
-			ProcessorPort processorPort = (ProcessorPort) source;
-			Processor sourceProcessor = processorPort.getProcessor();
-			Activity sourceActivity = sourceProcessor.getActivityList().get(0);
-			if (sourceActivity instanceof ExternalToolActivity) {
-				ActivityOutputPort aop = getActivityOutputPort(sourceActivity, processorPort);
-				Set<String> sourceMimeTypes = getMimeTypesForOutput((ExternalToolActivity) sourceActivity, aop);
-				if (!sourceMimeTypes.isEmpty()) {
-					Set<String> sinkMimeTypesClone  = new HashSet<String>();
-					sinkMimeTypesClone.addAll(sinkMimeSet);
-					sinkMimeTypesClone.retainAll(sourceMimeTypes);
-					if (sinkMimeTypesClone.isEmpty()) {
-						VisitReport vr = new VisitReport(HealthCheck.getInstance(), o, "Incompatible mime types", HealthCheck.INCOMPATIBLE_MIMETYPES, Status.WARNING);
-						vr.setProperty("sourcePort", processorPort);
-						vr.setProperty("sourceProcessor", sourceProcessor);
-						vr.setProperty("link", datalink);
-						reports.add(vr);
-					}
-				}
-			}
-		} else if (source instanceof MergeOutputPort) {
-			Merge merge = ((MergePort) source).getMerge();
-			for (MergeInputPort mip : merge.getInputPorts()) {
-				for (Datalink dl : d.getLinks()) {
-					if (dl.getSink().equals(mip)) {
-						reports.addAll(checkSource(dl, dl.getSource(), d, o, aip, sinkMimeSet));
-					}
-				}
-				
-			}
-		}
-		return reports;
-	}
-	
-	private Set<String> getMimeTypesForOutput(ExternalToolActivity o, ActivityOutputPort aop) {
-		ScriptOutput so = (ScriptOutput) o.getConfiguration().getUseCaseDescription().getOutputs().get(aop.getName());
-		if (so == null) {
-			return Collections.EMPTY_SET;
-		}
-		List mimeList = Arrays.asList(so.getMime());
-		Set mimeSet = new HashSet(mimeList);
-		return mimeSet;
-	}
-
-	private Set<String> getMimeTypesForInput(ExternalToolActivity a, ActivityInputPort aip) {
-		ScriptInputUser si = (ScriptInputUser) a.getConfiguration().getUseCaseDescription().getInputs().get(aip.getName());
-		if (si == null) {
-			return Collections.EMPTY_SET;
-		}
-		ArrayList<String> mime = si.getMime();
-		if (mime != null) {
-			List mimeList = Arrays.asList(mime);
-			Set mimeSet = new HashSet(mimeList);
-		
-			return mimeSet;
-		} else {
-			return Collections.EMPTY_SET;
-		}
-	}
-	
-	private static ActivityOutputPort getActivityOutputPort(
-			Activity<?> activity, ProcessorPort processorOutputPort) {
-		ProcessorInputPort result = null;
-		for (Entry<String, String> mapEntry : activity.getOutputPortMapping()
-				.entrySet()) {
-			if (mapEntry.getKey().equals(processorOutputPort.getName())) {
-				for (OutputPort activityOutputPort : activity
-						.getOutputPorts()) {
-					if (activityOutputPort.getName().equals(mapEntry.getValue())) {
-						return (ActivityOutputPort) activityOutputPort;
-					}
-				}
-				break;
-			}
-		}
-		return null;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolRunDeletionListener.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolRunDeletionListener.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolRunDeletionListener.java
deleted file mode 100644
index bbb53ce..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ExternalToolRunDeletionListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.externaltool;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManager;
-import net.sf.taverna.t2.workflowmodel.RunDeletionListener;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolRunDeletionListener implements RunDeletionListener {
-
-	private static Logger logger = Logger.getLogger(ExternalToolRunDeletionListener.class);
-
-	private InvocationGroupManager invocationGroupManager;
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.workflowmodel.RunDeletionListener#deleteRun(java.lang.String)
-	 */
-	@Override
-	public void deleteRun(String runToDelete) {
-		invocationGroupManager.deleteRun(runToDelete);
-	}
-
-	/**
-	 * Sets the invocationGroupManager.
-	 *
-	 * @param invocationGroupManager the new value of invocationGroupManager
-	 */
-	public void setInvocationGroupManager(InvocationGroupManager invocationGroupManager) {
-		this.invocationGroupManager = invocationGroupManager;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/InvocationCreator.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/InvocationCreator.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/InvocationCreator.java
deleted file mode 100644
index 5184794..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/InvocationCreator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool;
-
-import java.util.Map;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.UseCaseInvocation;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * @author alanrw
- *
- */
-public interface InvocationCreator {
-	
-	public boolean canHandle(String mechanismType);
-	
-	public UseCaseInvocation convert(InvocationMechanism mechanism, UseCaseDescription description, Map<String, T2Reference> data, ReferenceService referenceService);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/RetrieveLoginFromTaverna.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/RetrieveLoginFromTaverna.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/RetrieveLoginFromTaverna.java
deleted file mode 100644
index 949f70a..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/RetrieveLoginFromTaverna.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.security.credentialmanager.CMException;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import net.sf.taverna.t2.security.credentialmanager.UsernamePassword;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.AskUserForPw;
-
-public class RetrieveLoginFromTaverna implements AskUserForPw {
-	private final String url;
-	private final CredentialManager credentialManager;
-
-	public RetrieveLoginFromTaverna(String url, CredentialManager credentialManager) {
-		this.url = url;
-		this.credentialManager = credentialManager;
-	}
-
-	private UsernamePassword getUserPass() {
-		try {
-			final String urlStr = url;
-			URI userpassUrl = URI.create(urlStr.replace("//", "/"));
-			final UsernamePassword userAndPass = credentialManager.getUsernameAndPasswordForService(userpassUrl, false, null);
-			return userAndPass;
-		} catch (CMException e) {
-			throw new RuntimeException("Error in Taverna Credential Manager", e);
-		}
-	}
-
-	public String getUsername() throws RuntimeException {
-		final UsernamePassword userPass = getUserPass();
-		if (userPass == null) {
-			throw new RuntimeException("Unable to obtain valid username and password");
-		}
-		userPass.resetPassword();
-		return userPass.getUsername();
-	}
-
-	public String getPassword() {
-		final UsernamePassword userPass = getUserPass();
-		final String pw = userPass.getPasswordAsString();
-		userPass.resetPassword();
-		return pw;
-	}
-
-
-	public String getKeyfile() {
-		return "";
-	}
-
-	public String getPassphrase() {
-		return "";
-	}
-
-	public void authenticationSucceeded() {
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/local/ExternalToolLocalInvocationMechanism.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/ExternalToolLocalInvocationMechanism.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/local/ExternalToolLocalInvocationMechanism.java
deleted file mode 100644
index d276407..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/ExternalToolLocalInvocationMechanism.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.local;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-
-import org.jdom.Element;
-import org.jdom.Text;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.local.LocalUseCaseInvocation;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolLocalInvocationMechanism extends
-		InvocationMechanism {
-	
-	private String directory;
-	
-	private String shellPrefix;
-	
-	private String linkCommand;
-	
-	private boolean retrieveData;
-	
-	/**
-	 * 
-	 */
-	public ExternalToolLocalInvocationMechanism() {
-		super();
-		String os = System.getProperty("os.name");
-		if (!os.startsWith("Windows")) {
-			setShellPrefix(UNIX_SHELL);
-			setLinkCommand(UNIX_LINK);
-		}
-	}
-
-	@Override
-	public String getType() {
-		return LocalUseCaseInvocation.LOCAL_USE_CASE_INVOCATION_TYPE;
-	}
-
-	@Override
-	public Element getXMLElement() {
-		Element result = new Element("localInvocation");
-		if ((directory != null) && !directory.isEmpty()){
-			Element directoryElement = new Element("directory");
-			directoryElement.addContent(new Text(directory));
-			result.addContent(directoryElement);
-		}
-		if ((shellPrefix != null) && !shellPrefix.isEmpty()) {
-			Element shellPrefixElement = new Element("shellPrefix");
-			shellPrefixElement.addContent(new Text(shellPrefix));
-			result.addContent(shellPrefixElement);
-		}
-		if ((linkCommand != null) && !linkCommand.isEmpty()) {
-			Element linkCommandElement = new Element("linkCommand");
-			linkCommandElement.addContent(new Text(linkCommand));
-			result.addContent(linkCommandElement);
-		}
-		if (isRetrieveData()) {
-			Element retrieveDataElement = new Element("retrieveData");
-			result.addContent(retrieveDataElement);
-		}
-		return result;
-	}
-
-
-	/**
-	 * @return the directory
-	 */
-	public String getDirectory() {
-		return directory;
-	}
-
-	/**
-	 * @param directory the directory to set
-	 */
-	public void setDirectory(String directory) {
-		this.directory = directory;
-	}
-
-	/**
-	 * @return the shellPrefix
-	 */
-	public String getShellPrefix() {
-		return shellPrefix;
-	}
-
-	/**
-	 * @param shellPrefix the shellPrefix to set
-	 */
-	public void setShellPrefix(String shellPrefix) {
-		this.shellPrefix = shellPrefix;
-	}
-
-	/**
-	 * @return the linkCommand
-	 */
-	public String getLinkCommand() {
-		return linkCommand;
-	}
-
-	/**
-	 * @param linkCommand the linkCommand to set
-	 */
-	public void setLinkCommand(String linkCommand) {
-	    if ((linkCommand == null) || linkCommand.isEmpty()) {
-			this.linkCommand = null;
-		} else {
-			this.linkCommand = linkCommand;
-		}
-	}
-
-	/**
-	 * @return the retrieveData
-	 */
-	public boolean isRetrieveData() {
-		return retrieveData;
-	}
-
-	/**
-	 * @param retrieveData the retrieveData to set
-	 */
-	public void setRetrieveData(boolean retrieveData) {
-		this.retrieveData = retrieveData;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationCreator.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationCreator.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationCreator.java
deleted file mode 100644
index 393686f..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationCreator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.local;
-
-import java.io.IOException;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.externaltool.InvocationCreator;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.T2Reference;
-
-import org.apache.log4j.Logger;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.UseCaseInvocation;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.local.LocalUseCaseInvocation;
-
-/**
- * @author alanrw
- *
- */
-public final class LocalInvocationCreator implements
-		InvocationCreator {
-	
-	private static Logger logger = Logger.getLogger(LocalInvocationCreator.class);
-
-	public boolean equals(Object o) {
-		return (o instanceof LocalInvocationCreator);
-	}
-
-	@Override
-	public boolean canHandle(String mechanismType) {
-		return mechanismType.equals(LocalUseCaseInvocation.LOCAL_USE_CASE_INVOCATION_TYPE);
-	}
-
-	@Override
-	public UseCaseInvocation convert(InvocationMechanism m, UseCaseDescription description, Map<String, T2Reference> data, ReferenceService referenceService) {
-	    ExternalToolLocalInvocationMechanism mechanism = (ExternalToolLocalInvocationMechanism) m;
-		UseCaseInvocation result = null;
-		try {
-		    result = new LocalUseCaseInvocation(description, mechanism.isRetrieveData(), mechanism.getDirectory(), mechanism.getShellPrefix(), mechanism.getLinkCommand());
-		} catch (IOException e) {
-			logger.error(e);
-		}
-		return result;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationPersister.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationPersister.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationPersister.java
deleted file mode 100644
index f12f4f6..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalInvocationPersister.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.local;
-
-import java.io.File;
-
-import org.apache.log4j.Logger;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.InvocationException;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.local.LocalUseCaseInvocation;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUseCaseInvocation;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister;
-import net.sf.taverna.t2.activities.externaltool.ssh.SshInvocationPersister;
-
-/**
- * @author alanrw
- *
- */
-public class LocalInvocationPersister extends InvocationPersister {
-	
-	private static Logger logger = Logger.getLogger(LocalInvocationPersister.class);
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister#load()
-	 */
-	@Override
-	public void load(File directory) {
-		LocalUseCaseInvocation.load(directory);
-	}
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister#persist()
-	 */
-	@Override
-	public void persist(File directory) {
-		LocalUseCaseInvocation.persist(directory);
-	}
-	
-	@Override
-	public void deleteRun(String runId) {
-			LocalUseCaseInvocation.cleanup(runId);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalMechanismCreator.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalMechanismCreator.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalMechanismCreator.java
deleted file mode 100644
index e053a4c..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/local/LocalMechanismCreator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.local;
-
-import org.jdom.Element;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.local.LocalUseCaseInvocation;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator;
-
-/**
- * @author alanrw
- *
- */
-public class LocalMechanismCreator extends MechanismCreator {
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator#canHandle(java.lang.String)
-	 */
-	@Override
-	public boolean canHandle(String mechanismType) {
-		return mechanismType.equals(LocalUseCaseInvocation.LOCAL_USE_CASE_INVOCATION_TYPE);
-	}
-
-	public InvocationMechanism convert(Element detailsElement,
-			String mechanismName) {
-		ExternalToolLocalInvocationMechanism result = new ExternalToolLocalInvocationMechanism();
-		result.setName(mechanismName);
-		Element directoryElement = detailsElement.getChild("directory");
-		if (directoryElement != null) {
-			result.setDirectory(directoryElement.getText());
-		}
-		Element shellPrefixElement = detailsElement.getChild("shellPrefix");
-		if (shellPrefixElement != null) {
-			result.setShellPrefix(shellPrefixElement.getText());
-		}
-		Element linkCommandElement = detailsElement.getChild("linkCommand");
-		if (linkCommandElement != null) {
-			result.setLinkCommand(linkCommandElement.getText());
-		}
-		Element retrieveDataElement = detailsElement.getChild("retrieveData");
-		result.setRetrieveData(retrieveDataElement != null);
-
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroup.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroup.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroup.java
deleted file mode 100644
index ec453f5..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroup.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-import java.util.List;
-
-import net.sf.taverna.t2.activities.externaltool.ExternalToolActivity;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- *
- */
-@ConfigurationBean(uri = ExternalToolActivity.URI + "#InvocationGroup")
-public class InvocationGroup {
-
-	private static Logger logger = Logger.getLogger(InvocationGroup.class);
-
-	private String invocationGroupName;
-
-	private String mechanismType;
-
-	private String mechanismName;
-
-	private String mechanismXML;
-
-	private transient InvocationMechanism mechanism;
-
-	private List<MechanismCreator> mechanismCreators;
-
-	public InvocationGroup(List<MechanismCreator> mechanismCreators) {
-		setMechanismCreators(mechanismCreators);
-	}
-
-	/**
-	 * @return the invocationGroupName
-	 */
-	public String getName() {
-		return invocationGroupName;
-	}
-
-	/**
-	 * @param invocationGroupName the invocationGroupName to set
-	 */
-	@ConfigurationProperty(name = "name", label = "Invocation Group Name")
-	public void setName(String invocationGroupName) {
-		this.invocationGroupName = invocationGroupName;
-	}
-
-	/**
-	 * @return the mechanismType
-	 */
-	public String getMechanismType() {
-		return mechanismType;
-	}
-
-	/**
-	 * @param mechanismType the mechanismType to set
-	 */
-	@ConfigurationProperty(name = "mechanismType", label = "Mechanism Type")
-	public void setMechanismType(String mechanismType) {
-		this.mechanismType = mechanismType;
-	}
-
-	/**
-	 * @return the mechanismName
-	 */
-	public String getMechanismName() {
-		return mechanismName;
-	}
-
-	/**
-	 * @param mechanismName the mechanismName to set
-	 */
-	@ConfigurationProperty(name = "mechanismName", label = "Mechanism Name")
-	public void setMechanismName(String mechanismName) {
-		this.mechanismName = mechanismName;
-	}
-
-	/**
-	 * @return the mechanismXML
-	 */
-	public String getMechanismXML() {
-		return mechanismXML;
-	}
-
-	/**
-	 * @param mechanismXML the mechanismXML to set
-	 */
-	@ConfigurationProperty(name = "mechanismXML", label = "Mechanism XML")
-	public void setMechanismXML(String mechanismXML) {
-		this.mechanismXML = mechanismXML;
-	}
-
-	/**
-	 * @return the mechanism
-	 */
-	public InvocationMechanism getMechanism() {
-		return mechanism;
-	}
-
-	/**
-	 * Note this also sets the corresponding details
-	 *
-	 * @param mechanism the mechanism to set
-	 */
-	public void setMechanism(InvocationMechanism mechanism) {
-		this.mechanism = mechanism;
-		convertMechanismToDetails();
-	}
-
-	public String toString() {
-		return getName();
-	}
-
-	public void convertMechanismToDetails() {
-		this.setMechanismXML(mechanism.getXML());
-		this.setMechanismName(mechanism.getName());
-		this.setMechanismType(mechanism.getType());
-	}
-
-	public void convertDetailsToMechanism() {
-		if (mechanismXML != null) {
-			for (MechanismCreator mc : mechanismCreators) {
-				if (mc.canHandle(getMechanismType())) {
-					mechanism = mc.convert(getMechanismXML(), getMechanismName());
-					break;
-				}
-			}
-		}
-	}
-
-	public void setMechanismCreators(List<MechanismCreator> mechanismCreators) {
-		this.mechanismCreators = mechanismCreators;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupAddedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupAddedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupAddedEvent.java
deleted file mode 100644
index 1f14b37..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupAddedEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationGroupAddedEvent extends InvocationManagerEvent {
-	
-	private InvocationGroup addedGroup;
-	
-	public InvocationGroupAddedEvent(InvocationGroup addedGroup) {
-		this.addedGroup = addedGroup;
-	}
-
-	/**
-	 * @return the addedGroup
-	 */
-	public InvocationGroup getAddedGroup() {
-		return addedGroup;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupChangedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupChangedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupChangedEvent.java
deleted file mode 100644
index 05c6617..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupChangedEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationGroupChangedEvent extends InvocationManagerEvent {
-	
-	private InvocationGroup changedGroup;
-	
-	public InvocationGroupChangedEvent(InvocationGroup changedGroup) {
-		this.changedGroup = changedGroup;
-	}
-
-	/**
-	 * @return the changedGroup
-	 */
-	public InvocationGroup getChangedGroup() {
-		return changedGroup;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupManager.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupManager.java
deleted file mode 100644
index b398000..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupManager.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 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.externaltool.manager;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import net.sf.taverna.t2.lang.observer.Observer;
-
-/**
- *
- *
- * @author David Withers
- */
-public interface InvocationGroupManager {
-
-	public void addInvocationGroup(InvocationGroup group);
-
-	public void replaceInvocationGroup(InvocationGroup originalGroup,
-			InvocationGroup replacementGroup);
-
-	public void removeInvocationGroup(InvocationGroup group);
-
-	public void replaceInvocationMechanism(InvocationMechanism originalMechanism,
-			InvocationMechanism replacementMechanism);
-
-	public void removeMechanism(InvocationMechanism mechanism);
-
-	public HashSet<InvocationGroup> getInvocationGroups();
-
-	public InvocationGroup getDefaultGroup();
-
-	public Set<InvocationMechanism> getMechanisms();
-
-	public void addMechanism(InvocationMechanism mechanism);
-
-	public InvocationMechanism getDefaultMechanism();
-
-	public boolean containsGroup(InvocationGroup group);
-
-	public InvocationMechanism getInvocationMechanism(String defaultMechanismName);
-
-	public void mechanismChanged(InvocationMechanism im);
-	
-	/**
-	 * Get the directory where the invocation information will be/is saved to.
-	 */
-	public File getInvocationManagerDirectory();
-
-	public void saveConfiguration();
-
-	public void groupChanged(InvocationGroup group);
-
-	public void addObserver(Observer<InvocationManagerEvent> observer);
-
-	public List<Observer<InvocationManagerEvent>> getObservers();
-
-	public void removeObserver(Observer<InvocationManagerEvent> observer);
-
-	public void deleteRun(String runId);
-
-	public void persistInvocations();
-
-	public void loadInvocations();
-
-	public boolean containsMechanism(InvocationMechanism invocationMechanism);
-
-	public InvocationGroup getGroupReplacement(InvocationGroup group);
-
-	public InvocationMechanism getMechanismReplacement(String invocationMechanismSpecification);
-
-	public InvocationGroup getImportedGroup(String groupSpecification);
-
-	public InvocationMechanism getImportedMechanism(String mechanismSpecification);
-
-	public void importMechanism(String invocationMechanismSpecification,
-			InvocationMechanism createdMechanism);
-
-	public void importInvocationGroup(String invocationGroupSpecification,
-			InvocationGroup invocationGroup);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupRemovedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupRemovedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupRemovedEvent.java
deleted file mode 100644
index da14f7b..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationGroupRemovedEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationGroupRemovedEvent extends InvocationManagerEvent {
-	
-	private InvocationGroup removedGroup;
-	private final InvocationGroup replacementGroup;
-	
-	public InvocationGroupRemovedEvent(InvocationGroup removedGroup, InvocationGroup replacementGroup) {
-		this.removedGroup = removedGroup;
-		this.replacementGroup = replacementGroup;
-	}
-
-	/**
-	 * @return the removedGroup
-	 */
-	public InvocationGroup getRemovedGroup() {
-		return removedGroup;
-	}
-	
-	public InvocationGroup getReplacementGroup() {
-		return replacementGroup;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationManagerEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationManagerEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationManagerEvent.java
deleted file mode 100644
index 146e2df..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationManagerEvent.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public abstract class InvocationManagerEvent {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanism.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanism.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanism.java
deleted file mode 100644
index ada8e6d..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanism.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.XMLOutputter;
-
-/**
- * @author alanrw
- *
- */
-public abstract class InvocationMechanism {
-	
-	protected static XMLOutputter outputter = new XMLOutputter();
-
-
-	public static String UNIX_SHELL = "/bin/sh -c";
-
-	public static String UNIX_LINK = "/bin/ln -s %%PATH_TO_ORIGINAL%% %%TARGET_NAME%%";
-	
-	public static String UNIX_COPY = "/bin/cp %%PATH_TO_ORIGINAL%% %%TARGET_NAME%%";
-	
-	
-	private String name;
-
-	public final String getXML() {
-		Document document = new Document(getXMLElement());
-		String result = null;
-		synchronized (outputter) {
-			result = outputter.outputString(document);
-		}
-		return result;
-	}
-	
-	public abstract Element getXMLElement();
-
-	public abstract String getType();
-
-	/**
-	 * @return the name
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * @param name the name to set
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-	
-	public String toString() {
-		return getName();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismAddedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismAddedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismAddedEvent.java
deleted file mode 100644
index 2babb1e..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismAddedEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationMechanismAddedEvent extends InvocationManagerEvent {
-	
-	private InvocationMechanism addedMechanism;
-	
-	public InvocationMechanismAddedEvent(InvocationMechanism addedMechanism) {
-		this.addedMechanism = addedMechanism;
-	}
-
-	/**
-	 * @return the addeMechanism
-	 */
-	public InvocationMechanism getAddedMechanism() {
-		return addedMechanism;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismChangedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismChangedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismChangedEvent.java
deleted file mode 100644
index 7b26bcd..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismChangedEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationMechanismChangedEvent extends InvocationManagerEvent {
-	
-	private InvocationMechanism changedMechanism;
-	
-	public InvocationMechanismChangedEvent(InvocationMechanism changedMechanism) {
-		this.changedMechanism = changedMechanism;
-	}
-
-	/**
-	 * @return the changedMechanism
-	 */
-	public InvocationMechanism getChangedMechanism() {
-		return changedMechanism;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismRemovedEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismRemovedEvent.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismRemovedEvent.java
deleted file mode 100644
index d7c5878..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationMechanismRemovedEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-public class InvocationMechanismRemovedEvent extends InvocationManagerEvent {
-	
-	private InvocationMechanism removedMechanism;
-	private final InvocationMechanism replacementMechanism;
-	
-	public InvocationMechanismRemovedEvent(InvocationMechanism removedMechanism, InvocationMechanism replacementMechanism) {
-		this.removedMechanism = removedMechanism;
-		this.replacementMechanism = replacementMechanism;
-	}
-
-	/**
-	 * @return the addeMechanism
-	 */
-	public InvocationMechanism getRemovedMechanism() {
-		return removedMechanism;
-	}
-	
-	public InvocationMechanism getReplacementMechanism() {
-		return replacementMechanism;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationPersister.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationPersister.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationPersister.java
deleted file mode 100644
index d345595..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/InvocationPersister.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-import java.io.File;
-
-/**
- * @author alanrw
- *
- */
-public abstract class InvocationPersister {
-	
-	public abstract void persist(File directory);
-	
-	public abstract void load(File directory);
-
-	public abstract void deleteRun(String runId);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/MechanismCreator.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/MechanismCreator.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/MechanismCreator.java
deleted file mode 100644
index 81ef1fb..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/MechanismCreator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.manager;
-
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.apache.log4j.Logger;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-/**
- * @author alanrw
- *
- */
-public abstract class MechanismCreator {
-	
-	private static SAXBuilder builder = new SAXBuilder();
-
-	private static Logger logger = Logger.getLogger(MechanismCreator.class);
-	
-	public abstract boolean canHandle(String mechanismType);
-	
-	public InvocationMechanism convert(String xml, String name) {
-		
-		Document document;
-		try {
-			synchronized (builder) {
-				document = builder.build(new StringReader(xml));
-			}
-		} catch (JDOMException e1) {
-			logger.error("Null invocation", e1);
-			return null;
-		} catch (IOException e1) {
-			logger.error("Null invocation", e1);
-			return null;
-		}
-		Element top = document.getRootElement();
-		
-		return convert(top, name);
-	}
-
-	public abstract InvocationMechanism convert(Element detailsElement,
-			String mechanismName);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/impl/InvocationGroupManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/impl/InvocationGroupManagerImpl.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/impl/InvocationGroupManagerImpl.java
deleted file mode 100644
index af18938..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/manager/impl/InvocationGroupManagerImpl.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.externaltool.manager.impl;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import net.sf.taverna.t2.activities.externaltool.local.ExternalToolLocalInvocationMechanism;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroup;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupAddedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupChangedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManager;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupRemovedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationManagerEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismAddedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismChangedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanismRemovedEvent;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister;
-import net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator;
-import net.sf.taverna.t2.lang.observer.MultiCaster;
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-
-import org.apache.log4j.Logger;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.Format;
-import org.jdom.output.XMLOutputter;
-
-import uk.org.taverna.configuration.app.ApplicationConfiguration;
-
-
-/**
- * @author alanrw
- *
- */
-public class InvocationGroupManagerImpl implements Observable<InvocationManagerEvent>, InvocationGroupManager{
-
-	private static final String DEFAULT_MECHANISM_NAME = "default local";
-	private static final String DEFAULT_GROUP_NAME = "default";
-	private HashSet<InvocationGroup> groups = new HashSet<InvocationGroup>();
-	private InvocationGroup defaultGroup = null;
-
-	private HashSet<InvocationMechanism> mechanisms = new HashSet<InvocationMechanism>();
-
-	private static XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
-	private static SAXBuilder builder = new SAXBuilder();
-
-	private static Logger logger = Logger.getLogger(InvocationGroupManagerImpl.class);
-	
-	private Map<InvocationGroup, InvocationGroup> groupReplacements = Collections.synchronizedMap(new HashMap<InvocationGroup, InvocationGroup>());
-    
-	private Map<String, InvocationMechanism> mechanismReplacements = Collections.synchronizedMap(new HashMap<String, InvocationMechanism>());
-
-	private Map<String, InvocationGroup> groupImports = Collections.synchronizedMap(new HashMap<String, InvocationGroup> ());
-
-	private Map<String, InvocationMechanism> mechanismImports = Collections.synchronizedMap(new HashMap<String, InvocationMechanism> ());
-
-	private final ApplicationConfiguration applicationConfiguration;
-
-	private final List<MechanismCreator> mechanismCreators;
-
-	private final List<InvocationPersister> invocationPersisters;
-	
-	protected MultiCaster<InvocationManagerEvent> observers = new MultiCaster<InvocationManagerEvent>(
-			this);
-
-	private InvocationMechanism defaultMechanism = null;
-
-	public InvocationGroupManagerImpl(ApplicationConfiguration applicationConfiguration, List<MechanismCreator> mechanismCreators, List<InvocationPersister> invocationPersisters) {
-		this.applicationConfiguration = applicationConfiguration;
-		this.mechanismCreators = mechanismCreators;
-		this.invocationPersisters = invocationPersisters;
-		readConfiguration();
-		defaultMechanism = getInvocationMechanism(DEFAULT_MECHANISM_NAME);
-		if (defaultMechanism == null) {
-			createDefaultMechanism();
-		}
-		defaultGroup = getInvocationGroup(DEFAULT_GROUP_NAME);
-		if (defaultGroup == null) {
-			createDefaultGroup();
-		}
-
-		saveConfiguration();
-	}
-
-	@Override
-	public void addInvocationGroup(InvocationGroup group) {
-		groups.add(group);
-		observers.notify(new InvocationGroupAddedEvent(group));
-	}
-
-	@Override
-	public void replaceInvocationGroup(InvocationGroup originalGroup, InvocationGroup replacementGroup) {
-		Set<String> toReplaceImports = new HashSet<String>();
-		for (Entry<String, InvocationGroup> entry : groupImports.entrySet()) {
-			if (entry.getValue() == originalGroup) {
-				toReplaceImports.add(entry.getKey());
-			}
-		}
-		for (String spec : toReplaceImports) {
-			if (replacementGroup == null) {
-				groupImports.remove(spec);
-			} else {
-				groupImports.put(spec, replacementGroup);
-			}
-		}
-		if (replacementGroup != null) {
-			groupReplacements.put(originalGroup, replacementGroup);
-		}
-		observers.notify(new InvocationGroupRemovedEvent(originalGroup, (replacementGroup == null? getDefaultGroup(): replacementGroup)));
-	}
-
-	@Override
-	public void removeInvocationGroup(InvocationGroup group) {
-		groups.remove(group);
-		replaceInvocationGroup(group, getDefaultGroup());
-	}
-
-	@Override
-	public void replaceInvocationMechanism(InvocationMechanism originalMechanism, InvocationMechanism replacementMechanism) {
-		for (InvocationGroup g : groups) {
-			if (g.getMechanism().equals(originalMechanism)) {
-				if (replacementMechanism == null) {
-					g.setMechanism(getDefaultMechanism());
-				} else {
-					g.setMechanism(replacementMechanism);
-				}
-			}
-		}
-		Set<String> toRemoveImports = new HashSet<String>();
-		for (Entry<String, InvocationMechanism> entry : mechanismImports.entrySet()) {
-			if (entry.getValue() == originalMechanism) {
-				toRemoveImports.add(entry.getKey());
-			}
-		}
-		for (String spec : toRemoveImports) {
-			if (replacementMechanism == null) {
-				mechanismImports.remove(spec);
-			} else {
-				mechanismImports.put(spec, replacementMechanism);
-			}
-		}
-		if (replacementMechanism != null) {
-			mechanismReplacements.put(originalMechanism.getName() + ":" + originalMechanism.getXML(), replacementMechanism);
-		}
-		observers.notify(new InvocationMechanismRemovedEvent(originalMechanism, (replacementMechanism == null? getDefaultMechanism(): replacementMechanism)));
-	}
-
-	@Override
-	public void removeMechanism(InvocationMechanism mechanism) {
-		mechanisms.remove(mechanism);
-		replaceInvocationMechanism(mechanism, getDefaultMechanism());
-	}
-
-	@Override
-	public HashSet<InvocationGroup> getInvocationGroups() {
-		return groups;
-	}
-
-	@Override
-	public InvocationGroup getDefaultGroup() {
-		if (defaultGroup == null) {
-			createDefaultGroup();
-		}
-		return defaultGroup;
-	}
-
-	@Override
-	public Set<InvocationMechanism> getMechanisms() {
-		return mechanisms;
-	}
-
-	@Override
-	public void addMechanism(InvocationMechanism mechanism) {
-		mechanisms.add(mechanism);
-		observers.notify(new InvocationMechanismAddedEvent(mechanism));
-	}
-
-	@Override
-	public InvocationMechanism getDefaultMechanism() {
-		if (defaultMechanism == null) {
-			createDefaultMechanism();
-		}
-		return defaultMechanism;
-	}
-
-	@Override
-	public boolean containsGroup(InvocationGroup group) {
-		return groups.contains(group);
-	}
-
-	@Override
-	public InvocationMechanism getInvocationMechanism(
-			String defaultMechanismName) {
-		for (InvocationMechanism m : mechanisms) {
-			if (m.getName().equals(defaultMechanismName)) {
-				return m;
-			}
-		}
-		return null;
-	}
-
-	InvocationGroup getInvocationGroup(String groupName) {
-		for (InvocationGroup g : groups) {
-			if (g.getName().equals(groupName)) {
-				return g;
-			}
-		}
-		return null;
-	}
-
-	@Override
-	public void mechanismChanged(InvocationMechanism im) {
-		observers.notify(new InvocationMechanismChangedEvent(im));
-	}
-
-
-	private void createDefaultMechanism() {
-		defaultMechanism = new ExternalToolLocalInvocationMechanism();
-		defaultMechanism.setName(DEFAULT_MECHANISM_NAME);
-		mechanisms.add(defaultMechanism);
-	}
-
-	private void createDefaultGroup() {
-		defaultGroup = new InvocationGroup(mechanismCreators);
-		defaultGroup.setName(DEFAULT_GROUP_NAME);
-		defaultGroup.setMechanism(defaultMechanism);
-		groups.add(defaultGroup);
-	}
-
-	private void readConfiguration() {
-		File f = new File(getInvocationManagerDirectory(), "invocationManager.xml");
-		if (!f.exists()) {
-			return;
-		}
-		try {
-			Document document = null;
-			synchronized (builder) {
-				document = builder.build(f);
-			}
-			Element topElement = document.getRootElement();
-			Element mechanismsElement = topElement.getChild("invocationMechanisms");
-			for (Object mechanismObject : mechanismsElement.getChildren("invocationMechanism")) {
-				Element mechanismElement = (Element) mechanismObject;
-				Element mechanismNameElement = mechanismElement.getChild("invocationMechanismName");
-				String mechanismName = mechanismNameElement.getText();
-				Element mechanismTypeElement = mechanismElement.getChild("invocationMechanismType");
-				String mechanismType = mechanismTypeElement.getText();
-				Element mechanismDetailsElement = mechanismElement.getChild("mechanismDetails");
-				Element detailsElement = (Element) mechanismDetailsElement.getChildren().get(0);
-				InvocationMechanism mechanism = null;
-				for (MechanismCreator mc : mechanismCreators) {
-					if (mc.canHandle(mechanismType)) {
-						mechanism = mc.convert(detailsElement, mechanismName);
-					}
-				}
-				if (mechanism != null) {
-					this.addMechanism(mechanism);
-				}
-			}
-
-			Element groupsElement = topElement.getChild("invocationGroups");
-			for (Object groupObject : groupsElement.getChildren("invocationGroup")) {
-				Element groupElement = (Element) groupObject;
-				Element groupNameElement = groupElement.getChild("invocationGroupName");
-				String groupName = groupNameElement.getText();
-				Element mechanismNameElement = groupElement.getChild("mechanismName");
-				String mechanismName = mechanismNameElement.getText();
-				InvocationMechanism mechanism = getInvocationMechanism(mechanismName);
-				if (mechanism == null) {
-					logger.warn("Could not find mechanism " + mechanismName);
-					mechanism = getDefaultMechanism();
-				}
-				InvocationGroup group = new InvocationGroup(mechanismCreators);
-				group.setName(groupName);
-				group.setMechanism(mechanism);
-				group.convertMechanismToDetails();
-				this.addInvocationGroup(group);
-			}
-		} catch (JDOMException e) {
-			logger.error("XML parsing problem", e);
-		} catch (IOException e) {
-			logger.error("Unable to read invocation manager", e);
-		}
-	}
-
-	/**
-	 * Get the directory where the invocation information will be/is saved to.
-	 */
-	@Override
-	public File getInvocationManagerDirectory() {
-
-		File home = applicationConfiguration.getApplicationHomeDir();
-
-		File invocationManagerDirectory = new File(home,"externaltool");
-		if (!invocationManagerDirectory.exists()) {
-			invocationManagerDirectory.mkdir();
-		}
-		return invocationManagerDirectory;
-	}
-
-	@Override
-	public void saveConfiguration() {
-		File f = new File(getInvocationManagerDirectory(), "invocationManager.xml");
-
-		Document configDocument = new Document();
-		Element topElement = new Element("invocationManager");
-		Element mechanismsElement = new Element("invocationMechanisms");
-
-		for (InvocationMechanism m : mechanisms) {
-			Element mechanismElement = new Element("invocationMechanism");
-			Element nameElement = new Element("invocationMechanismName");
-			nameElement.setText(m.getName());
-			mechanismElement.addContent(nameElement);
-			Element typeElement = new Element("invocationMechanismType");
-			typeElement.setText(m.getType());
-			mechanismElement.addContent(typeElement);
-			Element mechanismDetails = new Element("mechanismDetails");
-			mechanismDetails.addContent(m.getXMLElement());
-			mechanismElement.addContent(mechanismDetails);
-
-			mechanismsElement.addContent(mechanismElement);
-		}
-		topElement.addContent(mechanismsElement);
-
-		Element groupsElement = new Element("invocationGroups");
-		for (InvocationGroup g : groups) {
-			Element groupElement = new Element("invocationGroup");
-			Element nameElement = new Element("invocationGroupName");
-			nameElement.setText(g.getName());
-			groupElement.addContent(nameElement);
-			Element mechanismNameElement = new Element("mechanismName");
-			mechanismNameElement.setText(g.getMechanism().getName());
-			groupElement.addContent(mechanismNameElement);
-			groupsElement.addContent(groupElement);
-		}
-		topElement.addContent(groupsElement);
-
-		configDocument.setRootElement(topElement);
-
-		FileWriter writer;
-		try {
-			writer = new FileWriter(f);
-			synchronized (outputter) {
-				outputter.output(configDocument, writer);
-			}
-			writer.close();
-		} catch (IOException e) {
-			logger.error("Unable to save invocation manager", e);
-		}
-	}
-
-	@Override
-	public void groupChanged(InvocationGroup group) {
-		observers.notify(new InvocationGroupChangedEvent(group));
-	}
-
-	@Override
-	public void addObserver(Observer<InvocationManagerEvent> observer) {
-		observers.addObserver(observer);
-	}
-
-	@Override
-	public List<Observer<InvocationManagerEvent>> getObservers() {
-		return observers.getObservers();
-	}
-
-	@Override
-	public void removeObserver(Observer<InvocationManagerEvent> observer) {
-		observers.removeObserver(observer);
-	}
-
-	@Override
-	public void deleteRun(String runId) {
-		for (InvocationPersister persister : invocationPersisters) {
-			persister.deleteRun(runId);
-		}
-	}
-
-	@Override
-	public void persistInvocations() {
-		for (InvocationPersister persister : invocationPersisters) {
-			persister.persist(getInvocationManagerDirectory());
-		}
-	}
-
-	@Override
-	public void loadInvocations() {
-		for (InvocationPersister persister : invocationPersisters) {
-			persister.load(getInvocationManagerDirectory());
-		}
-	}
-
-	@Override
-	public boolean containsMechanism(InvocationMechanism invocationMechanism) {
-		return mechanisms.contains(invocationMechanism);
-	}
-
-	@Override
-	public InvocationGroup getGroupReplacement(InvocationGroup group) {
-		return groupReplacements.get(group);
-	}
-
-	@Override
-	public InvocationMechanism getMechanismReplacement(String invocationMechanismSpecification) {
-		return mechanismReplacements.get(invocationMechanismSpecification);
-	}
-
-	@Override
-	public InvocationGroup getImportedGroup(String groupSpecification) {
-		return groupImports.get(groupSpecification);
-	}
-
-	@Override
-	public InvocationMechanism getImportedMechanism(String mechanismSpecification) {
-		return mechanismImports.get(mechanismSpecification);
-	}
-
-	@Override
-	public void importMechanism(String invocationMechanismSpecification,
-			InvocationMechanism createdMechanism) {
-		addMechanism(createdMechanism);
-		mechanismImports.put(invocationMechanismSpecification, createdMechanism);
-	}
-
-	@Override
-	public void importInvocationGroup(String invocationGroupSpecification,
-			InvocationGroup invocationGroup) {
-		addInvocationGroup(invocationGroup);
-		groupImports.put(invocationGroupSpecification, invocationGroup);
-	}
-
-}

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

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/repository/ExternalToolRepositoryUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/repository/ExternalToolRepositoryUtil.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/repository/ExternalToolRepositoryUtil.java
deleted file mode 100644
index 5bfcc63..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/repository/ExternalToolRepositoryUtil.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.repository;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolRepositoryUtil {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/ExternalToolSshInvocationMechanism.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/ExternalToolSshInvocationMechanism.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/ExternalToolSshInvocationMechanism.java
deleted file mode 100644
index 0b89175..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/ExternalToolSshInvocationMechanism.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.externaltool.ssh;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.Text;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshNodeFactory;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUseCaseInvocation;
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshNode;
-
-/**
- * @author alanrw
- *
- */
-public class ExternalToolSshInvocationMechanism extends InvocationMechanism {
-	
-	private List<SshNode> nodes = new ArrayList<SshNode>();
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism#getType()
-	 */
-	@Override
-	public String getType() {
-		return SshUseCaseInvocation.SSH_USE_CASE_INVOCATION_TYPE;
-	}
-
-	/**
-	 * @param list the nodes to set
-	 */
-	public void setNodes(List<SshNode> list) {
-		this.nodes = list;
-	}
-
-	public List<SshNode> getNodes() {
-		if (this.nodes.isEmpty()) {
-			this.nodes.add(SshNodeFactory.getInstance().getDefaultNode());
-		}
-		return this.nodes;
-	}
-
-	@Override
-	public Element getXMLElement() {
-		Element top = new Element("sshInvocation");
-		for (SshNode node : nodes) {
-			Element nodeElement = new Element("sshNode");
-			String host = node.getHost();
-			if (host != null) {
-				Element hostElement = new Element("host");
-				hostElement.addContent(new Text(host));
-				nodeElement.addContent(hostElement);
-			}
-			int port = node.getPort();
-			Element portElement = new Element("port");
-			portElement.addContent(new Text(Integer.toString(port)));
-			nodeElement.addContent(portElement);
-
-			String directory = node.getDirectory();
-			if (directory != null) {
-				Element directoryElement = new Element("directory");
-				directoryElement.addContent(new Text(directory));
-				nodeElement.addContent(directoryElement);
-			}
-			
-			String linkCommand = node.getLinkCommand();
-			if (linkCommand != null) {
-				Element linkCommandElement = new Element("linkCommand");
-				linkCommandElement.addContent(new Text(linkCommand));
-				nodeElement.addContent(linkCommandElement);
-			}
-			
-			String copyCommand = node.getCopyCommand();
-			if (copyCommand != null) {
-				Element copyCommandElement = new Element("copyCommand");
-				copyCommandElement.addContent(new Text(copyCommand));
-				nodeElement.addContent(copyCommandElement);
-			}
-			if (node.isRetrieveData()) {
-				Element retrieveDataElement = new Element("retrieveData");
-				nodeElement.addContent(retrieveDataElement);
-			}
-			
-			top.addContent(nodeElement);
-		}
-		return top;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationCreator.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationCreator.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationCreator.java
deleted file mode 100644
index 3d2f5b0..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationCreator.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.externaltool.ssh;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.externaltool.InvocationCreator;
-import net.sf.taverna.t2.activities.externaltool.RetrieveLoginFromTaverna;
-
-import org.apache.log4j.Logger;
-
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.SftpException;
-
-import de.uni_luebeck.inb.knowarc.usecases.UseCaseDescription;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.UseCaseInvocation;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshNode;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshNodeFactory;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshReference;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUrl;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUseCaseInvocation;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationMechanism;
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.reference.Identified;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.ReferenceSet;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-
-/**
- * @author alanrw
- *
- */
-public final class SshInvocationCreator implements InvocationCreator {
-
-	private static Logger logger = Logger.getLogger(SshInvocationCreator.class);
-
-    private static List<SshNode> knownNodes = new ArrayList<SshNode>();
-
-	private CredentialManager credentialManager;
-
-	@Override
-	public boolean canHandle(String mechanismType) {
-		return mechanismType.equals(SshUseCaseInvocation.SSH_USE_CASE_INVOCATION_TYPE);
-	}
-
-	@Override
-	public UseCaseInvocation convert(InvocationMechanism m, UseCaseDescription description, Map<String, T2Reference> data, ReferenceService referenceService) {
-	    ExternalToolSshInvocationMechanism mechanism = (ExternalToolSshInvocationMechanism) m;
-		SshUseCaseInvocation result = null;
-		try {
-		    SshNode chosenNode = chooseNode(mechanism.getNodes(), data, referenceService);
-		    result = new SshUseCaseInvocation(description, chosenNode, new RetrieveLoginFromTaverna(new SshUrl(chosenNode).toString(), credentialManager), credentialManager);
-		} catch (JSchException e) {
-			logger.error("Null invocation", e);
-		} catch (SftpException e) {
-			logger.error("Null invocation", e);
-		}
-		return result;
-	}
-
-    private static SshNode chooseNode(List<SshNode> possibleNodes, Map<String, T2Reference> data, ReferenceService referenceService) {
-	SshNode result = null;
-	for (T2Reference ref : data.values()) {
-		SshReference r = getAsSshReference(referenceService, ref);
-		if (r != null) {
-			SshNode dataNode = SshNodeFactory.getInstance().getSshNode(r.getHost(), r.getPort(), r.getDirectory());
-			if (possibleNodes.contains(dataNode)) {
-				logger.info("Running with data at " + r.getHost());
-				return dataNode;
-			}
-		}
-	}
-	synchronized(knownNodes) {
-	    int chosenIndex = Integer.MAX_VALUE;
-	    for (SshNode p : possibleNodes) {
-		if (!knownNodes.contains(p)) {
-		    knownNodes.add(p);
-		}
-		int index = knownNodes.indexOf(p);
-		if (index < chosenIndex) {
-		    chosenIndex = index;
-		}
-	    }
-	    if (chosenIndex != Integer.MAX_VALUE) {
-		result = knownNodes.get(chosenIndex);
-		// Move node to end of list
-		knownNodes.remove(result);
-		knownNodes.add(result);
-	    }
-	}
-	return result;
-    }
-
-    private static SshReference getAsSshReference(ReferenceService referenceService,
-			T2Reference t2Reference) {
-    	Identified identified = referenceService.resolveIdentifier(t2Reference, null, null);
-		if (identified instanceof ReferenceSet) {
-			for (ExternalReferenceSPI ref : ((ReferenceSet) identified).getExternalReferences()) {
-				if (ref instanceof SshReference) {
-					SshReference sshRef = (SshReference) ref;
-					return sshRef;
-				}
-			}
-		}
-		return null;
-	}
-
-	public void setCredentialManager(CredentialManager credentialManager) {
-		this.credentialManager = credentialManager;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/6bc470a3/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationPersister.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationPersister.java b/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationPersister.java
deleted file mode 100644
index 44217d3..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/externaltool/ssh/SshInvocationPersister.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.externaltool.ssh;
-
-import java.io.File;
-
-import net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-
-import org.apache.log4j.Logger;
-
-import de.uni_luebeck.inb.knowarc.usecases.invocation.InvocationException;
-import de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUseCaseInvocation;
-
-/**
- * @author alanrw
- *
- */
-public class SshInvocationPersister extends InvocationPersister {
-
-	private static Logger logger = Logger.getLogger(SshInvocationPersister.class);
-	private CredentialManager credentialManager;
-
-
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister#load()
-	 */
-	@Override
-	public void load(File directory) {
-		SshUseCaseInvocation.load(directory);
-	}
-
-	/* (non-Javadoc)
-	 * @see net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister#persist()
-	 */
-	@Override
-	public void persist(File directory) {
-		SshUseCaseInvocation.persist(directory);
-	}
-
-	@Override
-	public void deleteRun(String runId) {
-		try {
-			SshUseCaseInvocation.cleanup(runId, credentialManager);
-		} catch (InvocationException e) {
-			logger.error(e);
-		}
-	}
-
-	public void setCredentialManager(CredentialManager credentialManager) {
-		this.credentialManager = credentialManager;
-	}
-
-}