You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 21:36:55 UTC
[24/28] incubator-taverna-common-activities git commit: Temporarily
empty repository
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/2e8f451e/taverna-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;
- }
-}