http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Port.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Port.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Port.java deleted file mode 100644 index 4c2af25..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Port.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -/** - * a Port that has no pName is either a WF input or output, depending on isInput - * - * @author Paolo Missier - */ -public class Port { - - @Override - public String toString() { - return "Port [identifier=" + identifier + ", isInputPort=" - + isInputPort + ", portName=" + portName + ", processorName=" - + processorName + ", workflowId=" + workflowId + "]"; - } - - @Override - public int hashCode() { - return 31 + ((identifier == null) ? 0 : identifier.hashCode()); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Port other = (Port) obj; - if (identifier == null) { - if (other.identifier != null) - return false; - } else if (!identifier.equals(other.identifier)) - return false; - return true; - } - - private String identifier; - private String portName; - private String processorName; - private boolean isInputPort; - private String workflowId; - private int depth = 0; - private Integer resolvedDepth = null; - private int iterationStrategyOrder = 0; - private String processorId; - - /** - * @return the workflowId - */ - public String getWorkflowId() { - return workflowId; - } - - /** - * @param workflowId - * the workflowId to set - */ - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } - - /** - * @return the vName - */ - public String getPortName() { - return portName; - } - - /** - * @param name - * the portName to set - */ - public void setPortName(String portName) { - this.portName = portName; - } - - /** - * @return the processorName - */ - public String getProcessorName() { - return processorName; - } - - /** - * @param name - * the processorName to set - */ - public void setProcessorName(String processorName) { - this.processorName = processorName; - } - - /** - * @return <code>true</code> if the port is an input port, - * <code>false</code> if it is an output port - */ - public boolean isInputPort() { - return isInputPort; - } - - /** - * @param isInputPort - * <code>true</code> if the port is an input port, - * <code>false</code> if it is an output port - */ - public void setInputPort(boolean isInputPort) { - this.isInputPort = isInputPort; - } - - /** - * @return the depth - */ - public int getDepth() { - return depth; - } - - /** - * @param depth - * the depth to set - */ - public void setDepth(int depth) { - this.depth = depth; - } - - /** - * @return the resolvedDepth - */ - public Integer getResolvedDepth() { - return resolvedDepth; - } - - /** - * @param resolvedDepth - * the resolvedDepth to set - */ - public void setResolvedDepth(Integer resolvedDepth) { - this.resolvedDepth = resolvedDepth; - } - - /** - * @return <code>true</code> if the {@link #resolvedDepth} has been set - */ - public boolean isResolvedDepthSet() { - return resolvedDepth != null; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getIdentifier() { - return identifier; - } - - /** - * @return the iterationStrategyOrder - */ - public int getIterationStrategyOrder() { - return iterationStrategyOrder; - } - - /** - * @param iterationStrategyOrder - * the iterationStrategyOrder to set - */ - public void setIterationStrategyOrder(int iterationStrategyOrder) { - this.iterationStrategyOrder = iterationStrategyOrder; - } - - public String getProcessorId() { - return processorId; - } - - public void setProcessorId(String processorId) { - this.processorId = processorId; - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/PortBinding.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/PortBinding.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/PortBinding.java deleted file mode 100644 index c6b0b86..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/PortBinding.java +++ /dev/null @@ -1,258 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -/** - * @author Paolo Missier - * - */ -public class PortBinding { - private String workflowId; - private String portName; - private String workflowRunId; - private String value; - private String collIDRef; - private int positionInColl; - private String processorName; - private String valueType; - private String reference; - private String iteration; - private String resolvedValue; - private String portId; - private Boolean isInputPort; - - public PortBinding() { - } - - public PortBinding(PortBinding vb) { - workflowId = vb.workflowId; - portName = vb.portName; - workflowRunId = vb.workflowRunId; - value = vb.value; - collIDRef = vb.collIDRef; - positionInColl = vb.positionInColl; - processorName = vb.processorName; - valueType = vb.valueType; - reference = vb.reference; - iteration = vb.iteration; - resolvedValue = vb.resolvedValue; - portId = vb.portId; - isInputPort = vb.isInputPort; - } - - public String getPortId() { - return portId; - } - - @Override - public String toString() { - return "PortBinding [workflowId=" + workflowId + ", portName=" - + portName + ", workflowRunId=" + workflowRunId + ", value=" - + value + ", collIDRef=" + collIDRef + ", positionInColl=" - + positionInColl + ", processorName=" + processorName - + ", valueType=" + valueType + ", reference=" + reference - + ", iteration=" + iteration + ", resolvedValue=" - + resolvedValue + ", portId=" + portId + ", isInputPort=" - + isInputPort + "]"; - } - - /** - * @return the positionInColl - */ - public int getPositionInColl() { - return positionInColl; - } - - /** - * @param positionInColl - * the positionInColl to set - */ - public void setPositionInColl(int positionInColl) { - this.positionInColl = positionInColl; - } - - /** - * @return the valueType - */ - public String getValueType() { - return valueType; - } - - /** - * @param valueType - * the valueType to set - */ - public void setValueType(String valueType) { - this.valueType = valueType; - } - - /** - * @return the portName - */ - public String getPortName() { - return portName; - } - - /** - * @param portName - * the portName to set - */ - public void setPortName(String portName) { - this.portName = portName; - } - - /** - * @return the workflowRunId - */ - public String getWorkflowRunId() { - return workflowRunId; - } - - /** - * @param workflowRunId - * the workflowRunId to set - */ - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - /** - * @return the processorName - */ - public String getProcessorName() { - return processorName; - } - - /** - * @param processorName - * the processorName to set - */ - public void setProcessorName(String processorName) { - this.processorName = processorName; - } - - /** - * @return the collIDRef - */ - public String getCollIDRef() { - return collIDRef; - } - - /** - * @param collIDRef - * the collIDRef to set - */ - public void setCollIDRef(String collIDRef) { - this.collIDRef = collIDRef; - } - - /** - * @return the iteration - */ - public String getIteration() { - return iteration; - } - - /** - * @param iterationVector - * the iteration to set - */ - public void setIteration(String iterationVector) { - this.iteration = iterationVector; - } - - /** - * @return the value - */ - public String getValue() { - return value; - } - - /** - * @param value - * the value to set - */ - public void setValue(String value) { - this.value = value; - } - - /** - * @return the ref - */ - public String getReference() { - return reference; - } - - /** - * @param ref - * the ref to set - */ - public void setReference(String ref) { - this.reference = ref; - } - - /** - * @return the resolvedValue - */ - public String getResolvedValue() { - return resolvedValue; - } - - /** - * @param resolvedValue - * the resolvedValue to set - */ - public void setResolvedValue(String resolvedValue) { - this.resolvedValue = resolvedValue; - } - - /** - * @return the workflowId - */ - public String getWorkflowId() { - return workflowId; - } - - /** - * @param workflowId - * the workflowId to set - */ - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } - - public void setPortId(String portId) { - this.portId = portId; - - } - - public void setIsInputPort(boolean isInputPort) { - this.setInputPort(isInputPort); - } - - public void setInputPort(boolean isInputPort) { - this.isInputPort = isInputPort; - } - - public Boolean isInputPort() { - return isInputPort; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorBinding.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorBinding.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorBinding.java deleted file mode 100644 index 46a8565..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorBinding.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -/** - * @author Paolo Missier - * - */ -public class ProcessorBinding { - private String identifier; - - private String processorName; - private String workflowRunId; - private String workflowId; - private String firstActivityClassName; - private String iterationVector; - - @Override - public String toString() { - return "ProcessorBinding [firstActivityClassName=" - + firstActivityClassName + ", identifier=" + identifier - + ", iterationVector=" + iterationVector + ", processorName=" - + processorName + ", workflowId=" + workflowId - + ", workflowRunId=" + workflowRunId + "]"; - } - - /** - * @return the processorNameRef - */ - public String getProcessorName() { - return processorName; - } - - /** - * @param nameRef - * the processorNameRef to set - */ - public void setProcessorName(String processorNameRef) { - this.processorName = processorNameRef; - } - - /** - * @return the execIDRef - */ - public String getWorkflowRunId() { - return workflowRunId; - } - - /** - * @param workflowRunId - * the workflowRunId to set - */ - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - /** - * @return the actName - */ - public String getFirstActivityClassName() { - return firstActivityClassName; - } - - /** - * @param actName - * the actName to set - */ - public void setFirstActivityClassName(String actName) { - this.firstActivityClassName = actName; - } - - /** - * @return the iteration - */ - public String getIterationVector() { - return iterationVector; - } - - /** - * @param iterationVector - * the iteration to set - */ - public void setIterationVector(String iterationVector) { - this.iterationVector = iterationVector; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getIdentifier() { - return identifier; - } - - /** - * @return the workflowId - */ - public String getWorkflowId() { - return workflowId; - } - - /** - * @param workflowId - * the workflowId to set - */ - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorEnactment.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorEnactment.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorEnactment.java deleted file mode 100644 index fd59fdf..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProcessorEnactment.java +++ /dev/null @@ -1,151 +0,0 @@ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -import java.sql.Timestamp; - -public class ProcessorEnactment { - private Timestamp enactmentEnded; - private Timestamp enactmentStarted; - private String finalOutputsDataBindingId; - private String initialInputsDataBindingId; - private String iteration; - private String parentProcessorEnactmentId; - private String processEnactmentId; - private String processIdentifier; - private String processorId; - private String workflowRunId; - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ProcessorEnactment other = (ProcessorEnactment) obj; - if (processEnactmentId == null) { - if (other.processEnactmentId != null) - return false; - } else if (!processEnactmentId.equals(other.processEnactmentId)) - return false; - return true; - } - - public Timestamp getEnactmentEnded() { - return enactmentEnded; - } - - public Timestamp getEnactmentStarted() { - return enactmentStarted; - } - - public String getFinalOutputsDataBindingId() { - return finalOutputsDataBindingId; - } - - public String getInitialInputsDataBindingId() { - return initialInputsDataBindingId; - } - - public String getIteration() { - return iteration; - } - - public String getParentProcessorEnactmentId() { - return parentProcessorEnactmentId; - } - - public String getProcessEnactmentId() { - return processEnactmentId; - } - - public String getProcessIdentifier() { - return processIdentifier; - } - - public String getProcessorId() { - return processorId; - } - - public String getWorkflowRunId() { - return workflowRunId; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime - * result - + ((processEnactmentId == null) ? 0 : processEnactmentId - .hashCode()); - return result; - } - - public void setEnactmentEnded(Timestamp enactmentEnded) { - this.enactmentEnded = enactmentEnded; - } - - public void setEnactmentStarted(Timestamp enactmentStarted) { - this.enactmentStarted = enactmentStarted; - } - - public void setFinalOutputsDataBindingId(String finalOutputsDataBindingId) { - this.finalOutputsDataBindingId = finalOutputsDataBindingId; - } - - public void setInitialInputsDataBindingId(String initialInputsDataBindingId) { - this.initialInputsDataBindingId = initialInputsDataBindingId; - } - - public void setIteration(String iteration) { - this.iteration = iteration; - } - - public void setParentProcessorEnactmentId(String parentProcessorEnactmentId) { - this.parentProcessorEnactmentId = parentProcessorEnactmentId; - } - - public void setProcessEnactmentId(String processEnactmentId) { - this.processEnactmentId = processEnactmentId; - } - - public void setProcessIdentifier(String processIdentifier) { - this.processIdentifier = processIdentifier; - } - - public void setProcessorId(String processorId) { - this.processorId = processorId; - } - - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("ProcessorEnactment [enactmentEnded="); - builder.append(enactmentEnded); - builder.append(", enactmentStarted="); - builder.append(enactmentStarted); - builder.append(", finalOutputs="); - builder.append(finalOutputsDataBindingId); - builder.append(", initialInputs="); - builder.append(initialInputsDataBindingId); - builder.append(", iteration="); - builder.append(iteration); - builder.append(", parentProcessEnactmentId="); - builder.append(parentProcessorEnactmentId); - builder.append(", processEnactmentId="); - builder.append(processEnactmentId); - builder.append(", processIdentifier="); - builder.append(processIdentifier); - builder.append(", processorId="); - builder.append(processorId); - builder.append(", workflowRunId="); - builder.append(workflowRunId); - builder.append("]"); - return builder.toString(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceProcessor.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceProcessor.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceProcessor.java deleted file mode 100644 index fb1a8fb..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceProcessor.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -/** - * a Port that has no pName is either a WF input or output, depending on isInput - * - * @author Paolo Missier - */ -public class ProvenanceProcessor { - - public static final String DATAFLOW_ACTIVITY = "net.sf.taverna.t2.activities.dataflow.DataflowActivity"; - - private String identifier; - private String processorName; - private String workflowId; - private String firstActivityClassName; - private boolean isTopLevelProcessor; - - public ProvenanceProcessor() { - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("PROCESSOR: ****").append("\nworkflow: " + getWorkflowId()) - .append("\nprocessor name: " + getProcessorName()) - .append("\ntype: " + getFirstActivityClassName()); - - return sb.toString(); - } - - /** - * @return the workflowId - */ - public String getWorkflowId() { - return workflowId; - } - - /** - * @param workflowId - * the workflowId to set - */ - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } - - /** - * @return The fully qualified classname for the first activity in this - * processor, or {@link #DATAFLOW_ACTIVITY} if this is a virtual - * processor representing the workflow itself. - */ - public String getFirstActivityClassName() { - return firstActivityClassName; - } - - /** - * @param firstActivityClassName - * The fully qualified classname for the first activity in this - * processor, or {@link #DATAFLOW_ACTIVITY} if this is a virtual - * processor representing the workflow itself. - */ - public void setFirstActivityClassName(String firstActivityClassName) { - this.firstActivityClassName = firstActivityClassName; - } - - /** - * @return the processorName - */ - public String getProcessorName() { - return processorName; - } - - /** - * @param processorName - * the processorName to set - */ - public void setProcessorName(String processorName) { - this.processorName = processorName; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getIdentifier() { - return identifier; - } - - public void setTopLevelProcessor(boolean isTopLevelProcessor) { - this.isTopLevelProcessor = isTopLevelProcessor; - } - - public boolean isTopLevelProcessor() { - return isTopLevelProcessor; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceUtils.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceUtils.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceUtils.java deleted file mode 100644 index a36308a..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ProvenanceUtils.java +++ /dev/null @@ -1,128 +0,0 @@ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -import static net.sf.taverna.t2.provenance.vocabulary.SharedVocabulary.INPUTDATA_EVENT_TYPE; - -import java.util.Set; -import java.util.regex.Pattern; - -import net.sf.taverna.t2.provenance.item.DataProvenanceItem; -import net.sf.taverna.t2.reference.ErrorDocument; -import net.sf.taverna.t2.reference.ExternalReferenceSPI; -import net.sf.taverna.t2.reference.IdentifiedList; -import net.sf.taverna.t2.reference.ReferenceService; -import net.sf.taverna.t2.reference.ReferenceSet; -import net.sf.taverna.t2.reference.T2Reference; - -import org.jdom.Element; -import org.tupeloproject.kernel.NotFoundException; - -public class ProvenanceUtils { - public static Pattern parentProcessPattern = Pattern.compile("^(.*):?[^:]+:[^:]+$"); - - public static String iterationToString(int[] iteration) { - String result = "["; - for (int i = 0; i < iteration.length; i++) { - result += iteration[i]; - if (i < (iteration.length - 1)) - result += ","; - } - result += "]"; - return result; - } - - /** - * Returns an Element representing the data item, identfied as either input - * or output. References to data are currently resolved to their actual - * values - */ - public static Element getDataItemAsXML(DataProvenanceItem provenanceItem) { - String name; - if (provenanceItem.getEventType().equals(INPUTDATA_EVENT_TYPE)) { - name = "inputdata"; - } else { - name = "outputdata"; - } - Element result = new Element(name); - result.setAttribute("identifier", provenanceItem.getIdentifier()); - result.setAttribute("processID", provenanceItem.getProcessId()); - result.setAttribute("parent", provenanceItem.getParentId()); - for (String port : provenanceItem.getDataMap().keySet()) { - Element portElement = new Element("port"); - portElement.setAttribute("name", port); - portElement.setAttribute( - "depth", - Integer.toString(provenanceItem.getDataMap().get(port) - .getDepth())); - result.addContent(portElement); - portElement.addContent(resolveToElement(provenanceItem.getDataMap() - .get(port), provenanceItem.getReferenceService())); - Element element = new Element("some_stuff"); - portElement.addContent(element); - } - return result; - } - - /** - * Given a {@link T2Reference} return all the other {@link T2Reference}s - * which it contains as an XML Element. - * - * @param entityIdentifier - * @return - * @throws NotFoundException - * @throws RetrievalException - */ - private static org.jdom.Element resolveToElement(T2Reference reference, - ReferenceService referenceService) { - Element element = new Element("resolvedReference"); - switch (reference.getReferenceType()) { - case ErrorDocument: - ErrorDocument error = referenceService.getErrorDocumentService() - .getError(reference); - - element.setName("error"); - element.setAttribute("id", reference.toString()); - Element messageElement = new Element("message"); - messageElement.addContent(error.getExceptionMessage()); - element.addContent(messageElement); - break; - case ReferenceSet: - element.setName("referenceSet"); - element.setAttribute("id", reference.toString()); - ReferenceSet referenceSet = referenceService - .getReferenceSetService().getReferenceSet(reference); - Set<ExternalReferenceSPI> externalReferences = referenceSet - .getExternalReferences(); - for (ExternalReferenceSPI externalReference : externalReferences) { - // FIXME does this make sense? No!! Should get the actual value - // not what it is (TEXT etc) - Element refElement = new Element("reference"); - refElement.addContent(externalReference.getDataNature() - .toString()); - element.addContent(refElement); - } - break; - case IdentifiedList: - IdentifiedList<T2Reference> list = referenceService - .getListService().getList(reference); - - element.setName("list"); - element.setAttribute("id", reference.toString()); - for (T2Reference ref : list) - element.addContent(resolveToElement(ref, referenceService)); - break; - default: - // throw something (maybe a tantrum) - } - return element; - } - - public static String parentProcess(String processId, int levels) { - if (levels < 1) - return processId; - int lastColon = processId.lastIndexOf(":"); - if (lastColon == -1) - return null; - return parentProcess(processId.substring(0, lastColon), --levels); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/QueryPort.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/QueryPort.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/QueryPort.java deleted file mode 100644 index 34b4f9b..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/QueryPort.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -/** - * @author Paolo Missier - * <p/> - * - */ -public class QueryPort { - private String workflowRunId; - private String workflowId; - private String processorName; - private String portName; - private String path; - private String value; - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("PORT: ****").append("\nworkflow: " + getWorkflowId()) - .append("\nprocessor: " + getProcessorName()) - .append("\nport: " + getPortName()) - .append("\npath to value: " + getPath()); - - return sb.toString(); - } - - /** - * @return the processorName - */ - public String getProcessorName() { - return processorName; - } - - /** - * @param processorName - * the processorName to set - */ - public void setProcessorName(String processorName) { - this.processorName = processorName; - } - - /** - * @return the vname - */ - public String getPortName() { - return portName; - } - - /** - * @param vname - * the vname to set - */ - public void setPortName(String vname) { - this.portName = vname; - } - - /** - * @return the path - */ - public String getPath() { - return path; - } - - /** - * @param path - * the path to set - */ - public void setPath(String path) { - this.path = path; - } - - /** - * @return the value - */ - public String getValue() { - return value; - } - - /** - * @param value - * the value to set - */ - public void setValue(String value) { - this.value = value; - } - - /** - * @return the workflowRunId - */ - public String getWorkflowRunId() { - return workflowRunId; - } - - /** - * @param workflowRunId - * the workflowRunId to set - */ - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - /** - * @return the workflowId - */ - public String getWorkflowId() { - return workflowId; - } - - /** - * @param workflowId - * the workflowId to set - */ - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ServiceInvocation.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ServiceInvocation.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ServiceInvocation.java deleted file mode 100644 index 83de7ce..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/ServiceInvocation.java +++ /dev/null @@ -1,161 +0,0 @@ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -import java.sql.Timestamp; - -public class ServiceInvocation { - private ProcessorEnactment processorEnactment; - private String workflowRunId; - private long invocationNumber; - private Timestamp invocationStarted; - private Timestamp invocationEnded; - private DataBinding inputs; - private DataBinding outputs; - private String failureT2Reference; - private Activity activity; - private String initiatingDispatchLayer; - private String finalDispatchLayer; - - public ProcessorEnactment getProcessorEnactment() { - return processorEnactment; - } - - public void setProcessorEnactment(ProcessorEnactment processorEnactment) { - this.processorEnactment = processorEnactment; - } - - public String getWorkflowRunId() { - return workflowRunId; - } - - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - public long getInvocationNumber() { - return invocationNumber; - } - - public void setInvocationNumber(long invocationNumber) { - this.invocationNumber = invocationNumber; - } - - public Timestamp getInvocationStarted() { - return invocationStarted; - } - - public void setInvocationStarted(Timestamp invocationStarted) { - this.invocationStarted = invocationStarted; - } - - public Timestamp getInvocationEnded() { - return invocationEnded; - } - - public void setInvocationEnded(Timestamp invocationEnded) { - this.invocationEnded = invocationEnded; - } - - public DataBinding getInputs() { - return inputs; - } - - public void setInputs(DataBinding inputs) { - this.inputs = inputs; - } - - public DataBinding getOutputs() { - return outputs; - } - - public void setOutputs(DataBinding outputs) { - this.outputs = outputs; - } - - public String getFailureT2Reference() { - return failureT2Reference; - } - - public void setFailureT2Reference(String failureT2Reference) { - this.failureT2Reference = failureT2Reference; - } - - public Activity getActivity() { - return activity; - } - - public void setActivity(Activity activity) { - this.activity = activity; - } - - public String getInitiatingDispatchLayer() { - return initiatingDispatchLayer; - } - - public void setInitiatingDispatchLayer(String initiatingDispatchLayer) { - this.initiatingDispatchLayer = initiatingDispatchLayer; - } - - public String getFinalDispatchLayer() { - return finalDispatchLayer; - } - - public void setFinalDispatchLayer(String finalDispatchLayer) { - this.finalDispatchLayer = finalDispatchLayer; - } - - @Override - public int hashCode() { - return 31 - * (int) (invocationNumber ^ (invocationNumber >>> 32)) - + ((processorEnactment == null) ? 0 : processorEnactment - .hashCode()); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ServiceInvocation other = (ServiceInvocation) obj; - if (invocationNumber != other.invocationNumber) - return false; - if (processorEnactment == null) { - if (other.processorEnactment != null) - return false; - } else if (!processorEnactment.equals(other.processorEnactment)) - return false; - return true; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("ServiceInvocation [activity="); - builder.append(activity); - builder.append(", failureT2Reference="); - builder.append(failureT2Reference); - builder.append(", finalDispatchLayer="); - builder.append(finalDispatchLayer); - builder.append(", initiatingDispatchLayer="); - builder.append(initiatingDispatchLayer); - builder.append(", inputs="); - builder.append(inputs); - builder.append(", invocationEnded="); - builder.append(invocationEnded); - builder.append(", invocationNumber="); - builder.append(invocationNumber); - builder.append(", invocationStarted="); - builder.append(invocationStarted); - builder.append(", outputs="); - builder.append(outputs); - builder.append(", processorEnactment="); - builder.append(processorEnactment); - builder.append(", workflowRunId="); - builder.append(workflowRunId); - builder.append("]"); - return builder.toString(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Workflow.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Workflow.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Workflow.java deleted file mode 100644 index b1f75ef..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/Workflow.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -public class Workflow { - private String workflowId; - private String parentWorkflowId; - private String externalName; - - public void setWorkflowId(String workflowId) { - this.workflowId = workflowId; - } - - public String getWorkflowId() { - return workflowId; - } - - public void setParentWorkflowId(String parentIdentifier) { - this.parentWorkflowId = parentIdentifier; - } - - public String getParentWorkflowId() { - return parentWorkflowId; - } - - /** - * @return the externalName - */ - public String getExternalName() { - return externalName; - } - - /** - * @param externalName the externalName to set - */ - public void setExternalName(String externalName) { - this.externalName = externalName; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowRun.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowRun.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowRun.java deleted file mode 100644 index 8e5b25a..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowRun.java +++ /dev/null @@ -1,72 +0,0 @@ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -import java.sql.Blob; - -public class WorkflowRun { - private String workflowRunId; - /** - * this is the workflowId for the TOP LEVEL workflow for this run. - * <p> - * CHECK - */ - private String workflowId; - private String timestamp; - private String workflowExternalName; - private byte[] dataflowBlob; - - public void setWorkflowId(String workflowIdentifier) { - this.workflowId = workflowIdentifier; - } - - public String getWorkflowId() { - return workflowId; - } - - public void setTimestamp(String timestamp) { - this.timestamp = timestamp; - } - - public String getTimestamp() { - return timestamp; - } - - /** - * @return the workflowRunId - */ - public String getWorkflowRunId() { - return workflowRunId; - } - - /** - * @param workflowRunId the workflowRunId to set - */ - public void setWorkflowRunId(String workflowRunId) { - this.workflowRunId = workflowRunId; - } - - /** - * @return the workflowExternalName - */ - public String getWorkflowExternalName() { - return workflowExternalName; - } - - /** - * @param workflowExternalName the workflowExternalName to set - */ - public void setWorkflowExternalName(String workflowExternalName) { - this.workflowExternalName = workflowExternalName; - } - - /** - * A {@link Blob} object representing the dataflow - * @param bs - */ - public void setDataflowBlob(byte[] bs) { - this.dataflowBlob = bs; - } - - public byte[] getDataflowBlob() { - return dataflowBlob; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowTree.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowTree.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowTree.java deleted file mode 100644 index 7db0259..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/lineageservice/utils/WorkflowTree.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.provenance.lineageservice.utils; - -import java.util.ArrayList; -import java.util.List; - -/** - * a tree structure used to describe the nested static structure of a workflow - * as it is found in the provenance DB - * - * @author Paolo Missier - */ -public class WorkflowTree { - private Workflow node; - private List<WorkflowTree> children = new ArrayList<>(); - - /** - * @return the children - */ - public List<WorkflowTree> getChildren() { - return children; - } - - /** - * @param children - * the children to set - */ - public void setChildren(List<WorkflowTree> children) { - this.children = children; - } - - /** - * @return the node - */ - public Workflow getNode() { - return node; - } - - /** - * @param node - * the node to set - */ - public void setNode(Workflow node) { - this.node = node; - } - - public void addChild(WorkflowTree childStructure) { - children.add(childStructure); - } - - @Override - public String toString() { - return toString(new StringBuilder(), 0); - } - - public String toString(int indent) { - return toString(new StringBuilder(), indent); - } - - protected String toString(StringBuilder sb, int indent) { - sb.append(getNode().getExternalName() + "\n"); - for (WorkflowTree tree : getChildren()) { - indent++; - for (int i = 1; i < indent; i++) - sb.append("-"); - sb.append(tree.toString(indent)); - indent--; - } - return sb.toString(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMImporter.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMImporter.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMImporter.java deleted file mode 100644 index f491683..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMImporter.java +++ /dev/null @@ -1,541 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.provenance.opm; - -import java.io.File; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import net.sf.taverna.t2.provenance.lineageservice.ProvenanceWriter; -import net.sf.taverna.t2.provenance.lineageservice.utils.Port; -import net.sf.taverna.t2.provenance.lineageservice.utils.PortBinding; -import net.sf.taverna.t2.provenance.lineageservice.utils.ProvenanceProcessor; - -import org.apache.log4j.Logger; -import org.openprovenance.model.Account; -import org.openprovenance.model.AccountRef; -import org.openprovenance.model.Accounts; -import org.openprovenance.model.Artifact; -import org.openprovenance.model.ArtifactRef; -import org.openprovenance.model.Artifacts; -import org.openprovenance.model.Dependencies; -import org.openprovenance.model.OPMDeserialiser; -import org.openprovenance.model.OPMGraph; -import org.openprovenance.model.Process; -import org.openprovenance.model.ProcessRef; -import org.openprovenance.model.Role; -import org.openprovenance.model.Used; -import org.openprovenance.model.WasControlledBy; -import org.openprovenance.model.WasDerivedFrom; -import org.openprovenance.model.WasGeneratedBy; -import org.openprovenance.model.WasTriggeredBy; - -/** - * imports foreign XML-serialized OPM graphs into the native Taverna provenance - * DB, so they can be queried using - * {@link net.sf.taverna.t2.provenance.lineageservice.ProvenanceAnalysis} - * - * @author paolo - */ -public class OPMImporter { - private static final String PROC_NAME = "P"; - private static final String OPM_DEF_ACCOUNT = "OPMDefaultAccount"; - private static Logger logger = Logger.getLogger(OPMImporter.class); - - private ProvenanceWriter pw; - private OPMGraph graph; - - // Maps Account names to Taverna workflows - private Map<String, String> accountToWorkflow = new HashMap<>(); - private Map<String, String> workflowToInstance = new HashMap<>(); - - // maps workflowId --> (workflowId --> List(Port)) - private Map<String, Map<String, List<Port>>> usedVarsByAccount = new HashMap<>(); - private Map<String, Map<String, List<Port>>> wgbVarsByAccount = new HashMap<>(); - - // maps accountname --> (artifact -> List(Process)) - private Map<String, Map<String, List<String>>> wgbArtifactsByAccount = new HashMap<>(); - - // maps accountname --> (artifact -> List(Process)) - private Map<String, Map<String, List<String>>> usedArtifactsByAccount = new HashMap<>(); - - private int procNameCounter; - - public OPMImporter(ProvenanceWriter pw) { - this.pw = pw; - } - - /** - * orphan artifacts are those that are in the graph but are never used - * neither generated. this indicates some problem with the graph structure. - * this method is used for diagnostics after import has finished - * - * @return - */ - public List<String> getOrphanArtifacts() { - List<String> allwgb = new ArrayList<>(); - List<String> allUsed = new ArrayList<>(); - List<String> orphans = new ArrayList<>(); - - if (graph == null) { - logger.warn("null graph while attempting to count orphan artifacts -- giving up"); - return orphans; - } - - Artifacts allArtifacts = graph.getArtifacts(); - - for (Map.Entry<String, Map<String, List<String>>> entry : wgbArtifactsByAccount - .entrySet()) - allwgb.addAll(entry.getValue().keySet()); - for (Map.Entry<String, Map<String, List<String>>> entry : usedArtifactsByAccount - .entrySet()) - allUsed.addAll(entry.getValue().keySet()); - - for (Artifact a : allArtifacts.getArtifact()) - if (!allwgb.contains(a.getId()) && !allUsed.contains(a.getId())) - orphans.add(a.getId()); - return orphans; - } - - public void importGraph(String XMLOPMGraphFilename) throws Exception, - SQLException { - try { - logger.info("Importing OPM XML from file " + XMLOPMGraphFilename); - - // deserialize an XML OPM graph from file - OPMDeserialiser deser = new OPMDeserialiser(); - graph = deser.deserialiseOPMGraph(new File(XMLOPMGraphFilename)); - - } catch (Exception e) { - logger.fatal("exception while deserializing -- unable to continue"); - logger.fatal(e.getMessage()); - return; - } - - logger.debug("XML graph deserialized"); - - /* - * generates one pair <workflowId, workflowRun> for each account in the - * graph - */ - try { - Accounts accounts = graph.getAccounts(); - - // use this global account alongside any other that may be defined in the graph - generateWFFromAccount(OPM_DEF_ACCOUNT); - - if (accounts == null) { - logger.warn("this graph contains no accounts -- using only the default"); - } else { - for (Account acc:accounts.getAccount()) - // writes both workflow and instance into the DB, updates accountToWorkflow - generateWFFromAccount(acc.getId()); - } - } catch (Exception e) { - logger.warn("exception while getting accounts for this graph"); - } - - // what have we got? - // retrieve all OPM relations from the graph - Dependencies dependencies = graph.getDependencies(); - - /* - * associates processes and ports to workflows and varbindings to - * corresponding workflowRuns - */ - List<Object> allDeps = dependencies - .getUsedOrWasGeneratedByOrWasTriggeredBy(); - // make sure these are processed in the right order: used, wgby, THEN wdf because this latter is derived from the first 2! - // so collect them into sets and process them separately - - Set<WasGeneratedBy> wgbSet = new HashSet<>(); - Set<Used> usedSet = new HashSet<>(); - Set<WasDerivedFrom> wdfSet = new HashSet<>(); - Set<WasControlledBy> wcbSet = new HashSet<>(); - Set<WasTriggeredBy> wtbSet = new HashSet<>(); - - for (Object dep : allDeps) { - logger.info("dependency of type: " + dep.getClass().getName()); - - if (dep instanceof org.openprovenance.model.WasGeneratedBy) - wgbSet.add((WasGeneratedBy) dep); - else if (dep instanceof org.openprovenance.model.Used) - usedSet.add((Used) dep); - else if (dep instanceof org.openprovenance.model.WasDerivedFrom) - wdfSet.add((WasDerivedFrom) dep); - else if (dep instanceof org.openprovenance.model.WasControlledBy) - wcbSet.add((WasControlledBy) dep); - else if (dep instanceof org.openprovenance.model.WasTriggeredBy) - wtbSet.add((WasTriggeredBy) dep); - } - - // process these in the correct order - for (WasGeneratedBy dep: wgbSet) - processWGBy(dep); - - for (Used dep : usedSet) - processUsed(dep); - - for (WasDerivedFrom dep : wdfSet) - processWDF(dep); - - // we actually ignore the others... - - // ********* - // complete the induced graph by building datalinks using the Artifact -> [Port] maps - // ********* - - List<String> accountNames = new ArrayList<>(); - - accountNames.add(OPM_DEF_ACCOUNT); - - /* Disabled as allAccounts is never assigned to - if (allAccounts != null) - for (Account acc:allAccounts) { accountNames.add(acc.getId()); } - */ - - for (String acc : accountNames) { - String workflowId = accountToWorkflow.get(acc); - - Map<String, List<Port>> usedVars = usedVarsByAccount - .get(workflowId); - Map<String, List<Port>> wgbVars = wgbVarsByAccount.get(workflowId); - - if (usedVars == null || wgbVars == null) - continue; - - // install an Datalink from each wgb var to each used var when the artifact is the same - for (Map.Entry<String, List<Port>> entry : wgbVars.entrySet()) { - // all Ports for this artifact get connected to all corresponding Ports in used - List<Port> sourceVars = entry.getValue(); - List<Port> targetVars = usedVars.get(entry.getKey()); - - if (sourceVars == null || targetVars == null) - continue; - - // create an datalink from each sourceVar to each targetVar - // note that we expect a single targetVar, but this is not guaranteed - for (Port sourceVar : sourceVars) - for (Port targetVar : targetVars) - pw.addDataLink(sourceVar, targetVar, workflowId); - } - } - } - - private void generateWFFromAccount(String accName) throws SQLException { - String workflowId = accName + "-" + UUID.randomUUID().toString(); - String workflowRun = accName + "-" + UUID.randomUUID().toString(); - - pw.addWFId(workflowId); - pw.addWorkflowRun(workflowId, workflowRun); - accountToWorkflow.put(accName, workflowId); - workflowToInstance.put(workflowId, workflowRun); - - logger.info("generated workflowId " + workflowId + " and instance " - + workflowRun + " for account " + accName); - } - - private Port processProcessArtifactDep(String procName, String value, - String portName, String workflowId, String workflowRun, - boolean artifactIsInput) { - // generate Process - ProvenanceProcessor proc = null; - try { - proc = pw.addProcessor(procName, workflowId, false); - logger.debug("added processor " + procName + " to workflow " - + workflowId); - } catch (SQLException e) { - // no panic -- just catch duplicates - logger.warn(e.getMessage()); - return null; - } - - // generate Port - Port outputVar = new Port(); - outputVar.setProcessorId(proc.getIdentifier()); - outputVar.setProcessorName(procName); - outputVar.setWorkflowId(workflowId); - outputVar.setPortName(portName); - outputVar.setDepth(0); - outputVar.setInputPort(artifactIsInput); // wgby is an output var - - List<Port> vars = new ArrayList<>(); // only one Port in the list - vars.add(outputVar); - - try { - pw.addPorts(vars, workflowId); - logger.debug("added var "+portName+" to workflow "+workflowId); - } catch (SQLException e) { // no panic -- just catch duplicates - logger.warn(e.getMessage()); - } - - // generate PortBindings (workflowRun, procName, portName, value) - PortBinding vb = new PortBinding(); - - vb.setWorkflowRunId(workflowRun); - vb.setProcessorName(procName); - vb.setPortName(portName); - vb.setValue(value); - vb.setIteration("[]"); - - try { - pw.addPortBinding(vb); - logger.debug("added var binding with value " + value - + " to workflow instance " + workflowRun); - } catch (SQLException e) { // no panic -- just catch duplicates - logger.error("Failed to add var binding: " + e.getMessage()); - } - - return outputVar; - } - - /** - * generic processing of a process-artifact dependency - * - * @param procID - * @param artId - * @param role - * @param workflowId - * @param workflowRun - * @param artifactIsInput - */ - private Port processProcessArtifactDep(ProcessRef procID, - ArtifactRef artId, Role role, String workflowId, - String workflowRun, boolean artifactIsInput) { - String procName = ((Process) procID.getRef()).getId(); - String portName = role.getValue(); - String value = ((Artifact) artId.getRef()).getId(); - - portName = removeBlanks(portName); - - return processProcessArtifactDep(procName, value, portName, workflowId, - workflowRun, artifactIsInput); - } - - private String removeBlanks(String portName) { - return portName.replace(" ", "_"); - } - - /** - * used(A,R,P,acc): generates a process for P, a Port for (P,R) an - * <em>input</em> PortBinding for (P,R,A) <br/> - * this is very similar to {@link #processWGBy(WasGeneratedBy)} - * - * @param dep - */ - private void processUsed(Used dep) { - // Acc determines the scope -- this dep may belong to > 1 account, deal with all of them - List<AccountRef> accountIDs = dep.getAccount(); - ProcessRef procID = dep.getEffect(); - ArtifactRef artId = dep.getCause(); - Role role = dep.getRole(); - - List<String> accNames = new ArrayList<String>(); - - for (AccountRef accId : accountIDs) - accNames.add(((Account) accId.getRef()).getId()); - - accNames.add(OPM_DEF_ACCOUNT); - - for (String accName : accNames) { - String workflowId = accountToWorkflow.get(accName); - String workflowRun = workflowToInstance.get(workflowId); - - Port v = processProcessArtifactDep(procID, artId, role, workflowId, - workflowRun, true); // true -> input var - - // save the mapping from artifact to var for this account - Map<String, List<Port>> usedVars = usedVarsByAccount - .get(workflowId); - if (usedVars == null) { - usedVars = new HashMap<>(); - usedVarsByAccount.put(workflowId, usedVars); - } - List<Port> vars = usedVars.get(((Artifact) artId.getRef()).getId()); - - if (vars == null) { - vars = new ArrayList<>(); - usedVars.put(((Artifact) artId.getRef()).getId(), vars); - } - vars.add(v); - - // record the fact that (procID used artId) within this account - Map<String, List<String>> usedArtifacts = usedArtifactsByAccount - .get(accName); - if (usedArtifacts == null) { - usedArtifacts = new HashMap<>(); - usedArtifactsByAccount.put(accName, usedArtifacts); - } - - String artifactName = ((Artifact) artId.getRef()).getId(); - List<String> processes = usedArtifacts.get(artifactName); - if (processes == null) { - processes = new ArrayList<>(); - usedArtifacts.put(artifactName, processes); - } - processes.add(((org.openprovenance.model.Process) procID.getRef()) - .getId()); - } - } - - /** - * wgb(A,R,P,Acc): generates a Process for P, a Port for (P,R), an - * <em>output</em> PortBinding for (P,R,A) This is all relative to the - * workflow corresponding to account Acc. - * - * @param dep - * @throws SQLException - */ - private void processWGBy(WasGeneratedBy dep) { - // Acc determines the scope -- this dep may belong to > 1 account, deal with all of them - List<AccountRef> accountIDs = dep.getAccount(); - ProcessRef procID = dep.getCause(); - ArtifactRef artId = dep.getEffect(); - Role role = dep.getRole(); - - List<String> accNames = new ArrayList<String>(); - for (AccountRef accId : accountIDs) - accNames.add(((Account) accId.getRef()).getId()); - accNames.add(OPM_DEF_ACCOUNT); - - for (String accName : accNames) { - String workflowId = accountToWorkflow.get(accName); - String workflowRun = workflowToInstance.get(workflowId); - - Port v = processProcessArtifactDep(procID, artId, role, workflowId, - workflowRun, false); // false -> output var - - Map<String, List<Port>> wgbVars = wgbVarsByAccount.get(workflowId); - if (wgbVars == null) { - wgbVars = new HashMap<>(); - wgbVarsByAccount.put(workflowId, wgbVars); - } - - List<Port> vars = wgbVars.get(((Artifact) artId.getRef()).getId()); - if (vars == null) { - vars = new ArrayList<>(); - wgbVars.put(((Artifact) artId.getRef()).getId(), vars); - } - vars.add(v); - - // record the fact that (artId wgby procID) within this account - Map<String, List<String>> wgbArtifacts = wgbArtifactsByAccount - .get(accName); - if (wgbArtifacts == null) { - wgbArtifacts = new HashMap<>(); - wgbArtifactsByAccount.put(accName, wgbArtifacts); - } - - String artifactName = ((Artifact) artId.getRef()).getId(); - List<String> processes = wgbArtifacts.get(artifactName); - if (processes == null) { - processes = new ArrayList<>(); - wgbArtifacts.put(artifactName, processes); - } - processes.add(((org.openprovenance.model.Process) procID.getRef()) - .getId()); - } - } - - /** - * this is a dep between two artifacts A1 and A2. In Taverna we need to - * postulate the existence of a Process to mediate this dependency. <p/> - * However, we only need to account for this dep if it cannot be inferred - * from a combination of used and wgby that involve A1 and A2: if there - * exists P s.t. A1 wgby P and P used A2, then this dep. is redundant in the - * DB and we can safely ignore it. <p/> - * note that this analysis is conducted regardless of the accounts in which - * the wgby and used properties appear, as one account could be used - * deliberately to This will unclutter the DB. - * - * @param dep - */ - private void processWDF(WasDerivedFrom dep) { - List<AccountRef> accountIDs = dep.getAccount(); - ArtifactRef fromArtId = dep.getCause(); - ArtifactRef toArtId = dep.getEffect(); - - List<String> accNames = new ArrayList<>(); - for (AccountRef accId : accountIDs) - accNames.add(((Account) accId.getRef()).getId()); - accNames.add(OPM_DEF_ACCOUNT); - - for (String accName:accNames) { - int varCounter = 0; - - String workflowId = accountToWorkflow.get(accName); - String workflowRun = workflowToInstance.get(workflowId); - - List<String> generatingProcesses = null, usingProcesses = null; - - // look for any triple fromArtId wasGeneratedBy P within this account - Map<String, List<String>> wgbArtifacts = wgbArtifactsByAccount - .get(accName); - - if (wgbArtifacts != null) { - String toArtifactName = ((Artifact) toArtId.getRef()).getId(); - generatingProcesses = wgbArtifacts.get(toArtifactName); - if (generatingProcesses != null) - logger.debug("artifact " + toArtifactName - + " wgby one or more processes..."); - } - - // look for any triple (P used toArtId) within this account - - // get map for this account - Map<String, List<String>> usedArtifacts = usedArtifactsByAccount - .get(accName); - - if (usedArtifacts != null) { - String fromArtifactName = ((Artifact) fromArtId.getRef()) - .getId(); - usingProcesses = usedArtifacts.get(fromArtifactName); - if (usingProcesses != null) - logger.debug("artifact " + fromArtifactName - + " was used by one or more processes..."); - } - - if (generatingProcesses != null && usingProcesses != null) - for (String gp : generatingProcesses) - if (usingProcesses.contains(gp)) { - logger.debug("intersection between process sets not empty, this WDF is redundant"); - return; - } - - /* We only postulate a new process if the native one was not found */ - - String procName = PROC_NAME+"_"+procNameCounter++; - - try { - pw.addProcessor(procName, workflowId, false); - logger.info("created non-native added processor " + procName - + " to workflow " + workflowId); - } catch (SQLException e) { // no panic -- just catch duplicates - logger.warn(e.getMessage()); - } - - // create a role for fromArtId from the procName - String inputPortName = procName + "_" + varCounter++; - String inputValue = ((Artifact) fromArtId.getRef()).getId(); - - // add to DB - processProcessArtifactDep(procName, inputValue, inputPortName, - workflowId, workflowRun, true); - - // create a role for toArtId - String outputPortName = procName + "_" + varCounter++; - String outputValue = ((Artifact) toArtId.getRef()).getId(); - - // add to DB - processProcessArtifactDep(procName, outputValue, outputPortName, - workflowId, workflowRun, false); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMManager.java ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMManager.java b/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMManager.java deleted file mode 100644 index a82abdf..0000000 --- a/taverna-provenanceconnector/src/main/java/net/sf/taverna/t2/provenance/opm/OPMManager.java +++ /dev/null @@ -1,414 +0,0 @@ -/** - * - */ -package net.sf.taverna.t2.provenance.opm; - -import static org.tupeloproject.rdf.Resource.literal; -import static org.tupeloproject.rdf.Resource.uriRef; - -import java.io.IOException; -import java.io.StringWriter; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import net.sf.taverna.t2.provenance.lineageservice.URIGenerator; -import net.sf.taverna.t2.provenance.lineageservice.utils.DataValueExtractor; - -import org.apache.log4j.Logger; -import org.tupeloproject.kernel.Context; -import org.tupeloproject.kernel.OperatorException; -import org.tupeloproject.kernel.UnionContext; -import org.tupeloproject.kernel.impl.MemoryContext; -import org.tupeloproject.kernel.impl.ResourceContext; -import org.tupeloproject.provenance.ProvenanceAccount; -import org.tupeloproject.provenance.ProvenanceArtifact; -import org.tupeloproject.provenance.ProvenanceException; -import org.tupeloproject.provenance.ProvenanceGeneratedArc; -import org.tupeloproject.provenance.ProvenanceProcess; -import org.tupeloproject.provenance.ProvenanceRole; -import org.tupeloproject.provenance.ProvenanceUsedArc; -import org.tupeloproject.provenance.impl.ProvenanceContextFacade; -import org.tupeloproject.rdf.Literal; -import org.tupeloproject.rdf.Resource; -import org.tupeloproject.rdf.xml.RdfXmlWriter; - - -/** - * @author paolo - * - */ -public class OPMManager { - private static Logger logger = Logger.getLogger(OPMManager.class); - - public static final String OPM_TAVERNA_NAMESPACE = "http://ns.taverna.org.uk/2011/provenance/opm/"; - private static final String VALUE_PROP = "value"; - - private ProvenanceContextFacade graph = null; - private Context context = null; - - private ProvenanceAccount currentAccount = null; - private ProvenanceArtifact currentArtifact = null; - private ProvenanceRole currentRole = null; - private ProvenanceProcess currentProcess = null; - - private boolean isActive = true; - - public OPMManager() { - // init Tupelo RDF provenance graph - MemoryContext mc = new MemoryContext(); - ResourceContext rc = new ResourceContext("http://example.org/data/", - "/provenanceExample/"); - context = new UnionContext(); - context.addChild(mc); - context.addChild(rc); - - graph = new ProvenanceContextFacade(mc); - } - - /** - * default implementation of this method returns null -- has no idea how to - * extract simple values from incoming artifact values - * - * @return - */ - public List<DataValueExtractor> getDataValueExtractor() { - return null; - } - - /** - * create new account to hold the causality graph and give it a Resource - * name - * - * @param accountName - * @throws ProvenanceException - */ - public void createAccount(String accountName) throws ProvenanceException { - currentAccount = graph.newAccount("OPM-" + accountName, - uriRef(uriGenerator.makeRunUri(accountName))); - graph.assertAccount(currentAccount); - } - - /** - * @param aName - * @param aValue - * actual value can be used optionally as part of a separate - * triple. Whether this is used or not depends on the settings, - * see {@link OPMManager.addValueTriple}. This also sets the - * currentArtifact to the newly created artifact - * @throws ProvenanceException - */ - public void addArtifact(String aName, Object aValue) - throws ProvenanceException { - Resource r = addArtifact(aName); - - if (aValue == null) { - logger.debug("OPMManager::addArtifact: aValue for [" + aName - + "] is NULL"); - return; - } - - logger.debug("OPMManager::addArtifact: aValue is NOT NULL"); - - // if we have a valid DataValueExtractor, use it here - List<DataValueExtractor> dveList; - String extractedValue = (String) aValue; // default is same value - dveList = getDataValueExtractor(); - if (dveList != null) - // try all available extractors... UGLY but data comes with NO TYPE at all! - for (DataValueExtractor dve : dveList) - try { - logger.debug("OPMManager::addArtifact: trying extractor " - + dve.getClass().getName()); - extractedValue = dve.extractString(aValue); - logger.debug("OPMManager::addArtifact: - extracted value = " - + extractedValue); - break; // extractor worked - } catch (Exception e) { - // no panic, reset value and try another extractor - logger.warn("OPMManager::addArtifact: extractor failed"); - extractedValue = (String) aValue; - } - - logger.debug("OPMManager::addArtifact: using value " + extractedValue); - try { - Literal lValue = literal(extractedValue); - context.addTriple(r, uriRef(OPM_TAVERNA_NAMESPACE + VALUE_PROP), - lValue); - } catch (OperatorException e) { - logger.warn("OPM iteration triple creation exception", e); - } - } - - /** - * no actual value is recorded - * - * @param aName - * @return - * @throws ProvenanceException - */ - public Resource addArtifact(String aName) throws ProvenanceException { - String artID = null; - // make sure artifact name is a good URI - try { - URI artURI = new URI(aName); - if (artURI.getScheme() != null) { - if (artURI.getScheme().equals("t2")) - artID = uriGenerator.makeT2ReferenceURI(aName); - else - artID = aName; - } - } catch (URISyntaxException e1) { - // generate later - } - if (artID == null) - artID = OPM_TAVERNA_NAMESPACE + "artifact/" - + uriGenerator.escape(aName); - - Resource r = uriRef(artID); - currentArtifact = graph.newArtifact(artID, r); - graph.assertArtifact(currentArtifact); - return r; - } - - public void createRole(String workflowRunId, String workflowId, - String processorName, String iteration) { - String aRole = uriGenerator.makeIteration(workflowRunId, workflowId, - processorName, iteration); - Resource r = Resource.uriRef(aRole); - currentRole = graph.newRole(aRole, r); - } - - private URIGenerator uriGenerator = new URIGenerator(); - - public void addProcess(String processorName, String iterationVector, - String workflowId, String workflowRunId) throws ProvenanceException { - String processID; - - /* - * PM added 5/09 -- a process name may already be a URI -- this happens - * for example when we export back OPM after importing a workflow from - * our own OPM... in this case, do not pre-pend a new URI scheme - */ - try { - URI procURI = new URI(processorName); - - if (procURI.getAuthority() == null) { - processID = uriGenerator.makeProcessorURI(processorName, workflowId); - } else { - processID = processorName; - } - } catch (URISyntaxException e1) { - processID = uriGenerator.makeProcessorURI(processorName, workflowId); - } - - uriGenerator.makeIteration(workflowRunId, workflowId, processorName, - iterationVector); - - Resource processResource = uriRef(processID); - currentProcess = graph.newProcess(processID, processResource); - graph.assertProcess(currentProcess); - - /* - * add a triple to specify the iteration vector for this occurrence of - * Process, if it is available - */ - try { - if (! iterationVector.equals("[]")) - // Resource inputProcessSubject = ((RdfProvenanceProcess) process).getSubject(); - context.addTriple(processResource, uriRef(OPM_TAVERNA_NAMESPACE - + "iteration"), iterationVector); - } catch (OperatorException e) { - logger.warn("OPM iteration triple creation exception", e); - } - } - - public void assertGeneratedBy(ProvenanceArtifact artifact, - ProvenanceProcess process, ProvenanceRole role, - ProvenanceAccount account, boolean noDuplicates) - throws ProvenanceException { - boolean found = false; - if (noDuplicates && artifact != null) - for (ProvenanceGeneratedArc datalink : graph - .getGeneratedBy(artifact)) { - ProvenanceProcess pp = datalink.getProcess(); - if (pp.getName().equals(process.getName())) { - found = true; - break; - } - } - - if (!noDuplicates || (noDuplicates && !found) && artifact != null) - graph.assertGeneratedBy(artifact, process, role, account); - } - - public void assertUsed(ProvenanceArtifact artifact, - ProvenanceProcess process, ProvenanceRole role, - ProvenanceAccount account, boolean noDuplicates) - throws ProvenanceException { - boolean found = false; - - if (noDuplicates) - for (ProvenanceUsedArc datalink : graph.getUsed(process)) { - ProvenanceArtifact pa = datalink.getArtifact(); - if (pa.getName().equals(artifact.getName())) { - found = true; - break; - } - } - - if (!noDuplicates || (noDuplicates && !found)) - graph.assertUsed(process, artifact, role, account); - } - - public ProvenanceContextFacade getGraph() { - return graph; - } - - /** - * @return the account - */ - public ProvenanceAccount getAccount() { - return currentAccount; - } - - /** - * @param account - * the account to set - */ - public void setAccount(ProvenanceAccount account) { - this.currentAccount = account; - } - - /** - * @return the currentRole - */ - public ProvenanceRole getCurrentRole() { - return currentRole; - } - - /** - * @param currentRole - * the currentRole to set - */ - public void setCurrentRole(ProvenanceRole currentRole) { - this.currentRole = currentRole; - } - - /** - * @return the currentArtifact - */ - public ProvenanceArtifact getCurrentArtifact() { - return currentArtifact; - } - - /** - * @param currentArtifact - * the currentArtifact to set - */ - public void setCurrentArtifact(ProvenanceArtifact currentArtifact) { - this.currentArtifact = currentArtifact; - } - - /** - * @return the currentAccount - */ - public ProvenanceAccount getCurrentAccount() { - return currentAccount; - } - - /** - * @param currentAccount - * the currentAccount to set - */ - public void setCurrentAccount(ProvenanceAccount currentAccount) { - this.currentAccount = currentAccount; - } - - /** - * @return the currentProcess - */ - public ProvenanceProcess getCurrentProcess() { - return currentProcess; - } - - /** - * @param currentProcess - * the currentProcess to set - */ - public void setCurrentProcess(ProvenanceProcess currentProcess) { - this.currentProcess = currentProcess; - } - - public String writeGraph() { - // print out OPM graph in RDF/XML form - try { - StringWriter sw = new StringWriter(); - new RdfXmlWriter().write(context.getTriples(), sw); - return sw.toString(); - } catch (OperatorException | IOException e) { - logger.error("Could not write graph", e); - } - return null; - } - - /** - * IN THE RELEASE WE DO NOT SUPPORT XML -- ONE CAN CONVERT THE RDF TO XML OUT-OF-BAND - * simply invokes the org.openprovenance for converting an RDF OPM graph to an XML OPM graph - * @return a hard-coded filename for the converted XML OPM graph - * @throws OperatorException - * @throws IOException - * @throws JAXBException - */ -// public String Rdf2Xml() throws OperatorException, IOException, JAXBException { -// -// OPMRdf2Xml converter = new OPMRdf2Xml(); -// converter.convert(OPM_RDF_GRAPH_FILE, OPM_XML_GRAPH_FILE); -// return OPM_XML_GRAPH_FILE; -// } - - /** - * creates a dot file from the current OPMGraph. <br/> - * DOT NOT USE NEEDS FIXING - * @return - * @throws IOException - * @throws OperatorException - */ - /* - public String Rdf2Dot() throws OperatorException, IOException { - - OPMRdf2Xml converter = new OPMRdf2Xml(); - OPMGraph graph = converter.convert(OPM_RDF_GRAPH_FILE); - - List<Process> processes = graph.getProcesses().getProcess(); - for (Process p:processes) { p.setId("\""+p.getId()+"\""); } - - List<Artifact> artifacts = graph.getArtifacts().getArtifact(); - for (Artifact a:artifacts) { a.setId("\""+a.getId()+"\""); } - -// OPMToDot aOPMToDot = new OPMToDot(DOT_CONFIG_FILE); - OPMToDot aOPMToDot = new OPMToDot(); - - aOPMToDot.convert(graph, new File(OPM_DOT_FILE)); - return OPM_DOT_FILE; - - } - - */ - - /** - * @param graph - * the graph to set - */ - public void setGraph(ProvenanceContextFacade graph) { - this.graph = graph; - } - - public void setActive(boolean active) { - isActive = active; - } - - public boolean isActive() { - return isActive; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/resources/META-INF/spring/provenance-connector-context.xml ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/resources/META-INF/spring/provenance-connector-context.xml b/taverna-provenanceconnector/src/main/resources/META-INF/spring/provenance-connector-context.xml deleted file mode 100644 index 2a4b3c0..0000000 --- a/taverna-provenanceconnector/src/main/resources/META-INF/spring/provenance-connector-context.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/osgi - http://www.springframework.org/schema/osgi/spring-osgi.xsd"> - - <bean id="ProvenanceAccess" class="net.sf.taverna.t2.provenance.api.ProvenanceAccess"> - <property name="referenceService" ref="referenceService" /> - <property name="provenanceConnector" ref="provenanceConnector" /> - </bean> - - <osgi:service ref="ProvenanceAccess" interface="net.sf.taverna.t2.provenance.Provenance"/> - - <osgi:reference id="referenceService" interface="net.sf.taverna.t2.reference.ReferenceService"/> - <osgi:reference id="provenanceConnector" interface="net.sf.taverna.t2.provenance.reporter.ProvenanceReporter"/> -</beans> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-provenanceconnector/src/main/resources/janus.owl ---------------------------------------------------------------------- diff --git a/taverna-provenanceconnector/src/main/resources/janus.owl b/taverna-provenanceconnector/src/main/resources/janus.owl deleted file mode 100644 index 1017574..0000000 --- a/taverna-provenanceconnector/src/main/resources/janus.owl +++ /dev/null @@ -1 +0,0 @@ -/Users/paolo/Dropbox/Janus/janus.owl \ No newline at end of file
