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/23 11:05:53 UTC
[68/79] incubator-taverna-language git commit: taverna-scufl2-rdfxml
-> taverna-scufl2-wfbundle
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
deleted file mode 100644
index 4e56a1f..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.rdfxml.RDFXMLReader.APPLICATION_RDF_XML;
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLReader.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLWriter.WORKFLOW_BUNDLE_RDF;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundleDocument;
-
-public class WorkflowBundleParser extends AbstractParser {
-
- private WorkflowParser workflowParser;
- private ProfileParser profileParser;
-
- public WorkflowBundleParser() {
- super();
- workflowParser = new WorkflowParser(parserState);
- profileParser = new ProfileParser(parserState);
- }
-
- protected String findWorkflowBundlePath() {
- if (APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE
- .equals(getParserState().getUcfPackage().getPackageMediaType()))
- for (ResourceEntry potentialRoot : getParserState().getUcfPackage()
- .getRootFiles())
- if (APPLICATION_RDF_XML.equals(potentialRoot.getMediaType()))
- return potentialRoot.getPath();
- return WORKFLOW_BUNDLE_RDF;
- }
-
- protected WorkflowBundle parseWorkflowBundle(
- org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle wb, URI base)
- throws ReaderException, IOException {
- WorkflowBundle workflowBundle = new WorkflowBundle();
- getParserState().push(workflowBundle);
- try {
- workflowBundle.setResources(getParserState().getUcfPackage());
- if (wb.getName() != null)
- workflowBundle.setName(wb.getName());
- if (wb.getGlobalBaseURI() != null
- && wb.getGlobalBaseURI().getResource() != null)
- workflowBundle.setGlobalBaseURI(base.resolve(wb
- .getGlobalBaseURI().getResource()));
- mapBean(base.resolve(wb.getAbout()), workflowBundle);
- for (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Workflow wfEntry : wb
- .getWorkflow()) {
- URI wfUri = base.resolve(wfEntry.getWorkflow().getAbout());
- String resource = wfEntry.getWorkflow().getSeeAlso()
- .getResource();
- URI source = uriTools.relativePath(getParserState()
- .getLocation(), base.resolve(resource));
- workflowParser.readWorkflow(wfUri, source);
- }
- for (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Profile pfEntry : wb
- .getProfile()) {
- URI wfUri = base.resolve(pfEntry.getProfile().getAbout());
- String resource = pfEntry.getProfile().getSeeAlso()
- .getResource();
- URI source = uriTools.relativePath(getParserState()
- .getLocation(), base.resolve(resource));
- profileParser.readProfile(wfUri, source);
- }
-
- if (wb.getMainWorkflow() != null
- && wb.getMainWorkflow().getResource() != null) {
- URI mainWfUri = base
- .resolve(wb.getMainWorkflow().getResource());
- Workflow mainWorkflow = (Workflow) resolveBeanUri(mainWfUri);
- if (mainWorkflow == null)
- throw new ReaderException("Unknown main workflow "
- + mainWfUri + ", got"
- + getParserState().getUriToBean().keySet());
- workflowBundle.setMainWorkflow(mainWorkflow);
- }
- if (wb.getMainProfile() != null
- && wb.getMainProfile().getResource() != null) {
- URI profileUri = base
- .resolve(wb.getMainProfile().getResource());
- org.apache.taverna.scufl2.api.profiles.Profile mainWorkflow = (org.apache.taverna.scufl2.api.profiles.Profile) resolveBeanUri(profileUri);
- workflowBundle.setMainProfile(mainWorkflow);
- }
- } finally {
- getParserState().pop();
- }
- return workflowBundle;
- }
-
- @SuppressWarnings("unchecked")
- public WorkflowBundle readWorkflowBundle(UCFPackage ucfPackage,
- URI suggestedLocation) throws IOException, ReaderException {
- try {
- getParserState().setUcfPackage(ucfPackage);
- getParserState().setLocation(suggestedLocation);
- if (getParserState().getLocation() == null) {
- getParserState().setLocation(URI.create(""));
- } else if (!getParserState().getLocation().getRawPath()
- .endsWith("/")) {
- if (getParserState().getLocation().getQuery() != null
- || getParserState().getLocation().getFragment() != null)
- /*
- * Ouch.. Perhaps some silly website with ?bundleId=15 ?
- * We'll better conserve that somehow. Let's do the jar:
- * trick and hope it works. Have to escape evil chars.
- */
- getParserState().setLocation(
- URI.create("jar:"
- + getParserState().getLocation()
- .toASCIIString()
- .replace("?", "%63")
- .replace("#", "#35") + "!/"));
- else
- /*
- * Simple, pretend we're one level down inside the ZIP file
- * as a directory
- */
- getParserState().setLocation(
- getParserState().getLocation().resolve(
- getParserState().getLocation().getRawPath()
- + "/"));
- }
- String workflowBundlePath = findWorkflowBundlePath();
-
- InputStream bundleStream = getParserState().getUcfPackage()
- .getResourceAsInputStream(workflowBundlePath);
-
- JAXBElement<WorkflowBundleDocument> elem;
- try {
- elem = (JAXBElement<WorkflowBundleDocument>) unmarshaller
- .unmarshal(bundleStream);
- } catch (JAXBException e) {
- throw new ReaderException(
- "Can't parse workflow bundle document "
- + workflowBundlePath, e);
- }
- WorkflowBundleDocument workflowBundleDocument = elem.getValue();
-
- URI base = getParserState().getLocation().resolve(
- workflowBundlePath);
- if (workflowBundleDocument.getBase() != null)
- base = getParserState().getLocation().resolve(
- workflowBundleDocument.getBase());
-
- if (workflowBundleDocument.getAny().size() != 1)
- throw new ReaderException(
- "Invalid WorkflowBundleDocument, expected only one <WorkflowBundle>");
-
- org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle wb = (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle) workflowBundleDocument
- .getAny().get(0);
- WorkflowBundle workflowBundle = parseWorkflowBundle(wb, base);
-
- scufl2Tools.setParents(workflowBundle);
- return workflowBundle;
- } finally {
- clearParserState();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
deleted file mode 100644
index 6d84ef7..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
+++ /dev/null
@@ -1,381 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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 java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyParent;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.Blocking;
-import org.apache.taverna.scufl2.rdfxml.jaxb.CrossProduct;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DataLink;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DispatchStack;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DotProduct;
-import org.apache.taverna.scufl2.rdfxml.jaxb.IterationStrategyStack;
-import org.apache.taverna.scufl2.rdfxml.jaxb.PortNode;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Processor.InputProcessorPort;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Processor.OutputProcessorPort;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProductOf;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowDocument;
-
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-
-public class WorkflowParser extends AbstractParser {
- private static Logger logger = Logger.getLogger(WorkflowParser.class
- .getCanonicalName());
- @SuppressWarnings("unused")
- private static final JsonNodeFactory JSON_NODE_FACTORY = JsonNodeFactory.instance;
-
- public WorkflowParser() {
- }
-
- public WorkflowParser(ThreadLocal<ParserState> parserState) {
- super(parserState);
- }
-
- protected void parseControlLink(Blocking original) {
- URI blockUri = getParserState().getCurrentBase().resolve(
- original.getBlock().getResource());
- URI untilFinishedUri = getParserState().getCurrentBase().resolve(
- original.getUntilFinished().getResource());
- WorkflowBean block = resolveBeanUri(blockUri);
- WorkflowBean untilFinished = resolveBeanUri(untilFinishedUri);
-
- BlockingControlLink blocking = new BlockingControlLink();
- blocking.setBlock((org.apache.taverna.scufl2.api.core.Processor) block);
- blocking.setUntilFinished((org.apache.taverna.scufl2.api.core.Processor) untilFinished);
-
- blocking.setParent(getParserState().getCurrent(Workflow.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- blocking);
- }
-
- protected void parseCrossDotOrPortNodeList(List<Object> nodeList)
- throws ReaderException {
- for (Object node : nodeList)
- if (node instanceof DotProduct)
- parseDotProduct((DotProduct) node);
- else if (node instanceof CrossProduct)
- parseCrossProduct((CrossProduct) node);
- else if (node instanceof PortNode)
- parsePortNode((PortNode) node);
- else
- throw new ReaderException("Unexpected node " + node);
- }
-
- protected void parseCrossProduct(CrossProduct original)
- throws ReaderException {
- org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct cross = new org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct();
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- cross);
- cross.setParent(getParserState().getCurrent(
- IterationStrategyParent.class));
- getParserState().push(cross);
- try {
- parseProductOf(original.getProductOf());
- } finally {
- getParserState().pop();
- }
- }
-
- protected void parseDataLink(DataLink original) {
- URI fromUri = getParserState().getCurrentBase().resolve(
- original.getReceiveFrom().getResource());
- URI toUri = getParserState().getCurrentBase().resolve(
- original.getSendTo().getResource());
- WorkflowBean from = resolveBeanUri(fromUri);
- WorkflowBean to = resolveBeanUri(toUri);
-
- org.apache.taverna.scufl2.api.core.DataLink link = new org.apache.taverna.scufl2.api.core.DataLink();
- link.setReceivesFrom((SenderPort) from);
- link.setSendsTo((ReceiverPort) to);
- if (original.getMergePosition() != null)
- link.setMergePosition(original.getMergePosition().getValue());
- link.setParent(getParserState().getCurrent(Workflow.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- link);
- }
-
- protected void parseDispatchStack(DispatchStack original) {
- logger.fine("Ignoring Dispatch stack: not supported (SCUFL2-130)");
- return;
-
-// // FIXME: Legacy code - support parsing old dispatch stack configurations
-// Processor processor = getParserState().getCurrent(
-// org.apache.taverna.scufl2.api.core.Processor.class);
-// ObjectNode config = JSON_NODE_FACTORY.objectNode();
-// getParserState().getDispatchConfigs().put(processor, config);
-// if (original.getDispatchStackLayers() != null) {
-// for (DispatchStackLayer dispatchStackLayer : original
-// .getDispatchStackLayers().getDispatchStackLayer()) {
-// parseDispatchStackLayer(dispatchStackLayer);
-// }
-// }
- }
-
-// protected void parseDispatchStackLayer(DispatchStackLayer original) {
-// Processor processor = getParserState().getCurrent(Processor.class);
-// URI type = getParserState().getCurrentBase().resolve(
-// original.getType().getResource());
-// URI config = getParserState().getCurrentBase().resolve(original.getAbout());
-// // TODO: SCUFL2-130
-// // Add Legacy code for wfbundle 0.3.0 to
-// // support parsing old dispatch stack configurations
-// //
-// // The difficult bit is that the layers themselves has moved to
-// // to be a Configuration on a Processor - but we are here within
-// // parsing of the Workflow. In 0.3.0 each layer is then configured
-// // separately. So we need to pass over somehow the current stack
-// // to the ParserState so that it can be picked up in ProfileParser
-// // and added to each of the profiles -- or at least where the
-// // stack layers have been configured.
-// //
-// // Here's an idea on how it can work. Here we should push each layer to a
-// // List<Pair<URI,URI>> that we can keep in the ParserState.
-// // Then, within ProfileParser, we can pick them up and
-// // recreate what the Processor config would look like for
-// // the default configs - and then delete those dangling configs
-// }
-
- protected void parseDotProduct(DotProduct original) throws ReaderException {
- org.apache.taverna.scufl2.api.iterationstrategy.DotProduct dot = new org.apache.taverna.scufl2.api.iterationstrategy.DotProduct();
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- dot);
- dot.setParent(getParserState()
- .getCurrent(IterationStrategyParent.class));
-
- getParserState().push(dot);
- try {
- parseProductOf(original.getProductOf());
- } finally {
- getParserState().pop();
- }
- }
-
- protected void parseInputWorkflowPort(
- org.apache.taverna.scufl2.rdfxml.jaxb.InputWorkflowPort original) {
- org.apache.taverna.scufl2.api.port.InputWorkflowPort port = new org.apache.taverna.scufl2.api.port.InputWorkflowPort();
- port.setName(original.getName());
- if (original.getPortDepth() != null)
- port.setDepth(original.getPortDepth().getValue());
- port.setParent(getParserState().getCurrent(Workflow.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- port);
- }
-
- protected void parseIterationStrategyStack(IterationStrategyStack original)
- throws ReaderException {
- org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack iterationStrategyStack = new org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack();
- iterationStrategyStack.setParent(getParserState().getCurrent(
- Processor.class));
-
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- iterationStrategyStack);
- if (original.getIterationStrategies() != null) {
- getParserState().push(iterationStrategyStack);
- try {
- parseCrossDotOrPortNodeList(original.getIterationStrategies()
- .getDotProductOrCrossProduct());
- } finally {
- getParserState().pop();
- }
- }
- }
-
- protected void parseOutputWorkflowPort(
- org.apache.taverna.scufl2.rdfxml.jaxb.OutputWorkflowPort original) {
- org.apache.taverna.scufl2.api.port.OutputWorkflowPort port = new org.apache.taverna.scufl2.api.port.OutputWorkflowPort();
- port.setName(original.getName());
- port.setParent(getParserState().getCurrent(Workflow.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- port);
- }
-
- protected void parsePortNode(PortNode original) {
- org.apache.taverna.scufl2.api.iterationstrategy.PortNode node = new org.apache.taverna.scufl2.api.iterationstrategy.PortNode();
- node.setParent(getParserState().getCurrent(
- IterationStrategyParent.class));
- if (original.getDesiredDepth() != null)
- node.setDesiredDepth(original.getDesiredDepth().getValue());
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- node);
- URI inputPortUri = getParserState().getCurrentBase().resolve(
- original.getIterateOverInputPort().getResource());
- org.apache.taverna.scufl2.api.port.InputProcessorPort inputPort = (org.apache.taverna.scufl2.api.port.InputProcessorPort) resolveBeanUri(inputPortUri);
- node.setInputProcessorPort(inputPort);
- }
-
- protected void parseProcessor(
- org.apache.taverna.scufl2.rdfxml.jaxb.Processor processor)
- throws ReaderException {
- org.apache.taverna.scufl2.api.core.Processor p = new org.apache.taverna.scufl2.api.core.Processor();
- getParserState().push(p);
- try {
- p.setParent(getParserState().getCurrent(Workflow.class));
- mapBean(getParserState().getCurrentBase().resolve(
- processor.getAbout()), p);
- if (processor.getName() != null)
- p.setName(processor.getName());
- for (InputProcessorPort inputProcessorPort : processor
- .getInputProcessorPort())
- processorInputProcessorPort(inputProcessorPort
- .getInputProcessorPort());
- for (OutputProcessorPort outputProcessorPort : processor
- .getOutputProcessorPort())
- processorOutputProcessorPort(outputProcessorPort
- .getOutputProcessorPort());
- if (processor.getDispatchStack() != null)
- // Legacy wfbundle
- parseDispatchStack(processor.getDispatchStack()
- .getDispatchStack());
- if (processor.getIterationStrategyStack() != null)
- parseIterationStrategyStack(processor
- .getIterationStrategyStack()
- .getIterationStrategyStack());
- } finally {
- getParserState().pop();
- }
- }
-
- protected void parseProductOf(ProductOf productOf) throws ReaderException {
- if (productOf == null)
- return;
- parseCrossDotOrPortNodeList(productOf
- .getCrossProductOrDotProductOrPortNode());
- }
-
- protected void parseWorkflow(
- org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow, URI wfUri)
- throws ReaderException {
- Workflow wf = new Workflow();
- wf.setParent(getParserState().getCurrent(WorkflowBundle.class));
-
- if (workflow.getAbout() != null)
- mapBean(getParserState().getCurrentBase().resolve(
- workflow.getAbout()), wf);
- // TODO: Compare resolved URI with desired wfUri
- else
- mapBean(wfUri, wf);
-
- getParserState().push(wf);
- try {
- if (workflow.getName() != null)
- wf.setName(workflow.getName());
- if (workflow.getWorkflowIdentifier() != null
- && workflow.getWorkflowIdentifier().getResource() != null)
- wf.setIdentifier(getParserState().getCurrentBase().resolve(
- workflow.getWorkflowIdentifier().getResource()));
-
- for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.InputWorkflowPort inputWorkflowPort : workflow
- .getInputWorkflowPort())
- parseInputWorkflowPort(inputWorkflowPort.getInputWorkflowPort());
- for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.OutputWorkflowPort outputWorkflowPort : workflow
- .getOutputWorkflowPort())
- parseOutputWorkflowPort(outputWorkflowPort
- .getOutputWorkflowPort());
- for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.Processor processor : workflow
- .getProcessor())
- parseProcessor(processor.getProcessor());
- for (org.apache.taverna.scufl2.rdfxml.jaxb.DataLinkEntry dataLinkEntry : workflow
- .getDatalink())
- parseDataLink(dataLinkEntry.getDataLink());
- for (org.apache.taverna.scufl2.rdfxml.jaxb.Control c : workflow
- .getControl())
- parseControlLink(c.getBlocking());
- } finally {
- getParserState().pop();
- }
- }
-
- protected void processorInputProcessorPort(
- org.apache.taverna.scufl2.rdfxml.jaxb.InputProcessorPort original) {
- org.apache.taverna.scufl2.api.port.InputProcessorPort port = new org.apache.taverna.scufl2.api.port.InputProcessorPort();
- port.setName(original.getName());
- if (original.getPortDepth() != null)
- port.setDepth(original.getPortDepth().getValue());
- port.setParent(getParserState().getCurrent(Processor.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- port);
- }
-
- protected void processorOutputProcessorPort(
- org.apache.taverna.scufl2.rdfxml.jaxb.OutputProcessorPort original) {
- org.apache.taverna.scufl2.api.port.OutputProcessorPort port = new org.apache.taverna.scufl2.api.port.OutputProcessorPort();
- port.setName(original.getName());
- if (original.getPortDepth() != null)
- port.setDepth(original.getPortDepth().getValue());
- if (original.getGranularPortDepth() != null)
- port.setGranularDepth(original.getGranularPortDepth().getValue());
- port.setParent(getParserState().getCurrent(
- org.apache.taverna.scufl2.api.core.Processor.class));
- mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
- port);
- }
-
- @SuppressWarnings("unchecked")
- protected void readWorkflow(URI wfUri, URI source) throws ReaderException,
- IOException {
- if (source.isAbsolute())
- throw new ReaderException("Can't read external workflow source "
- + source);
-
- InputStream bundleStream = getParserState().getUcfPackage()
- .getResourceAsInputStream(source.getRawPath());
-
- JAXBElement<WorkflowDocument> elem;
- try {
- elem = (JAXBElement<WorkflowDocument>) unmarshaller
- .unmarshal(bundleStream);
- } catch (JAXBException e) {
- throw new ReaderException(
- "Can't parse workflow document " + source, e);
- }
-
- URI base = getParserState().getLocation().resolve(source);
- if (elem.getValue().getBase() != null)
- base = base.resolve(elem.getValue().getBase());
-
- if (elem.getValue().getAny().size() != 1)
- throw new ReaderException("Expects only a <Workflow> element in "
- + source);
- org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow = (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow) elem
- .getValue().getAny().get(0);
-
- getParserState().setCurrentBase(base);
- parseWorkflow(workflow, wfUri);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
deleted file mode 100644
index 822419a..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml.impl;
-/*
- *
- * 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 com.sun.xml.bind.marshaller.NamespacePrefixMapper;
-
-public class NamespacePrefixMapperJAXB_RI extends NamespacePrefixMapper {
- @Override
- public String getPreferredPrefix(String namespaceUri, String suggestion,
- boolean requirePrefix) {
- switch (namespaceUri) {
- case "http://www.w3.org/2001/XMLSchema-instance":
- return "xsi";
- case "http://ns.taverna.org.uk/2010/scufl2#":
- return ""; // default
- case "http://www.w3.org/1999/02/22-rdf-syntax-ns#":
- return "rdf";
- case "http://www.w3.org/2000/01/rdf-schema#":
- return "rdfs";
- case "http://purl.org/dc/elements/1.1/":
- return "dc";
- case "http://purl.org/dc/terms/":
- return "dcterms";
- case "http://www.w3.org/2002/07/owl#":
- return "owl";
- default:
- return suggestion;
- }
- }
-
- @Override
- public String[] getPreDeclaredNamespaceUris() {
- return new String[] {};
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
deleted file mode 100644
index 42ee9f0..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.rdfxml.RDFXMLReader
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter b/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
deleted file mode 100644
index d3370c3..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.rdfxml.RDFXMLWriter
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml b/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
deleted file mode 100644
index e05618f..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
-<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:beans="http://www.springframework.org/schema/beans"
- xsi:schemaLocation="http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <service ref="rdfXMLReader" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader" />
-
- <service ref="rdfXMLWriter" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleWriter" />
-
-</beans:beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml b/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
deleted file mode 100644
index 2560aac..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean id="rdfXMLReader" class="org.apache.taverna.scufl2.rdfxml.RDFXMLReader" />
-
- <bean id="rdfXMLWriter" class="org.apache.taverna.scufl2.rdfxml.RDFXMLWriter" />
-
-</beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
deleted file mode 100644
index 8f5d548..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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 java.net.URI;
-import java.net.URL;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.ObjectFactory;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Profile;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProfileDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Workflow;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundleDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowDocument;
-
-public class DummyParserTest {
-
- private JAXBContext jaxbContext;
- private Unmarshaller unmarshaller;
-
- @SuppressWarnings("unchecked")
- @Test
- public void parse() throws Exception {
- URL resource = getClass().getResource("example/workflowBundle.rdf");
- URI baseUri = resource.toURI();
-
- @SuppressWarnings("rawtypes")
- JAXBElement<WorkflowBundleDocument> workflowBundle = (JAXBElement<WorkflowBundleDocument>) unmarshaller
- .unmarshal(resource);
- WorkflowBundleDocument bundleDoc = workflowBundle.getValue();
- WorkflowBundle wfBundle = (WorkflowBundle) bundleDoc.getAny().get(0);
-
- //System.out.println(wfBundle.getName());
- //System.out.println(wfBundle.getMainWorkflow());
- //System.out.println(wfBundle.getSameBaseAs().getResource());
- for (WorkflowBundle.Workflow wfLink : wfBundle.getWorkflow()) {
- String about = wfLink.getWorkflow().getAbout();
- String seeAlso = wfLink.getWorkflow().getSeeAlso().getResource();
-
- URI wfResource = baseUri.resolve(seeAlso);
- JAXBElement<WorkflowDocument> unmarshalled = (JAXBElement<WorkflowDocument>) unmarshaller
- .unmarshal(wfResource.toURL());
- WorkflowDocument wfDoc = unmarshalled.getValue();
- Workflow wf = (Workflow) wfDoc.getAny().get(0);
- //System.out.println(about + " " + wf.getName());
- }
-
- for (WorkflowBundle.Profile profileLink : wfBundle.getProfile()) {
- String about = profileLink.getProfile().getAbout();
- String seeAlso = profileLink.getProfile().getSeeAlso()
- .getResource();
-
- URI profileResource = baseUri.resolve(seeAlso);
- JAXBElement unmarshalled = (JAXBElement) unmarshaller
- .unmarshal(profileResource.toURL());
- ProfileDocument profileDoc = (ProfileDocument) unmarshalled
- .getValue();
- Profile profile = (Profile) profileDoc.getAny().get(0);
- //System.out.println(about + " " + profile.getName());
- }
- }
-
- @Before
- public void makeUnmarshaller() throws JAXBException {
-
- Class<?>[] packages = { ObjectFactory.class,
- org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory.class,
- org.w3._2000._01.rdf_schema_.ObjectFactory.class };
- jaxbContext = JAXBContext.newInstance(packages);
- unmarshaller = jaxbContext.createUnmarshaller();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
deleted file mode 100644
index a4cb052..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Stack;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.rdfxml.ProfileParser;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestProfileParser {
- private static final String PROFILE_RDF = "example/profile/tavernaWorkbench.rdf";
-
- protected ProfileParser profileParser = new ProfileParser();
-
- private URL profileUrl;
-
- private WorkflowBundle bundle;
-
- private Profile profile;
-
- @Test
- public void activity() throws Exception {
- assertEquals(1, profile.getActivities().size());
- Activity helloScript = profile.getActivities().getByName("HelloScript");
- assertEquals("HelloScript", helloScript.getName());
- assertEquals(
-"http://ns.taverna.org.uk/2010/activity/beanshell",
- helloScript.getType().toASCIIString());
- assertEquals(1, helloScript.getInputPorts().size());
- InputActivityPort personName = helloScript.getInputPorts().getByName(
- "personName");
- assertEquals("personName", personName.getName());
- assertEquals(0, personName.getDepth().intValue());
-
- assertEquals(1, helloScript.getOutputPorts().size());
- OutputActivityPort hello = helloScript.getOutputPorts().getByName(
- "hello");
- assertEquals("hello", hello.getName());
- assertEquals(0, hello.getDepth().intValue());
- assertEquals(0, hello.getGranularDepth().intValue());
-
- }
-
- @Test
- public void configuration() throws Exception {
- assertEquals(1, profile.getConfigurations().size());
- Configuration hello = profile.getConfigurations().getByName("Hello");
- assertEquals("Hello", hello.getName());
- assertEquals(profile.getActivities().getByName("HelloScript"),
- hello.getConfigures());
- assertEquals(
-"http://ns.taverna.org.uk/2010/activity/beanshell#Config",
- hello.getType().toASCIIString());
- }
-
- public void loadProfileDocument() {
- profileUrl = getClass().getResource(PROFILE_RDF);
- assertNotNull("Could not find profile document " + PROFILE_RDF,
- profileUrl);
- }
-
- @Test
- public void parserStackEmpty() throws Exception {
- Stack<WorkflowBean> stack = profileParser.getParserState().getStack();
- assertEquals(1, stack.size());
- assertEquals(bundle, stack.peek());
- }
-
- @Test
- public void portBindings() throws Exception {
- ProcessorBinding hello = profile.getProcessorBindings().getByName(
- "Hello");
- assertEquals(1, hello.getInputPortBindings().size());
- assertEquals(1, hello.getOutputPortBindings().size());
-
- ProcessorInputPortBinding input = hello.getInputPortBindings()
- .iterator().next();
- InputActivityPort inputActivityPort = profile.getActivities()
- .getByName("HelloScript").getInputPorts()
- .getByName("personName");
- assertEquals(inputActivityPort, input.getBoundActivityPort());
-
- InputProcessorPort inputProcessorPort = bundle.getMainWorkflow()
- .getProcessors().getByName("Hello").getInputPorts()
- .getByName("name");
- assertEquals(inputProcessorPort, input.getBoundProcessorPort());
-
- ProcessorOutputPortBinding output = hello.getOutputPortBindings()
- .iterator().next();
- OutputActivityPort outputActivityPort = profile.getActivities()
- .getByName("HelloScript").getOutputPorts().getByName("hello");
- assertEquals(outputActivityPort, output.getBoundActivityPort());
-
- OutputProcessorPort outputProcessorPort = bundle.getMainWorkflow()
- .getProcessors().getByName("Hello").getOutputPorts()
- .getByName("greeting");
- assertEquals(outputProcessorPort, output.getBoundProcessorPort());
-
- }
-
- public void prepareParserState() throws URISyntaxException {
- bundle = new ExampleWorkflow().makeWorkflowBundle();
- bundle.getProfiles().clear();
- bundle.setMainProfile(null);
-
- profileParser.getParserState().setLocation(URI.create("/"));
- profileParser.getParserState().push(bundle);
- }
-
- @Test
- public void processorBinding() throws Exception {
- assertEquals(1, profile.getProcessorBindings().size());
- ProcessorBinding hello = profile.getProcessorBindings().getByName(
- "Hello");
- assertEquals(profile.getActivities().getByName("HelloScript"),
- hello.getBoundActivity());
- assertEquals(bundle.getMainWorkflow().getProcessors()
- .getByName("Hello"), hello.getBoundProcessor());
- assertEquals("Hello", hello.getName());
- assertEquals(10, hello.getActivityPosition().intValue());
- }
-
- @Test
- public void profileName() throws Exception {
- assertEquals("tavernaWorkbench", profile.getName());
- }
-
- @Before
- public void readProfile() throws Exception {
- loadProfileDocument();
- prepareParserState();
- profileParser.readProfile(URI.create("/profile/tavernaWorkbench/"),
- URI.create("profile/tavernaWorkbench.rdf"),
- profileUrl.openStream());
- profile = bundle.getProfiles().getByName("tavernaWorkbench");
- assertNotNull(profile);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
deleted file mode 100644
index 0ffccb1..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.io.structure.StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLSerializer;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestRDFXMLReader {
-
- private static final String EXAMPLE_SCUFL2 = "example.wfbundle";
- private URL exampleBundle;
- public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
- protected WorkflowBundle workflowBundle;
- protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
- org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO testWorkflowBundleIO = new org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO();
-
- @Test
- public void bundleName() throws Exception {
- assertEquals("HelloWorld", workflowBundle.getName());
- }
-
- @Before
- public void exampleBundle() throws ReaderException, IOException {
- String name = EXAMPLE_SCUFL2;
- exampleBundle = getClass().getResource(name);
- assertNotNull("Can't find example workflow bundle " + name,
- exampleBundle);
- workflowBundle = bundleIO.readBundle(exampleBundle,
- APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- }
-
- @Test
- public void iterationStrategy() throws Exception {
- Processor hello = workflowBundle.getMainWorkflow().getProcessors()
- .getByName("Hello");
- assertEquals(1, hello.getIterationStrategyStack().size());
- IterationStrategyTopNode iterationStrategyTopNode = hello
- .getIterationStrategyStack().get(0);
- assertTrue(iterationStrategyTopNode instanceof CrossProduct);
- CrossProduct cross = (CrossProduct) iterationStrategyTopNode;
- assertEquals(1, cross.size());
- PortNode portNode = (PortNode) cross.get(0);
- assertEquals(hello.getInputPorts().getByName("name"),
- portNode.getInputProcessorPort());
- assertEquals(0, portNode.getDesiredDepth().intValue());
- }
-
- @Test
- public void iterationStrategyWait4Me() throws Exception {
- Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
- .getByName("wait4me");
- assertEquals(0, wait4me.getIterationStrategyStack().size());
- }
-
- @Test
- public void processorInputPorts() throws Exception {
- Processor hello = workflowBundle.getMainWorkflow().getProcessors()
- .getByName("Hello");
- assertEquals(1, hello.getInputPorts().size());
- assertEquals("name", hello.getInputPorts().getByName("name").getName());
- assertEquals(0, hello.getInputPorts().getByName("name").getDepth()
- .intValue());
- }
-
- @Test
- public void processorOutputPorts() throws Exception {
- Processor hello = workflowBundle.getMainWorkflow().getProcessors()
- .getByName("Hello");
- assertEquals(1, hello.getOutputPorts().size());
- assertEquals("greeting", hello.getOutputPorts().getByName("greeting")
- .getName());
- assertEquals(0, hello.getOutputPorts().getByName("greeting").getDepth()
- .intValue());
- assertEquals(0, hello.getOutputPorts().getByName("greeting")
- .getGranularDepth().intValue());
- }
-
- @Test
- public void processorPortsWait4Me() throws Exception {
- Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
- .getByName("wait4me");
- assertEquals(0, wait4me.getInputPorts().size());
- assertEquals(0, wait4me.getOutputPorts().size());
- }
-
- @Test
- public void processors() throws Exception {
- Set<String> expected = new HashSet<String>();
- expected.add("Hello");
- expected.add("wait4me");
- assertEquals(expected, workflowBundle.getMainWorkflow().getProcessors()
- .getNames());
- }
-
- @Test
- public void profiles() throws Exception {
- assertEquals(2, workflowBundle.getProfiles().size());
- Profile tavernaWorkbench = workflowBundle.getProfiles().getByName(
- "tavernaWorkbench");
- assertEquals("tavernaWorkbench", tavernaWorkbench.getName());
- assertEquals(workflowBundle.getMainProfile(), tavernaWorkbench);
- assertEquals("tavernaServer", workflowBundle.getProfiles().getByName("tavernaServer").getName());
- }
-
- @Test
- public void globalBaseURI() throws Exception {
- assertEquals("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/", workflowBundle.getGlobalBaseURI().toASCIIString());
- }
-
- // TODO: Un-ignore and update this test
- @Ignore
- @Test
- public void testParsedWorkflow() throws Exception {
- assertEquals("HelloWorld", workflowBundle.getName());
-
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- bundleIO.writeBundle(workflowBundle, output,
- TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
- String bundleTxt = new String(output.toByteArray(), "UTF-8");
-
- assertEquals(testWorkflowBundleIO.getStructureFormatWorkflowBundle(),
- bundleTxt);
-
- }
-
- @Test
- public void guessMediaType() throws Exception {
-
- byte[] firstBytes = new byte[1024];
- getClass().getResourceAsStream(EXAMPLE_SCUFL2).read(firstBytes);
- assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, bundleIO.guessMediaTypeForSignature(firstBytes));
- // Mess up the mime type string
- firstBytes[45] = 32;
- assertEquals(null, bundleIO.guessMediaTypeForSignature(firstBytes));
- }
-
- @Test
- public void readStreamNoMediaType() throws ReaderException, IOException {
- workflowBundle = bundleIO.readBundle(getClass().getResourceAsStream(EXAMPLE_SCUFL2), null);
- assertNotNull(workflowBundle);
- }
-
- @Test
- public void workflowIdentifier() throws Exception {
- assertEquals(
- "http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/",
- workflowBundle.getMainWorkflow().getIdentifier()
- .toASCIIString());
- }
-
- @Test
- public void workflowInputPorts() throws Exception {
- NamedSet<InputWorkflowPort> inputPorts = workflowBundle
- .getMainWorkflow().getInputPorts();
- assertEquals(1, inputPorts.size());
- assertEquals("yourName", inputPorts.getByName("yourName").getName());
- assertEquals(0, inputPorts.getByName("yourName").getDepth().intValue());
- }
-
- @Test
- public void workflowOutputPorts() throws Exception {
- NamedSet<OutputWorkflowPort> outputPorts = workflowBundle
- .getMainWorkflow().getOutputPorts();
- assertEquals(1, outputPorts.size());
- assertEquals("results", outputPorts.getByName("results").getName());
- }
-
- @Test
- public void workflows() throws Exception {
- assertEquals(1, workflowBundle.getWorkflows().size());
- Workflow helloWorld = workflowBundle.getWorkflows().getByName(
- "HelloWorld");
- assertEquals("HelloWorld", helloWorld.getName());
- assertEquals(workflowBundle.getMainWorkflow(), helloWorld);
- }
-
- @Test
- public void xmlOutput() throws Exception {
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- new RDFXMLSerializer(workflowBundle).workflowDoc(output,
- workflowBundle.getMainWorkflow(),
- URI.create("workflows/HelloWorld.rdf"));
- @SuppressWarnings("unused")
- String bundleTxt = new String(output.toByteArray(), "UTF-8");
-// System.out.println(bundleTxt);
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
deleted file mode 100644
index f44aab8..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
+++ /dev/null
@@ -1,490 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.fail;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.commons.io.output.NullOutputStream;
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLSerializer;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
-import org.jdom.xpath.XPath;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestRDFXMLSerializer {
- protected static final String TAVERNAWORKBENCH_RDF = "profile/tavernaWorkbench.rdf";
- protected static final String TAVERNASERVER_RDF = "profile/tavernaServer.rdf";
- protected static final String HELLOWORLD_RDF = "workflow/HelloWorld.rdf";
- RDFXMLSerializer serializer = new RDFXMLSerializer();
- ExampleWorkflow exampleWf = new ExampleWorkflow();
- WorkflowBundle workflowBundle;
-
- Namespace XSI_NS = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
- Namespace RDF_NS = Namespace.getNamespace("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
- Namespace RDSF_NS = Namespace.getNamespace("rdfs", "http://www.w3.org/2000/01/rdf-schema#");
- Namespace SCUFL2_NS = Namespace.getNamespace("s", "http://ns.taverna.org.uk/2010/scufl2#");
- Namespace BEANSHELL_NS = Namespace.getNamespace("beanshell",
- "http://ns.taverna.org.uk/2010/activity/beanshell#");
-
-
- protected void assertXpathEquals(String expected, Element element,
- String xpath) throws JDOMException {
- Object o = xpathSelectElement(element, xpath);
- if (o == null) {
- fail("Can't find " + xpath + " in " + element);
- return;
- }
- String text;
- if (o instanceof Attribute) {
- text = ((Attribute)o).getValue();
- } else {
- text = ((Element)o).getValue();
- }
- assertEquals(expected, text);
- }
-
-
- protected void checkProfileDocument(Element root, boolean isWorkbench) throws JDOMException {
-
- assertEquals("ProfileDocument", root.getAttributeValue("type", XSI_NS));
- assertXpathEquals(isWorkbench ? "tavernaWorkbench/" : "tavernaServer/", root, "./@xml:base");
-
- Element profile = (Element) root.getChildren().get(0);
- Element activity = (Element) root.getChildren().get(1);
- Element binding = (Element) root.getChildren().get(2);
- Element configuration = (Element) root.getChildren().get(3);
-
-
- assertSame(xpathSelectElement(root, "./s:Profile"), profile);
- assertSame(xpathSelectElement(root, "./s:Activity"), activity);
- assertSame(xpathSelectElement(root, "./s:ProcessorBinding"), binding);
- assertSame(xpathSelectElement(root, "./s:Configuration"), configuration);
-
- assertXpathEquals("", profile, "./@rdf:about");
- assertXpathEquals(isWorkbench ? "tavernaWorkbench" : "tavernaServer", profile, "./s:name");
- assertXpathEquals("processorbinding/Hello/", profile, "./s:processorBinding/@rdf:resource");
- assertXpathEquals("configuration/Hello/", profile, "./s:activateConfiguration/@rdf:resource");
-
- // activity
- assertXpathEquals("activity/HelloScript/", activity, "./@rdf:about");
- assertXpathEquals("HelloScript", activity, "./s:name");
- assertXpathEquals("http://ns.taverna.org.uk/2010/activity/beanshell",
- activity, "./rdf:type/@rdf:resource");
- // activity input
- assertXpathEquals("activity/HelloScript/in/personName", activity, "./s:inputActivityPort/s:InputActivityPort/@rdf:about");
- assertXpathEquals("personName", activity, "./s:inputActivityPort/s:InputActivityPort/s:name");
- assertXpathEquals("0", activity, "./s:inputActivityPort/s:InputActivityPort/s:portDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:inputActivityPort/s:InputActivityPort/s:portDepth/@rdf:datatype");
- // activity output
- assertXpathEquals("activity/HelloScript/out/hello", activity, "./s:outputActivityPort/s:OutputActivityPort/@rdf:about");
- assertXpathEquals("hello", activity, "./s:outputActivityPort/s:OutputActivityPort/s:name");
- assertXpathEquals("0", activity, "./s:outputActivityPort/s:OutputActivityPort/s:portDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:outputActivityPort/s:OutputActivityPort/s:portDepth/@rdf:datatype");
- assertXpathEquals("0", activity, "./s:outputActivityPort/s:OutputActivityPort/s:granularPortDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:outputActivityPort/s:OutputActivityPort/s:granularPortDepth/@rdf:datatype");
-
- // processor binding
- assertXpathEquals("processorbinding/Hello/", binding, "./@rdf:about");
- assertXpathEquals("Hello", binding, "./s:name");
- assertXpathEquals("activity/HelloScript/", binding, "./s:bindActivity/@rdf:resource");
- assertXpathEquals("../../workflow/HelloWorld/processor/Hello/", binding, "./s:bindProcessor/@rdf:resource");
- // input port binding
- assertXpathEquals("processorbinding/Hello/in/name", binding, "./s:inputPortBinding/s:InputPortBinding/@rdf:about");
- assertXpathEquals("activity/HelloScript/in/personName", binding, "./s:inputPortBinding/s:InputPortBinding/s:bindInputActivityPort/@rdf:resource");
- assertXpathEquals("../../workflow/HelloWorld/processor/Hello/in/name", binding, "./s:inputPortBinding/s:InputPortBinding/s:bindInputProcessorPort/@rdf:resource");
- // output port binding
- assertXpathEquals("processorbinding/Hello/out/greeting", binding, "./s:outputPortBinding/s:OutputPortBinding/@rdf:about");
- assertXpathEquals("activity/HelloScript/out/hello", binding, "./s:outputPortBinding/s:OutputPortBinding/s:bindOutputActivityPort/@rdf:resource");
- assertXpathEquals("../../workflow/HelloWorld/processor/Hello/out/greeting", binding, "./s:outputPortBinding/s:OutputPortBinding/s:bindOutputProcessorPort/@rdf:resource");
-
-
- assertXpathEquals("configuration/Hello/", configuration, "./@rdf:about");
- assertXpathEquals("configuration/Hello.json", configuration, "./rdfs:seeAlso/@rdf:resource");
-
- assertXpathEquals(
- "http://ns.taverna.org.uk/2010/activity/beanshell#Config",
- configuration, "./rdf:type/@rdf:resource");
- assertXpathEquals("Hello", configuration, "./s:name");
- assertXpathEquals("activity/HelloScript/", configuration, "./s:configure/@rdf:resource");
-// assertXpathEquals("hello = \"Hello, \" + personName;\n" +
-// (isWorkbench ? "JOptionPane.showMessageDialog(null, hello);" : "System.out.println(\"Server says: \" + hello);"), configuration, "./beanshell:script");
-
- }
-
- protected void checkRoot(Element root) {
- assertEquals(RDF_NS, root.getNamespace());
- assertEquals("rdf", root.getNamespacePrefix());
- assertEquals("RDF", root.getName());
- assertEquals(SCUFL2_NS, root.getNamespace(""));
- String schemaLocation = root.getAttributeValue("schemaLocation", XSI_NS);
- schemaLocation = schemaLocation.replaceAll("\\s+", " ");
- String[] schemaLocations = schemaLocation.split(" ");
- String[] expectedSchemaLocations = {
- "http://ns.taverna.org.uk/2010/scufl2#","http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd",
- "http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
- };
- assertArrayEquals(expectedSchemaLocations, schemaLocations);
- }
-
-
- protected void checkWorkflowBundleDocument(Element root) throws JDOMException {
- assertEquals("WorkflowBundleDocument", root.getAttributeValue("type", XSI_NS));
-
- assertXpathEquals("./", root, "./@xml:base");
-
- Element wbundle = root.getChild("WorkflowBundle", SCUFL2_NS);
- assertSame(wbundle, root.getChildren().get(0));
-
-
-
- assertXpathEquals("", wbundle, "./@rdf:about");
-
- assertXpathEquals("HelloWorld", wbundle, "./s:name");
- assertXpathEquals("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/",
- wbundle, "./s:globalBaseURI/@rdf:resource");
-
- assertXpathEquals("workflow/HelloWorld/",
- wbundle, "./s:mainWorkflow/@rdf:resource");
- assertXpathEquals("workflow/HelloWorld/",
- wbundle, "./s:workflow/s:Workflow/@rdf:about");
- assertXpathEquals(HELLOWORLD_RDF,
- wbundle, "./s:workflow/s:Workflow/rdfs:seeAlso/@rdf:resource");
-
- assertXpathEquals("profile/tavernaWorkbench/",
- wbundle, "./s:mainProfile/@rdf:resource");
-
-
-
- assertXpathEquals("profile/tavernaServer/",
- wbundle, "./s:profile[1]/s:Profile/@rdf:about");
- assertXpathEquals("profile/tavernaServer.rdf", wbundle, "./s:profile[1]/s:Profile/rdfs:seeAlso/@rdf:resource");
-
- assertXpathEquals("profile/tavernaWorkbench/",
- wbundle, "./s:profile[2]/s:Profile/@rdf:about");
- assertXpathEquals(TAVERNAWORKBENCH_RDF,
- wbundle, "./s:profile[2]/s:Profile/rdfs:seeAlso/@rdf:resource");
-
-
-
- }
-
-
- protected void checkWorkflowDocument(Element root) throws JDOMException {
- assertEquals("WorkflowDocument", root.getAttributeValue("type", XSI_NS));
-
-
-
- assertXpathEquals("HelloWorld/", root, "./@xml:base");
-
-
- Element wf = root.getChild("Workflow", SCUFL2_NS);
- assertSame(wf, root.getChildren().get(0));
-
- assertXpathEquals("", wf, "./@rdf:about");
-
-
- assertXpathEquals("HelloWorld", wf, "./s:name");
- assertXpathEquals("http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/",
- wf, "./s:workflowIdentifier/@rdf:resource");
-
- assertXpathEquals("in/yourName",
- wf, "./s:inputWorkflowPort/s:InputWorkflowPort/@rdf:about");
- assertXpathEquals("yourName",
- wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:name");
- assertXpathEquals("0",
- wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:portDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:portDepth/@rdf:datatype");
-
-
- assertXpathEquals("out/results",
- wf, "./s:outputWorkflowPort/s:OutputWorkflowPort/@rdf:about");
- assertXpathEquals("results",
- wf, "./s:outputWorkflowPort/s:OutputWorkflowPort/s:name");
-
-
- assertXpathEquals("processor/Hello/",
- wf, "./s:processor[1]/s:Processor/@rdf:about");
- assertXpathEquals("Hello",
- wf, "./s:processor[1]/s:Processor/s:name");
-
- assertXpathEquals("processor/Hello/in/name",
- wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/@rdf:about");
- assertXpathEquals("name",
- wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:name");
- assertXpathEquals("0",
- wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:portDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:portDepth/@rdf:datatype");
-
-
-
- assertXpathEquals("processor/Hello/out/greeting",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/@rdf:about");
-
- assertXpathEquals("greeting",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:name");
- assertXpathEquals("0",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:portDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:portDepth/@rdf:datatype");
- assertXpathEquals("0",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:granularPortDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:granularPortDepth/@rdf:datatype");
-
- assertXpathEquals("processor/Hello/iterationstrategy/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/@rdf:about");
- assertXpathEquals("Collection", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/@rdf:parseType");
- assertXpathEquals("processor/Hello/iterationstrategy/0/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/@rdf:about");
- assertXpathEquals("Collection", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/@rdf:parseType");
- assertXpathEquals("processor/Hello/iterationstrategy/0/0/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/@rdf:about");
- assertXpathEquals("processor/Hello/in/name", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:iterateOverInputPort/@rdf:resource");
- assertXpathEquals("0", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:desiredDepth");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:desiredDepth/@rdf:datatype");
-
-
- assertXpathEquals("processor/wait4me/",
- wf, "./s:processor[2]/s:Processor/@rdf:about");
- assertXpathEquals("wait4me",
- wf, "./s:processor[2]/s:Processor/s:name");
-
-
- assertXpathEquals("datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0",
- wf, "./s:datalink[1]/s:DataLink/@rdf:about");
-
- assertXpathEquals("datalink?from=in/yourName&to=processor/Hello/in/name",
- wf, "./s:datalink[2]/s:DataLink/@rdf:about");
-
- assertXpathEquals("datalink?from=in/yourName&to=out/results&mergePosition=1",
- wf, "./s:datalink[3]/s:DataLink/@rdf:about");
- assertXpathEquals("in/yourName",
- wf, "./s:datalink[3]/s:DataLink/s:receiveFrom/@rdf:resource");
- assertXpathEquals("out/results",
- wf, "./s:datalink[3]/s:DataLink/s:sendTo/@rdf:resource");
- assertXpathEquals("1",
- wf, "./s:datalink[3]/s:DataLink/s:mergePosition");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:datalink[3]/s:DataLink/s:mergePosition/@rdf:datatype");
-
- assertXpathEquals("control?block=processor/Hello/&untilFinished=processor/wait4me/",
- wf, "./s:control/s:Blocking/@rdf:about");
-
-
- assertXpathEquals("processor/Hello/",
- wf, "./s:control/s:Blocking/s:block/@rdf:resource");
- assertXpathEquals("processor/wait4me/",
- wf, "./s:control/s:Blocking/s:untilFinished/@rdf:resource");
-
- assertXpathEquals("datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0",
- wf, "./s:datalink[1]/s:DataLink/@rdf:about");
- assertXpathEquals("processor/Hello/out/greeting",
- wf, "./s:datalink[1]/s:DataLink/s:receiveFrom/@rdf:resource");
- assertXpathEquals("out/results",
- wf, "./s:datalink[1]/s:DataLink/s:sendTo/@rdf:resource");
- assertXpathEquals("0",
- wf, "./s:datalink[1]/s:DataLink/s:mergePosition");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:datalink[1]/s:DataLink/s:mergePosition/@rdf:datatype");
-
-
-
- assertXpathEquals("datalink?from=in/yourName&to=processor/Hello/in/name",
- wf, "./s:datalink[2]/s:DataLink/@rdf:about");
- assertXpathEquals("in/yourName",
- wf, "./s:datalink[2]/s:DataLink/s:receiveFrom/@rdf:resource");
- assertXpathEquals("processor/Hello/in/name",
- wf, "./s:datalink[2]/s:DataLink/s:sendTo/@rdf:resource");
- assertNull(xpathSelectElement(wf, "./s:datalink[2]/s:DataLink/s:mergePosition"));
-
-
-
- assertXpathEquals("datalink?from=in/yourName&to=out/results&mergePosition=1",
- wf, "./s:datalink[3]/s:DataLink/@rdf:about");
- assertXpathEquals("in/yourName",
- wf, "./s:datalink[3]/s:DataLink/s:receiveFrom/@rdf:resource");
- assertXpathEquals("out/results",
- wf, "./s:datalink[3]/s:DataLink/s:sendTo/@rdf:resource");
- assertXpathEquals("1",
- wf, "./s:datalink[3]/s:DataLink/s:mergePosition");
- assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
- wf, "./s:datalink[3]/s:DataLink/s:mergePosition/@rdf:datatype");
-
- assertXpathEquals("control?block=processor/Hello/&untilFinished=processor/wait4me/",
- wf, "./s:control/s:Blocking/@rdf:about");
-
-
- assertXpathEquals("processor/Hello/",
- wf, "./s:control/s:Blocking/s:block/@rdf:resource");
- assertXpathEquals("processor/wait4me/",
- wf, "./s:control/s:Blocking/s:untilFinished/@rdf:resource");
-
- }
-
- // TODO: Update tests
- @Ignore
- @Test
- public void exampleProfileTavernaServer() throws Exception {
- URL tavernaWorkbenc = getClass().getResource("example/profile/tavernaServer.rdf");
- SAXBuilder saxBuilder = new SAXBuilder();
- Document doc = saxBuilder.build(tavernaWorkbenc);
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkProfileDocument(root, false);
-
- }
-
-
- // TODO: Update tests
- @Ignore
- @Test
- public void exampleProfileTavernaWorkbench() throws Exception {
- URL tavernaWorkbenc = getClass().getResource("example/profile/tavernaWorkbench.rdf");
- SAXBuilder saxBuilder = new SAXBuilder();
- Document doc = saxBuilder.build(tavernaWorkbenc);
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkProfileDocument(root, true);
-
- }
-
- @Test
- public void exampleWorkflow() throws Exception {
- URL workflowURL = getClass().getResource("example/workflow/HelloWorld.rdf");
- SAXBuilder saxBuilder = new SAXBuilder();
- Document doc = saxBuilder.build(workflowURL);
-
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkWorkflowDocument(root);
-
- }
-
-
- @Test
- public void exampleWorkflowBundle() throws Exception {
- URL workflowBundleURL = getClass().getResource("example/workflowBundle.rdf");
-
-
- SAXBuilder saxBuilder = new SAXBuilder();
- Document doc = saxBuilder.build(workflowBundleURL);
-
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkWorkflowBundleDocument(root);
-
- }
-
-
- @Before
- public void makeExampleWorkflow() {
- workflowBundle = new ExampleWorkflow().makeWorkflowBundle();
- serializer.setWfBundle(workflowBundle);
- }
-
-
- protected Document parseXml(ByteArrayOutputStream outStream)
- throws JDOMException, IOException {
- SAXBuilder saxBuilder = new SAXBuilder();
- return saxBuilder.build(new ByteArrayInputStream(outStream.toByteArray()));
- }
-
-
- @Test
- public void profile() throws Exception {
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- // To test that seeAlso URIs are stored
- serializer.profileDoc(outStream, workflowBundle.getMainProfile(), URI.create(TAVERNAWORKBENCH_RDF));
- //System.out.write(outStream.toByteArray());
- Document doc = parseXml(outStream);
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkProfileDocument(root, true);
- }
-
-
- @Test
- public void workflow() throws Exception {
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- // To test that seeAlso URIs are stored
- serializer.workflowDoc(outStream, workflowBundle.getMainWorkflow(), URI.create(HELLOWORLD_RDF));
-// System.out.write(outStream.toByteArray());
- Document doc = parseXml(outStream);
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkWorkflowDocument(root);
- }
-
- @Test
- public void workflowBundle() throws Exception {
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- // To test that seeAlso URIs are stored
- serializer.workflowDoc(new NullOutputStream(), workflowBundle.getMainWorkflow(), URI.create(HELLOWORLD_RDF));
- serializer.profileDoc(new NullOutputStream(), workflowBundle.getProfiles().getByName("tavernaWorkbench"), URI.create(TAVERNAWORKBENCH_RDF));
- serializer.profileDoc(new NullOutputStream(), workflowBundle.getProfiles().getByName("tavernaServer"), URI.create(TAVERNASERVER_RDF));
-
- serializer.workflowBundleDoc(outStream, URI.create("workflowBundle.rdf"));
- //System.out.write(outStream.toByteArray());
- Document doc = parseXml(outStream);
- Element root = doc.getRootElement();
-
- checkRoot(root);
- checkWorkflowBundleDocument(root);
-
- }
-
-
- protected Object xpathSelectElement(Element element, String xpath) throws JDOMException {
- XPath x = XPath.newInstance(xpath);
- x.addNamespace(SCUFL2_NS);
- x.addNamespace(RDF_NS);
- x.addNamespace(RDSF_NS);
- x.addNamespace(BEANSHELL_NS);
- //x.addNamespace(XML_NS);
-
- return x.selectSingleNode(element);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
deleted file mode 100644
index 4ecad1b..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLReader;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-import org.junit.Before;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class TestRDFXMLWriter {
-
- private static final String APPLICATION_RDF_XML = "application/rdf+xml";
- public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
- protected WorkflowBundle workflowBundle;
- protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-
- @Before
- public void makeExampleWorkflow() {
- workflowBundle = new TestWorkflowBundleIO().makeWorkflowBundle();
- }
-
- @Test
- public void awkwardFilenames() throws Exception {
- workflowBundle.getProfiles().removeByName("tavernaServer");
- String funnyName = "Funny_%2f_characters_50%_of the time";
- workflowBundle.getMainProfile().setName(funnyName);
- workflowBundle.getMainWorkflow().setName(funnyName);
- File bundleFile = tempFile();
- bundleIO.writeBundle(workflowBundle, bundleFile,
- APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- UCFPackage ucfPackage = new UCFPackage(bundleFile);
- Map<String, ResourceEntry> profiles = ucfPackage.listResources("profile");
- assertEquals(2, profiles.size());
- assertTrue(profiles.keySet().contains("Funny_%252f_characters_50%25_of%20the%20time.rdf"));
- assertTrue(profiles.keySet().contains("Funny_%252f_characters_50%25_of%20the%20time/"));
-
- Map<String, ResourceEntry> workflows = ucfPackage.listResources("workflow");
- assertEquals(1, workflows.size());
- assertEquals("Funny_%252f_characters_50%25_of%20the%20time.rdf", workflows.keySet().iterator().next());
-
- // and.. can we read it in again correctly?
- WorkflowBundle readBundle = bundleIO.readBundle(bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- assertEquals(funnyName, readBundle.getMainProfile().getName());
- assertEquals(funnyName, readBundle.getMainWorkflow().getName());
- // did the JSON parse back in?
- JsonNode oldJson = workflowBundle.getMainProfile().getConfigurations().getByName("Hello").getJson();
- assertTrue(oldJson.get("script").asText().startsWith("hello"));
- JsonNode newJson = readBundle.getMainProfile().getConfigurations().getByName("Hello").getJson();
- assertTrue(newJson.get("script").asText().startsWith("hello"));
- assertEquals(oldJson, newJson);
- }
-
- @Test
- public void writeBundleToFile() throws Exception {
- File bundleFile = tempFile();
- bundleIO.writeBundle(workflowBundle, bundleFile,
- APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- UCFPackage ucfPackage = new UCFPackage(bundleFile);
- verifyRootFile(ucfPackage);
- verifyPackageStructure(ucfPackage);
- // TODO: Check RDF/XML using xpath
- }
-
- private void verifyRootFile(UCFPackage ucfPackage) {
- List<ResourceEntry> rootFiles = ucfPackage.getRootFiles();
- assertEquals(1, rootFiles.size());
- assertEquals("workflowBundle.rdf", rootFiles.get(0).getPath());
- assertEquals("application/rdf+xml", rootFiles.get(0).getMediaType());
- assertEquals("0.4.0", rootFiles.get(0).getVersion());
- }
-
-
- @Test
- public void writeBundleToStream() throws Exception {
-
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- bundleIO.writeBundle(workflowBundle, outStream,
- APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- outStream.close();
-
- InputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
- UCFPackage ucfPackage;
- try {
- // Avoid UCFPackage from creating a temporary file
- System.setProperty("org.odftoolkit.odfdom.tmpfile.disable", "true");
- ucfPackage = new UCFPackage(inStream);
- } finally {
- System.clearProperty("org.odftoolkit.odfdom.tmpfile.disable");
- }
- verifyPackageStructure(ucfPackage);
-
- }
-
- protected void verifyPackageStructure(UCFPackage ucfPackage) {
- assertEquals(
- RDFXMLReader.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE,
- ucfPackage.getPackageMediaType());
- assertEquals(APPLICATION_RDF_XML,
- ucfPackage.getResourceEntry("workflowBundle.rdf")
- .getMediaType());
-
- assertEquals(APPLICATION_RDF_XML,
- ucfPackage.getResourceEntry("workflow/HelloWorld.rdf")
- .getMediaType());
-
- assertEquals(APPLICATION_RDF_XML,
- ucfPackage.getResourceEntry("profile/tavernaServer.rdf")
- .getMediaType());
- assertEquals(APPLICATION_RDF_XML,
- ucfPackage.getResourceEntry("profile/tavernaWorkbench.rdf")
- .getMediaType());
- }
-
- public File tempFile() throws IOException {
- File bundleFile = File.createTempFile("test", ".scufl2");
-// bundleFile.deleteOnExit();
- System.out.println(bundleFile);
- return bundleFile;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/e27d1dbe/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
deleted file mode 100644
index 2ac4bd2..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * 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.rdfxml.TestRDFXMLWriter.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.junit.Before;
-import org.junit.Test;
-
-
-@SuppressWarnings("resource")
-public class TestResourcesInZip {
-
- protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
- protected ExampleWorkflow exampleWorkflow = new ExampleWorkflow();
- protected WorkflowBundle originalBundle;
-
-
- @Before
- public void makeBundle() {
- originalBundle = exampleWorkflow.makeWorkflowBundle();
- }
-
- @Test
- public void singleFile() throws Exception {
- UCFPackage resources = originalBundle.getResources();
- assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, resources.getPackageMediaType());
- resources.addResource("Hello there", "hello.txt", "text/plain");
- File bundleFile = tempFile();
- bundleIO.writeBundle(originalBundle, bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, resources.getPackageMediaType());
- assertEquals(1, resources.getRootFiles().size());
- assertEquals("workflowBundle.rdf", resources.getRootFiles().get(0).getPath());
-
- ZipFile zipFile = new ZipFile(bundleFile);
- ZipEntry hello = zipFile.getEntry("hello.txt");
- assertEquals("hello.txt", hello.getName());
- assertEquals("Hello there",
- IOUtils.toString(zipFile.getInputStream(hello), "ASCII"));
- }
-
- @Test
- public void differentMediaType() throws Exception {
- UCFPackage resources = originalBundle.getResources();
- resources.setPackageMediaType("application/x-something-else");
- assertEquals("application/x-something-else", resources.getPackageMediaType());
-
- resources.addResource("Hello there", "hello.txt", "text/plain");
- File bundleFile = tempFile();
- bundleIO.writeBundle(originalBundle, bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
- assertEquals("application/x-something-else", resources.getPackageMediaType());
- assertEquals(0, resources.getRootFiles().size());
- // RDFXMLWriter does not touch the rootFile or media type if it's non-null
-
- ZipFile zipFile = new ZipFile(bundleFile);
- ZipEntry hello = zipFile.getEntry("hello.txt");
- assertEquals("hello.txt", hello.getName());
- assertEquals("Hello there",
- IOUtils.toString(zipFile.getInputStream(hello), "ASCII"));
- }
-
- public File tempFile() throws IOException {
- File bundleFile = File.createTempFile("test", ".scufl2");
- bundleFile.deleteOnExit();
- //System.out.println(bundleFile);
- return bundleFile;
- }
-}