You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by re...@apache.org on 2015/03/23 17:38:05 UTC
[21/51] [partial] incubator-taverna-engine git commit:
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorInputPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorInputPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorInputPort.java
deleted file mode 100644
index ebd8d86..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorInputPort.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel;
-
-/**
- * Input port on a Processor, is both a filtering input port and a processor
- * port
- *
- * @author Tom Oinn
- */
-public interface ProcessorInputPort extends FilteringInputPort, ProcessorPort {
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorOutputPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorOutputPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorOutputPort.java
deleted file mode 100644
index fda5d01..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorOutputPort.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel;
-
-/**
- * Input port on a Processor, is both an event forwarding output port and a
- * processor port
- *
- * @author Tom Oinn
- */
-public interface ProcessorOutputPort extends EventForwardingOutputPort,
- ProcessorPort {
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorPort.java
deleted file mode 100644
index 2491159..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/ProcessorPort.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel;
-
-/**
- * An {@link ProcessorInputPort} or {@link ProcessorOutputPort} belonging to a
- * {@link Processor}.
- */
-public interface ProcessorPort extends Port {
- /**
- * Get the Processor to which this port belongs
- */
- public Processor getProcessor();
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/RunDeletionListener.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/RunDeletionListener.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/RunDeletionListener.java
deleted file mode 100644
index f595d50..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/RunDeletionListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.workflowmodel;
-
-/**
- * A RunDeletionListener is notified when a run is deleted. It is then able to
- * take any specific action needed to deal with the deletion of the run, for
- * example deleting data that is not held within Taverna.
- *
- * @author alanrw
- */
-public interface RunDeletionListener {
- void deleteRun(String runToDelete);
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/TokenProcessingEntity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/TokenProcessingEntity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/TokenProcessingEntity.java
deleted file mode 100644
index 777ca63..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/TokenProcessingEntity.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel;
-
-import static net.sf.taverna.t2.annotation.HierarchyRole.CHILD;
-
-import java.util.List;
-
-import net.sf.taverna.t2.annotation.HierarchyTraversal;
-import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationTypeMismatchException;
-
-/**
- * Superinterface for all classes within the workflow model which consume and
- * emit workflow data tokens.
- *
- * @author Tom Oinn
- */
-public interface TokenProcessingEntity extends NamedWorkflowEntity {
- @HierarchyTraversal(hierarchies = { "workflowStructure" }, role = { CHILD })
- List<? extends EventHandlingInputPort> getInputPorts();
-
- @HierarchyTraversal(hierarchies = { "workflowStructure" }, role = { CHILD })
- List<? extends EventForwardingOutputPort> getOutputPorts();
-
- /**
- * Run a collection level based type check on the token processing entity
- *
- * @return true if the typecheck was successful or false if the check failed
- * because there were preconditions missing such as unsatisfied
- * input types
- * @throws IterationTypeMismatchException
- * if the typing occurred but didn't match because of an
- * iteration mismatch
- * @throws InvalidDataflowException
- * if the entity depended on a dataflow that was not valid
- */
- boolean doTypeCheck() throws IterationTypeMismatchException,
- InvalidDataflowException;
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowItem.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowItem.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowItem.java
deleted file mode 100644
index c50e50f..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowItem.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.sf.taverna.t2.workflowmodel;
-
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.DispatchStack;
-import net.sf.taverna.t2.workflowmodel.processor.iteration.IterationStrategy;
-
-/**
- * An item that forms a structural part of a Workflow.
- *
- * Workflow item are {@link Dataflow}, its {@link Processor} and {@link Port}
- * s, and other deeper structural parts like {@link DispatchStack} and
- * {@link IterationStrategy}.
- *
- * @author Stian Soiland-Reyes
- */
-public interface WorkflowItem {
- // FIXME: Should this be deleted?
- // TODO: Implement this for every WorkflowItem
-
-// /**
-// * Mark this item (and its child WorkflowItems) as immutable.
-// *
-// * Subsequent edits to its structural components will
-// * throw a RuntimeException like UnsupportedOperationException.
-// *
-// */
-// public void setImmutable();
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowStructureException.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowStructureException.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowStructureException.java
deleted file mode 100644
index 2cbbfbc..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/WorkflowStructureException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel;
-
-/**
- * Thrown predominantly at runtime under circumstances that suggest an
- * inconsistancy in the workflow model. This might include attempting to feed
- * data into a port that doesn't exist or has an unknown name or similar errors.
- *
- * @author Tom OInn
- */
-public class WorkflowStructureException extends RuntimeException {
- private static final long serialVersionUID = 1L;
-
- public WorkflowStructureException(String string) {
- super(string);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/DisabledActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/DisabledActivityHealthChecker.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/DisabledActivityHealthChecker.java
deleted file mode 100644
index 2946a9d..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/DisabledActivityHealthChecker.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.workflowmodel.health;
-
-import static net.sf.taverna.t2.visit.VisitReport.Status.SEVERE;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.DISABLED;
-
-import java.util.List;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.workflowmodel.processor.activity.DisabledActivity;
-
-/**
- * Check on the health of a DisabledActivity
- *
- * @author alanrw
- *
- */
-public class DisabledActivityHealthChecker implements
- HealthChecker<DisabledActivity> {
-
- /**
- * The visitor can visit DisabledActivitys.
- */
- @Override
- public boolean canVisit(Object o) {
- return ((o != null) && (o instanceof DisabledActivity));
- }
-
- /**
- * The check is not time consuming as it simply constructs a VisitReport
- */
- @Override
- public boolean isTimeConsuming() {
- return false;
- }
-
- /**
- * The result of the visit is simply a VisitReport to state that the service
- * is not available.
- */
- @Override
- public VisitReport visit(DisabledActivity o, List<Object> ancestry) {
- return new VisitReport(HealthCheck.getInstance(), o,
- "Service is not available", DISABLED, SEVERE);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthCheck.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthCheck.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthCheck.java
deleted file mode 100644
index 75b10d1..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthCheck.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.workflowmodel.health;
-
-import net.sf.taverna.t2.visit.VisitKind;
-import net.sf.taverna.t2.visit.Visitor;
-
-/**
- * A HealthCheck is a kind of visit that determines if the corresponding object
- * in a workflow (normally an Activity) will work during a workflow run.
- *
- * @author alanrw
- *
- */
-public class HealthCheck extends VisitKind {
- /*
- * The following values indicate the type of results that can be associated
- * with a VisitReport generated by a health-checking visitor.
- */
-
- public static final int NO_PROBLEM = 0;
- public static final int NOT_IMPLEMENTED = 1;
- public static final int CONNECTION_PROBLEM = 2;
- public static final int INVALID_URL = 3;
- public static final int TIME_OUT = 4;
- public static final int IO_PROBLEM = 5;
- public static final int MISSING_CLASS = 6;
- public static final int MISSING_DEPENDENCY = 7;
- public static final int INVALID_SCRIPT = 8;
- public static final int NO_CONFIGURATION = 9;
- public static final int NULL_VALUE = 10;
- public static final int DEFAULT_VALUE = 11;
- public static final int BAD_WSDL = 12;
- public static final int NOT_HTTP = 13;
- public static final int UNSUPPORTED_STYLE = 14;
- public static final int UNKNOWN_OPERATION = 15;
- public static final int NO_ENDPOINTS = 16;
- public static final int INVALID_CONFIGURATION = 17;
- public static final int NULL_DATATYPE = 18;
- public static final int DISABLED = 19;
- public static final int DATATYPE_SOURCE = 20;
- public static final int UNRECOGNIZED = 21;
- public static final int LOOP_CONNECTION = 22;
- public static final int UNMANAGED_LOCATION = 23;
- public static final int INCOMPATIBLE_MIMETYPES = 24;
- public static final int HIGH_PORT_DEPTH = 25;
-
- @SuppressWarnings("rawtypes")
- private static final Class healthCheckerClass = HealthChecker.class;
-
- /**
- * Sub-classes of HealthChecker are used to perform HealthCheck visits.
- */
- @Override
- @SuppressWarnings("unchecked")
- public Class<? extends Visitor<?>> getVisitorClass() {
- return healthCheckerClass;
- }
-
- private static class Singleton {
- private static HealthCheck instance = new HealthCheck();
- }
-
- public static HealthCheck getInstance() {
- return Singleton.instance;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthChecker.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthChecker.java
deleted file mode 100644
index 589766a..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/HealthChecker.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.health;
-
-import net.sf.taverna.t2.visit.Visitor;
-
-/**
- * An SPI interface whose implementation performs a health check on an arbitrary
- * instance.
- *
- * @author Stuart Owen
- * @author David Withers
- *
- * @param <Type>
- * the type of the item being checked
- */
-public interface HealthChecker<T> extends Visitor<T> {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/RemoteHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/RemoteHealthChecker.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/RemoteHealthChecker.java
deleted file mode 100644
index 725dd96..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/RemoteHealthChecker.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.workflowmodel.health;
-
-import static java.lang.System.currentTimeMillis;
-import static java.net.HttpURLConnection.HTTP_GONE;
-import static java.net.HttpURLConnection.HTTP_INTERNAL_ERROR;
-import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
-import static java.net.HttpURLConnection.HTTP_OK;
-import static net.sf.taverna.t2.visit.VisitReport.Status.SEVERE;
-import static net.sf.taverna.t2.visit.VisitReport.Status.WARNING;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.CONNECTION_PROBLEM;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.INVALID_URL;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.IO_PROBLEM;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.NOT_HTTP;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.NO_PROBLEM;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.TIME_OUT;
-
-import java.io.IOException;
-import java.lang.ref.WeakReference;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.net.ssl.SSLException;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-
-import org.apache.log4j.Logger;
-
-/**
- * A RemoteHealthChecker performs a visit to an Activity by trying to contact a
- * specific endpoint
- *
- * @author alanrw
- */
-public abstract class RemoteHealthChecker implements HealthChecker<Object> {
- public static final long ENDPOINT_EXPIRY_MILLIS = 30 * 1000; // 30 seconds
- private static final Logger logger = Logger.getLogger(RemoteHealthChecker.class);
- private static int timeout = 10000; // TODO Manage via bean?
- private static long endpointExpiryMillis = ENDPOINT_EXPIRY_MILLIS;
-
- public static int getTimeoutInSeconds() {
- return timeout / 1000;
- }
-
- public static void setTimeoutInSeconds(int timeout) {
- RemoteHealthChecker.timeout = timeout * 1000;
- }
-
- public static long getEndpointExpiryInMilliseconds() {
- return endpointExpiryMillis;
- }
-
- public static void setEndpointExpiryInMilliseconds(int endpointExpiry) {
- endpointExpiryMillis = endpointExpiry;
- }
-
- /**
- * Clear the cached endpoint statuses. Normally {@link RemoteHealthChecker}
- * will only check an endpoint again if it has been more than
- * {@link #getEndpointExpiryInMilliseconds()} milliseconds since last check,
- * by default 30 seconds.
- */
- public static void clearCachedEndpointStatus() {
- visitReportsByEndpoint.clear();
- }
-
- private static Map<String, WeakReference<VisitReport>> visitReportsByEndpoint = new ConcurrentHashMap<>();
-
- /**
- * Try to contact the specified endpoint as part of the health-checking of
- * the Activity.
- *
- * @param activity
- * The activity that is being checked
- * @param endpoint
- * The String corresponding to the URL of the endpoint
- *
- * @return
- */
- public static VisitReport contactEndpoint(Activity<?> activity,
- String endpoint) {
- WeakReference<VisitReport> cachedReportRef = visitReportsByEndpoint
- .get(endpoint);
- VisitReport cachedReport = null;
- if (cachedReportRef != null)
- cachedReport = cachedReportRef.get();
- if (cachedReport != null) {
- long now = currentTimeMillis();
- long age = now - cachedReport.getCheckTime();
- if (age < getEndpointExpiryInMilliseconds()) {
- VisitReport newReport;
- try {
- // Make a copy
- newReport = cachedReport.clone();
- // But changed the subject
- newReport.setSubject(activity);
- logger.info("Returning cached report for endpoint "
- + endpoint + ": " + newReport);
- return newReport;
- } catch (CloneNotSupportedException e) {
- logger.warn("Could not clone VisitReport " + cachedReport,
- e);
- }
- }
- }
-
- Status status = Status.OK;
- String message = "Responded OK";
- int resultId = NO_PROBLEM;
- URLConnection connection = null;
- int responseCode = HTTP_OK;
- Exception ex = null;
- try {
- URL url = new URL(endpoint);
- connection = url.openConnection();
- connection.setReadTimeout(timeout);
- connection.setConnectTimeout(timeout);
- if (connection instanceof HttpURLConnection) {
- HttpURLConnection httpConnection = (HttpURLConnection) connection;
- httpConnection.setRequestMethod("HEAD");
- httpConnection.connect();
- responseCode = httpConnection.getResponseCode();
- if (responseCode != HTTP_OK) {
- try {
- if ((connection != null)
- && (connection.getInputStream() != null))
- connection.getInputStream().close();
- } catch (IOException e) {
- logger.info(
- "Unable to close connection to " + endpoint, e);
- }
- connection = url.openConnection();
- connection.setReadTimeout(timeout);
- connection.setConnectTimeout(timeout);
- httpConnection = (HttpURLConnection) connection;
- httpConnection.setRequestMethod("GET");
- httpConnection.connect();
- responseCode = httpConnection.getResponseCode();
- }
- if (responseCode != HTTP_OK) {
- if ((responseCode > HTTP_INTERNAL_ERROR)) {
- status = WARNING;
- message = "Unexpected response";
- resultId = CONNECTION_PROBLEM;
- } else if ((responseCode == HTTP_NOT_FOUND)
- || (responseCode == HTTP_GONE)) {
- status = WARNING;
- message = "Bad response";
- resultId = CONNECTION_PROBLEM;
- }
- }
- } else {
- connection.connect();
- status = WARNING;
- message = "Not HTTP";
- resultId = NOT_HTTP;
- }
- } catch (MalformedURLException e) {
- status = SEVERE;
- message = "Invalid URL";
- resultId = INVALID_URL;
- ex = e;
- } catch (SocketTimeoutException e) {
- status = SEVERE;
- message = "Timed out";
- resultId = TIME_OUT;
- ex = e;
- } catch (SSLException e){
- // Some kind of error when trying to establish an HTTPS connection to the endpoint
- status = SEVERE;
- message = "HTTPS connection problem";
- resultId = IO_PROBLEM; // SSLException is an IOException
- ex = e;
- } catch (IOException e) {
- status = SEVERE;
- message = "Read problem";
- resultId = IO_PROBLEM;
- ex = e;
- } finally {
- try {
- if ((connection != null)
- && (connection.getInputStream() != null))
- connection.getInputStream().close();
- } catch (IOException e) {
- logger.info("Unable to close connection to " + endpoint, e);
- }
- }
-
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, message,
- resultId, status);
- vr.setProperty("endpoint", endpoint);
- if (ex != null)
- vr.setProperty("exception", ex);
- if (responseCode != HTTP_OK)
- vr.setProperty("responseCode", Integer.toString(responseCode));
- if (resultId == TIME_OUT)
- vr.setProperty("timeOut", Integer.toString(timeout));
- visitReportsByEndpoint.put(endpoint, new WeakReference<>(vr));
- return vr;
- }
-
- /**
- * A remote health-check is time consuming as it tries to contact an
- * external resource.
- */
- @Override
- public boolean isTimeConsuming() {
- return true;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/UnrecognizedActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/UnrecognizedActivityHealthChecker.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/UnrecognizedActivityHealthChecker.java
deleted file mode 100644
index 478603d..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/UnrecognizedActivityHealthChecker.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.workflowmodel.health;
-
-import static net.sf.taverna.t2.visit.VisitReport.Status.SEVERE;
-import static net.sf.taverna.t2.workflowmodel.health.HealthCheck.UNRECOGNIZED;
-
-import java.util.List;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.workflowmodel.processor.activity.UnrecognizedActivity;
-
-/**
- * Check on the health of a UnrecognizedActivity
- *
- * @author alanrw
- *
- */
-public class UnrecognizedActivityHealthChecker implements
- HealthChecker<UnrecognizedActivity> {
-
- /**
- * The visitor can visit {@link UnrecognizedActivity}s.
- */
- @Override
- public boolean canVisit(Object o) {
- return ((o != null) && (o instanceof UnrecognizedActivity));
- }
-
- /**
- * The check is not time consuming as it simply constructs a VisitReport
- */
- @Override
- public boolean isTimeConsuming() {
- return false;
- }
-
- /**
- * The result of the visit is simply a VisitReport to state that the service
- * is not available.
- */
- @Override
- public VisitReport visit(UnrecognizedActivity o, List<Object> ancestry) {
- return new VisitReport(HealthCheck.getInstance(), o,
- "Service is unrecognized", UNRECOGNIZED, SEVERE);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/package.html
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/package.html b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/package.html
deleted file mode 100644
index 6cbc3b5..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/health/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<body>
-
-A package that contains a set of classes to be used in testing a Dataflow prior to invocation.<br>
-These can carry our various tests such as a service endpoint being accessible. HealthChecker provides an
-SPI extension point to allow 3rd party developers to implement their own Activity checkers.
-</body>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/package.html
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/package.html b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/package.html
deleted file mode 100644
index abaa693..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<body>
-Defines classes and interfaces for workflow level entities and events.
-</body>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractActivity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractActivity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractActivity.java
deleted file mode 100644
index 3a13c1b..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractActivity.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-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 net.sf.taverna.t2.annotation.AbstractAnnotatedThing;
-import net.sf.taverna.t2.annotation.annotationbeans.MimeType;
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.workflowmodel.EditException;
-import net.sf.taverna.t2.workflowmodel.Edits;
-import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean;
-import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean;
-import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityPortsDefinitionBean;
-
-import org.apache.log4j.Logger;
-
-/**
- * Convenience abstract superclass for generic Activity instances. Parameterised
- * on the configuration type used by the Activity implementation - when this
- * object is serialised the getConfiguration method is used to store specific
- * details of the activity, this is then used immediately after a call to the
- * default constructor when deserialising from XML on a workflow load.
- * <p>
- * This class holds port sets and mappings, and returns references directly to
- * them rather than copies thereof.
- * <p>
- * If you're writing an abstract activity (one that cannot be directly invoked)
- * you should extend this class for convenience. This can be useful when you
- * wish to specify some kind of abstract definition of a process which will be
- * bound at workflow invocation time to a particular concrete activity through
- * the action of a custom dispatch stack layer (which you will also provide)
- *
- * @author Tom Oinn
- * @author Stuart Owen
- *
- * @param <ConfigType>
- * type of configuration object to be used to hold configuration
- * information
- */
-public abstract class AbstractActivity<ConfigType> extends
- AbstractAnnotatedThing<Activity<?>> implements Activity<ConfigType> {
- private static Logger logger = Logger.getLogger(AbstractActivity.class);
-
- private Edits edits;
-
- protected Map<String, String> inputPortMapping = new HashMap<>();
- protected Map<String, String> outputPortMapping = new HashMap<>();
- protected Set<ActivityOutputPort> outputPorts = new HashSet<>();
- protected Set<ActivityInputPort> inputPorts = new HashSet<>();
-
- @Override
- public void setEdits(Edits edits) {
- if (edits == null)
- throw new IllegalArgumentException("Edits can not be null.");
- this.edits = edits;
- }
-
- /**
- * @return the edits
- */
- public Edits getEdits() {
- if (edits == null)
- throw new IllegalStateException(
- "Unable to run this meathod until setEdits has been called");
- return edits;
- }
-
- /**
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#configure(java.lang.Object)
- */
- @Override
- public abstract void configure(ConfigType conf)
- throws ActivityConfigurationException;
-
- /**
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#getConfiguration()
- */
- @Override
- public abstract ConfigType getConfiguration();
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#getInputPortMapping()
- */
- @Override
- public final Map<String, String> getInputPortMapping() {
- return this.inputPortMapping;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#getInputPorts()
- */
- @Override
- public final Set<ActivityInputPort> getInputPorts() {
- return inputPorts;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#getOutputPortMapping()
- */
- @Override
- public final Map<String, String> getOutputPortMapping() {
- return this.outputPortMapping;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.taverna.t2.workflowmodel.processor.activity.Activity#getOutputPorts()
- */
- @Override
- public final Set<ActivityOutputPort> getOutputPorts() {
- return outputPorts;
- }
-
- /**
- * Creates and adds a new input port with the provided properties.
- *
- * @see #removeInputs()
- * @param portName -
- * the name of the port to be created.
- * @param portDepth -
- * the depth of the port to be created.
- */
- protected void addInput(
- String portName,
- int portDepth,
- boolean allowsLiteralValues,
- List<Class<? extends ExternalReferenceSPI>> handledReferenceSchemes,
- Class<?> translatedElementClass) {
- if (handledReferenceSchemes == null)
- handledReferenceSchemes = Collections.emptyList();
- inputPorts.add(getEdits().createActivityInputPort(portName, portDepth,
- allowsLiteralValues, handledReferenceSchemes,
- translatedElementClass));
- }
-
- /**
- * Creates and adds a new output port with the provided properties.
- *
- * @see #removeOutputs()
- * @param portName -
- * the name of the port to be created.
- * @param portDepth -
- * the depth of the port to be created
- * @param granularDepth -
- * the granular depth of the port to be created
- * @param mimeTypes -
- * a List of String representations of the MIME type this port
- * will emit as outputs.
- */
- protected void addOutput(String portName, int portDepth, int granularDepth) {
- outputPorts.add(getEdits().createActivityOutputPort(
- portName, portDepth, granularDepth));
- }
-
- /**
- * Convenience method, creates a new output port with depth and granular
- * depth both set to the value for depth, i.e. no streaming behaviour.
- * <p>
- *
- * @see #removeOutputs()
- * @param portName
- * @param portDepth
- */
- protected void addOutput(String portName, int portDepth) {
- addOutput(portName, portDepth, portDepth);
- }
-
- /**
- * <p>
- * Simplifies configuring the Activity input and output ports if its
- * ConfigType is an implementation of {@link ActivityPortsDefinitionBean}
- * </p>
- * <p>
- * For an Activity that has ports that are defined dynamically it is natural
- * that is ConfigType will not implement this interface.
- * </p>
- *
- * @param configBean
- */
- protected void configurePorts(ActivityPortsDefinitionBean configBean) {
- removeInputs();
- for (ActivityInputPortDefinitionBean inputDef : configBean
- .getInputPortDefinitions()) {
- addInput(inputDef.getName(), inputDef.getDepth(), inputDef
- .getAllowsLiteralValues(), inputDef
- .getHandledReferenceSchemes(), inputDef
- .getTranslatedElementType());
- // TODO - use the mime types from the config bean if required,
- // probably best handled elsewhere though
- }
- removeOutputs();
-
- for (ActivityOutputPortDefinitionBean outputDef : configBean
- .getOutputPortDefinitions()) {
- ActivityOutputPort createActivityOutputPort = getEdits()
- .createActivityOutputPort(outputDef.getName(),
- outputDef.getDepth(), outputDef.getGranularDepth());
-// addOutput(outputDef.getName(), outputDef.getDepth(), outputDef
-// .getGranularDepth());
- outputPorts.add(createActivityOutputPort);
- // add the mime types as annotations
- for (String mimeType : outputDef.getMimeTypes())
- setMimeType(createActivityOutputPort, mimeType);
- }
- }
-
- private void setMimeType(ActivityOutputPort outputPort, String mimeType) {
- MimeType mimeTypeAnnotation = new MimeType();
- mimeTypeAnnotation.setText(mimeType);
- try {
- getEdits()
- .getAddAnnotationChainEdit(outputPort, mimeTypeAnnotation)
- .doEdit();
- } catch (EditException e) {
- logger.error(e);
- }
- }
-
- /**
- * Remove existing output ports.
- */
- protected void removeOutputs() {
- outputPorts.clear();
- }
-
- /**
- * Remove existing input ports
- *
- */
- protected void removeInputs() {
- inputPorts.clear();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractAsynchronousActivity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractAsynchronousActivity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractAsynchronousActivity.java
deleted file mode 100644
index 4dd0409..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AbstractAsynchronousActivity.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * Abstract superclass for asynchronous activities. Activity providers should only
- * have to implement the configuration and invocation methods to have a fully
- * functional activity - serialisation and deserialisation are handled
- * automatically.
- *
- * @author Tom Oinn
- *
- * @param <ConfigType>
- * the configuration type used for this activity
- */
-public abstract class AbstractAsynchronousActivity<ConfigType> extends
- AbstractActivity<ConfigType> implements AsynchronousActivity<ConfigType> {
-
- /**
- * Called immediately after object construction by the deserialisation
- * framework with a configuration bean built from the auto-generated XML.
- * <p>
- * This method is responsible for the creation of input and output ports,
- * something that is currently done in the constructor of the Taverna 1
- * Processor class.
- */
- @Override
- public abstract void configure(ConfigType conf)
- throws ActivityConfigurationException;
-
- /**
- * Get a configuration bean representing the definition of the activity. This
- * bean should contain enough information to rebuild the input and output
- * port sets, mappings are explicitly handled by the serialisation framework
- * but the ports are assumed to be generated during the configuration stage
- * rather than explicitly stored.
- */
- @Override
- public abstract ConfigType getConfiguration();
-
- /**
- * Request an asynchronous invocation of the activity on the specified data.
- * The data items are named relative to the input port names of the activity
- * (as opposed to the parent processor), the invocation layer is responsible
- * for translating these appropriately before this method is called. The
- * callback object provides access to a DataManager instance that can be
- * used to resolve the entity identifiers in the data map, push results up
- * and signal failure conditions.
- * <p>
- * This method must not block! However it happens this method must return
- * immediately after creating the new activity invocation. Do not do any
- * heavy lifting in the body of this method without creating a new thread
- * specifically for it.
- */
- @Override
- public abstract void executeAsynch(Map<String, T2Reference> data,
- AsynchronousActivityCallback callback);
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/Activity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/Activity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/Activity.java
deleted file mode 100644
index 4bec988..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/Activity.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007-2008 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import static net.sf.taverna.t2.annotation.HierarchyRole.CHILD;
-
-import java.util.Map;
-import java.util.Set;
-
-import net.sf.taverna.t2.annotation.Annotated;
-import net.sf.taverna.t2.annotation.HierarchyTraversal;
-import net.sf.taverna.t2.workflowmodel.Configurable;
-import net.sf.taverna.t2.workflowmodel.Edits;
-
-/**
- * Defines a single abstract or concrete invokable activity. Each Processor
- * contains at least one of these and may contain many, similarly the dispatch
- * stack may create new Activity instances from e.g. dynamic lookup or
- * resolution of an abstract activity to a concrete activity or set of
- * activities.
- *
- * @param <ConfigurationType>
- * the ConfigurationType associated with the Activity. This is an
- * arbitrary java class that provides details on how the Activity is
- * configured..
- * @author Tom Oinn
- * @author David Withers
- */
-public interface Activity<ConfigurationType> extends Annotated<Activity<?>>,
- Configurable<ConfigurationType> {
- /**
- * An Activity contains a set of named input ports. Names must be unique
- * within this set.
- *
- * @return the set of input ports for this activity
- */
- @HierarchyTraversal(hierarchies = { "workflowStructure" }, role = { CHILD })
- Set<ActivityInputPort> getInputPorts();
-
- /**
- * A processor may have different input port names to the activity or
- * activities it contains. This map is keyed on the processor input port
- * names with the corresponding value being the activity port name.
- *
- * @return mapping from processor input port names to activity input port
- * names
- */
- Map<String, String> getInputPortMapping();
-
- /**
- * An Activity contains a set of named output ports. As with input ports
- * names must be unique within the set.
- *
- * @return
- */
- @HierarchyTraversal(hierarchies = { "workflowStructure" }, role = { CHILD })
- Set<ActivityOutputPort> getOutputPorts();
-
- /**
- * Outputs of the activity may be named differently to those of the
- * processor. This map is keyed on an activity output port name with each
- * corresponding value being the processor output port name to which the
- * activity output is bound.
- *
- * @return mapping from activity output port name to processor output port
- * name
- */
- Map<String, String> getOutputPortMapping();
-
- @Override
- abstract void configure(ConfigurationType conf)
- throws ActivityConfigurationException;
-
- void setEdits(Edits edits);
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityAndBeanWrapper.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityAndBeanWrapper.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityAndBeanWrapper.java
deleted file mode 100644
index e5a619e..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityAndBeanWrapper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.awt.datatransfer.Transferable;
-
-/**
- * Used when dragging activities from the palette onto "something". Place it
- * inside a {@link Transferable} when doing a drag operation. Contains an
- * {@link Activity} and its configuration bean.
- *
- * @author Ian Dunlop
- */
-public class ActivityAndBeanWrapper {
- /** The Activity being dragged */
- private Activity<?> activity;
- /** The bean used to configure the activity */
- private Object bean;
- private String name;
-
- public Activity<?> getActivity() {
- return activity;
- }
-
- public void setActivity(Activity<?> activity) {
- this.activity = activity;
- }
-
- public Object getBean() {
- return bean;
- }
-
- public void setBean(Object bean) {
- this.bean = bean;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityConfigurationException.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityConfigurationException.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityConfigurationException.java
deleted file mode 100644
index 0774b40..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityConfigurationException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007-2008 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import net.sf.taverna.t2.workflowmodel.ConfigurationException;
-
-/**
- * Thrown when attempting to configure an Activity instance with an invalid
- * configuration. Causes may include actual configuration errors, unavailable
- * activities etc.
- *
- * @author Tom Oinn
- */
-public class ActivityConfigurationException extends ConfigurationException {
- private static final long serialVersionUID = 6940385954331153900L;
-
- /**
- * @param msg
- * a message describing the reason for the exception.
- */
- public ActivityConfigurationException(String msg) {
- super(msg);
- }
-
- /**
- * @param cause
- * a previous exception that caused this
- * ActivityConfigurationException to be thrown.
- */
- public ActivityConfigurationException(Throwable cause) {
- super(cause);
- }
-
- /**
- * @param msg
- * a message describing the reason for the exception.
- * @param cause
- * a previous exception that caused this
- * ActivityConfigurationException to be thrown.
- */
- public ActivityConfigurationException(String msg, Throwable cause) {
- super(msg, cause);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityFactory.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityFactory.java
deleted file mode 100644
index 49eaff4..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityFactory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2010 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.net.URI;
-import java.util.Set;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * Factory for creating {@link Activity} instances.
- *
- * @author David Withers
- */
-public interface ActivityFactory {
- /**
- * Creates a new <code>Activity</code> instance.
- *
- * @return the new <code>Activity</code> instance
- */
- Activity<?> createActivity();
-
- /**
- * What type of <code>Activity</code>s can this factory create?
- *
- * @return the type of the <code>Activity</code>s that this factory can
- * create
- */
- URI getActivityType();
-
- /**
- * Returns the JSON Schema for the configuration required by the
- * <code>Activity</code>.
- *
- * @return the JSON Schema for the configuration required by the
- * <code>Activity</code>
- */
- JsonNode getActivityConfigurationSchema();
-
- /**
- * Returns the <code>ActivityInputPort</code>s that the
- * <code>Activity</code> requires to be present in order to execute with the
- * specified configuration.
- * <p>
- * If the <code>Activity</code> does not require any input port for the
- * configuration then an empty set is returned.
- *
- * @param configuration
- * the configuration
- * @return the <code>ActivityInputPort</code>s that the
- * <code>Activity</code> requires to be present in order to execute
- */
- Set<ActivityInputPort> getInputPorts(JsonNode configuration)
- throws ActivityConfigurationException;
-
- /**
- * Returns the <code>ActivityOutputPort</code>s that the
- * <code>Activity</code> requires to be present in order to execute with the
- * specified configuration.
- * <p>
- * If the <code>Activity</code> does not require any output ports for the
- * configuration then an empty set is returned.
- *
- * @param configuration
- * the configuration
- * @return the <code>ActivityOutputPort</code>s that the
- * <code>Activity</code> requires to be present in order to execute
- */
- Set<ActivityOutputPort> getOutputPorts(JsonNode configuration)
- throws ActivityConfigurationException;
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityInputPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityInputPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityInputPort.java
deleted file mode 100644
index 93e4cc8..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityInputPort.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007-2009 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.util.List;
-
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.workflowmodel.InputPort;
-
-/**
- * Specialisation of InputPort to capture the extra information required by
- * Activity instances.
- *
- * @author Tom Oinn
- */
-public interface ActivityInputPort extends InputPort, ActivityPort {
- /**
- * Declares that the DataDocument instances fed as input data (either
- * directly or as elements of a collection) to this input port must contain
- * at least one of the specified ReferenceScheme types. This is used to
- * specify that e.g. an activity can only accept URLs, values or similar.
- *
- * @return Class objects representing the reference scheme types which this
- * input can handle
- */
- List<Class<? extends ExternalReferenceSPI>> getHandledReferenceSchemes();
-
- /**
- * Literal values are a special case as they are not represented by
- * reference schemes - in rare cases activities may choose to deny literal
- * values, forcing *all* their inputs to be in a particular reference
- * scheme. If this is the case then this method should return false, if the
- * activity is capable of handling literal types without any upconversion to
- * references (please do implement this!) then it returns false
- *
- * @return true if the activity can cope with literal values, false if it
- * requires them to be converted to an instance of a reference
- * scheme class (as defined by getHandledReferenceSchemes)
- */
- boolean allowsLiteralValues();
-
- /**
- * The Java object type desired when the input data reference is converted
- * to an object. This is only used by the parent Activity when invoking the
- * data facade. Where the input data is a list this returns the type of leaf
- * nodes within the collection structure - the instances of this type will
- * always be wrapped up in a Java collection rather than an array type
- * <p>
- * Note that this is not intended to allow activities to consume arbitrary
- * java classes, activities such as the API consumer should handle this
- * through the reference scheme mechanism backed by an appropriate store
- * (most likely an in-memory hash of active objects)
- *
- * @return the desired class of the object returned by the data facade when
- * converting the input data reference into a java object. This will
- * almost always be String.class or byte[].class but other cases may
- * exist.
- */
- Class<?> getTranslatedElementClass();
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityOutputPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityOutputPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityOutputPort.java
deleted file mode 100644
index 8b82939..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityOutputPort.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-
-/**
- * The output port of an {@link Activity}.
- *
- * @author Stian Soiland-Reyes
- */
-public interface ActivityOutputPort extends OutputPort, ActivityPort {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityPort.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityPort.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityPort.java
deleted file mode 100644
index 3a1208c..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/ActivityPort.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2009 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import net.sf.taverna.t2.workflowmodel.Port;
-
-/**
- * The input or output port of an {@link Activity}.
- *
- * @see ActivityInputPort
- * @see ActivityOutputPort
- * @author Stian Soiland-Reyes
- */
-public interface ActivityPort extends Port {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivity.java
deleted file mode 100644
index dfcb326..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivity.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * A concrete invokable activity with an asynchronous invocation API and no
- * knowledge of invocation context. This is the most common concrete activity
- * type in Taverna 2, it has no knowledge of any enclosing iteration or other
- * handling process. The activity may stream results in the sense that it can
- * use the AsynchronousActivityCallback object to push multiple results followed
- * by a completion event. If a completion event is received by the callback
- * before any data events the callback will insert a data event containing empty
- * collections of the appropriate depth.
- *
- * @param <ConfigurationType>
- * the ConfigurationType associated with the Activity.
- * @author Tom Oinn
- */
-public interface AsynchronousActivity<ConfigurationType> extends
- Activity<ConfigurationType> {
- /**
- * Invoke the activity in an asynchronous manner. The activity uses the
- * specified ActivityCallback object to push results, errors and completion
- * events back to the dispatch stack.
- */
- void executeAsynch(Map<String, T2Reference> data,
- AsynchronousActivityCallback callback);
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivityCallback.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivityCallback.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivityCallback.java
deleted file mode 100644
index f8522f6..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/AsynchronousActivityCallback.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.events.DispatchErrorType;
-
-/**
- * The callback interface used by instances of AsynchronousActivity to push
- * results and failure messages back to the invocation layer.
- *
- * @author Tom Oinn
- */
-public interface AsynchronousActivityCallback {
- /**
- * The invocation context contains resources such as data managers, security
- * agents and provenance consumers to be used by the Activity as it runs.
- * This replaces the getLocalDataManager and getLocalSecurityManager calls.
- */
- InvocationContext getContext();
-
- /**
- * If an activity proxy wants to create a new thread of activity it should
- * use this method unless there is a very good reason not to. This allows
- * the workflow framework to control its own thread usage, possibly
- * implementing per user, per workflow or per processor thread limit
- * policies. Exceptions to this principle might include cases where the
- * activity proxy is capable of managing thread usage across all instances
- * of that activity type and therefore more efficiently (fewer threads) than
- * if it let the workflow manager perform this function.
- *
- * @param runMe
- * a Runnable to implement the activity proxy logic.
- */
- void requestRun(Runnable runMe);
-
- /**
- * Push a map of named identifiers out to the invocation layer which is then
- * responsible for wrapping them up into an appropriate Job object and
- * sending it up the dispatch stack. The keys of the map are names local to
- * the activity, the callback object is responsible for rewriting them
- * according to the activity mapping rules (i.e. Activity.getXXXPortMapping)
- *
- * @param data
- * a single result data packet
- * @param index
- * the index of the result in the context of this single process
- * invocation. If there's no streaming involved this should be a
- * zero length int[].
- */
- void receiveResult(Map<String, T2Reference> data, int[] index);
-
- /**
- * If (and only if) the activity is streaming data then this method can be
- * called to signal a (possibly partial) completion of the stream. If this
- * is a total completion event, i.e. one with a zero length index array and
- * there have been no result data sent the callback object will create a
- * single job containing empty lists and send that instead otherwise it will
- * be passed straight through. The index array is relative to this
- * particular activity invocation as the invocation has no contextual
- * awareness.
- *
- * @param completionIndex
- */
- void receiveCompletion(int[] completionIndex);
-
- /**
- * If the job fails (as opposed to succeeding and sending an error for which
- * the receiveResult method is used) this method will cause an error to be
- * sent up the dispatch stack, triggering any appropriate handling methods
- * such as retry, failover etc. This particular method accepts both a free
- * text message and an instance of Throwable for additional information, in
- * addition to which it sends an error type which allows upstream layers to
- * determine whether they can handle the error or whether it should be
- * passed directly upwards.
- *
- * @param message
- * @param t
- */
- void fail(String message, Throwable t, DispatchErrorType errorType);
-
- /**
- * If the job fails (as opposed to succeeding and sending an error for which
- * the receiveResult method is used) this method will cause an error to be
- * sent up the dispatch stack, triggering any appropriate handling methods
- * such as retry, failover etc. This particular method accepts both a free
- * text message and an instance of Throwable for additional information.
- *
- * @param message
- * @param t
- */
- void fail(String message, Throwable t);
-
- /**
- * If the job fails (as opposed to succeeding and sending an error for which
- * the receiveResult method is used) this method will cause an error to be
- * sent up the dispatch stack, triggering any appropriate handling methods
- * such as retry, failover etc. This method just takes a free text message
- * for cases where a failure is properly described by an instance of
- * Throwable
- *
- * @param message
- */
- void fail(String message);
-
- /**
- * For activities which are going to establish state below the invoke node
- * in the monitor tree this method returns the owning process identifier
- * allocated to the invoke node. This is particularly necessary for nested
- * workflow activities.
- * <p>
- * Any calls to Monitor.register... must establish a state tree rooted at
- * this node, they may assume that this node already exists.
- */
- String getParentProcessIdentifier();
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/DisabledActivity.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/DisabledActivity.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/DisabledActivity.java
deleted file mode 100644
index e219635..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/activity/DisabledActivity.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007-2011 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workflowmodel.processor.activity;
-
-import java.util.HashSet;
-import java.util.Map;
-
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-
-import org.apache.log4j.Logger;
-
-/**
- * A disabled activity is a wrapper for an Activity that is offline or similarly
- * disabled. This cannot be done just by setting a flag on the corresponding
- * activity as special code needs to be used to create the ports of the disabled
- * activity that, obviously, cannot be done by confighuring the offline
- * activity.
- *
- * @author alanrw
- */
-public final class DisabledActivity extends
- NonExecutableActivity<ActivityAndBeanWrapper> {
- public static final String URI = "http://ns.taverna.org.uk/2010/activity/disabled";
- private static final Logger logger = Logger
- .getLogger(DisabledActivity.class);
-
- /**
- * Conf holds the offline Activity and its configuration.
- */
- private ActivityAndBeanWrapper conf;
- private Object lastWorkingConfiguration;
-
- /**
- * It is not possible to create a "naked" DisabledActivity.
- */
- private DisabledActivity() {
- super();
- lastWorkingConfiguration = null;
- }
-
- /**
- * Create a DisabledActivity that represents an offline activity of the
- * specified class with the specified configuration. This constructor is
- * commonly used when reading in an Activity which cannot be initially
- * configured because it is offline.
- *
- * @param activityClass
- * The class of Activity that is offline.
- * @param config
- * The configuration of the offline Activity.
- * @throws InstantiationException
- * @throws IllegalAccessException
- * @throws ActivityConfigurationException
- */
- public DisabledActivity(Class<? extends Activity<?>> activityClass,
- Object config) throws InstantiationException,
- IllegalAccessException, ActivityConfigurationException {
- this(activityClass.newInstance(), config);
- }
-
- /**
- * Create a DisabledActivity that represents a specific Activity with its
- * configuration.
- *
- * @param activity
- * The Activity that is offline
- * @param config
- * The configuration of the activity.
- */
- public DisabledActivity(Activity<?> activity, Object config) {
- this();
- ActivityAndBeanWrapper disabledConfig = new ActivityAndBeanWrapper();
- disabledConfig.setActivity(activity);
- disabledConfig.setBean(config);
- try {
- configure(disabledConfig);
- } catch (ActivityConfigurationException e) {
- logger.error(e);
- }
- }
-
- /**
- * Create a DisabledActivity that represents a specific Activity that is now
- * disabled e.g. by its remote endpoint going offline. Note that in this
- * case, the ports of the DisabledActivity and their mapping to the
- * containing Processor's ports can be inherited from the Activity that is
- * now disabled.
- *
- * @param activity
- * The Activity that is now disabled.
- */
- public DisabledActivity(Activity<?> activity) {
- this(activity, activity.getConfiguration());
- for (ActivityInputPort aip : activity.getInputPorts())
- addInput(aip.getName(), aip.getDepth(), aip.allowsLiteralValues(),
- aip.getHandledReferenceSchemes(),
- aip.getTranslatedElementClass());
- for (OutputPort op : activity.getOutputPorts())
- addOutput(op.getName(), op.getDepth(), op.getGranularDepth());
- getInputPortMapping().clear();
- getInputPortMapping().putAll(activity.getInputPortMapping());
- getOutputPortMapping().clear();
- getOutputPortMapping().putAll(activity.getOutputPortMapping());
- }
-
- @Override
- public void configure(ActivityAndBeanWrapper conf)
- throws ActivityConfigurationException {
- this.conf = conf;
- }
-
- @Override
- public ActivityAndBeanWrapper getConfiguration() {
- return conf;
- }
-
- /**
- * @return The Activity that has been disabled
- */
- public Activity<?> getActivity() {
- return getConfiguration().getActivity();
- }
-
- /**
- * @return The configuration of the Activity that has been disabled
- */
- public Object getActivityConfiguration() {
- return getConfiguration().getBean();
- }
-
- public boolean configurationWouldWork() {
- return configurationWouldWork(conf.getBean());
- }
-
- public boolean configurationWouldWork(Object newConfig) {
- boolean result = true;
- lastWorkingConfiguration = null;
- try {
- @SuppressWarnings("unchecked")
- Activity<Object> aa = conf.getActivity().getClass().newInstance();
- aa.configure(newConfig);
- boolean unknownPort = false;
- Map<String, String> currentInputPortMap = getInputPortMapping();
- HashSet<String> currentInputNames = new HashSet<>();
- currentInputNames.addAll(currentInputPortMap.values()) ;
- for (ActivityInputPort aip : aa.getInputPorts())
- currentInputNames.remove(aip.getName());
- unknownPort = !currentInputNames.isEmpty();
-
- if (!unknownPort) {
- Map<String, String> currentOutputPortMap = getOutputPortMapping();
- HashSet<String> currentOutputNames = new HashSet<>();
- currentOutputNames.addAll(currentOutputPortMap.values());
- for (OutputPort aop : aa.getOutputPorts())
- currentOutputNames.remove(aop.getName());
- unknownPort = !currentOutputNames.isEmpty();
- }
- if (unknownPort)
- result = false;
- } catch (ActivityConfigurationException ex) {
- result = false;
- } catch (InstantiationException|IllegalAccessException e) {
- return false;
- }
- if (result)
- lastWorkingConfiguration = newConfig;
- return result;
- }
-
- public Object getLastWorkingConfiguration() {
- return lastWorkingConfiguration;
- }
-}