http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.RunDeletionListener
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.RunDeletionListener
 
b/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.RunDeletionListener
deleted file mode 100644
index ac84bb3..0000000
--- 
a/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.RunDeletionListener
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.externaltool.ExternalToolRunDeletionListener

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
 
b/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
deleted file mode 100644
index c97a79d..0000000
--- 
a/taverna-external-tool-activity/src/main/resources/META-INF/services/net.sf.taverna.t2.workflowmodel.health.HealthChecker
+++ /dev/null
@@ -1,2 +0,0 @@
-net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker
-net.sf.taverna.t2.activities.externaltool.ExternalToolActivityMimeTypeChecker

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context-osgi.xml
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context-osgi.xml
 
b/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context-osgi.xml
deleted file mode 100644
index 197f2c0..0000000
--- 
a/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context-osgi.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xmlns:beans="http://www.springframework.org/schema/beans";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd
-                      http://www.springframework.org/schema/osgi
-                      
http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
-
-       <service ref="SshReference" 
interface="net.sf.taverna.t2.reference.ExternalReferenceSPI" />
-
-       <service ref="invocationGroupManager" 
interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationGroupManager"
 />
-
-       <service ref="LocalInvocationPersister" 
interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister"
 />
-       <service ref="SshInvocationPersister" 
interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister"
 />
-
-       <service ref="LocalMechanismCreator" 
interface="net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator" 
/>
-       <service ref="SshMechanismCreator" 
interface="net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator" 
/>
-
-       <service ref="ExternalToolRunDeletionListener" 
interface="net.sf.taverna.t2.workflowmodel.RunDeletionListener" />
-
-       <service ref="SshUrlToSshReference" 
interface="net.sf.taverna.t2.reference.ValueToReferenceConverterSPI" />
-
-       <service ref="ExternalToolActivityHealthChecker" 
interface="net.sf.taverna.t2.workflowmodel.health.HealthChecker" />
-       <service ref="ExternalToolActivityMimeTypeChecker" 
interface="net.sf.taverna.t2.workflowmodel.health.HealthChecker" />
-
-       <service ref="LocalInvocationCreator" 
interface="net.sf.taverna.t2.activities.externaltool.InvocationCreator" />
-       <service ref="SshInvocationCreator" 
interface="net.sf.taverna.t2.activities.externaltool.InvocationCreator" />
-
-       <service ref="externalToolActivityFactory" 
interface="net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory" 
/>
-
-       <list id="invocationCreators" 
interface="net.sf.taverna.t2.activities.externaltool.InvocationCreator" 
cardinality="0..N" />
-
-       <list id="mechanismCreators" 
interface="net.sf.taverna.t2.activities.externaltool.manager.MechanismCreator" 
cardinality="0..N" />
-
-        <list id="invocationPersisters" 
interface="net.sf.taverna.t2.activities.externaltool.manager.InvocationPersister"
 cardinality="0..N" />
-
-       <reference id="credentialManager" 
interface="net.sf.taverna.t2.security.credentialmanager.CredentialManager" />
-
-       <reference id="applicationConfiguration" 
interface="uk.org.taverna.configuration.app.ApplicationConfiguration" />
-
-        <reference id="edits" 
interface="net.sf.taverna.t2.workflowmodel.Edits" />
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context.xml
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context.xml
 
b/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context.xml
deleted file mode 100644
index a3cfdb8..0000000
--- 
a/taverna-external-tool-activity/src/main/resources/META-INF/spring/external-tool-activity-context.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd";>
-
-       <bean id="SshReference" 
class="de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshReference">
-               <property name="credentialManager" ref="credentialManager" />
-       </bean>
-
-       <bean id="LocalInvocationPersister" 
class="net.sf.taverna.t2.activities.externaltool.local.LocalInvocationPersister"
 />
-       <bean id="SshInvocationPersister" 
class="net.sf.taverna.t2.activities.externaltool.ssh.SshInvocationPersister">
-               <property name="credentialManager" ref="credentialManager" />
-       </bean>
-
-       <bean id="LocalMechanismCreator" 
class="net.sf.taverna.t2.activities.externaltool.local.LocalMechanismCreator" />
-       <bean id="SshMechanismCreator" 
class="net.sf.taverna.t2.activities.externaltool.ssh.SshMechanismCreator" />
-
-       <bean id="ExternalToolRunDeletionListener" 
class="net.sf.taverna.t2.activities.externaltool.ExternalToolRunDeletionListener">
-               <property name="invocationGroupManager" 
ref="invocationGroupManager" />
-       </bean>
-
-       <bean id="SshUrlToSshReference" 
class="de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshUrlToSshReference">
-               <property name="credentialManager" ref="credentialManager" />
-       </bean>
-
-       <bean id="ExternalToolActivityHealthChecker" 
class="net.sf.taverna.t2.activities.externaltool.ExternalToolActivityHealthChecker">
-               <property name="invocationGroupManager" 
ref="invocationGroupManager" />
-       </bean>
-       <bean id="ExternalToolActivityMimeTypeChecker" 
class="net.sf.taverna.t2.activities.externaltool.ExternalToolActivityMimeTypeChecker"
 />
-
-       <bean id="LocalInvocationCreator" 
class="net.sf.taverna.t2.activities.externaltool.local.LocalInvocationCreator" 
/>
-       <bean id="SshInvocationCreator" 
class="net.sf.taverna.t2.activities.externaltool.ssh.SshInvocationCreator">
-               <property name="credentialManager" ref="credentialManager" />
-       </bean>
-
-
-       <bean id="externalToolActivityFactory" 
class="net.sf.taverna.t2.activities.externaltool.ExternalToolActivityFactory">
-               <property name="invocationCreators" ref="invocationCreators" />
-               <property name="mechanismCreators" ref="mechanismCreators" />
-                <property name="edits" ref="edits" />
-       </bean>
-
-       <bean id="invocationGroupManager" 
class="net.sf.taverna.t2.activities.externaltool.manager.impl.InvocationGroupManagerImpl">
-               <constructor-arg name="applicationConfiguration" 
ref="applicationConfiguration" />
-               <constructor-arg name="mechanismCreators" 
ref="mechanismCreators" />
-               <constructor-arg name="invocationPersisters" 
ref="invocationPersisters" />
-       </bean>
-
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-external-tool-activity/src/main/resources/de/uni_luebeck/inb/knowarc/usecases/invocation/ssh/SshReference.hbm.xml
----------------------------------------------------------------------
diff --git 
a/taverna-external-tool-activity/src/main/resources/de/uni_luebeck/inb/knowarc/usecases/invocation/ssh/SshReference.hbm.xml
 
