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:03 UTC
[19/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/processor/dispatch/description/DispatchMessageType.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/DispatchMessageType.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/DispatchMessageType.java
deleted file mode 100644
index ca44bf2..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/DispatchMessageType.java
+++ /dev/null
@@ -1,61 +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.dispatch.description;
-
-/**
- * Enumeration of the possible message types passed between layers of the
- * dispatch stack.
- *
- * @author Tom Oinn
- */
-public enum DispatchMessageType {
- /**
- * A reference to a queue of Job objects waiting to be used as input along
- * with a list of activities to process them.
- */
- JOB_QUEUE,
-
- /**
- * A Job object and list of activities to be used to process the data in the
- * Job. The Job will have been previously extracted from the JobQueue
- */
- JOB,
-
- /**
- * A Job object containing the result of a single activity invocation.
- */
- RESULT,
-
- /**
- * A (possibly partial) completion event from the layer below. This is only
- * going to be used when the activity invocation is capable of streaming
- * partial data back up through the dispatch stack before the activity has
- * completed. Not all dispatch stack layers are compatible with this mode of
- * operation, for example retry and recursion do not play well here!
- */
- RESULT_COMPLETION,
-
- /**
- * A failure message sent by the layer below to denote some kind of failure
- * (surprisingly)
- */
- ERROR;
-}
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/dispatch/description/ReactionTo.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/ReactionTo.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/ReactionTo.java
deleted file mode 100644
index 40600ac..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/ReactionTo.java
+++ /dev/null
@@ -1,40 +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.dispatch.description;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Describes the type of message to which the various DispatchLayerFooReaction
- * classes are referring
- *
- * @author Tom Oinn
- */
-@Documented
-@Target(ElementType.ANNOTATION_TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ReactionTo {
- public DispatchMessageType messageType();
-}
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/dispatch/description/SupportsStreamedResult.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/SupportsStreamedResult.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/SupportsStreamedResult.java
deleted file mode 100644
index 87dc6fa..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/SupportsStreamedResult.java
+++ /dev/null
@@ -1,41 +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.dispatch.description;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Declares that a dispatch layer can handle streamed result data correctly, if
- * this annotation is attached to a DispatchLayer implementation that
- * implementation must be able to correctly handle the result completion message
- * type. By default dispatch layers are assumed to not handle this message type.
- *
- * @author Tom Oinn
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Documented
-public @interface SupportsStreamedResult {
-}
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/dispatch/description/package.html
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/package.html b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/package.html
deleted file mode 100644
index f0629bb..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/description/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<body>
-Annotations and enumerations used to describe dispatch layers, specifically the types of messages they can consume and their reactions to those messages.
-</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/dispatch/events/AbstractDispatchEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/AbstractDispatchEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/AbstractDispatchEvent.java
deleted file mode 100644
index 3f8d011..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/AbstractDispatchEvent.java
+++ /dev/null
@@ -1,45 +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.dispatch.events;
-
-import net.sf.taverna.t2.invocation.Event;
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * Superclass of events within the dispatch stack
- *
- * @author Tom Oinn
- */
-public abstract class AbstractDispatchEvent<EventType extends AbstractDispatchEvent<EventType>>
- extends Event<EventType> {
- protected AbstractDispatchEvent(String owner, int[] index,
- InvocationContext context) {
- super(owner, index, context);
- }
-
- /**
- * Return the DispatchMessageType for this event object
- *
- * @return instance of DispatchMessageType represented by this event
- */
- public abstract DispatchMessageType getMessageType();
-}
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/dispatch/events/DispatchCompletionEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchCompletionEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchCompletionEvent.java
deleted file mode 100644
index 6a57321..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchCompletionEvent.java
+++ /dev/null
@@ -1,70 +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.dispatch.events;
-
-import static net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType.RESULT_COMPLETION;
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.invocation.ProcessIdentifierException;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * Dispatch event containing detailing a (potentially partial) completion of a
- * stream of streaming result events. Layers which do not support streaming by
- * definition can't cope with this event and the dispatch stack checker should
- * prevent them from ever seeing it.
- *
- * @author Tom Oinn
- */
-public class DispatchCompletionEvent extends
- AbstractDispatchEvent<DispatchCompletionEvent> {
- /**
- * Construct a new dispatch result completion event
- *
- * @param owner
- * @param index
- * @param context
- */
- public DispatchCompletionEvent(String owner, int[] index,
- InvocationContext context) {
- super(owner, index, context);
- }
-
- @Override
- public DispatchCompletionEvent popOwningProcess()
- throws ProcessIdentifierException {
- return new DispatchCompletionEvent(popOwner(), index, context);
- }
-
- @Override
- public DispatchCompletionEvent pushOwningProcess(String localProcessName)
- throws ProcessIdentifierException {
- return new DispatchCompletionEvent(pushOwner(localProcessName), index,
- context);
- }
-
- /**
- * DispatchMessageType.RESULT_COMPLETION
- */
- @Override
- public DispatchMessageType getMessageType() {
- return RESULT_COMPLETION;
- }
-}
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/dispatch/events/DispatchErrorEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorEvent.java
deleted file mode 100644
index d048040..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorEvent.java
+++ /dev/null
@@ -1,119 +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.dispatch.events;
-
-import static net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType.ERROR;
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.invocation.ProcessIdentifierException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * Message within the dispatch stack representing a single error report. This
- * may then be handled by upstream layers to retry jobs etc. If it reaches the
- * top of the dispatch stack the behaviour is configurable but by default it
- * will abort that workflow instance, being treated as a catastrophic
- * unhandleable problem.
- *
- * @author Tom Oinn
- */
-public class DispatchErrorEvent extends
- AbstractDispatchEvent<DispatchErrorEvent> {
- private Throwable cause;
- private String message;
- private DispatchErrorType failureType;
- private Activity<?> failedActivity;
-
- /**
- * Create a new error event
- *
- * @param owningProcess
- * @param index
- * @param context
- * @param errorMessage
- * @param t
- */
- public DispatchErrorEvent(String owningProcess, int[] index,
- InvocationContext context, String errorMessage, Throwable t,
- DispatchErrorType failureType, Activity<?> failedActivity) {
- super(owningProcess, index, context);
- this.message = errorMessage;
- this.cause = t;
- this.failureType = failureType;
- this.failedActivity = failedActivity;
- }
-
- /**
- * Return the type of failure, this is used by upstream dispatch layers to
- * determine whether they can reasonably handle the error message
- */
- public DispatchErrorType getFailureType() {
- return this.failureType;
- }
-
- /**
- * Return the Activity instance which failed to produce this error message
- */
- public Activity<?> getFailedActivity() {
- return this.failedActivity;
- }
-
- /**
- * Return the throwable behind this error, or null if there was no exception
- * raised to create it.
- *
- * @return
- */
- public Throwable getCause() {
- return this.cause;
- }
-
- /**
- * Return the textual message representing this error
- *
- * @return
- */
- public String getMessage() {
- return this.message;
- }
-
- @Override
- public DispatchErrorEvent popOwningProcess()
- throws ProcessIdentifierException {
- return new DispatchErrorEvent(popOwner(), index, context, message,
- cause, failureType, failedActivity);
- }
-
- @Override
- public DispatchErrorEvent pushOwningProcess(String localProcessName)
- throws ProcessIdentifierException {
- return new DispatchErrorEvent(pushOwner(localProcessName), index,
- context, message, cause, failureType, failedActivity);
- }
-
- /**
- * @return Always a {@link DispatchMessageType#ERROR}
- */
- @Override
- public DispatchMessageType getMessageType() {
- return ERROR;
- }
-}
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/dispatch/events/DispatchErrorType.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorType.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorType.java
deleted file mode 100644
index 226fd6f..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchErrorType.java
+++ /dev/null
@@ -1,54 +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.dispatch.events;
-
-/**
- * A simple enumeration of possible failure classes, used to determine whether
- * fault handling dispatch layers should attempt to handle a given failure
- * message.
- *
- * @author Tom Oinn
- */
-public enum DispatchErrorType {
- /**
- * Indicates that the failure to invoke the activity was due to invalid
- * input data, in this case there is no point in trying to invoke the
- * activity again with the same data as it will always fail. Fault handling
- * layers such as retry should pass this error type through directly; layers
- * such as failover handlers should handle it as the input data may be
- * applicable to other activities within the processor.
- */
- DATA,
-
- /**
- * Indicates that the failure was related to the invocation of the resource
- * rather than the input data, and that an identical invocation at a later
- * time may succeed.
- */
- INVOCATION,
-
- /**
- * Indicates that the failure was due to missing or incorrect authentication
- * credentials and that retrying the activity invocation without modifying
- * the credential set is pointless.
- */
- AUTHENTICATION;
-}
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/dispatch/events/DispatchJobEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobEvent.java
deleted file mode 100644
index ecf03c8..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobEvent.java
+++ /dev/null
@@ -1,106 +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.dispatch.events;
-
-import static net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType.JOB;
-
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.invocation.ProcessIdentifierException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * An event within the dispatch stack containing a single job's worth of data
- * along with an ordered list of Activity instances.
- *
- * @author Tom Oinn
- */
-public class DispatchJobEvent extends AbstractDispatchEvent<DispatchJobEvent> {
- private Map<String, T2Reference> dataMap;
- private List<? extends Activity<?>> activities;
-
- /**
- * Create a new job event, specifying a complete set of input data and a
- * list of activities which could potentially consume this data
- *
- * @param owningProcess
- * @param index
- * @param context
- * @param data
- * @param activities
- */
- public DispatchJobEvent(String owningProcess, int[] index,
- InvocationContext context, Map<String, T2Reference> data,
- List<? extends Activity<?>> activities) {
- super(owningProcess, index, context);
- this.dataMap = data;
- this.activities = activities;
- }
-
- /**
- * The actual data carried by this dispatch job event object is in the form
- * of a map, where the keys of the map are Strings identifying the named
- * input and the values are Strings containing valid data identifiers within
- * the context of a visible DataManager object (see CloudOne specification
- * for further information on the DataManager system)
- *
- * @return Map of name to data reference for this Job
- */
- public Map<String, T2Reference> getData() {
- return this.dataMap;
- }
-
- /**
- * Returns a list of activity instances which can be applied to the data
- * contained by this job event.
- *
- * @return ordered list of Activity instances
- */
- public List<? extends Activity<?>> getActivities() {
- return this.activities;
- }
-
- @Override
- public DispatchJobEvent popOwningProcess()
- throws ProcessIdentifierException {
- return new DispatchJobEvent(popOwner(), index, context, dataMap,
- activities);
- }
-
- @Override
- public DispatchJobEvent pushOwningProcess(String localProcessName)
- throws ProcessIdentifierException {
- return new DispatchJobEvent(pushOwner(localProcessName), index,
- context, dataMap, activities);
- }
-
- /**
- * @return Always a {@link DispatchMessageType#JOB}.
- */
- @Override
- public DispatchMessageType getMessageType() {
- return JOB;
- }
-}
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/dispatch/events/DispatchJobQueueEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobQueueEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobQueueEvent.java
deleted file mode 100644
index d2d0461..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchJobQueueEvent.java
+++ /dev/null
@@ -1,95 +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.dispatch.events;
-
-import static net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType.JOB_QUEUE;
-
-import java.util.List;
-import java.util.concurrent.BlockingQueue;
-
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.invocation.IterationInternalEvent;
-import net.sf.taverna.t2.invocation.ProcessIdentifierException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * A message within the dispatch stack containing a single reference to the job
- * queue from the iteration system along with an ordered list of Activity
- * instances.
- *
- * @author Tom Oinn
- */
-public class DispatchJobQueueEvent extends
- AbstractDispatchEvent<DispatchJobQueueEvent> {
- private BlockingQueue<IterationInternalEvent<? extends IterationInternalEvent<?>>> queue;
- private List<? extends Activity<?>> activities;
-
- /**
- * Create a new job queue event, specifying the queue of Completion and Job
- * objects and the list of activities which will be used to process the
- * corresponding dispatch events
- *
- * @param owner
- * @param context
- * @param queue
- * @param activities
- */
- public DispatchJobQueueEvent(
- String owner,
- InvocationContext context,
- BlockingQueue<IterationInternalEvent<? extends IterationInternalEvent<?>>> queue,
- List<? extends Activity<?>> activities) {
- super(owner, new int[] {}, context);
- this.queue = queue;
- this.activities = activities;
- }
-
- public BlockingQueue<IterationInternalEvent<? extends IterationInternalEvent<?>>> getQueue() {
- return this.queue;
- }
-
- public List<? extends Activity<?>> getActivities() {
- return this.activities;
- }
-
- @Override
- public DispatchJobQueueEvent popOwningProcess()
- throws ProcessIdentifierException {
- return new DispatchJobQueueEvent(popOwner(), context, queue, activities);
- }
-
- @Override
- public DispatchJobQueueEvent pushOwningProcess(String localProcessName)
- throws ProcessIdentifierException {
- return new DispatchJobQueueEvent(pushOwner(localProcessName), context,
- queue, activities);
- }
-
- /**
- * @return Always a {@link DispatchMessageType#JOB_QUEUE}.
- */
- @Override
- public DispatchMessageType getMessageType() {
- return JOB_QUEUE;
- }
-
-}
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/dispatch/events/DispatchResultEvent.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchResultEvent.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchResultEvent.java
deleted file mode 100644
index 6e2c4b9..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/events/DispatchResultEvent.java
+++ /dev/null
@@ -1,108 +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.dispatch.events;
-
-import static net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType.RESULT;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.invocation.ProcessIdentifierException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.description.DispatchMessageType;
-
-/**
- * Dispatch event containing the results from an invocation. If the event is
- * part of a stream of such events from a single job invocation the streaming
- * flag will be set to true - when set layers that do not support streaming
- * should either disable any related functionality or complain bitterly. They
- * should never see such an event as the type checker will in the future catch
- * such cases before they occur but for now it's something to watch for.
- *
- * @author Tom Oinn
- */
-public class DispatchResultEvent extends
- AbstractDispatchEvent<DispatchResultEvent> {
- private Map<String, T2Reference> dataMap;
- private boolean streaming;
-
- /**
- * Construct a new dispatch result event, specifying the data and whether
- * the result is part of a stream of multiple results events from a single
- * invocation
- *
- * @param owner
- * @param index
- * @param context
- * @param data
- * @param streaming
- */
- public DispatchResultEvent(String owner, int[] index,
- InvocationContext context, Map<String, T2Reference> data,
- boolean streaming) {
- super(owner, index, context);
- this.dataMap = data;
- this.streaming = streaming;
- }
-
- /**
- * If this result is part of a stream, that is to say multiple result events
- * from a single job event, then return true otherwise return false.
- *
- * @return whether this is part of a streamed result set
- */
- public boolean isStreamingEvent() {
- return this.streaming;
- }
-
- /**
- * The result contains a map of named EntityIdentifier instances
- * corresponding to the result data.
- *
- * @return the result data for this event
- */
- public Map<String, T2Reference> getData() {
- return this.dataMap;
- }
-
- @Override
- public DispatchResultEvent popOwningProcess()
- throws ProcessIdentifierException {
- return new DispatchResultEvent(popOwner(), index, context, dataMap,
- streaming);
- }
-
- @Override
- public DispatchResultEvent pushOwningProcess(String localProcessName)
- throws ProcessIdentifierException {
- return new DispatchResultEvent(pushOwner(localProcessName), index,
- context, dataMap, streaming);
- }
-
- /**
- * @return Always a {@link DispatchMessageType#RESULT}.
- */
- @Override
- public DispatchMessageType getMessageType() {
- return RESULT;
- }
-
-}
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/dispatch/package.html
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/package.html b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/package.html
deleted file mode 100644
index d4dc0d4..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/dispatch/package.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<body>
-Definition and support classes for the Dispatch Stack. Each processor in
-a workflow contains a stack of dispatch layers with each layer being
-responsible for a particular aspect of the invocation. At a high level
-the stack consumes a queue of events from the iteration system along
-with an initial set of service proxy objects and is repsonsible for
-taking jobs from the queue and matching them to appropriate invocation
-targets.
-<p>Taverna 1 has in effect a single hardcoded dispatch stack for
-each processor with little control over it aside from a few basic
-properties. To replicate the same behaviour within Taverna 2 there are
-dispatch layers for parallelism, retry, failover and invocation. As the
-dispatch layer is an extension point we or others can provide other
-aspects such as recursive invocation and dynamic (runtime) binding from
-abstract service proxies to concrete instances. The last is possible
-because the service list is passed through the stack along with the
-queue or individual job events and can be rewritten or filtered by
-dispatch layer implementations.
-</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/iteration/AbstractIterationStrategyNode.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/AbstractIterationStrategyNode.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/AbstractIterationStrategyNode.java
deleted file mode 100644
index 22eaf69..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/AbstractIterationStrategyNode.java
+++ /dev/null
@@ -1,225 +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.iteration;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Vector;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.MutableTreeNode;
-import javax.swing.tree.TreeNode;
-
-import net.sf.taverna.t2.invocation.Completion;
-import net.sf.taverna.t2.workflowmodel.WorkflowStructureException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * Abstract superclass for implementations of IterationStrategyNode, adds logic
- * to connect nodes together and convenience methods to push jobs and completion
- * events up to the parent node.
- *
- * @author Tom Oinn
- * @author Stian Soiland-Reyes
- */
-@SuppressWarnings("serial")
-public abstract class AbstractIterationStrategyNode extends
- DefaultMutableTreeNode implements IterationStrategyNode {
- private List<IterationStrategyNode> children = new ArrayList<>();
- private IterationStrategyNode parent = null;
-
- /**
- * Implement TreeNode
- */
- @Override
- public final synchronized Enumeration<IterationStrategyNode> children() {
- return new Vector<>(children).elements(); // TODO arraylist?
- }
-
- /**
- * Clear the child list and parent of this node
- */
- @Override
- public final synchronized void clear() {
- for (IterationStrategyNode child : children)
- child.setParent(null);
- children.clear();
- this.parent = null;
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public boolean getAllowsChildren() {
- return true;
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public final synchronized IterationStrategyNode getChildAt(int position) {
- return children.get(position);
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public final int getChildCount() {
- return children.size();
- }
-
- /**
- * Implements IterationStrategyNode
- */
- @Override
- public final synchronized List<IterationStrategyNode> getChildren() {
- return new ArrayList<>(children);
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public final synchronized int getIndex(TreeNode node) {
- return children.indexOf(node);
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public final IterationStrategyNode getParent() {
- return parent;
- }
-
- @Override
- public synchronized void insert(MutableTreeNode child) {
- insert(child, getChildCount());
- }
-
- @Override
- public synchronized void insert(MutableTreeNode child, int index) {
- if (!getAllowsChildren())
- throw new IllegalStateException("Node does not allow children");
- if (!(child instanceof IterationStrategyNode))
- throw new IllegalArgumentException(
- "Child not an instance of IterationStrategyNode: " + child);
- if (child == this)
- throw new IllegalArgumentException("Can't be it's own parent");
-
- // Check if it is already there (in case we'll just move it)
- int alreadyExistsIndex = children.indexOf(child);
-
- children.add(index, (IterationStrategyNode) child);
-
- if (alreadyExistsIndex > -1) {
- // Remove it from the old position
- if (index < alreadyExistsIndex
- && alreadyExistsIndex + 1 < children.size())
- alreadyExistsIndex++;
- children.remove(alreadyExistsIndex);
- }
- if (child.getParent() != this)
- child.setParent(this);
- }
-
- /**
- * Implement TreeNode
- */
- @Override
- public boolean isLeaf() {
- return children.isEmpty();
- }
-
- @Override
- public void remove(int index) {
- if (!getAllowsChildren())
- throw new IllegalStateException("Node does not allow children");
- children.remove(index);
- }
-
- @Override
- public synchronized void remove(MutableTreeNode node) {
- if (!getAllowsChildren())
- throw new IllegalStateException("Node does not allow children");
- children.remove(node);
- if (node.getParent() == this)
- node.setParent(null);
- }
-
- @Override
- public void removeFromParent() {
- if (parent != null) {
- IterationStrategyNode oldParent = parent;
- parent = null;
- oldParent.remove(this);
- }
- }
-
- /**
- * Implements IterationStrategyNode
- */
- @Override
- public final synchronized void setParent(MutableTreeNode newParent) {
- if (newParent != null && !(newParent instanceof IterationStrategyNode))
- throw new IllegalArgumentException(
- "Parent not a IterationStrategyNode instance: " + newParent);
- if (newParent != null && !newParent.getAllowsChildren())
- throw new IllegalStateException(
- "New parent does not allow children");
- if (newParent == this)
- throw new IllegalArgumentException("Can't be it's own parent");
- removeFromParent();
- parent = (IterationStrategyNode) newParent;
- if (parent != null && !parent.getChildren().contains(this))
- parent.insert(this);
- }
-
- @Override
- public void setUserObject(Object object) {
- throw new UnsupportedOperationException("Can't set user object");
- }
-
- /**
- * Push the specified completion event to the parent node
- */
- protected final void pushCompletion(Completion completion) {
- if (parent != null)
- parent.receiveCompletion(parent.getIndex(this), completion);
- }
-
- /**
- * Push the specified job up to the parent node in the iteration strategy.
- */
- protected final void pushJob(Job job) {
- if (parent != null) {
- int index = parent.getIndex(this);
- if (index < 0)
- throw new WorkflowStructureException(
- "Parent doesn't have this node in its child list!");
- parent.receiveJob(parent.getIndex(this), job);
- }
- }
-}
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/iteration/CompletionHandlingAbstractIterationStrategyNode.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CompletionHandlingAbstractIterationStrategyNode.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CompletionHandlingAbstractIterationStrategyNode.java
deleted file mode 100644
index 117afe2..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CompletionHandlingAbstractIterationStrategyNode.java
+++ /dev/null
@@ -1,136 +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.iteration;
-
-import static java.util.Collections.synchronizedMap;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.Completion;
-import net.sf.taverna.t2.invocation.InvocationContext;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * A superclass for all iteration strategy nodes which are required to propagate
- * final completion events formed from multiple inputs. This is all the 'real'
- * iteration strategy nodes (but not the internal ones within the iteration
- * strategy object itself or the named input port nodes). All events are passed
- * to delegates in subclasses after which the completion state is checked, the
- * logic is as follows :
- * <p>
- * If the event received is final, that is to say it has an index of zero, and
- * final events have been received on all other inputs and at least one final
- * completion has been received then emit a final completion, otherwise do
- * nothing.
- * <p>
- * This means that subclasses should not emit final completion events themselves
- * - these will be handled by this superclass and emiting them in the subclass
- * will lead to duplicatation.
- *
- * @author Tom Oinn
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public abstract class CompletionHandlingAbstractIterationStrategyNode extends
- AbstractIterationStrategyNode {
- /**
- * Container class for the state of completion for a given process
- * identifier
- *
- * @author Tom Oinn
- */
- protected final class CompletionState {
- protected CompletionState(int indexLength) {
- inputComplete = new boolean[indexLength];
- for (int i = 0; i < indexLength; i++)
- inputComplete[i] = false;
- }
-
- protected boolean[] inputComplete;
- protected boolean receivedCompletion = false;
-
- /**
- * Return true iff all inputs have completed
- */
- protected boolean isComplete() {
- for (boolean inputCompletion : inputComplete)
- if (!inputCompletion)
- return false;
- return true;
- }
- }
-
- private Map<String, CompletionState> ownerToCompletion = synchronizedMap(new HashMap<String, CompletionState>());
-
- @Override
- public final void receiveCompletion(int inputIndex, Completion completion) {
- innerReceiveCompletion(inputIndex, completion);
- if (completion.getIndex().length == 0)
- pingCompletionState(inputIndex, completion.getOwningProcess(),
- true, completion.getContext());
- }
-
- @Override
- public final void receiveJob(int inputIndex, Job newJob) {
- innerReceiveJob(inputIndex, newJob);
- if (newJob.getIndex().length == 0)
- pingCompletionState(inputIndex, newJob.getOwningProcess(), false,
- newJob.getContext());
- }
-
- /**
- * Called after a final completion event has been emited for a given owning
- * process, should be used by subclasses to do any tidying required,
- * removing state etc.
- *
- * @param owningProcess
- */
- protected abstract void cleanUp(String owningProcess);
-
- private void pingCompletionState(int inputIndex, String owningProcess,
- boolean isCompletion, InvocationContext context) {
- CompletionState cs = getCompletionState(owningProcess);
- cs.inputComplete[inputIndex] = true;
- if (isCompletion)
- cs.receivedCompletion = true;
- if (cs.isComplete()) {
- cleanUp(owningProcess);
- ownerToCompletion.remove(owningProcess);
- if (cs.receivedCompletion)
- pushCompletion(new Completion(owningProcess, new int[0],
- context));
- }
- }
-
- protected CompletionState getCompletionState(String owningProcess) {
- if (ownerToCompletion.containsKey(owningProcess))
- return ownerToCompletion.get(owningProcess);
- CompletionState cs = new CompletionState(getChildCount());
- ownerToCompletion.put(owningProcess, cs);
- return cs;
- }
-
- protected abstract void innerReceiveCompletion(int inputIndex,
- Completion completion);
-
- protected abstract void innerReceiveJob(int inputIndex, Job newJob);
-}
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/iteration/CrossProduct.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CrossProduct.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CrossProduct.java
deleted file mode 100644
index 4bf606c..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/CrossProduct.java
+++ /dev/null
@@ -1,164 +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.iteration;
-
-import static java.util.Collections.synchronizedMap;
-
-import java.util.ArrayList;
-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.invocation.Completion;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * A cross product node combines its inputs in an 'all against all' manner. When
- * a new job is received on index 'n' a set of jobs is emited corresponding to
- * the combination of the new job with all other jobs on input indices other
- * than 'n'.
- *
- * @author Tom Oinn
- * @author David Withers
- */
-@SuppressWarnings("serial")
-public class CrossProduct extends
- CompletionHandlingAbstractIterationStrategyNode {
- private Map<String, List<Set<Job>>> ownerToCache = synchronizedMap(new HashMap<String, List<Set<Job>>>());
-
- /**
- * Receive a job, emit jobs corresponding to the orthogonal join of the new
- * job with all jobs in all other input lists.
- */
- @Override
- public synchronized void innerReceiveJob(int inputIndex, Job newJob) {
- if (getChildCount() == 1) {
- /*
- * there's only one input and there's nothing to do here so push the
- * job through
- */
- pushJob(newJob);
- return;
- }
- if (!ownerToCache.containsKey(newJob.getOwningProcess())) {
- List<Set<Job>> perInputCache = new ArrayList<>();
- for (int i = 0; i < getChildCount(); i++)
- perInputCache.add(new HashSet<Job>());
- ownerToCache.put(newJob.getOwningProcess(), perInputCache);
- }
- // Store the new job
- List<Set<Job>> perInputCache = ownerToCache.get(newJob
- .getOwningProcess());
- perInputCache.get(inputIndex).add(newJob);
- /*
- * Find all combinations of the new job with all permutations of jobs in
- * the other caches. We could make this a lot easier by restricting it
- * to a single pair of inputs, this might be a more sane way to go in
- * the future...
- */
- Set<Job> workingSet = perInputCache.get(0);
- if (inputIndex == 0) {
- workingSet = new HashSet<>();
- workingSet.add(newJob);
- }
- for (int i = 1; i < getChildCount(); i++) {
- Set<Job> thisSet = perInputCache.get(i);
- if (i == inputIndex) {
- /*
- * This is the cache for the new job, so we rewrite the set to a
- * single element one containing only the newly submitted job
- */
- thisSet = new HashSet<>();
- thisSet.add(newJob);
- }
- workingSet = merge(workingSet, thisSet);
- }
- for (Job outputJob : workingSet)
- pushJob(outputJob);
- if (canClearCache(inputIndex, newJob.getOwningProcess()))
- /*
- * If we've seen completions for all the other indexes we don't need
- * to cache jobs for this index
- */
- perInputCache.get(inputIndex).clear();
- }
-
- private Set<Job> merge(Set<Job> set1, Set<Job> set2) {
- Set<Job> newSet = new HashSet<>();
- for (Job job1 : set1)
- for (Job job2 : set2) {
- int[] newIndex = new int[job1.getIndex().length
- + job2.getIndex().length];
- int j = 0;
- for (int i = 0; i < job1.getIndex().length; i++)
- newIndex[j++] = job1.getIndex()[i];
- for (int i = 0; i < job2.getIndex().length; i++)
- newIndex[j++] = job2.getIndex()[i];
- Map<String, T2Reference> newDataMap = new HashMap<>();
- newDataMap.putAll(job1.getData());
- newDataMap.putAll(job2.getData());
- newSet.add(new Job(job1.getOwningProcess(), newIndex,
- newDataMap, job1.getContext()));
- }
- return newSet;
- }
-
- @Override
- public void innerReceiveCompletion(int inputIndex, Completion completion) {
- // Do nothing, let the superclass handle final completion events
- }
-
- @Override
- protected final void cleanUp(String owningProcess) {
- ownerToCache.remove(owningProcess);
- }
-
- /**
- * Returns true iff completions have been received for all other inputs.
- *
- * @param inputIndex
- * @param owningProcess
- * @return true iff completions have been received for all other inputs
- */
- private boolean canClearCache(int inputIndex, String owningProcess) {
- boolean[] completionState = getCompletionState(owningProcess).inputComplete;
- for (int i = 0; i < completionState.length; i++)
- if (i != inputIndex && !completionState[i])
- return false;
- return true;
- }
-
- @Override
- public int getIterationDepth(Map<String, Integer> inputDepths)
- throws IterationTypeMismatchException {
- if (isLeaf())
- // No children!
- throw new IterationTypeMismatchException(
- "Cross product with no children");
- int temp = 0;
- for (IterationStrategyNode child : getChildren())
- temp += child.getIterationDepth(inputDepths);
- return temp;
- }
-}
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/iteration/DotProduct.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/DotProduct.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/DotProduct.java
deleted file mode 100644
index 057c017..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/DotProduct.java
+++ /dev/null
@@ -1,123 +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.iteration;
-
-import static java.util.Collections.synchronizedMap;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.Completion;
-import net.sf.taverna.t2.invocation.TreeCache;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * The dot product matches jobs by index array, when a job is received a job is
- * emited if and only if the index array of the new job is matched exactly by
- * index arrays of one job in each other input index.
- *
- * @author Tom Oinn
- */
-@SuppressWarnings("serial")
-public class DotProduct extends CompletionHandlingAbstractIterationStrategyNode {
- Map<String, TreeCache[]> ownerToCache = synchronizedMap(new HashMap<String, TreeCache[]>());
-
- @Override
- public synchronized void innerReceiveJob(int inputIndex, Job newJob) {
- if (getChildCount() == 1) {
- /*
- * if there's only one input there's nothing to do here so push the
- * job through
- */
- pushJob(newJob);
- return;
- }
- String owningProcess = newJob.getOwningProcess();
- if (!ownerToCache.containsKey(owningProcess)) {
- TreeCache[] caches = new TreeCache[getChildCount()];
- for (int i = 0; i < getChildCount(); i++)
- caches[i] = new TreeCache();
- ownerToCache.put(owningProcess, caches);
- }
- /*
- * Firstly store the new job in the cache, this isn't optimal but is
- * safe for now - we can make this more efficient by doing the
- * comparison first and only storing the job if required
- */
- TreeCache[] caches = ownerToCache.get(owningProcess);
- caches[inputIndex].insertJob(newJob);
- int[] indexArray = newJob.getIndex();
- boolean foundMatch = true;
- Map<String, T2Reference> newDataMap = new HashMap<>();
- for (TreeCache cache : caches)
- if (cache.containsLocation(indexArray))
- newDataMap.putAll(cache.get(indexArray).getData());
- else
- foundMatch = false;
- if (foundMatch) {
- Job j = new Job(owningProcess, indexArray, newDataMap, newJob
- .getContext());
- /*
- * Remove all copies of the job with this index from the cache,
- * we'll never use it again and it pays to be tidy
- */
- for (TreeCache cache : caches)
- cache.cut(indexArray);
- pushJob(j);
- }
- }
-
- /**
- * Delegate to the superclass to propogate completion events if and only if
- * the completion event is a final one. We can potentially implement finer
- * grained logic here in the future.
- */
- @Override
- public void innerReceiveCompletion(int inputIndex,
- Completion completion) {
- /*
- * Do nothing, let the superclass handle final completion events, ignore
- * others for now (although in theory we should be able to do better
- * than this really)
- */
- }
-
- @Override
- protected void cleanUp(String owningProcess) {
- ownerToCache.remove(owningProcess);
- }
-
- @Override
- public int getIterationDepth(Map<String, Integer> inputDepths)
- throws IterationTypeMismatchException {
- // Check that all input depths are the same
- if (isLeaf())
- // No children!
- throw new IterationTypeMismatchException("Dot product with no children");
- int depth = getChildAt(0).getIterationDepth(inputDepths);
- for (IterationStrategyNode childNode : getChildren())
- if (childNode.getIterationDepth(inputDepths) != depth)
- throw new IterationTypeMismatchException(
- "Mismatched input types for dot product node");
- return depth;
- }
-}
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/iteration/IterationStrategy.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategy.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategy.java
deleted file mode 100644
index 3de1846..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategy.java
+++ /dev/null
@@ -1,54 +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.iteration;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.workflowmodel.WorkflowItem;
-
-public interface IterationStrategy extends WorkflowItem {
- /**
- * The iteration strategy results in a set of job objects with a particular
- * job index. This method returns the length of that index array when the
- * specified input types are used. Input types are defined in terms of name
- * and integer pairs where the name is the name of a NamedInputPortNode in
- * the iteration strategy and the integer is the depth of the input data
- * collection (i.e. item depth + index array length for that item which
- * should be a constant).
- *
- * @param inputDepths
- * map of port names to input collection depth
- * @return the length of the index array which will be generated for each
- * resultant job object.
- */
- int getIterationDepth(Map<String, Integer> inputDepths)
- throws IterationTypeMismatchException;
-
- /**
- * Return a map of port name -> desired cardinality for this iteration
- * strategy
- */
- Map<String, Integer> getDesiredCardinalities();
-
- TerminalNode getTerminalNode();
-
- void normalize();
-}
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/iteration/IterationStrategyNode.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyNode.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyNode.java
deleted file mode 100644
index e2b0385..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyNode.java
+++ /dev/null
@@ -1,121 +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.iteration;
-
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.tree.MutableTreeNode;
-
-import net.sf.taverna.t2.invocation.Completion;
-import net.sf.taverna.t2.workflowmodel.WorkflowItem;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * Interface for nodes within an iteration strategy layer
- *
- * @author Tom Oinn
- * @author Stian Soiland-Reyes
- */
-public interface IterationStrategyNode extends MutableTreeNode, WorkflowItem {
- /**
- * Specialised return type of {@link TreeNode#children()}
- */
- @Override
- Enumeration<IterationStrategyNode> children();
-
- /**
- * Remove all children nodes and set the parent to <code>null</code>.
- */
- void clear();
-
- /**
- * Specialised return type of {@link TreeNode#getChildAt(int)}
- */
- @Override
- IterationStrategyNode getChildAt(int childIndex);
-
- /**
- * Return a copy of the list of children nodes, or an empty list if
- * {@link #getAllowsChildren()} is <code>false</code>.
- *
- * @return List of children nodes.
- */
- List<IterationStrategyNode> getChildren();
-
- /**
- * In the context of an enclosing iteration strategy each node should be
- * able to return the iteration depth, i.e. the length of the index array,
- * for items it will emit. In all cases other than leaf nodes this is
- * defined in terms of the depth of child nodes. The input cardinalities for
- * named ports are pushed through each node so that the terminal nodes
- * corresponding to input port collators can evaluate this expression -
- * pushing it through the entire evaluation means we don't have to keep
- * state anywhere in the leaf nodes (standard dependency injection)
- * <p>
- * Nodes can choose to throw the IterationTypeMismatchException if their
- * inputs aren't compatible with the operational semantics of the node such
- * as in the case of a dot product node with inputs with different depths.
- *
- * @param inputDepths
- * @return
- * @throws IterationTypeMismatchException
- */
- int getIterationDepth(Map<String, Integer> inputDepths)
- throws IterationTypeMismatchException;
-
- /**
- * Specialised return type of {@link TreeNode#getParent()}
- */
- @Override
- IterationStrategyNode getParent();
-
- /**
- * Insert a new child node. The new child will be added in the end of the
- * list, so this would be equivalent to insert(child, getChildCount()).
- *
- * @param child
- * Child node to add
- */
- void insert(MutableTreeNode child);
-
- /**
- * Nodes can also receive completion events, the simplest being one
- * declaring that no further input is expected on the given input, or
- * partial completion events which are interpreted as 'no event with an
- * index array prefixed by the specified completion index array will be
- * received on the specified index'
- */
- void receiveCompletion(int inputIndex, Completion completion);
-
- /**
- * The nodes within the iteration strategy, a tree structure, are event
- * based. When a new fragment of a job from upstream in the tree (towards
- * leaves) arrives it is handled by this method. Implementations will
- * probably have to handle state management, i.e. what jobs have we already
- * seen, and emit appropriate jobs to downstream nodes.
- *
- * @param inputIndex
- * @param newJob
- */
- void receiveJob(int inputIndex, Job newJob);
-}
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/iteration/IterationStrategyStack.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyStack.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyStack.java
deleted file mode 100644
index ee7f099..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationStrategyStack.java
+++ /dev/null
@@ -1,65 +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.iteration;
-
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.workflowmodel.WorkflowItem;
-
-/**
- * Stack of iteration strategy containers. The stacking behaviour allows for
- * staged implicit iteration where intermediate strategies are used to drill
- * into the collection structure to a certain depth with a final one used to
- * render job objects containing data at the correct depth for the process. This
- * was achieved in Taverna 1 through the combination of nested workflows and
- * 'forcing' processors which could echo and therefore force input types of the
- * workflow to a particular cardinality.
- *
- * @author Tom Oinn
- */
-public interface IterationStrategyStack extends WorkflowItem {
- /**
- * The iteration strategy stack consists of an ordered list of iteration
- * strategies.
- *
- * @return An unmodifiable copy of the list containing the iteration
- * strategy objects in order, with the strategy at position 0 in the
- * list being the one to which data is fed first.
- */
- List<? extends IterationStrategy> getStrategies();
-
- /**
- * Calculate the depth of the iteration strategy stack as a whole given a
- * set of named inputs and their cardinalities. This depth is the length of
- * the index array which will be added to any output data, so the resultant
- * output of each port in the owning processor is the depth of that port as
- * defined by the activity plus this value.
- *
- * @param inputDepths
- * @return
- * @throws IterationTypeMismatchException
- * @throws MissingIterationInputException
- */
- int getIterationDepth(Map<String, Integer> inputDepths)
- throws IterationTypeMismatchException,
- MissingIterationInputException;
-}
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/iteration/IterationTypeMismatchException.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationTypeMismatchException.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationTypeMismatchException.java
deleted file mode 100644
index 9566039..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/IterationTypeMismatchException.java
+++ /dev/null
@@ -1,49 +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.iteration;
-
-/**
- * Thrown during the typecheck phase when an iteration strategy is configured
- * such that at runtime it would fail. This is generally because a dot product
- * node has been specified where the children of that node will have different
- * cardinalities (in this case the dot product isn't defined)
- *
- * @author Tom Oinn
- */
-public class IterationTypeMismatchException extends Exception {
- private static final long serialVersionUID = -3034020607723767223L;
-
- public IterationTypeMismatchException() {
- super();
- }
-
- public IterationTypeMismatchException(String arg0) {
- super(arg0);
- }
-
- public IterationTypeMismatchException(Throwable arg0) {
- super(arg0);
- }
-
- public IterationTypeMismatchException(String arg0, Throwable arg1) {
- super(arg0, arg1);
- }
-}
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/iteration/MissingIterationInputException.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/MissingIterationInputException.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/MissingIterationInputException.java
deleted file mode 100644
index 8df9328..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/MissingIterationInputException.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.iteration;
-
-/**
- * Thrown when an attempt is made to evaluate the type of the iteration strategy
- * but one or more input ports aren't defined in the input array of types.
- * Shouldn't normally happen as this will be handled by the type checker
- * detecting that there aren't enough inputs to check but we indicate it for
- * extra robustness.
- *
- * @author Tom Oinn
- */
-public class MissingIterationInputException extends Exception {
- private static final long serialVersionUID = -1615949178096496592L;
-
- public MissingIterationInputException() {
- super();
- }
-
- public MissingIterationInputException(String arg0) {
- super(arg0);
- }
-
- public MissingIterationInputException(Throwable arg0) {
- super(arg0);
- }
-
- public MissingIterationInputException(String arg0, Throwable arg1) {
- super(arg0, arg1);
- }
-}
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/iteration/NamedInputPortNode.java
----------------------------------------------------------------------
diff --git a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/NamedInputPortNode.java b/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/NamedInputPortNode.java
deleted file mode 100644
index bd76a27..0000000
--- a/taverna-workflowmodel-api/src/main/java/net/sf/taverna/t2/workflowmodel/processor/iteration/NamedInputPortNode.java
+++ /dev/null
@@ -1,116 +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.iteration;
-
-import java.util.Map;
-
-import net.sf.taverna.t2.invocation.Completion;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Job;
-
-/**
- * Acts as the input to a stage within the iteration strategy, passes all jobs
- * straight through. NamedInputPortNode objects are, as the name suggests,
- * named. These names correspond to the names of abstract input ports on the
- * Processor object to which the iteration strategy belongs.
- *
- * @author Tom Oinn
- */
-@SuppressWarnings("serial")
-public class NamedInputPortNode extends AbstractIterationStrategyNode {
- private String portName;
- private int desiredCardinality;
-
- public NamedInputPortNode(String name, int cardinality) {
- super();
- this.portName = name;
- this.desiredCardinality = cardinality;
- }
-
- /**
- * If this node receives a job it will always be pushed without modification
- * up to the parent
- */
- @Override
- public void receiveJob(int inputIndex, Job newJob) {
- pushJob(newJob);
- }
-
- /**
- * Completion events are passed straight through the same as jobs
- */
- @Override
- public void receiveCompletion(int inputIndex, Completion completion) {
- pushCompletion(completion);
- }
-
- /**
- * Each node maps to a single named input port within the processor
- */
- public String getPortName() {
- return this.portName;
- }
-
- /**
- * Each node defines the level of collection depth for that input port
- */
- public int getCardinality() {
- return this.desiredCardinality;
- }
-
- /**
- * These nodes correspond to inputs to the iteration strategy and are always
- * leaf nodes as a result.
- *
- * @override
- */
- @Override
- public boolean isLeaf() {
- return true;
- }
-
- /**
- * These nodes can never have children
- *
- * @override
- */
- @Override
- public boolean getAllowsChildren() {
- return false;
- }
-
- /**
- * Iteration depth is the difference between the supplied input depth and
- * the desired one. If the desired depth is greater then wrapping will
- * happen and the iteration depth will be zero (rather than a negative!)
- */
- @Override
- public int getIterationDepth(Map<String, Integer> inputDepths) {
- int myInputDepth = inputDepths.get(portName);
- int depthMismatch = myInputDepth - desiredCardinality;
- return (depthMismatch > 0 ? depthMismatch : 0);
- }
-
- @Override
- public String toString() {
- return getClass().getSimpleName() + " " + getPortName() + "("
- + getCardinality() + ")";
- }
-}