You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 21:40:05 UTC
[14/51] [partial] incubator-taverna-language git commit: temporarily
empty repository
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
deleted file mode 100644
index aaadeab..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.api.core.Workflow.WORKFLOW_ROOT;
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DataflowConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class DataflowActivityParser extends AbstractActivityParser {
- private URITools uriTools = new URITools();
- private static URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/dataflow-activity/");
- private static String activityClassName = "net.sf.taverna.t2.activities.dataflow.DataflowActivity";
- public static URI nestedUri = URI
- .create("http://ns.taverna.org.uk/2010/activity/nested-workflow");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return nestedUri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState) throws ReaderException {
- DataflowConfig dataflowConfig = unmarshallConfig(t2FlowParser,
- configBean, "dataflow", DataflowConfig.class);
- Configuration configuration = new Configuration();
- configuration.setType(nestedUri.resolve("#Config"));
-
- String wfId = dataflowConfig.getRef();
- URI wfUri = WORKFLOW_ROOT.resolve(wfId + "/");
- Workflow wf = (Workflow) getUriTools().resolveUri(wfUri, parserState.getCurrentWorkflowBundle());
- if (wf == null)
- throw new ReaderException("Can't find nested workflow with id " + wfId);
- ObjectNode json = configuration.getJsonAsObjectNode();
- json.put("nestedWorkflow", wf.getName());
- return configuration;
- }
-
- public void setUriTools(URITools uriTools) {
- this.uriTools = uriTools;
- }
-
- public URITools getUriTools() {
- return uriTools;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
deleted file mode 100644
index 73a3a22..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.InteractionConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class InteractionActivityParser extends AbstractActivityParser {
- private static final URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/interaction-activity/");
- private static final String activityClassName = "net.sf.taverna.t2.activities.interaction.InteractionActivity";
- public static final URI ACTIVITY_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/interaction");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return ACTIVITY_URI;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- InteractionConfig interactionConfig = unmarshallConfig(t2FlowParser,
- configBean, "xstream", InteractionConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
-
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
- String presentationOrigin = interactionConfig.getPresentationOrigin();
- json.put("presentationOrigin", presentationOrigin);
-
- String interactionActivityType = interactionConfig.getInteractionActivityType();
- json.put("interactionActivityType", interactionActivityType);
-
- boolean progressNotification = interactionConfig.getProgressNotification();
- json.put("progressNotification", progressNotification);
-
- Activity activity = parserState.getCurrentActivity();
- activity.getInputPorts().clear();
- activity.getOutputPorts().clear();
- for (ActivityPortDefinitionBean portBean : interactionConfig
- .getInputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
- parseAndAddInputPortDefinition(portBean, configuration, activity);
- for (ActivityPortDefinitionBean portBean : interactionConfig
- .getOutputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
- parseAndAddOutputPortDefinition(portBean, configuration, activity);
- return configuration;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
deleted file mode 100644
index e9808eb..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellConnection;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellSymanticType;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellSymanticType.RShellPortSymanticTypeBean;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class RshellActivityParser extends AbstractActivityParser {
- /*
- * A lovely artifact of xstream 'efficiency' - Xpath backpointers to
- * previous elements. luckily we are here restricted within this specific
- * config bean
- *
- * Example:
- * ../../net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean
- * [3]/symanticType
- * ../../../inputSymanticTypes/net.sf.taverna.t2.activities.
- * rshell.RShellPortSymanticTypeBean[2]/symanticType
- */
- Pattern strangeXpath = Pattern
- .compile("[./]+/(inputSymanticTypes)?.*TypeBean(\\[(\\d+)\\])?/symanticType$");
-
- private static final URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/rshell-activity/");
- private static final String activityClassName = "net.sf.taverna.t2.activities.rshell.RshellActivity";
- public static final URI ACTIVITY_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/rshell");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return ACTIVITY_URI;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState) throws ReaderException {
- RShellConfig rshellConfig = unmarshallConfig(t2FlowParser, configBean,
- "xstream", RShellConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
-
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
- // Basic properties
- String script = rshellConfig.getScript();
- json.put("script", script);
-// if (rshellConfig.getRVersion() != null) {
-// json.put("rVersion", rshellConfig.getRVersion());
-// }
-
- // Connection
- ObjectNode connection = json.objectNode();
- json.put("connection", connection);
- RShellConnection conn = rshellConfig.getConnectionSettings();
- connection.put("hostname", conn.getHost());
- json.put("port", conn.getPort());
-
- // ignored - Taverna 2.3+ uses credential manager
- // connection.put("username", conn.getUsername());
- // connection.put("password", conn.getPassword());
-
- connection.put("keepSessionAlive", conn.isKeepSessionAlive());
-
- // ignoooooored - we won't support the legacy ones anymore
- // if (rshellConfig.getConnectionSettings().isNewRVersion() == null || !
- // rshellConfig.getConnectionSettings().isNewRVersion()) {
- // connection.put("legacy", true);
- // }
-
- // Activity ports
- Activity activity = parserState.getCurrentActivity();
- activity.getInputPorts().clear();
- activity.getOutputPorts().clear();
-
- for (ActivityPortDefinitionBean portBean : rshellConfig
- .getInputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
- parseAndAddInputPortDefinition(portBean, configuration, activity);
- for (ActivityPortDefinitionBean portBean : rshellConfig
- .getOutputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
- parseAndAddOutputPortDefinition(portBean, configuration, activity);
-
- RShellSymanticType inputSymanticTypes = rshellConfig
- .getInputSymanticTypes();
- List<String> foundInputTypes = new ArrayList<>();
-
- ArrayNode inputPorts = json.arrayNode();
- json.put("inputTypes", inputPorts);
- for (RShellPortSymanticTypeBean symanticType : inputSymanticTypes
- .getNetSfTavernaT2ActivitiesRshellRShellPortSymanticTypeBean()) {
- ObjectNode port = json.objectNode();
- port.put("port", symanticType.getName());
- String dataType = symanticType.getSymanticType().getValue();
- String reference = symanticType.getSymanticType().getReference();
- if (reference != null) {
- Matcher matcher = strangeXpath.matcher(reference);
- if (matcher == null || !matcher.matches())
- throw new ReaderException(
- "Unhandled xstream xpath expression: " + reference);
- String position = matcher.group(3);
- if (position == null)
- position = "1";
- dataType = foundInputTypes.get(Integer.parseInt(position) - 1);
- }
-
- foundInputTypes.add(dataType);
- // Even if it's null - so the index is correct
-
- if (dataType != null)
- port.put("dataType", dataType);
- }
- /*
- * FIXME: Avoid this repetition. Would require a fair bit of parser
- * state...
- */
- RShellSymanticType outputSymanticTypes = rshellConfig
- .getOutputSymanticTypes();
- List<String> foundOutputTypes = new ArrayList<>();
- ArrayNode outputPorts = json.arrayNode();
- json.put("outputTypes", outputPorts);
-
- for (RShellPortSymanticTypeBean symanticType : outputSymanticTypes
- .getNetSfTavernaT2ActivitiesRshellRShellPortSymanticTypeBean()) {
- ObjectNode port = json.objectNode();
- port.put("port", symanticType.getName());
-
- String dataType = symanticType.getSymanticType().getValue();
- String reference = symanticType.getSymanticType().getReference();
- if (reference != null) {
- /*
- * A lovely artifact of xstream 'efficiency' - Xpath
- * backpointers to previous elements. luckily we are here
- * restricted within this specific config bean.
- *
- * Example:
- * ../../net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[3]/symanticType
- * ../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[2]/symanticType
- */
-
- Matcher matcher = strangeXpath.matcher(reference);
- if (matcher == null || !matcher.matches())
- throw new ReaderException(
- "Unhandled xstream xpath expression: " + reference);
-
- boolean isInputSymantic = matcher.group(1) != null;
- String position = matcher.group(3);
- if (position == null)
- position = "1";
- if (isInputSymantic)
- dataType = foundInputTypes
- .get(Integer.parseInt(position) - 1);
- else
- dataType = foundOutputTypes
- .get(Integer.parseInt(position) - 1);
- }
-
- foundOutputTypes.add(dataType);
- // Even if it's null - so the index is correct
-
- if (dataType != null)
- port.put("dataType", dataType);
- }
- return configuration;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
deleted file mode 100644
index b5ce171..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SoaplabConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class SoaplabActivityParser extends AbstractActivityParser {
- private static final URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/soaplab-activity/");
- private static final String activityClassName = "net.sf.taverna.t2.activities.soaplab.SoaplabActivity";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/activity/soaplab");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- SoaplabConfig soaplabConfig = unmarshallConfig(t2FlowParser,
- configBean, "xstream", SoaplabConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
-
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(scufl2Uri.resolve("#Config"));
-
- String endpoint = soaplabConfig.getEndpoint();
- if (endpoint == null || endpoint.isEmpty())
- throw new ReaderException("Soablab config has no endpoint set");
- json.put("endpoint", endpoint);
-
- double pollingBackoff = soaplabConfig.getPollingBackoff();
- json.put("pollingBackoff", pollingBackoff);
-
- BigInteger pollingInterval = soaplabConfig.getPollingInterval();
- if (pollingInterval != null)
- json.put("pollingInterval", pollingInterval.intValue());
-
- BigInteger pollingIntervalMax = soaplabConfig.getPollingIntervalMax();
- if (pollingIntervalMax != null)
- json.put("pollingIntervalMax", pollingIntervalMax.intValue());
-
- return configuration;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
deleted file mode 100644
index e860171..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetColumnNameEntry;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetImportConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetRange;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class SpreadsheetActivityParser extends AbstractActivityParser {
- private static final URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/spreadsheet-import-activity/");
- private static final String activityClassName = "net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportActivity";
- public static final URI ACTIVITY_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import");
- public static final URI RANGE_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import/Range");
- public static final URI MAPPING_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import/Mapping");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return ACTIVITY_URI;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser, ConfigBean configBean,
- ParserState parserState) throws ReaderException {
- SpreadsheetImportConfig config = unmarshallConfig(t2FlowParser, configBean, "xstream",
- SpreadsheetImportConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
-
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
- ObjectNode columnRange = json.objectNode();
- json.put("columnRange", columnRange);
- makeRange(config.getColumnRange(), columnRange);
-
- ObjectNode rowRange = json.objectNode();
- json.put("rowRange", rowRange);
- makeRange(config.getRowRange(), rowRange);
-
- if (config.getEmptyCellValue() != null)
- json.put("emptyCellValue", config.getEmptyCellValue());
-
- ArrayNode columnNames = json.arrayNode();
- if (config.getColumnNames() != null && config.getColumnNames().getEntry() != null) {
- for (SpreadsheetColumnNameEntry entry : config.getColumnNames().getEntry()) {
- ObjectNode mapping = json.objectNode();
- columnNames.add(mapping);
- mapping.put("column", entry.getString().get(0));
- mapping.put("port", entry.getString().get(1));
- }
- if (columnNames.size() > 0)
- json.put("columnNames", columnNames);
- }
-
- json.put("allRows", config.isAllRows());
- json.put("excludeFirstRow", config.isExcludeFirstRow());
- json.put("ignoreBlankRows", config.isIgnoreBlankRows());
- if (config.getEmptyCellPolicy() != null)
- json.put("emptyCellPolicy", config.getEmptyCellPolicy().value());
- if (config.getOutputFormat() != null)
- json.put("outputFormat", config.getOutputFormat().value());
- if (config.getCsvDelimiter() != null)
- json.put("csvDelimiter", config.getCsvDelimiter());
-
- return configuration;
- }
-
- private void makeRange(SpreadsheetRange range, ObjectNode rangeJson) {
- rangeJson.put("start", range.getStart().longValue());
- rangeJson.put("end", range.getEnd().longValue());
-
- ArrayNode excludes = rangeJson.arrayNode();
- for (SpreadsheetRange excludesRange : range.getExcludes().getExclude()) {
- ObjectNode exclude = rangeJson.objectNode();
- makeRange(excludesRange, exclude);
- excludes.add(exclude);
- }
- if (excludes.size() > 0)
- rangeJson.put("excludes", excludes);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
deleted file mode 100644
index cb77ef8..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.StringConstantConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class StringConstantActivityParser extends AbstractActivityParser {
- private static final String VALUE = "value";
- private static final URI activityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/stringconstant-activity/");
- private static final String activityClassName = "net.sf.taverna.t2.activities.stringconstant.StringConstantActivity";
- public static final URI CONSTANT = URI
- .create("http://ns.taverna.org.uk/2010/activity/constant");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- return activityUriStr.startsWith(activityRavenURI.toASCIIString())
- && activityUriStr.endsWith(activityClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return CONSTANT;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState) throws ReaderException {
- StringConstantConfig strConfig = unmarshallConfig(t2FlowParser,
- configBean, "xstream", StringConstantConfig.class);
- String value = strConfig.getValue();
- if (value == null)
- throw new ReaderException("String constant configuration has no value set");
- Configuration configuration = new Configuration();
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(CONSTANT.resolve("#Config"));
- json.put("string", value);
-
- Activity activity = parserState.getCurrentActivity();
- OutputActivityPort valuePort = new OutputActivityPort(activity, VALUE);
- valuePort.setDepth(0);
- valuePort.setGranularDepth(0);
- return configuration;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
deleted file mode 100644
index ffb6537..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.WSDLConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class WSDLActivityParser extends AbstractActivityParser {
- private static final URI wsdlActivityRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.activities/wsdl-activity/");
- private static final String wsdlActivityClassName = "net.sf.taverna.t2.activities.wsdl.WSDLActivity";
- public static final URI WSDL = URI
- .create("http://ns.taverna.org.uk/2010/activity/wsdl");
- public static final URI SECURITY = WSDL.resolve("wsdl/security");
- public static final URI OPERATION = WSDL.resolve("wsdl/operation");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- if (!activityUriStr.startsWith(wsdlActivityRavenURI.toASCIIString()))
- return false;
- if (activityUriStr.endsWith(wsdlActivityClassName))
- return true;
- return false;
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return WSDL;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- WSDLConfig wsdlConfig = unmarshallConfig(t2FlowParser, configBean,
- "xstream", WSDLConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setType(WSDL.resolve("#Config"));
-
- URI wsdl;
- try {
- wsdl = URI.create(wsdlConfig.getWsdl());
- if (!wsdl.isAbsolute())
- throw new ReaderException("WSDL URI is not absolute: "
- + wsdlConfig.getWsdl());
- } catch (IllegalArgumentException ex) {
- throw new ReaderException("WSDL not a valid URI: "
- + wsdlConfig.getWsdl());
- } catch (NullPointerException ex) {
- throw new ReaderException("WSDL config has no wsdl set");
- }
- String operation = wsdlConfig.getOperation();
- if (operation == null || operation.equals(""))
- throw new ReaderException("WSDL config has no operation set");
-
- ObjectNode json = (ObjectNode) configuration.getJson();
-
- ObjectNode wsdlOperation = json.objectNode();
- json.put("operation", wsdlOperation);
-
- wsdlOperation.put("wsdl", wsdl.toString());
- wsdlOperation.put("name", operation);
-
- if (wsdlConfig.getSecurityProfile() != null
- && !wsdlConfig.getSecurityProfile().isEmpty()) {
- URI securityProfileURI = SECURITY.resolve("#"
- + wsdlConfig.getSecurityProfile());
- json.put("securityProfile", securityProfileURI.toString());
- }
- return configuration;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
deleted file mode 100644
index 2b9e64b..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser.WSDL;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.XMLSplitterConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class WSDLXMLSplitterParser extends AbstractActivityParser {
- private static final URI wsdlActivityRavenURI = T2FlowParser.ravenURI
- .resolve("net.sf.taverna.t2.activities/wsdl-activity/");
- private static final String inputSplitterClassName = "net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity";
- private static final String outputSplitterClassName = "net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity";
- public static final URI SPLITTER = WSDL.resolve("xml-splitter");
- public static final URI XML_INPUT_SPLITTER = SPLITTER
- .resolve("xml-splitter/in");
- public static final URI XML_OUTPUT_SPLITTER = SPLITTER
- .resolve("xml-splitter/out");
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- if (!activityUriStr.startsWith(wsdlActivityRavenURI.toASCIIString()))
- return false;
- return activityUriStr.endsWith(inputSplitterClassName)
- || activityUriStr.endsWith(outputSplitterClassName);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- String activityUriStr = t2flowActivity.toASCIIString();
- if (activityUriStr.endsWith(inputSplitterClassName))
- return XML_INPUT_SPLITTER;
- else if (activityUriStr.endsWith(outputSplitterClassName))
- return XML_OUTPUT_SPLITTER;
- throw new IllegalArgumentException("Unexpected URI " + t2flowActivity);
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- XMLSplitterConfig splitterConfig = unmarshallConfig(t2FlowParser,
- configBean, "xstream", XMLSplitterConfig.class);
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
-
- ObjectNode json = (ObjectNode) configuration.getJson();
- configuration.setType(SPLITTER.resolve("#Config"));
-
- String wrappedTypeXML = splitterConfig.getWrappedTypeXML();
-
- json.put("wrappedType", wrappedTypeXML);
-
- Activity activity = parserState.getCurrentActivity();
- activity.getInputPorts().clear();
- activity.getOutputPorts().clear();
-
- for (ActivityPortDefinitionBean portBean : splitterConfig
- .getInputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
- parseAndAddInputPortDefinition(portBean, configuration, activity);
- for (ActivityPortDefinitionBean portBean : splitterConfig
- .getOutputs()
- .getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
- parseAndAddOutputPortDefinition(portBean, configuration, activity);
-
- return configuration;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
deleted file mode 100644
index ef8437d..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class ErrorBounceParser extends AbstractActivityParser {
- private static final URI bouncerRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
- private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/ErrorBounce");
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(bouncerRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- return null; // no config!
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
deleted file mode 100644
index 6ea8864..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class FailoverParser extends AbstractActivityParser {
- private static final URI modelRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
- private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Failover");
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(modelRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState) throws ReaderException {
- return null; // no config!
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
deleted file mode 100644
index 25ae86c..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class InvokeParser extends AbstractActivityParser {
- private static final URI modelRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
- private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Invoke");
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(modelRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- return null; // no config!
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
deleted file mode 100644
index d742c82..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Activity;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.LoopConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Property;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class LoopParser extends AbstractActivityParser {
- /**
- * Expose some of the useful activity/config parser methods to LoopParser
- * with a different parser state.
- * <p>
- * TODO: Refactor T2FlowParser to avoid the need for this
- */
- protected class ConditionalActivityParser extends T2FlowParser {
- public ConditionalActivityParser(ParserState origState) throws JAXBException {
- super();
- parserState.get().setCurrentProfile(origState.getCurrentProfile());
- parserState.get().setCurrentProcessor(origState.getCurrentProcessor());
- }
- @Override
- public org.apache.taverna.scufl2.api.activity.Activity parseActivity(
- Activity origActivity) throws ReaderException {
- org.apache.taverna.scufl2.api.activity.Activity parsed = super.parseActivity(origActivity);
- parserState.get().setCurrentActivity(parsed);
- return parsed;
- }
- @Override
- protected Configuration parseConfiguration(ConfigBean configBean)
- throws JAXBException, ReaderException {
- return super.parseConfiguration(configBean);
- }
- }
-
- private static final URI modelRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
- private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Loop");
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(modelRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- LoopConfig loopConfig = unmarshallConfig(t2FlowParser, configBean,
- "xstream", LoopConfig.class);
-
- final Configuration c = new Configuration();
- c.setType(scufl2Uri.resolve("Config"));
-
- ObjectNode json = (ObjectNode) c.getJson();
-
- json.put("runFirst", loopConfig.isRunFirst());
-
- for (Property prop : loopConfig.getProperties().getProperty())
- json.put(prop.getName(), prop.getValue());
-
- String conditionXml = loopConfig.getConditionXML();
- if (conditionXml == null)
- // activity is unconfigured (bug in T2).
- // Return c only if there are properties beyond "runFirst"
- return json.size() > 1 ? c : null;
- Activity conditionActivity = unmarshallXml(
- parserState.getT2FlowParser(), conditionXml, Activity.class);
- try {
- ConditionalActivityParser internalParser = new ConditionalActivityParser(
- parserState);
-
- org.apache.taverna.scufl2.api.activity.Activity newActivity = internalParser
- .parseActivity(conditionActivity);
- String name = parserState.getCurrentProcessor().getName() + "-loop";
- newActivity.setName(name);
- parserState.getCurrentProfile().getActivities()
- .addWithUniqueName(newActivity);
- newActivity.setParent(parserState.getCurrentProfile());
-
- Configuration newConfig = internalParser
- .parseConfiguration(conditionActivity.getConfigBean());
- newConfig.setName(name);
- newConfig.setConfigures(newActivity);
- parserState.getCurrentProfile().getConfigurations()
- .addWithUniqueName(newConfig);
- // URI uriActivity = uriTools.relativeUriForBean(newActivity, parserState.getCurrentProfile());
- json.put("conditionActivity", newActivity.getName());
- } catch (JAXBException e) {
- throw new ReaderException("Can't parse conditional loop activity",
- e);
- }
- return c;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
deleted file mode 100644
index 977b4c9..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ParallelizeConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ParallelizeParser extends AbstractActivityParser {
-
- private static URI modelRavenURI = ravenURI
- .resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-
- private static String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize";
-
- public static URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Parallelize");
-
- public static class Defaults {
- public static int maxJobs = 1;
- }
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(modelRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- ParallelizeConfig parallelConfig = unmarshallConfig(t2FlowParser,
- configBean, "xstream", ParallelizeConfig.class);
- Configuration c = new Configuration();
- c.setType(scufl2Uri.resolve("#Config"));
-
- BigInteger maxJobs = parallelConfig.getMaxJobs();
- if (maxJobs != null && maxJobs.intValue() > 0
- && maxJobs.intValue() != Defaults.maxJobs) {
- ObjectNode json = (ObjectNode) c.getJson();
- json.put("maxJobs", maxJobs.intValue());
- }
- return c;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
deleted file mode 100644
index e1194f0..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.BACKOFF_FACTOR;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.INITIAL_DELAY;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.MAX_DELAY;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.MAX_RETRIES;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RetryConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class RetryParser extends AbstractActivityParser {
- private static final URI modelRavenURI =
- ravenURI.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
- private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry";
- public static final URI scufl2Uri = URI
- .create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Retry");
-
- @Override
- public boolean canHandlePlugin(URI pluginURI) {
- String uriStr = pluginURI.toASCIIString();
- return uriStr.startsWith(modelRavenURI.toASCIIString())
- && uriStr.endsWith(className);
- }
-
- /**
- * Default values - ignored for now
- */
- public static final class Defaults {
- public static final int MAX_RETRIES = 0;
- public static final int INITIAL_DELAY = 1000;
- public static final int MAX_DELAY = 5000;
- public static final double BACKOFF_FACTOR = 1.0;
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return scufl2Uri;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- RetryConfig config = unmarshallConfig(t2FlowParser, configBean,
- "xstream", RetryConfig.class);
-
- Configuration c = new Configuration();
- c.setType(scufl2Uri.resolve("#Config"));
-
- ObjectNode json = (ObjectNode) c.getJson();
-
- BigInteger maxRetries = config.getMaxRetries();
- if (maxRetries != null
- && (maxRetries.longValue() != MAX_RETRIES || maxRetries
- .longValue() < 0))
- json.put("maxRetries", maxRetries.longValue());
-
- if (maxRetries != null && maxRetries.longValue() != 0) {
- // Neither of these makes sense if retries are disabled
-
- if (config.getInitialDelay() != INITIAL_DELAY
- && config.getInitialDelay() > -1)
- json.put("initialDelay", config.getInitialDelay());
-
- if (config.getMaxDelay() != MAX_DELAY && config.getMaxDelay() > -1)
- json.put("maxDelay", config.getMaxDelay());
-
- double delta = Math.abs(config.getBackoffFactor() - BACKOFF_FACTOR);
- if (config.getBackoffFactor() > 0 && delta > 1e-14)
- json.put("backoffFactor", config.getBackoffFactor());
- }
- return c;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
deleted file mode 100644
index 7f5aa8c..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
+++ /dev/null
@@ -1,522 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Entry;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ExternalToolConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Group;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptInputStatic;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptInputUser;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptOutput;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.UsecaseConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.UsecaseDescription;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ExternalToolActivityParser extends AbstractActivityParser {
- @SuppressWarnings("unused")
- private static final String STDOUT = "STDOUT";
- @SuppressWarnings("unused")
- private static final String STDIN = "STDIN";
- @SuppressWarnings("unused")
- private static final String STDERR = "STDERR";
- private static final String EXTERNALTOOLACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd";
- public static final URI CNT = URI.create("http://www.w3.org/2011/content#");
- public static final URI CHARSET = URI
- .create("http://www.iana.org/assignments/character-sets#");
- // or http://www.iana.org/assignments/charset-reg/ ?
- private static final URI usecaseActivityRavenUri = ravenURI
- .resolve("net.sf.taverna.t2.activities/usecase-activity/");
- private static final String usecaseActivityClass = "net.sf.taverna.t2.activities.usecase.UseCaseActivity";
- private static final URI externalToolRavenUri = ravenURI
- .resolve("net.sf.taverna.t2.activities/external-tool-activity/");
- private static final String externalToolClass = "net.sf.taverna.t2.activities.externaltool.ExternalToolActivity";
- public static final URI ACTIVITY_URI = URI
- .create("http://ns.taverna.org.uk/2010/activity/tool");
- public static final URI DC = URI.create("http://purl.org/dc/elements/1.1/");
-
- @SuppressWarnings("unused")
- private Map<URI, URI> mappedMechanismTypes = makeMappedMechanismTypes();
-
- private Map<URI, URI> makeMappedMechanismTypes() {
- Map<URI, URI> map = new HashMap<>();
- map.put(ACTIVITY_URI.resolve("#789663B8-DA91-428A-9F7D-B3F3DA185FD4"),
- ACTIVITY_URI.resolve("#local"));
- map.put(ACTIVITY_URI.resolve("#D0A4CDEB-DD10-4A8E-A49C-8871003083D8"),
- ACTIVITY_URI.resolve("#ssh"));
- return map;
- }
-
- @Override
- public boolean canHandlePlugin(URI activityURI) {
- String activityUriStr = activityURI.toASCIIString();
- if (activityUriStr.startsWith(usecaseActivityRavenUri.toASCIIString())
- && activityUriStr.endsWith(usecaseActivityClass))
- return true;
- return activityUriStr.startsWith(externalToolRavenUri.toASCIIString())
- && activityUriStr.endsWith(externalToolClass);
- }
-
- @Override
- public List<URI> getAdditionalSchemas() {
- URL externalToolXsd = ExternalToolActivityParser.class
- .getResource(EXTERNALTOOLACTIVITY_XSD);
- try {
- return Arrays.asList(externalToolXsd.toURI());
- } catch (Exception e) {
- throw new IllegalStateException("Can't find external tool schema "
- + externalToolXsd);
- }
- }
-
- @Override
- public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
- return ACTIVITY_URI;
- }
-
- @Override
- public Configuration parseConfiguration(T2FlowParser t2FlowParser,
- ConfigBean configBean, ParserState parserState)
- throws ReaderException {
- ExternalToolConfig externalToolConfig = null;
- UsecaseConfig usecaseConfig = null;
-
- try {
- externalToolConfig = unmarshallConfig(t2FlowParser, configBean,
- "xstream", ExternalToolConfig.class);
- } catch (ReaderException ex) {
- usecaseConfig = unmarshallConfig(t2FlowParser, configBean,
- "xstream", UsecaseConfig.class);
- }
-
- Configuration configuration = new Configuration();
- configuration.setParent(parserState.getCurrentProfile());
- parserState.setCurrentConfiguration(configuration);
- try {
- ObjectNode json = configuration.getJsonAsObjectNode();
-
- configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
- if (usecaseConfig != null) {
- if (usecaseConfig.getRepositoryUrl() != null)
- json.put("repositoryUrl", usecaseConfig.getRepositoryUrl());
- json.put("toolId", usecaseConfig.getUsecaseid());
- } else if (externalToolConfig != null) {
- if (externalToolConfig.getRepositoryUrl() != null)
- json.put("repositoryUrl",
- externalToolConfig.getRepositoryUrl());
- json.put("toolId", externalToolConfig.getExternaltoolid());
- if (externalToolConfig.isEdited())
- json.put("edited", externalToolConfig.isEdited());
- }
-
- if (externalToolConfig != null) {
- Group group = externalToolConfig.getGroup();
- if (group != null) {
- ObjectNode invocationGroup = json.objectNode();
- json.put("invocationGroup", invocationGroup);
- invocationGroup.put("name", group.getInvocationGroupName());
- invocationGroup.put("mechanismType",
- group.getMechanismType());
- invocationGroup.put("mechanismName",
- group.getMechanismName());
- invocationGroup
- .put("mechanismXML", group.getMechanismXML());
- } else {
- json.put("mechanismType",
- externalToolConfig.getMechanismType());
- json.put("mechanismName",
- externalToolConfig.getMechanismName());
- json.put("mechanismXML",
- externalToolConfig.getMechanismXML());
- }
-// URI mechanismTypeURI = ACTIVITY_URI.resolve("#"
-// + uriTools.validFilename(mechanismType));
-// if (mappedMechanismTypes.containsKey(mechanismTypeURI)) {
-// mechanismTypeURI = mappedMechanismTypes.get(mechanismTypeURI);
-// }
-// invocation.addPropertyReference(ACTIVITY_URI.resolve("#mechanismType"),
-// mechanismTypeURI);
-//
-// invocation.addPropertyAsString(ACTIVITY_URI.resolve("#mechanismName"),
-// mechanismName);
-// invocation.addProperty(ACTIVITY_URI.resolve("#mechanismXML"), new PropertyLiteral(
-// mechanismXML, PropertyLiteral.XML_LITERAL));
-
- // TODO: Extract SSH hostname etc. from mechanismXML
-// parseMechanismXML(json);
-
- ObjectNode toolDescription = json.objectNode();
- parseToolDescription(toolDescription,
- externalToolConfig.getUseCaseDescription(), parserState);
- json.put("toolDescription", toolDescription);
-
-// configResource.addProperty(ACTIVITY_URI.resolve("#invocationGroup"),
-// parseGroup(externalToolConfig.getGroup()));
-
- }
-
- return configuration;
- } finally {
- parserState.setCurrentConfiguration(null);
- }
- }
-
-// private void parseMechanismXML(ObjectNode invocation) {
-// type = invocatoin.
-//
-// URI type = invocation.getPropertyAsResourceURI(ACTIVITY_URI.resolve("#mechanismType"));
-// if (type.equals(ACTIVITY_URI.resolve("#local"))) {
-// Element xml = invocation.getPropertyAsLiteral(ACTIVITY_URI.resolve("#mechanismXML"))
-// .getLiteralValueAsElement();
-//
-// String directory = elementByTag(xml, "directory");
-// String linkCommand = elementByTag(xml, "linkCommand");
-// String shellPrefix = elementByTag(xml, "shellPrefix");
-// PropertyResource node = new PropertyResource();
-// node.setTypeURI(ACTIVITY_URI.resolve("#LocalNode"));
-// if (directory != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#directory"), directory);
-// }
-// if (linkCommand != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#linkCommand"), linkCommand);
-// }
-// if (shellPrefix != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#shellPrefix"), shellPrefix);
-// }
-// if (!node.getProperties().isEmpty()) {
-// // Only add if it is customized
-// invocation.addProperty(ACTIVITY_URI.resolve("#node"), node);
-// }
-//
-// invocation.getProperties().remove(ACTIVITY_URI.resolve("#mechanismXML"));
-// } else if (type.equals(ACTIVITY_URI.resolve("#ssh"))) {
-// Element xml = invocation.getPropertyAsLiteral(ACTIVITY_URI.resolve("#mechanismXML"))
-// .getLiteralValueAsElement();
-// for (Element sshNode : elementIter(xml.getElementsByTagName("sshNode"))) {
-// String hostname = elementByTag(sshNode, "host");
-// String port = elementByTag(sshNode, "port");
-// String directory = elementByTag(sshNode, "directory");
-// String linkCommand = elementByTag(sshNode, "linkCommand");
-// String copyCommand = elementByTag(sshNode, "copyCommand");
-//
-// PropertyResource node = invocation.addPropertyAsNewResource(
-// ACTIVITY_URI.resolve("#node"), ACTIVITY_URI.resolve("#SSHNode"));
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#hostname"), hostname);
-// if (port != null) {
-// PropertyLiteral portLit = new PropertyLiteral(port, PropertyLiteral.XSD_INT);
-// node.addProperty(ACTIVITY_URI.resolve("#port"), portLit);
-// }
-// if (directory != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#directory"), directory);
-// }
-// if (linkCommand != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#linkCommand"), linkCommand);
-// }
-// if (copyCommand != null) {
-// node.addPropertyAsString(ACTIVITY_URI.resolve("#copyCommand"), copyCommand);
-// }
-// }
-// invocation.clearProperties(ACTIVITY_URI.resolve("#mechanismXML"));
-// } else {
-//
-// }
-// }
-
- @SuppressWarnings("unused")
- private Iterable<Element> elementIter(final NodeList nodeList) {
- return new Iterable<Element>() {
- @Override
- public Iterator<Element> iterator() {
- return new Iterator<Element>() {
- int position = 0;
-
- @Override
- public boolean hasNext() {
- return nodeList.getLength() > position;
- }
-
- @Override
- public Element next() {
- return (Element) nodeList.item(position++);
- }
-
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
- };
- }
-
- @SuppressWarnings("unused")
- private String elementByTag(Element el, String tagName) {
- NodeList nodeList = el.getElementsByTagName(tagName);
- if (nodeList.getLength() == 0)
- return null;
- return nodeList.item(0).getTextContent();
- }
-
- protected ObjectNode parseToolDescription(ObjectNode json, UsecaseDescription toolDesc,
- ParserState parserState) {
- ObjectNode description = json.objectNode();
- description.put("dc:title", toolDesc.getUsecaseid());
- if (toolDesc.getGroup() != null)
- description.put("group", toolDesc.getGroup());
- if (toolDesc.getDescription() != null)
- description.put("dc:description", toolDesc.getDescription());
-
- description.put("command", toolDesc.getCommand());
-
- description.put("preparingTimeoutInSeconds",
- toolDesc.getPreparingTimeoutInSeconds());
- description.put("executionTimeoutInSeconds",
- toolDesc.getExecutionTimeoutInSeconds());
-
- // Ignoring tags, REs, queue__preferred, queue__deny
-
- ArrayNode staticInputs = json.arrayNode();
- // static inputs
- for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
- .getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
- ObjectNode input = json.objectNode();
- staticInputs.add(input);
- input.put("tag", inputStatic.getTag());
- input.put("file", inputStatic.isFile());
- input.put("tempFile", inputStatic.isTempFile());
- input.put("binary", inputStatic.isBinary());
- input.put("charsetName", inputStatic.getCharsetName());
- input.put("forceCopy", inputStatic.isForceCopy());
- if (inputStatic.getUrl() != null)
- input.put("url", inputStatic.getUrl());
- if (inputStatic.getContent() != null)
- input.put("content", inputStatic.getContent().getValue());
- }
- if (staticInputs.size() > 0)
- json.put("staticInputs", staticInputs);
-
-// for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
-// .getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
-// String portName = inputStatic.getTag();
-// PropertyResource staticInput = generatePortDefinition(portName, inputStatic.getTag(),
-// inputStatic.getCharsetName(), true, false, inputStatic.isBinary(),
-// inputStatic.isFile(), inputStatic.isTempFile(), inputStatic.isForceCopy(),
-// false, true, parserState);
-//
-// configResource.addProperty(ACTIVITY_URI.resolve("#staticInput"), staticInput);
-// if (inputStatic.getUrl() != null) {
-// staticInput.addPropertyReference(ACTIVITY_URI.resolve("#source"),
-// URI.create(inputStatic.getUrl()));
-// } else {
-// PropertyResource content = staticInput.addPropertyAsNewResource(
-// ACTIVITY_URI.resolve("#source"), CNT.resolve("#ContentAsText"));
-// content.addPropertyAsString(CNT.resolve("#chars"), inputStatic.getContent()
-// .getValue());
-// // TODO: Support bytes?
-// }
-// }
-
-
-
- // Inputs
- ArrayNode inputs = json.arrayNode();
- for (Entry entry : toolDesc.getInputs().getEntry()) {
- ObjectNode mapping = json.objectNode();
- mapping.put("port", entry.getString());
- ObjectNode input = json.objectNode();
- mapping.put("input", input);
-
- ScriptInputUser scriptInput = entry
- .getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
- input.put("tag", scriptInput.getTag());
- input.put("file", scriptInput.isFile());
- input.put("tempFile", scriptInput.isTempFile());
- input.put("binary", scriptInput.isBinary());
-
- input.put("charsetName", scriptInput.getCharsetName());
- input.put("forceCopy", scriptInput.isForceCopy());
- input.put("list", scriptInput.isList());
- input.put("concatenate", scriptInput.isConcatenate());
- }
- if (inputs.size() > 0)
- json.put("inputs", inputs);
-// for (Entry entry : toolDesc.getInputs().getEntry()) {
-// String portName = entry.getString();
-// ScriptInputUser scriptInput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
-// PropertyResource portDef = generatePortDefinition(portName, scriptInput.getTag(),
-// scriptInput.getCharsetName(), true, scriptInput.isList(),
-// scriptInput.isBinary(), scriptInput.isFile(), scriptInput.isTempFile(),
-// scriptInput.isForceCopy(), scriptInput.isConcatenate(), false, parserState);
-// configResource.addProperty(Scufl2Tools.PORT_DEFINITION.resolve("#inputPortDefinition"),
-// portDef);
-// }
-
- // Outputs
- ArrayNode outputs = json.arrayNode();
- for (Entry entry : toolDesc.getOutputs().getEntry()) {
- ObjectNode mapping = json.objectNode();
- mapping.put("port", entry.getString());
- ObjectNode output = json.objectNode();
- mapping.put("output", output);
-
- ScriptOutput scriptOutput = entry
- .getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
- output.put("path", scriptOutput.getPath());
- output.put("binary", scriptOutput.isBinary());
- }
- if (outputs.size() > 0)
- json.put("outputs", outputs);
-// for (Entry entry : toolDesc.getOutputs().getEntry()) {
-// String portName = entry.getString();
-// ScriptOutput scriptOutput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
-// PropertyResource portDef = generatePortDefinition(portName, scriptOutput.getPath(),
-// null, false, false, scriptOutput.isBinary(), true, false, false, false, false,
-// parserState);
-// configResource.addProperty(
-// Scufl2Tools.PORT_DEFINITION.resolve("#outputPortDefinition"), portDef);
- // }
-
- json.put("includeStdIn", toolDesc.isIncludeStdIn());
- json.put("includeStdOut", toolDesc.isIncludeStdOut());
- json.put("includeStdErr", toolDesc.isIncludeStdErr());
-
-// if (toolDesc.isIncludeStdIn()) {
-// InputActivityPort stdin = new InputActivityPort(parserState.getCurrentActivity(), STDIN);
-// stdin.setDepth(0);
-// }
-// if (toolDesc.isIncludeStdOut()) {
-// OutputActivityPort stdout = new OutputActivityPort(parserState.getCurrentActivity(),
-// STDOUT);
-// stdout.setDepth(0);
-// stdout.setGranularDepth(0);
-// }
-// if (toolDesc.isIncludeStdErr()) {
-// OutputActivityPort stderr = new OutputActivityPort(parserState.getCurrentActivity(),
-// STDERR);
-// stderr.setDepth(0);
-// stderr.setGranularDepth(0);
-// }
-
- return description;
- }
-//
-// private PropertyResource generatePortDefinition(String portName, String tag, String charSet,
-// boolean isInput, boolean isList, boolean isBinary, boolean isFile, boolean isTempFile,
-// boolean isForceCopy, boolean isConcatenate, boolean isStatic, ParserState parserState) {
-//
-// ActivityPort actPort;
-// if (isStatic) {
-// resource.setTypeURI(ACTIVITY_URI.resolve("#StaticInput"));
-// } else {
-//
-// if (isInput) {
-// resource.setTypeURI(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"));
-// actPort = new InputActivityPort(parserState.getCurrentActivity(), portName);
-// URI portUri = uriTools.relativeUriForBean(actPort,
-// parserState.getCurrentConfiguration());
-// resource.addPropertyReference(
-// Scufl2Tools.PORT_DEFINITION.resolve("#definesInputPort"), portUri);
-// } else {
-// resource.setTypeURI(Scufl2Tools.PORT_DEFINITION.resolve("#OutputPortDefinition"));
-// actPort = new OutputActivityPort(parserState.getCurrentActivity(), portName);
-// URI portUri = uriTools.relativeUriForBean(actPort,
-// parserState.getCurrentConfiguration());
-// resource.addPropertyReference(
-// Scufl2Tools.PORT_DEFINITION.resolve("#definesOutputPort"), portUri);
-// }
-//
-// if (isList) {
-// actPort.setDepth(1);
-// } else {
-// actPort.setDepth(0);
-// }
-// }
-//
-// URI dataType = PropertyLiteral.XSD_STRING;
-// if (isFile || isTempFile) {
-// if (isForceCopy) {
-// resource.addProperty(ACTIVITY_URI.resolve("#forceCopy"), new PropertyLiteral(true));
-// }
-//
-// if (isBinary) {
-// // FIXME: Is there a good URI for raw bytes? xsd:byte is just
-// // one byte,
-// // xsd:hexBinary and xsd:base64Binary both mandate an encoding
-// dataType = Scufl2Tools.PORT_DEFINITION.resolve("#binary");
-// } else if (charSet != null) {
-// resource.addPropertyReference(ACTIVITY_URI.resolve("#charset"),
-// CHARSET.resolve("#" + uriTools.validFilename(charSet)));
-// // TODO: Check with
-// // http://www.w3.org/International/www-international.html if
-// // this URI scheme really make sense
-// } else {
-// resource.addPropertyReference(ACTIVITY_URI.resolve("#charset"),
-// CHARSET.resolve("#UTF-8"));
-// }
-// }
-// resource.addPropertyReference(Scufl2Tools.PORT_DEFINITION.resolve("#dataType"), dataType);
-//
-// resource.addPropertyAsString(ACTIVITY_URI.resolve("#substitutes"), tag);
-// URI subsitutionType;
-// if (isFile) {
-// subsitutionType = ACTIVITY_URI.resolve("#File");
-// } else if (isTempFile) {
-// subsitutionType = ACTIVITY_URI.resolve("#TempFile");
-// } else {
-// subsitutionType = ACTIVITY_URI.resolve("#Parameter");
-// }
-// resource.addPropertyReference(ACTIVITY_URI.resolve("#substitutionType"), subsitutionType);
-//
-// if (isList && isConcatenate) {
-// resource.addProperty(ACTIVITY_URI.resolve("#concatenate"), new PropertyLiteral(true));
-// }
-//
-// return resource;
-// }
-
-// protected PropertyObject parseGroup(Group group) {
-// PropertyResource propertyResource = new PropertyResource();
-// propertyResource.setTypeURI(ACTIVITY_URI.resolve("#InvocationGroup"));
-// return propertyResource;
-// }
-}