b/taverna-external-tool-activity/src/main/resources/de/uni_luebeck/inb/knowarc/usecases/invocation/ssh/SshReference.hbm.xml
deleted file mode 100644
index 384cb25..0000000
--- 
a/taverna-external-tool-activity/src/main/resources/de/uni_luebeck/inb/knowarc/usecases/invocation/ssh/SshReference.hbm.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE hibernate-mapping PUBLIC
-                "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-                "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd";>
-<!-- Hibernate mapping for ssh reference bean -->
-<hibernate-mapping>
-       <joined-subclass
-               
name="de.uni_luebeck.inb.knowarc.usecases.invocation.ssh.SshReference"
-               extends="net.sf.taverna.t2.reference.AbstractExternalReference">
-               <!-- Link to primary key from abstract superclass -->
-               <key column="bean_id" />
-               <!-- SshReference specific properties below here -->
-               <property name="host" type="string" />
-               <property name="port" type="integer"/>
-               <property name="directory" type="string" />
-               <property name="subDirectory" type="string" />
-               <property name="fileName" type="string" />
-               <property name="dataNatureInteger" type="integer"/> 
- 
-               <property name="charset" type="string" />
-       </joined-subclass>
-</hibernate-mapping>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-interaction-activity/pom.xml 
b/taverna-interaction-activity/pom.xml
deleted file mode 100644
index b32410c..0000000
--- a/taverna-interaction-activity/pom.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.apache.taverna.commonactivities</groupId>
-               <artifactId>taverna-common-activities</artifactId>
-               <version>2.1.0-incubating-SNAPSHOT</version>
-       </parent>
-       <artifactId>taverna-interaction-activity</artifactId>
-       <packaging>bundle</packaging>
-       <name>Apache Taverna Interaction Activity</name>
-
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                       <!--  Export nothing -->
-                                               
<Export-Package></Export-Package>
-                                               
<Embed-Transitive>true</Embed-Transitive>
-                                               
<Embed-Dependency>webdav-servlet</Embed-Dependency>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-
-       <dependencies>
-
-               <dependency>
-                       <groupId>org.apache.taverna.engine</groupId>
-                       <artifactId>taverna-reference-api</artifactId>
-                       <version>${taverna.engine.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.taverna.engine</groupId>
-                       <artifactId>taverna-workflowmodel-api</artifactId>
-                       <version>${taverna.engine.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.taverna.engine</groupId>
-                       <artifactId>taverna-credential-manager</artifactId>
-                       <version>${taverna.engine.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.taverna.engine</groupId>
-                       <artifactId>taverna-activity-test-utils</artifactId>
-                       <version>${taverna.engine.version}</version>
-                       <scope>test</scope>
-               </dependency>
-
-       <dependency>
-    <groupId>commons-io</groupId>
-               <artifactId>commons-io</artifactId>
-               <version>${commons.io.version}</version>
-       </dependency>
-
-       <dependency>
-    <groupId>commons-codec</groupId>
-    <artifactId>commons-codec</artifactId>
-               <version>${commons.codec.version}</version>
-       </dependency>
-
-
-
-               <!--  Mortbay jetty artifacts are bundles -->
-               <dependency>
-                       <groupId>org.mortbay.jetty</groupId>
-                       <artifactId>jetty</artifactId>
-                       <version>${jetty.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.mortbay.jetty</groupId>
-                       <artifactId>jetty-util</artifactId>
-                       <version>${jetty.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>servlet-api</artifactId>
-                       <version>2.5</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>net.sf.webdav-servlet</groupId>
-                       <artifactId>webdav-servlet</artifactId>
-                       <version>2.0</version>
-               </dependency>
-
-<!--  The abdera artifacts are bundles -->
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-core</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-client</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-server</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-extensions-main</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-extensions-html</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-extensions-json</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-i18n</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.abdera</groupId>
-                       <artifactId>abdera-parser</artifactId>
-                       <version>${abdera.version}</version>
-               </dependency>
-
-<!--  The velocity artifact is a bundle -->
-               <dependency>
-                       <groupId>org.apache.velocity</groupId>
-                       <artifactId>velocity</artifactId>
-                       <version>${velocity.version}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/FeedReader.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/FeedReader.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/FeedReader.java
deleted file mode 100644
index 7be03df..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/FeedReader.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Date;
-
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-
-import org.apache.abdera.model.Document;
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.model.Feed;
-import org.apache.abdera.parser.ParseException;
-import org.apache.abdera.parser.Parser;
-import org.apache.abdera.parser.stax.FOMParser;
-import org.apache.log4j.Logger;
-
-public abstract class FeedReader extends Thread {
-
-       static final Logger logger = Logger.getLogger(FeedReader.class);
-
-       public FeedReader(final String name) {
-               super(name);
-               this.setDaemon(true);
-       }
-
-       protected abstract void considerEntry(Entry entry);
-
-       @Override
-       public void run() {
-               try {
-                       final Parser parser = new FOMParser();
-                       Date lastCheckedDate = new Date();
-                       while (true) {
-                               try {
-                                       sleep(5000);
-                               } catch (final InterruptedException e1) {
-                                       logger.error(e1);
-                               }
-                               InputStream openStream = null;
-                               try {
-                                       final Date newLastCheckedDate = new 
Date();
-                                       final URL url = 
getInteractionPreference().getFeedUrl();
-                                       openStream = url.openStream();
-                                       final Document<Feed> doc = 
parser.parse(openStream,
-                                                       url.toString());
-                                       final Feed feed = 
doc.getRoot().sortEntriesByEdited(true);
-
-                                       for (final Entry entry : 
feed.getEntries()) {
-
-                                               Date d = entry.getEdited();
-                                               if (d == null) {
-                                                       d = entry.getUpdated();
-                                               }
-                                               if (d == null) {
-                                                       d = 
entry.getPublished();
-                                               }
-                                                if (d.before(lastCheckedDate)) 
{
-                                                break;
-                                                }
-                                               this.considerEntry(entry);
-                                       }
-                                       lastCheckedDate = newLastCheckedDate;
-                               } catch (final MalformedURLException e) {
-                                       logger.error(e);
-                               } catch (final ParseException e) {
-                                       logger.error(e);
-                               } catch (final IOException e) {
-                                       logger.error(e);
-                               } finally {
-                                       try {
-                                               if (openStream != null) {
-                                                       openStream.close();
-                                               }
-                                       } catch (final IOException e) {
-                                               logger.error(e);
-                                       }
-                               }
-                       }
-               } catch (final Exception e) {
-                       logger.error(e);
-               }
-       }
-
-       protected abstract InteractionPreference getInteractionPreference();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivity.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivity.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivity.java
deleted file mode 100644
index cfc2182..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivity.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package net.sf.taverna.t2.activities.interaction;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.interaction.jetty.InteractionJetty;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-import net.sf.taverna.t2.activities.interaction.velocity.InteractionVelocity;
-import net.sf.taverna.t2.activities.interaction.velocity.NotifyChecker;
-import net.sf.taverna.t2.activities.interaction.velocity.ProduceChecker;
-import net.sf.taverna.t2.activities.interaction.velocity.RequireChecker;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.AbstractAsynchronousActivity;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivity;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean;
-
-import org.apache.log4j.Logger;
-import org.apache.velocity.Template;
-import org.apache.velocity.app.Velocity;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.apache.velocity.runtime.parser.node.ASTprocess;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public final class InteractionActivity extends
-               AbstractAsynchronousActivity<JsonNode>
-               implements AsynchronousActivity<JsonNode> {
-       
-       public static final String URI = 
"http://ns.taverna.org.uk/2010/activity/interaction";;
-
-       @SuppressWarnings("unused")
-       private static final Logger logger = Logger
-                       .getLogger(InteractionActivity.class);
-
-       private Template presentationTemplate;
-
-       private final Map<String, Integer> inputDepths = new HashMap<String, 
Integer>();
-       private final Map<String, Integer> outputDepths = new HashMap<String, 
Integer>();
-
-       private CredentialManager credentialManager;
-
-       private InteractionRecorder interactionRecorder;
-
-       private InteractionUtils interactionUtils;
-
-       private InteractionJetty interactionJetty;
-
-       private InteractionPreference interactionPreference;
-
-       private ResponseFeedListener responseFeedListener;
-
-       private JsonNode json;
-
-       private InteractionVelocity interactionVelocity;
-
-       public InteractionActivity(final CredentialManager credentialManager,
-                       final InteractionRecorder interactionRecorder,
-                       final InteractionUtils interactionUtils,
-                       final InteractionJetty interactionJetty,
-                       final InteractionPreference interactionPreference,
-                       final ResponseFeedListener responseFeedListener,
-                       final InteractionVelocity interactionVelocity) {
-               this.credentialManager = credentialManager;
-               this.interactionRecorder = interactionRecorder;
-               this.interactionUtils = interactionUtils;
-               this.interactionJetty = interactionJetty;
-               this.interactionPreference = interactionPreference;
-               this.responseFeedListener = responseFeedListener;
-               this.interactionVelocity = interactionVelocity;
-               this.json = null;
-       }
-
-       @Override
-       public void configure(final JsonNode json)
-                       throws ActivityConfigurationException {
-               
-               this.json = json;
-       }
-
-       @Override
-       public void executeAsynch(final Map<String, T2Reference> inputs,
-                       final AsynchronousActivityCallback callback) {
-               // Don't execute service directly now, request to be run ask to 
be run
-               // from thread pool and return asynchronously
-               final InteractionRequestor requestor = new 
InteractionCallbackRequestor(
-                               this, callback, inputs);
-               callback.requestRun(new InteractionActivityRunnable(requestor,
-                               this.presentationTemplate,
-                               this.credentialManager,
-                               this.interactionRecorder,
-                               this.interactionUtils,
-                               this.interactionJetty,
-                               this.interactionPreference,
-                               this.responseFeedListener,
-                               this.interactionVelocity));
-       }
-
-       @Override
-       public JsonNode getConfiguration() {
-               return this.json;
-       }
-
-       public ActivityInputPort getInputPort(final String name) {
-               for (final ActivityInputPort port : this.getInputPorts()) {
-                       if (port.getName().equals(name)) {
-                               return port;
-                       }
-               }
-               return null;
-       }
-
-       InteractionActivityType getInteractionActivityType() {
-               JsonNode subNode = json.get("interactivityActivityType");
-               if (subNode == null) {
-                       return InteractionActivityType.LocallyPresentedHtml;
-               }
-               String textValue = subNode.textValue();
-               if (textValue == null) {
-                       return InteractionActivityType.LocallyPresentedHtml;
-               }
-               if ("VelocityTemplate".equals(textValue)) {
-                       return InteractionActivityType.VelocityTemplate;
-               }
-               return InteractionActivityType.LocallyPresentedHtml;
-       }
-       
-
-        String getPresentationOrigin() {
-               JsonNode subNode = json.get("presentationOrigin");
-               if (subNode == null) {
-                       return null;
-               }
-               String textValue = subNode.textValue();
-               if (textValue == null) {
-                       return null;                    
-               }
-               return textValue;
-       }
-
-       public boolean isProgressNotification() {
-               JsonNode subNode = json.get("progressNotification");
-               if (subNode == null) {
-                       return false;
-               }
-               return subNode.booleanValue();
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityFactory.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityFactory.java
deleted file mode 100644
index 911d860..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityFactory.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Set;
-
-import net.sf.taverna.t2.activities.interaction.jetty.InteractionJetty;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-import net.sf.taverna.t2.activities.interaction.velocity.InteractionVelocity;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * @author alanrw
- *
- */
-public class InteractionActivityFactory implements ActivityFactory {
-       
-       private CredentialManager credentialManager;
-       
-       private InteractionRecorder interactionRecorder;
-       
-       private InteractionUtils interactionUtils;
-
-       private InteractionJetty interactionJetty;
-
-       private InteractionPreference interactionPreference;
-
-       private ResponseFeedListener responseFeedListener;
-
-       private InteractionVelocity interactionVelocity;
-
-       /* (non-Javadoc)
-        * @see 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory#createActivity()
-        */
-       @Override
-       public InteractionActivity createActivity() {
-               return new InteractionActivity(this.credentialManager,
-                               this.interactionRecorder,
-                               this.interactionUtils,
-                               this.interactionJetty,
-                               this.interactionPreference,
-                               this.responseFeedListener,
-                               this.interactionVelocity);
-       }
-
-       /* (non-Javadoc)
-        * @see 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory#getActivityType()
-        */
-       @Override
-       public URI getActivityType() {
-               return URI.create(InteractionActivity.URI);
-       }
-
-       /* (non-Javadoc)
-        * @see 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory#getActivityConfigurationSchema()
-        */
-       @Override
-       public JsonNode getActivityConfigurationSchema() {
-               ObjectMapper objectMapper = new ObjectMapper();
-               try {
-                       return 
objectMapper.readTree(getClass().getResource("/schema.json"));
-               } catch (IOException e) {
-                       return objectMapper.createObjectNode();
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory#getInputPorts(com.fasterxml.jackson.databind.JsonNode)
-        */
-       @Override
-       public Set<ActivityInputPort> getInputPorts(JsonNode configuration)
-                       throws ActivityConfigurationException {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see 
net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory#getOutputPorts(com.fasterxml.jackson.databind.JsonNode)
-        */
-       @Override
-       public Set<ActivityOutputPort> getOutputPorts(JsonNode configuration)
-                       throws ActivityConfigurationException {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       /**
-        * @return the credentialManager
-        */
-       public CredentialManager getCredentialManager() {
-               return credentialManager;
-       }
-
-       /**
-        * @param credentialManager the credentialManager to set
-        */
-       public void setCredentialManager(CredentialManager credentialManager) {
-               this.credentialManager = credentialManager;
-       }
-
-       public void setInteractionRecorder(InteractionRecorder 
interactionRecorder) {
-               this.interactionRecorder = interactionRecorder;
-       }
-
-       public void setInteractionUtils(InteractionUtils interactionUtils) {
-               this.interactionUtils = interactionUtils;
-       }
-
-       public void setInteractionJetty(InteractionJetty interactionJetty) {
-               this.interactionJetty = interactionJetty;
-       }
-
-       public void setInteractionPreference(InteractionPreference 
interactionPreference) {
-               this.interactionPreference = interactionPreference;
-       }
-
-       public void setResponseFeedListener(ResponseFeedListener 
responseFeedListener) {
-               this.responseFeedListener = responseFeedListener;
-       }
-
-       public void setInteractionVelocity(InteractionVelocity 
interactionVelocity) {
-               this.interactionVelocity = interactionVelocity;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityHealthChecker.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityHealthChecker.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityHealthChecker.java
deleted file mode 100644
index 555fe6a..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityHealthChecker.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.sf.taverna.t2.activities.interaction;
-
-import java.util.List;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
-import net.sf.taverna.t2.workflowmodel.health.RemoteHealthChecker;
-
-/**
- * Example health checker
- * 
- */
-public class InteractionActivityHealthChecker implements
-               HealthChecker<InteractionActivity> {
-
-       @Override
-       public boolean canVisit(final Object o) {
-               return o instanceof InteractionActivity;
-       }
-
-       @Override
-       public boolean isTimeConsuming() {
-               return true;
-       }
-
-       @Override
-       public VisitReport visit(final InteractionActivity activity,
-                       final List<Object> ancestry) {
-
-               if (activity.getInteractionActivityType().equals(
-                               InteractionActivityType.LocallyPresentedHtml)) {
-                       return RemoteHealthChecker.contactEndpoint(activity,
-                                       activity.getPresentationOrigin());
-               }
-
-               return null;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityRunnable.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityRunnable.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityRunnable.java
deleted file mode 100644
index 342eeda..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityRunnable.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Date;
-import java.util.Map;
-import java.util.UUID;
-
-import net.sf.taverna.t2.activities.interaction.atom.AtomUtils;
-import net.sf.taverna.t2.activities.interaction.jetty.InteractionJetty;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-import net.sf.taverna.t2.activities.interaction.velocity.InteractionVelocity;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-
-import org.apache.abdera.Abdera;
-import org.apache.abdera.i18n.text.Normalizer;
-import org.apache.abdera.i18n.text.Sanitizer;
-import org.apache.abdera.model.Element;
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.parser.stax.FOMElement;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.log4j.Logger;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-
-public final class InteractionActivityRunnable implements Runnable {
-
-       private static final Logger logger = Logger
-                       .getLogger(InteractionActivityRunnable.class);
-
-       private static final Abdera ABDERA = Abdera.getInstance();
-
-       private final Template presentationTemplate;
-
-       private final InteractionRequestor requestor;
-
-       private CredentialManager credentialManager;
-
-       private InteractionRecorder interactionRecorder;
-       
-       private InteractionUtils interactionUtils;
-
-       private InteractionJetty interactionJetty;
-
-       private InteractionPreference interactionPreference;
-
-       private ResponseFeedListener responseFeedListener;
-
-       private InteractionVelocity interactionVelocity;
-
-       public InteractionActivityRunnable(final InteractionRequestor requestor,
-                       final Template presentationTemplate,
-                       final CredentialManager credentialManager,
-                       final InteractionRecorder interactionRecorder,
-                       final InteractionUtils interactionUtils,
-                       final InteractionJetty interactionJetty,
-                       final InteractionPreference interactionPreference,
-                       final ResponseFeedListener responseFeedListener,
-                       final InteractionVelocity interactionVelocity) {
-               this.requestor = requestor;
-               this.presentationTemplate = presentationTemplate;
-               this.credentialManager = credentialManager;
-               this.interactionRecorder = interactionRecorder;
-               this.interactionUtils = interactionUtils;
-               this.interactionJetty = interactionJetty;
-               this.interactionPreference = interactionPreference;
-               this.responseFeedListener = responseFeedListener;
-               this.interactionVelocity = interactionVelocity;
-       }
-
-       @Override
-       public void run() {
-               /*
-                * InvocationContext context = callback.getContext();
-                */
-               final String runId = 
InteractionUtils.getUsedRunId(this.requestor
-                               .getRunId());
-
-               final String id = 
Sanitizer.sanitize(UUID.randomUUID().toString(), "",
-                               true, Normalizer.Form.D);
-
-               final Map<String, Object> inputData = 
this.requestor.getInputData();
-
-               if (interactionPreference.getUseJetty()) {
-                       
interactionJetty.startJettyIfNecessary(credentialManager);
-               }
-               interactionJetty.startListenersIfNecessary();
-               try {
-                       interactionUtils.copyFixedFile("pmrpc.js");
-                       interactionUtils.copyFixedFile("interaction.css");
-               } catch (final IOException e1) {
-                       logger.error(e1);
-                       this.requestor.fail("Unable to copy necessary fixed 
file");
-                       return;
-               }
-               synchronized (ABDERA) {
-                       final Entry interactionNotificationMessage = this
-                                       .createBasicInteractionMessage(id, 
runId);
-
-                       for (final String key : inputData.keySet()) {
-                               final Object value = inputData.get(key);
-                               if (value instanceof byte[]) {
-                                       final String replacementUrl = 
interactionPreference
-                                                       
.getPublicationUrlString(id, key);
-                                       final ByteArrayInputStream bais = new 
ByteArrayInputStream(
-                                                       (byte[]) value);
-                                       try {
-                                               
interactionUtils.publishFile(replacementUrl, bais,
-                                                               runId, id);
-                                               bais.close();
-                                               inputData.put(key, 
replacementUrl);
-                                       } catch (final IOException e) {
-                                               logger.error(e);
-                                               this.requestor.fail("Unable to 
publish to " + replacementUrl);
-                                               return;
-                                       }
-                               }
-                       }
-
-                       final String inputDataString = 
this.createInputDataJson(inputData);
-                       if (inputDataString == null) {
-                               return;
-                       }
-                       final String inputDataUrl = interactionPreference
-                                       .getInputDataUrlString(id);
-                       try {
-                               interactionUtils.publishFile(inputDataUrl, 
inputDataString,
-                                               runId, id);
-                       } catch (final IOException e) {
-                               logger.error(e);
-                               this.requestor.fail("Unable to publish to " + 
inputDataUrl);
-                               return;
-                       }
-
-                       String outputDataUrl = null;
-
-                       if (!this.requestor.getInteractionType().equals(
-                                       InteractionType.Notification)) {
-                               outputDataUrl = interactionPreference
-                                               .getOutputDataUrlString(id);
-                       }
-                       final String interactionUrlString = 
this.generateHtml(inputDataUrl,
-                                       outputDataUrl, inputData, runId, id);
-
-                       try {
-                               this.postInteractionMessage(id, 
interactionNotificationMessage,
-                                               interactionUrlString, runId);
-                       } catch (IOException e) {
-                               logger.error(e);
-                               this.requestor.fail("Unable to post message");
-                               return;
-                       }
-                       if (!this.requestor.getInteractionType().equals(
-                                       InteractionType.Notification)) {
-                               responseFeedListener.registerInteraction(
-                                               interactionNotificationMessage, 
this.requestor);
-                       } else {
-                               this.requestor.carryOn();
-
-                       }
-               }
-       }
-
-       private String createInputDataJson(final Map<String, Object> inputData) 
{
-               try {
-                       return InteractionUtils.objectToJson(inputData);
-               } catch (final IOException e) {
-                       logger.error(e);
-                       this.requestor.fail("Unable to generate JSON");
-               }
-               return null;
-       }
-
-       private Entry createBasicInteractionMessage(final String id,
-                       final String runId) {
-               final Entry interactionNotificationMessage = ABDERA.newEntry();
-
-               interactionNotificationMessage.setId(id);
-               final Date timestamp = new Date();
-               interactionNotificationMessage.setPublished(timestamp);
-               interactionNotificationMessage.setUpdated(timestamp);
-
-               interactionNotificationMessage.addAuthor("Taverna");
-               interactionNotificationMessage.setTitle("Interaction from 
Taverna for "
-                               + this.requestor.generateId());
-
-               final Element runIdElement = interactionNotificationMessage
-                               .addExtension(AtomUtils.getRunIdQName());
-               runIdElement.setText(StringEscapeUtils.escapeJavaScript(runId));
-               
-               final Element pathIdElement = 
interactionNotificationMessage.addExtension(AtomUtils.getPathIdQName());
-               
pathIdElement.setText(StringEscapeUtils.escapeJavaScript(this.requestor.getPath()));
-               
-               final Element countElement = 
interactionNotificationMessage.addExtension(AtomUtils.getCountQName());
-               
countElement.setText(StringEscapeUtils.escapeJavaScript(this.requestor.getInvocationCount().toString()));
-               
-               if (this.requestor.getInteractionType().equals(
-                               InteractionType.Notification)) {
-                       interactionNotificationMessage.addExtension(AtomUtils
-                                       .getProgressQName());
-               }
-               final Element idElement = interactionNotificationMessage
-                               .addExtension(AtomUtils.getIdQName());
-               idElement.setText(id);
-
-               return interactionNotificationMessage;
-       }
-
-       private void postInteractionMessage(final String id, final Entry entry,
-                       final String interactionUrlString, final String runId) 
throws IOException {
-
-               entry.addLink(StringEscapeUtils.escapeXml(interactionUrlString),
-                               "presentation");
-               entry.setContentAsXhtml("<p><a href=\""
-                               + 
StringEscapeUtils.escapeXml(interactionUrlString)
-                               + "\">Open: "
-                               + 
StringEscapeUtils.escapeXml(interactionUrlString)
-                               + "</a></p>");
-
-               URL feedUrl;
-
-                       feedUrl = new URL(interactionPreference
-                                       .getFeedUrlString());
-                       final String entryContent = ((FOMElement) entry)
-                                       .toFormattedString();
-                       final HttpURLConnection httpCon = (HttpURLConnection) 
feedUrl
-                                       .openConnection();
-                       httpCon.setDoOutput(true);
-                       httpCon.setRequestProperty("Content-Type",
-                                       
"application/atom+xml;type=entry;charset=UTF-8");
-                       httpCon.setRequestProperty("Content-Length",
-                                       "" + entryContent.length());
-                       httpCon.setRequestProperty("Slug", id);
-                       httpCon.setRequestMethod("POST");
-                       httpCon.setConnectTimeout(5000);
-                       final OutputStream outputStream = 
httpCon.getOutputStream();
-                       IOUtils.write(entryContent, outputStream, "UTF-8");
-                       outputStream.close();
-                       final int response = httpCon.getResponseCode();
-                       if ((response < 0) || (response >= 400)) {
-                               logger.error("Received response code" + 
response);
-                               throw (new IOException ("Received response code 
" + response));
-                       }
-                       if (response == HttpURLConnection.HTTP_CREATED) {
-                               interactionRecorder.addResource(runId, id,
-                                               
httpCon.getHeaderField("Location"));
-                       }
-       }
-
-       String generateHtml(final String inputDataUrl, final String 
outputDataUrl,
-                       final Map<String, Object> inputData, final String runId,
-                       final String id) {
-
-               final VelocityContext velocityContext = new VelocityContext();
-
-               for (final String inputName : inputData.keySet()) {
-                       final Object input = inputData.get(inputName);
-                       velocityContext.put(inputName, input);
-               }
-
-               velocityContext.put("feed", interactionPreference
-                               .getFeedUrlString());
-               velocityContext.put("runId", runId);
-               velocityContext.put("entryId", id);
-               final String pmrpcUrl = interactionPreference
-                               .getLocationUrl() + "/pmrpc.js";
-               velocityContext.put("pmrpcUrl", pmrpcUrl);
-               velocityContext.put("inputDataUrl", inputDataUrl);
-               velocityContext.put("outputDataUrl", outputDataUrl);
-               final String interactionUrl = interactionPreference
-                               .getInteractionUrlString(id);
-
-               velocityContext.put("interactionUrl", interactionUrl);
-
-               String presentationUrl = "";
-               final String authorizeUrl = "";
-               try {
-                       if (this.requestor.getPresentationType().equals(
-                                       
InteractionActivityType.VelocityTemplate)) {
-
-                               presentationUrl = interactionPreference
-                                               .getPresentationUrlString(id);
-
-                               final String presentationString = 
this.processTemplate(
-                                               this.presentationTemplate, 
velocityContext);
-                               interactionUtils.publishFile(presentationUrl,
-                                               presentationString, runId, id);
-
-                       } else if (this.requestor.getPresentationType().equals(
-                                       
InteractionActivityType.LocallyPresentedHtml)) {
-                               presentationUrl = 
this.requestor.getPresentationOrigin();
-                       }
-
-                       velocityContext.put("presentationUrl", presentationUrl);
-
-                       final String interactionString = this.processTemplate(
-                                       
interactionVelocity.getInteractionTemplate(),
-                                       velocityContext);
-                       interactionUtils.publishFile(interactionUrl, 
interactionString,
-                                       runId, id);
-
-                       if (!authorizeUrl.isEmpty()) {
-                               return authorizeUrl;
-                       }
-                       return interactionUrl;
-               } catch (final IOException e) {
-                       logger.error(e);
-                       this.requestor.fail("Unable to generate HTML");
-                       return null;
-               }
-       }
-
-       private String processTemplate(final Template template,
-                       final VelocityContext context) throws IOException {
-               final StringWriter resultWriter = new StringWriter();
-               template.merge(context, resultWriter);
-               resultWriter.close();
-               return resultWriter.toString();
-       }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityType.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityType.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityType.java
deleted file mode 100644
index 63bc001..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionActivityType.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-/**
- * @author alanrw
- * 
- *         Should be renamed something like presentation type
- */
-public enum InteractionActivityType {
-
-       VelocityTemplate, LocallyPresentedHtml
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionCallbackRequestor.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionCallbackRequestor.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionCallbackRequestor.java
deleted file mode 100644
index f7445a8..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionCallbackRequestor.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.WorkflowRunIdEntity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-import 
net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback;
-
-/**
- * @author alanrw
- * 
- */
-public class InteractionCallbackRequestor implements InteractionRequestor {
-
-       private final AsynchronousActivityCallback callback;
-
-       private final Map<String, T2Reference> inputs;
-
-       private final InteractionActivity activity;
-
-       private boolean answered = false;
-
-       private String path;
-
-       private Integer count;
-       
-       private static Map<String, Integer> invocationCount = new 
HashMap<String, Integer> ();
-
-       public InteractionCallbackRequestor(final InteractionActivity activity,
-                       final AsynchronousActivityCallback callback,
-                       final Map<String, T2Reference> inputs) {
-               this.activity = activity;
-               this.callback = callback;
-               this.inputs = inputs;
-               this.path = calculatePath();
-               this.count = calculateInvocationCount(path);
-       }
-
-       @Override
-       public String getRunId() {
-               return this.callback.getContext()
-                               .getEntities(WorkflowRunIdEntity.class).get(0)
-                               .getWorkflowRunId();
-       }
-
-       @Override
-       public Map<String, Object> getInputData() {
-               final Map<String, Object> inputData = new HashMap<String, 
Object>();
-
-               final InvocationContext context = this.callback.getContext();
-               final ReferenceService referenceService = 
context.getReferenceService();
-               for (final String inputName : this.inputs.keySet()) {
-                       final Object input = 
referenceService.renderIdentifier(this.inputs
-                                       .get(inputName), 
this.getInputPort(inputName)
-                                       .getTranslatedElementClass(), 
this.callback.getContext());
-                       inputData.put(inputName, input);
-               }
-               return inputData;
-       }
-
-       public ActivityInputPort getInputPort(final String name) {
-               for (final ActivityInputPort port : 
this.activity.getInputPorts()) {
-                       if (port.getName().equals(name)) {
-                               return port;
-                       }
-               }
-               return null;
-       }
-
-       @Override
-       public void fail(final String string) {
-               if (this.answered) {
-                       return;
-               }
-               this.callback.fail(string);
-               this.answered = true;
-       }
-
-       @Override
-       public void carryOn() {
-               if (this.answered) {
-                       return;
-               }
-               this.callback.receiveResult(new HashMap<String, T2Reference>(),
-                               new int[0]);
-               this.answered = true;
-       }
-
-       @Override
-       public String generateId() {
-               final String workflowRunId = getRunId();
-               final String parentProcessIdentifier = this.callback
-                               .getParentProcessIdentifier();
-               return (workflowRunId + ":" + parentProcessIdentifier);
-       }
-
-       @Override
-       public InteractionType getInteractionType() {
-               if (this.activity.isProgressNotification()) {
-                       return InteractionType.Notification;
-               }
-               return InteractionType.DataRequest;
-       }
-
-       @Override
-       public InteractionActivityType getPresentationType() {
-               return this.activity.getInteractionActivityType();
-       }
-
-       @Override
-       public String getPresentationOrigin() {
-               return this.activity.getPresentationOrigin();
-       }
-
-       @Override
-       public void receiveResult(final Map<String, Object> resultMap) {
-               if (this.answered) {
-                       return;
-               }
-               final Map<String, T2Reference> outputs = new HashMap<String, 
T2Reference>();
-
-               final InvocationContext context = this.callback.getContext();
-               final ReferenceService referenceService = 
context.getReferenceService();
-
-               for (final Object key : resultMap.keySet()) {
-                       final String keyString = (String) key;
-                       final Object value = resultMap.get(key);
-                       final Integer depth = this.findPortDepth(keyString);
-                       if (depth == null) {
-                               this.callback.fail("Data sent for unknown port 
: " + keyString);
-                       }
-                       outputs.put(keyString,
-                                       referenceService.register(value, depth, 
true, context));
-               }
-               this.callback.receiveResult(outputs, new int[0]);
-               this.answered = true;
-       }
-
-       private Integer findPortDepth(final String portName) {
-               final Set<ActivityOutputPort> ports = 
this.activity.getOutputPorts();
-               for (final ActivityOutputPort op : ports) {
-                       if (op.getName().equals(portName)) {
-                               return op.getDepth();
-                       }
-               }
-               return null;
-       }
-
-       private String calculatePath() {
-               final String parentProcessIdentifier = this.callback
-                               .getParentProcessIdentifier();
-               String result = "";
-               String parts[] = parentProcessIdentifier.split(":");
-
-               for (int i = 2; i < parts.length; i += 4) {
-                       if (!result.isEmpty()) {
-                               result += ":";
-                       }
-                       result += parts[i];
-               }
-               return result;
-       }
-
-       @Override
-       public String getPath() {
-               return this.path;
-       }
-       
-       private synchronized static Integer calculateInvocationCount(String 
path) {
-               Integer currentCount = invocationCount.get(path);
-               if (currentCount == null) {
-                       currentCount = Integer.valueOf(0);
-               } else {
-                       currentCount = currentCount + 1;
-               }
-               invocationCount.put(path, currentCount);
-               return currentCount;
-       }
-
-       @Override
-       public Integer getInvocationCount() {
-               return count;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRecorder.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRecorder.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRecorder.java
deleted file mode 100644
index 66b2d38..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRecorder.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * 
- * This class is used to remember and forget interactions and their associated
- * ATOM entries and files
- * 
- * @author alanrw
- * 
- */
-public class InteractionRecorder {
-
-       private static final Logger logger = Logger
-                       .getLogger(InteractionRecorder.class);
-
-       static Map<String, Map<String, Set<String>>> runToInteractionMap = 
Collections
-                       .synchronizedMap(new HashMap<String, Map<String, 
Set<String>>>());
-       
-       private InteractionUtils interactionUtils;
-
-       private InteractionRecorder() {
-               super();
-       }
-
-       public void deleteRun(final String runToDelete) {
-               final Set<String> interactionIds = new HashSet<String>(
-                               getInteractionMap(runToDelete).keySet());
-               for (final String interactionId : interactionIds) {
-                       deleteInteraction(runToDelete, interactionId);
-               }
-               runToInteractionMap.remove(runToDelete);
-       }
-
-       public void deleteInteraction(final String runId,
-                       final String interactionId) {
-               for (final String urlString : getResourceSet(runId, 
interactionId)) {
-                       try {
-                               deleteUrl(urlString);
-                       } catch (final IOException e) {
-                               logger.info("Unable to delete " + urlString, e);
-                       }
-
-               }
-               getInteractionMap(runId).remove(interactionId);
-       }
-
-       private void deleteUrl(final String urlString) throws IOException {
-               logger.info("Deleting resource " + urlString);
-               final URL url = new URL(urlString);
-               final HttpURLConnection httpCon = (HttpURLConnection) url
-                               .openConnection();
-               httpCon.setRequestMethod("DELETE");
-               final int response = httpCon.getResponseCode();
-               if (response >= 400) {
-                       logger.info("Received response code" + response);
-               }
-       }
-
-       public void addResource(final String runId,
-                       final String interactionId, final String resourceId) {
-               if (resourceId == null) {
-                       logger.error("Attempt to add null resource",
-                                       new NullPointerException(""));
-                       return;
-               }
-               logger.info("Adding resource " + resourceId);
-               final Set<String> resourceSet = getResourceSet(runId, 
interactionId);
-
-               resourceSet.add(resourceId);
-       }
-
-       private Set<String> getResourceSet(final String runId,
-                       final String interactionId) {
-               final Map<String, Set<String>> interactionMap = 
getInteractionMap(runId);
-               Set<String> resourceSet = interactionMap.get(interactionId);
-               if (resourceSet == null) {
-                       resourceSet = Collections.synchronizedSet(new 
HashSet<String>());
-                       interactionMap.put(interactionId, resourceSet);
-               }
-               return resourceSet;
-       }
-
-       private Map<String, Set<String>> getInteractionMap(final String runId) {
-               Map<String, Set<String>> interactionMap = 
InteractionRecorder.runToInteractionMap
-                               .get(runId);
-               if (interactionMap == null) {
-                       interactionMap = Collections.synchronizedMap(Collections
-                                       .synchronizedMap(new HashMap<String, 
Set<String>>()));
-                       InteractionRecorder.runToInteractionMap.put(runId, 
interactionMap);
-               }
-               return interactionMap;
-       }
-
-       public void persist() {
-               final File outputFile = getUsageFile();
-               try {
-                       FileUtils.writeStringToFile(outputFile, InteractionUtils
-                                       
.objectToJson(InteractionRecorder.runToInteractionMap));
-               } catch (final IOException e) {
-                       logger.error(e);
-               }
-       }
-
-       private File getUsageFile() {
-               return new 
File(getInteractionUtils().getInteractionServiceDirectory(),
-                               "usage");
-       }
-
-       public void load() {
-               final File inputFile = getUsageFile();
-               try {
-                       final String usageString = 
FileUtils.readFileToString(inputFile);
-                       final ObjectMapper mapper = new ObjectMapper();
-                       @SuppressWarnings("unchecked")
-                       final Map<String, Object> rootAsMap = 
mapper.readValue(usageString,
-                                       Map.class);
-                       InteractionRecorder.runToInteractionMap.clear();
-                       for (final String runId : rootAsMap.keySet()) {
-                               @SuppressWarnings("unchecked")
-                               final Map<String, Object> runMap = (Map<String, 
Object>) rootAsMap
-                                               .get(runId);
-                               for (final String interactionId : 
runMap.keySet()) {
-                                       @SuppressWarnings("unchecked")
-                                       final List<String> urlList = 
(List<String>) runMap
-                                                       .get(interactionId);
-                                       for (final String url : urlList) {
-                                               addResource(runId, 
interactionId, url);
-                                       }
-                               }
-                       }
-               } catch (final IOException e) {
-                       logger.info(e);
-               }
-       }
-
-       public InteractionUtils getInteractionUtils() {
-               return interactionUtils;
-       }
-
-       public void setInteractionUtils(InteractionUtils interactionUtils) {
-               this.interactionUtils = interactionUtils;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRequestor.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRequestor.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRequestor.java
deleted file mode 100644
index 7eff950..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRequestor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.util.Map;
-
-/**
- * @author alanrw
- * 
- */
-public interface InteractionRequestor {
-
-       String getRunId();
-
-       Map<String, Object> getInputData();
-
-       void fail(String string);
-
-       void carryOn();
-
-       String generateId();
-       
-       // The path to whatever requested the interaction
-       String getPath();
-       
-       // The number of times whatever requested the interaction has requested 
one
-       Integer getInvocationCount();
-
-       InteractionActivityType getPresentationType();
-
-       InteractionType getInteractionType();
-
-       String getPresentationOrigin();
-
-       void receiveResult(Map<String, Object> resultMap);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRunDeletionListener.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRunDeletionListener.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRunDeletionListener.java
deleted file mode 100644
index 880ff82..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionRunDeletionListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import net.sf.taverna.t2.workflowmodel.RunDeletionListener;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- * 
- */
-public class InteractionRunDeletionListener implements RunDeletionListener {
-       
-       private InteractionRecorder interactionRecorder;
-
-       @SuppressWarnings("unused")
-       private static final Logger logger = Logger
-                       .getLogger(InteractionRunDeletionListener.class);
-
-       @Override
-       public void deleteRun(final String runToDelete) {
-               interactionRecorder.deleteRun(runToDelete);
-       }
-
-       public void setInteractionRecorder(InteractionRecorder 
interactionRecorder) {
-               this.interactionRecorder = interactionRecorder;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionType.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionType.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionType.java
deleted file mode 100644
index 1e42b4a..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionType.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-/**
- * @author alanrw
- * 
- */
-public enum InteractionType {
-
-       DataRequest, Notification, SecurityRequest, AuthenticationRequest
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionUtils.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionUtils.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionUtils.java
deleted file mode 100644
index 149f842..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/InteractionUtils.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * 
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-// import net.sf.taverna.raven.appconfig.ApplicationRuntime;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-
-import org.apache.commons.io.IOUtils;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import uk.org.taverna.configuration.app.ApplicationConfiguration;
-
-/**
- * @author alanrw
- * 
- */
-public class InteractionUtils {
-
-       static final Set<String> publishedUrls = Collections
-                       .synchronizedSet(new HashSet<String>());
-       
-       private ApplicationConfiguration appConfig;
-       
-       private InteractionRecorder interactionRecorder;
-
-       private InteractionPreference interactionPreference;
-
-       private InteractionUtils() {
-               super();
-       }
-
-       protected void copyFixedFile(final String fixedFileName)
-                       throws IOException {
-               final String targetUrl = interactionPreference
-                               .getLocationUrl() + "/" + fixedFileName;
-               this.publishFile(
-                               targetUrl,
-                               
InteractionActivity.class.getResourceAsStream("/"
-                                               + fixedFileName), null, null);
-       }
-
-       public void publishFile(final String urlString,
-                       final String contents, final String runId,
-                       final String interactionId) throws IOException {
-               final ByteArrayInputStream byteArrayInputStream = new 
ByteArrayInputStream(
-                               contents.getBytes("UTF-8"));
-               this.publishFile(urlString, byteArrayInputStream, runId,
-                               interactionId);
-       }
-
-       void publishFile(final String urlString, final InputStream is,
-                       final String runId, final String interactionId) throws 
IOException {
-               if (InteractionUtils.publishedUrls.contains(urlString)) {
-                       return;
-               }
-               InteractionUtils.publishedUrls.add(urlString);
-               if (runId != null) {
-                       interactionRecorder.addResource(runId, interactionId, 
urlString);
-               }
-
-               final URL url = new URL(urlString);
-               final HttpURLConnection httpCon = (HttpURLConnection) url
-                               .openConnection();
-               httpCon.setDoOutput(true);
-               httpCon.setRequestMethod("PUT");
-               final OutputStream outputStream = httpCon.getOutputStream();
-               IOUtils.copy(is, outputStream);
-               is.close();
-               outputStream.close();
-               int code = httpCon.getResponseCode();
-               if ((code >= 400) || (code < 0)){
-                       throw new IOException ("Received code " + code);
-               }
-       }
-
-       public static String getUsedRunId(final String engineRunId) {
-               String runId = engineRunId;
-               final String specifiedId = System.getProperty("taverna.runid");
-               if (specifiedId != null) {
-                       runId = specifiedId;
-               }
-               return runId;
-       }
-
-       public File getInteractionServiceDirectory() {
-               final File workingDir = appConfig
-                               .getApplicationHomeDir();
-               final File interactionServiceDirectory = new File(workingDir,
-                               "interactionService");
-               interactionServiceDirectory.mkdirs();
-               return interactionServiceDirectory;
-       }
-
-       public static String objectToJson(final Object o) throws IOException {
-               final ObjectMapper mapper = new ObjectMapper();
-               final StringWriter sw = new StringWriter();
-               mapper.writeValue(sw, o);
-               final String theString = sw.toString();
-               return theString;
-       }
-
-       public void setAppConfig(ApplicationConfiguration appConfig) {
-               this.appConfig = appConfig;
-       }
-
-       public void setInteractionRecorder(InteractionRecorder 
interactionRecorder) {
-               this.interactionRecorder = interactionRecorder;
-       }
-
-       public void setInteractionPreference(InteractionPreference 
interactionPreference) {
-               this.interactionPreference = interactionPreference;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/ResponseFeedListener.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/ResponseFeedListener.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/ResponseFeedListener.java
deleted file mode 100644
index 78fdd6d..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/ResponseFeedListener.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.interaction.atom.AtomUtils;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-
-import org.apache.abdera.model.Element;
-import org.apache.abdera.model.Entry;
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * @author alanrw
- * 
- */
-public final class ResponseFeedListener extends FeedReader {
-       
-       private InteractionRecorder interactionRecorder;
-
-       private InteractionPreference interactionPreference;
-
-       private static final String STATUS_OK = "OK";
-
-       private static final String DATA_READ_FAILED = "Data read failed";
-
-       private static ResponseFeedListener instance;
-
-       private static final Logger logger = 
Logger.getLogger(ResponseFeedListener.class);
-
-       private static final Map<String, InteractionRequestor> requestorMap = 
new HashMap<String, InteractionRequestor>();
-
-       private ResponseFeedListener() {
-               super("ResponseFeedListener");
-       }
-       
-       @Override
-       protected void considerEntry(final Entry entry) {
-               synchronized (requestorMap) {
-                       final String refString = getReplyTo(entry);
-                       if (refString == null) {
-                               return;
-                       }
-                       final String runId = getRunId(entry);
-
-                       final String entryUrl = interactionPreference
-                                       .getFeedUrlString() + "/" + 
entry.getId().toASCIIString();
-                       interactionRecorder.addResource(runId, refString, 
entryUrl);
-
-                       if (requestorMap.containsKey(refString)) {
-
-                               final InteractionRequestor requestor = 
requestorMap
-                                               .get(refString);
-
-                               final Element statusElement = 
entry.getExtension(AtomUtils
-                                               .getResultStatusQName());
-                               final String statusContent = 
statusElement.getText().trim();
-                               if (!statusContent.equals(STATUS_OK)) {
-                                       cleanup(refString);
-                                       requestor.fail(statusContent);
-                                       return;
-                               }
-                               final String outputDataUrl = 
interactionPreference
-                                               
.getOutputDataUrlString(refString);
-                               // Note that this may not really exist
-                               interactionRecorder
-                                               .addResource(runId, refString, 
outputDataUrl);
-                               String content = null;
-                               InputStream iStream;
-                               try {
-                                       iStream = new 
URL(outputDataUrl).openStream();
-                                       content = IOUtils.toString(iStream);
-                                       iStream.close();
-                               } catch (final MalformedURLException e1) {
-                                       logger.error(e1);
-                                       requestor.fail(DATA_READ_FAILED);
-                                       return;
-                               } catch (final IOException e1) {
-                                       logger.error(e1);
-                                       requestor.fail(DATA_READ_FAILED);
-                                       return;
-                               }
-
-                               try {
-                                       final ObjectMapper mapper = new 
ObjectMapper();
-                                       @SuppressWarnings("unchecked")
-                                       final Map<String, Object> rootAsMap = 
mapper.readValue(
-                                                       content, Map.class);
-                                       requestor.receiveResult(rootAsMap);
-                                       cleanup(refString);
-                                       
interactionRecorder.deleteInteraction(runId, refString);
-
-                               } catch (final JsonParseException e) {
-                                       logger.error(e);
-                               } catch (final IOException e) {
-                                       logger.error(e);
-                               } catch (final Exception e) {
-                                       logger.error(e);
-                               }
-
-                       }
-               }
-       }
-
-       private static void cleanup(final String refString) {
-               requestorMap.remove(refString);
-       }
-
-       private static String getReplyTo(final Entry entry) {
-               final Element replyTo = entry.getFirstChild(AtomUtils
-                               .getInReplyToQName());
-               if (replyTo == null) {
-                       return null;
-               }
-               return replyTo.getText();
-       }
-
-       private static String getRunId(final Entry entry) {
-               final Element runIdElement = entry.getFirstChild(AtomUtils
-                               .getRunIdQName());
-               if (runIdElement == null) {
-                       return null;
-               }
-               return runIdElement.getText();
-       }
-
-       public void registerInteraction(final Entry entry,
-                       final InteractionRequestor requestor) {
-               synchronized (requestorMap) {
-                       final String refString = entry.getId().toString();
-                       requestorMap.put(refString, requestor);
-               }
-       }
-
-       public void setInteractionRecorder(InteractionRecorder 
interactionRecorder) {
-               this.interactionRecorder = interactionRecorder;
-       }
-
-       public void setInteractionPreference(InteractionPreference 
interactionPreference) {
-               this.interactionPreference = interactionPreference;
-       }
-
-       @Override
-       protected InteractionPreference getInteractionPreference() {
-               return this.interactionPreference;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/atom/AtomUtils.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/atom/AtomUtils.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/atom/AtomUtils.java
deleted file mode 100644
index 350e986..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/atom/AtomUtils.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction.atom;
-
-import javax.xml.namespace.QName;
-
-/**
- * @author alanrw
- * 
- */
-public class AtomUtils {
-
-       private static QName inputDataQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, 
"input-data",
-                       "interaction");
-       private static QName resultDataQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, 
"result-data",
-                       "interaction");
-       private static QName resultStatusQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, 
"result-status",
-                       "interaction");
-       private static QName idQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, "id", 
"interaction");
-       private static QName pathIdQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, "path",
-                       "interaction");
-       private static QName countQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, "count",
-                       "interaction");
-       private static QName runIdQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, "run-id",
-                       "interaction");
-       private static QName inReplyToQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, 
"in-reply-to",
-                       "interaction");
-       private static QName progressQName = new QName(
-                       "http://ns.taverna.org.uk/2012/interaction";, "progress",
-                       "interaction");
-
-       public static QName getInputDataQName() {
-               return inputDataQName;
-       }
-
-       public static QName getIdQName() {
-               return idQName;
-       }
-
-       public static QName getInReplyToQName() {
-               return inReplyToQName;
-       }
-
-       public static QName getResultDataQName() {
-               return resultDataQName;
-       }
-
-       public static QName getResultStatusQName() {
-               return resultStatusQName;
-       }
-
-       /**
-        * @return the runIdQName
-        */
-       public static QName getRunIdQName() {
-               return runIdQName;
-       }
-
-       /**
-        * @return the progressQName
-        */
-       public static QName getProgressQName() {
-               return progressQName;
-       }
-
-       public static QName getPathIdQName() {
-               return pathIdQName;
-       }
-
-       public static QName getCountQName() {
-               return countQName;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/feed/ShowRequestFeedListener.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/feed/ShowRequestFeedListener.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/feed/ShowRequestFeedListener.java
deleted file mode 100644
index b8996b2..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/feed/ShowRequestFeedListener.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.interaction.feed;
-
-import java.awt.Desktop;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import net.sf.taverna.t2.activities.interaction.FeedReader;
-import 
net.sf.taverna.t2.activities.interaction.preference.InteractionPreference;
-
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.model.Link;
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- * 
- */
-public class ShowRequestFeedListener extends FeedReader {
-       
-       private static ShowRequestFeedListener instance;
-
-       private static Logger logger = Logger
-                       .getLogger(ShowRequestFeedListener.class);
-       
-       private static final String ignore_requests_property = 
System.getProperty("taverna.interaction.ignore_requests");
-
-       private static boolean operational = (ignore_requests_property == null) 
|| !Boolean.valueOf(ignore_requests_property);
-
-       private InteractionPreference interactionPreference;
-       
-       private ShowRequestFeedListener() {
-               super("ShowRequestFeedListener");
-       }
-       
-                       @Override
-                       protected void considerEntry(final Entry entry) {
-                               if (!operational) {
-                                       return;
-                               }
-                               final Link presentationLink = 
entry.getLink("presentation");
-                               if (presentationLink != null) {
-                                       try {
-                                               Desktop.getDesktop().browse(
-                                                               
presentationLink.getHref().toURI());
-                                       } catch (final IOException e) {
-                                               logger.error("Cannot open 
presentation");
-                                       } catch (final URISyntaxException e) {
-                                               logger.error("Cannot open 
presentation");
-                                       }
-                               }
-                       }
-
-                       @Override
-                       protected InteractionPreference 
getInteractionPreference() {
-                               return this.interactionPreference;
-                       }
-
-                       public void 
setInteractionPreference(InteractionPreference interactionPreference) {
-                               this.interactionPreference = 
interactionPreference;
-                       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/jetty/HackedFilesystemAdapter.java
----------------------------------------------------------------------
diff --git 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/jetty/HackedFilesystemAdapter.java
 
b/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/jetty/HackedFilesystemAdapter.java
deleted file mode 100644
index 24ad5a5..0000000
--- 
a/taverna-interaction-activity/src/main/java/net/sf/taverna/t2/activities/interaction/jetty/HackedFilesystemAdapter.java
+++ /dev/null
@@ -1,263 +0,0 @@
-package net.sf.taverna.t2.activities.interaction.jetty;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  The ASF licenses this file to You
- * under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.  For additional information regarding
- * copyright in this work, please see the NOTICE file in the top level
- * directory of this distribution.
- */
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.abdera.Abdera;
-import org.apache.abdera.i18n.templates.Template;
-import org.apache.abdera.i18n.text.Normalizer;
-import org.apache.abdera.i18n.text.Sanitizer;
-import org.apache.abdera.model.Document;
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.model.Feed;
-import org.apache.abdera.model.Link;
-import org.apache.abdera.protocol.server.ProviderHelper;
-import org.apache.abdera.protocol.server.RequestContext;
-import org.apache.abdera.protocol.server.ResponseContext;
-import org.apache.abdera.protocol.server.Target;
-import org.apache.abdera.protocol.server.provider.managed.FeedConfiguration;
-import 
org.apache.abdera.protocol.server.provider.managed.ManagedCollectionAdapter;
-
-/**
- * Simple Filesystem Adapter that uses a local directory to store Atompub
- * collection entries. As an extension of the ManagedCollectionAdapter class,
- * the Adapter is intended to be used with implementations of the
- * ManagedProvider and are configured using /abdera/adapter/*.properties files.
- * The *.properties file MUST specify the fs.root property to specify the root
- * directory used by the Adapter.
- */
-public class HackedFilesystemAdapter extends ManagedCollectionAdapter {
-       
-       private InteractionJetty interactionJetty;
-
-       private final File root;
-       private final static FileSorter sorter = new FileSorter();
-       private final static Template paging_template = new Template(
-                       "?{-join|&|count,page}");
-
-       public HackedFilesystemAdapter(final Abdera abdera,
-                       final FeedConfiguration config) {
-               super(abdera, config);
-               this.root = this.getRoot();
-       }
-
-       private File getRoot() {
-               return interactionJetty.getFeedDirectory();
-       }
-
-       private Entry getEntry(final File entryFile) {
-               if (!entryFile.exists() || !entryFile.isFile()) {
-                       throw new RuntimeException();
-               }
-               try {
-                       final FileInputStream fis = new 
FileInputStream(entryFile);
-                       final Document<Entry> doc = 
this.abdera.getParser().parse(fis);
-                       final Entry entry = doc.getRoot();
-                       return entry;
-               } catch (final Exception e) {
-                       throw new RuntimeException(e);
-               }
-       }
-
-       private void addPagingLinks(final RequestContext request, final Feed 
feed,
-                       final int currentpage, final int count) {
-               final Map<String, Object> params = new HashMap<String, 
Object>();
-               params.put("count", count);
-               params.put("page", currentpage + 1);
-               String next = paging_template.expand(params);
-               next = request.getResolvedUri().resolve(next).toString();
-               feed.addLink(next, "next");
-               if (currentpage > 0) {
-                       params.put("page", currentpage - 1);
-                       String prev = paging_template.expand(params);
-                       prev = 
request.getResolvedUri().resolve(prev).toString();
-                       feed.addLink(prev, "previous");
-               }
-               params.put("page", 0);
-               String current = paging_template.expand(params);
-               current = request.getResolvedUri().resolve(current).toString();
-               feed.addLink(current, "current");
-       }
-
-       private void getEntries(final RequestContext request, final Feed feed,
-                       final File root) {
-               final File[] files = root.listFiles();
-               Arrays.sort(files, sorter);
-               final int length = ProviderHelper.getPageSize(request, "count", 
25);
-               final int offset = ProviderHelper.getOffset(request, "page", 
length);
-               final String _page = request.getParameter("page");
-               final int page = (_page != null) ? Integer.parseInt(_page) : 0;
-               this.addPagingLinks(request, feed, page, length);
-               if (offset > files.length) {
-                       return;
-               }
-               for (int n = offset; (n < (offset + length)) && (n < 
files.length); n++) {
-                       final File file = files[n];
-                       try {
-                               final Entry entry = this.getEntry(file);
-                               feed.addEntry((Entry) entry.clone());
-                       } catch (final Exception e) {
-                               // Do nothing
-                       }
-               }
-       }
-
-       @Override
-       public ResponseContext getFeed(final RequestContext request) {
-               final Feed feed = this.abdera.newFeed();
-               feed.setId(this.config.getServerConfiguration().getServerUri() 
+ "/"
-                               + this.config.getFeedId());
-               feed.setTitle(this.config.getFeedTitle());
-               feed.addAuthor(this.config.getFeedAuthor());
-               feed.addLink(this.config.getFeedUri());
-               feed.addLink(this.config.getFeedUri(), "self");
-               feed.setUpdated(new Date());
-               this.getEntries(request, feed, this.root);
-               return ProviderHelper.returnBase(feed.getDocument(), 200, null);
-       }
-
-       @Override
-       public ResponseContext deleteEntry(final RequestContext request) {
-               final Target target = request.getTarget();
-               final String key = target.getParameter("entry");
-               final File file = this.getFile(key, false);
-               if (file.exists()) {
-                       file.delete();
-               }
-               return ProviderHelper.nocontent();
-       }
-
-       @Override
-       public ResponseContext getEntry(final RequestContext request) {
-               final Target target = request.getTarget();
-               final String key = target.getParameter("entry");
-               final File file = this.getFile(key, false);
-               final Entry entry = this.getEntry(file);
-               if (entry != null) {
-                       return ProviderHelper.returnBase(entry.getDocument(), 
200, null);
-               } else {
-                       return ProviderHelper.notfound(request);
-               }
-       }
-
-       @Override
-       public ResponseContext postEntry(final RequestContext request) {
-               if (request.isAtom()) {
-                       try {
-                               final Entry entry = (Entry) 
request.getDocument().getRoot()
-                                               .clone();
-                               final String key = this.createKey(request);
-                               this.setEditDetail(request, entry, key);
-                               final File file = this.getFile(key);
-                               final FileOutputStream out = new 
FileOutputStream(file);
-                               entry.writeTo(out);
-                               final String edit = 
entry.getEditLinkResolvedHref().toString();
-                               return ProviderHelper
-                                               
.returnBase(entry.getDocument(), 201, null)
-                                               .setLocation(edit);
-                       } catch (final Exception e) {
-                               return ProviderHelper.badrequest(request);
-                       }
-               } else {
-                       return ProviderHelper.notsupported(request);
-               }
-       }
-
-       private void setEditDetail(final RequestContext request, final Entry 
entry,
-                       final String key) throws IOException {
-               final Target target = request.getTarget();
-               final String feed = target.getParameter("feed");
-               final String id = key;
-               entry.setEdited(new Date());
-               final Link link = entry.getEditLink();
-               final Map<String, Object> params = new HashMap<String, 
Object>();
-               params.put("feed", feed);
-               params.put("entry", id);
-               final String href = request.absoluteUrlFor("entry", params);
-               if (link == null) {
-                       entry.addLink(href, "edit");
-               } else {
-                       link.setHref(href);
-               }
-       }
-
-       private File getFile(final String key) {
-               return this.getFile(key, true);
-       }
-
-       private File getFile(final String key, final boolean post) {
-               final File file = new File(this.root, key);
-               if (post && file.exists()) {
-                       throw new RuntimeException("File exists");
-               }
-               return file;
-       }
-
-       private String createKey(final RequestContext request) throws 
IOException {
-               String slug = request.getSlug();
-               if (slug == null) {
-                       slug = ((Entry) 
request.getDocument().getRoot()).getTitle();
-               }
-               return Sanitizer.sanitize(slug, "", true, Normalizer.Form.D);
-       }
-
-       @Override
-       public ResponseContext putEntry(final RequestContext request) {
-               if (request.isAtom()) {
-                       try {
-                               final Entry entry = (Entry) 
request.getDocument().getRoot()
-                                               .clone();
-                               final String key = 
request.getTarget().getParameter("entry");
-                               this.setEditDetail(request, entry, key);
-                               final File file = this.getFile(key, false);
-                               final FileOutputStream out = new 
FileOutputStream(file);
-                               entry.writeTo(out);
-                               final String edit = 
entry.getEditLinkResolvedHref().toString();
-                               return ProviderHelper
-                                               
.returnBase(entry.getDocument(), 200, null)
-                                               .setLocation(edit);
-                       } catch (final Exception e) {
-                               return ProviderHelper.badrequest(request);
-                       }
-               } else {
-                       return ProviderHelper.notsupported(request);
-               }
-       }
-
-       private static class FileSorter implements Comparator<File> {
-               @Override
-               public int compare(final File o1, final File o2) {
-                       return o1.lastModified() > o2.lastModified() ? -1 : o1
-                                       .lastModified() < o2.lastModified() ? 1 
: 0;
-               }
-       }
-
-       public void setInteractionJetty(InteractionJetty interactionJetty) {
-               this.interactionJetty = interactionJetty;
-       }
-}

Reply via email to