http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/MessageUtil.java ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/MessageUtil.java b/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/MessageUtil.java deleted file mode 100644 index 8e61445..0000000 --- a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/MessageUtil.java +++ /dev/null @@ -1,562 +0,0 @@ -/* - * - * 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. - * - */ - -package org.apache.airavata.workflow.tracking.util; - -import static org.apache.airavata.workflow.tracking.client.NotificationType.ApplicationAudit; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ComputationDuration; -import static org.apache.airavata.workflow.tracking.client.NotificationType.DataConsumed; -import static org.apache.airavata.workflow.tracking.client.NotificationType.DataProduced; -import static org.apache.airavata.workflow.tracking.client.NotificationType.DataReceiveDuration; -import static org.apache.airavata.workflow.tracking.client.NotificationType.DataSendDuration; -import static org.apache.airavata.workflow.tracking.client.NotificationType.InvokingService; -import static org.apache.airavata.workflow.tracking.client.NotificationType.InvokingServiceFailed; -import static org.apache.airavata.workflow.tracking.client.NotificationType.InvokingServiceSucceeded; -import static org.apache.airavata.workflow.tracking.client.NotificationType.JobStatus; -import static org.apache.airavata.workflow.tracking.client.NotificationType.LogDebug; -import static org.apache.airavata.workflow.tracking.client.NotificationType.LogException; -import static org.apache.airavata.workflow.tracking.client.NotificationType.LogInfo; -import static org.apache.airavata.workflow.tracking.client.NotificationType.LogWarning; -import static org.apache.airavata.workflow.tracking.client.NotificationType.PublishURL; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ReceivedFault; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ReceivedResult; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ResourceMapping; -import static org.apache.airavata.workflow.tracking.client.NotificationType.SendingFault; -import static org.apache.airavata.workflow.tracking.client.NotificationType.SendingResponseFailed; -import static org.apache.airavata.workflow.tracking.client.NotificationType.SendingResponseSucceeded; -import static org.apache.airavata.workflow.tracking.client.NotificationType.SendingResult; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ServiceInitialized; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ServiceInvoked; -import static org.apache.airavata.workflow.tracking.client.NotificationType.ServiceTerminated; -import static org.apache.airavata.workflow.tracking.client.NotificationType.WorkflowInitialized; -import static org.apache.airavata.workflow.tracking.client.NotificationType.WorkflowInvoked; -import static org.apache.airavata.workflow.tracking.client.NotificationType.WorkflowPaused; -import static org.apache.airavata.workflow.tracking.client.NotificationType.WorkflowResumed; -import static org.apache.airavata.workflow.tracking.client.NotificationType.WorkflowTerminated; - -import java.net.URI; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.namespace.QName; - -import org.apache.airavata.commons.LeadContextHeader; -import org.apache.airavata.workflow.tracking.client.NotificationType; -import org.apache.airavata.workflow.tracking.common.AnnotationConsts; -import org.apache.airavata.workflow.tracking.common.AnnotationProps; -import org.apache.airavata.workflow.tracking.common.ConstructorConsts; -import org.apache.airavata.workflow.tracking.common.ConstructorProps; -import org.apache.airavata.workflow.tracking.types.*; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.xmlbeans.XmlAnySimpleType; -import org.apache.xmlbeans.XmlCalendar; -import org.apache.xmlbeans.XmlCursor; -import org.apache.xmlbeans.XmlException; -import org.apache.xmlbeans.XmlObject; -import org.apache.xmlbeans.XmlOptions; - -/** - * Utility library to extract standard fields from LEAD message - */ -public class MessageUtil { - - public static final String WFT_NS = "http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking"; - public static final QName ANNO_QNAME = new QName(WFT_NS, "annotation"); - - /** - * Returns the type of the LEAD Message as a Enum type. This byte ID can be used to quickly check the type of lead - * message using an if..then statement or a switch statement - * - * @param message - * a LEAD Message Xml Document - * - * @return An Enum of type <code> org.apache.airavata.workflow.tracking.util.NOtificationType</code> - * - */ - public static final NotificationType getType(XmlObject message) { - - if (message instanceof ServiceInitializedDocument) - return ServiceInitialized; - if (message instanceof WorkflowInitializedDocument) - return WorkflowInitialized; - if (message instanceof ServiceTerminatedDocument) - return ServiceTerminated; - if (message instanceof WorkflowTerminatedDocument) - return WorkflowTerminated; - if (message instanceof InvokingServiceDocument) - return InvokingService; - if (message instanceof WorkflowInvokedDocument) - return WorkflowInvoked; - if (message instanceof ServiceInvokedDocument) - return ServiceInvoked; - if (message instanceof WorkflowPausedDocument) - return WorkflowPaused; - if (message instanceof WorkflowResumedDocument) - return WorkflowResumed; - if (message instanceof InvokingServiceSucceededDocument) - return InvokingServiceSucceeded; - if (message instanceof InvokingServiceFailedDocument) - return InvokingServiceFailed; - if (message instanceof SendingResultDocument) - return SendingResult; - if (message instanceof SendingFaultDocument) - return SendingFault; - if (message instanceof ReceivedResultDocument) - return ReceivedResult; - if (message instanceof ReceivedFaultDocument) - return ReceivedFault; - if (message instanceof SendingResponseSucceededDocument) - return SendingResponseSucceeded; - if (message instanceof SendingResponseFailedDocument) - return SendingResponseFailed; - if (message instanceof DataConsumedDocument) - return DataConsumed; - if (message instanceof DataProducedDocument) - return DataProduced; - if (message instanceof ApplicationAuditDocument) - return ApplicationAudit; - if (message instanceof ComputationDurationDocument) - return ComputationDuration; - if (message instanceof DataSendDurationDocument) - return DataSendDuration; - if (message instanceof DataReceiveDurationDocument) - return DataReceiveDuration; - if (message instanceof PublishURLDocument) - return PublishURL; - if (message instanceof LogInfoDocument) - return LogInfo; - if (message instanceof LogExceptionDocument) - return LogException; - if (message instanceof LogWarningDocument) - return LogWarning; - if (message instanceof LogDebugDocument) - return LogDebug; - if (message instanceof ResourceMappingDocument) - return ResourceMapping; - if (message instanceof JobStatusDocument) - return JobStatus; - - // default - return NotificationType.Unknown; - } - - public static ActivityTime getActivityTime(XmlObject activity) throws ParseException { - Date clockTime = getActivityTimestamp(activity); - int logicalTime = getActivityWorkflowTimestep(activity); - return new ActivityTime(logicalTime, clockTime); - } - - public static final QName TIMESTAMP_QNAME = new QName(WFT_NS, "timestamp"); - public static final QName NOTIFICATION_SRC_QNAME = new QName(WFT_NS, "notificationSource"); - public static final QName WF_TIMESTEP_QNAME = new QName(WFT_NS, "workflowTimestep"); - - public static Date getActivityTimestamp(XmlObject activity) throws ParseException { - // $ACTIVITY_XML/*/timestamp - XmlCursor xc = activity.newCursor(); - // ./ - // xc.toStartDoc(); - // ./* - xc.toNextToken(); - // ./*/timestamp - xc.toChild(TIMESTAMP_QNAME); - System.out.println(xc.xmlText()); - XmlCalendar calendar = new XmlCalendar(xc.getTextValue()); - // return getDateFormat().parse(xc.getTextValue()); // fixme: this - // supports only one date format - return calendar.getTime(); - } - - static SimpleDateFormat getDateFormat() { - return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); - } - - public static int getActivityWorkflowTimestep(XmlObject activity) { - // $ACTIVITY_XML/*/notificationSource/@workflowTimestep - XmlCursor xc = activity.newCursor(); - // ./ - // xc.toStartDoc(); - // ./* - xc.toNextToken(); - // ./*/notificationSource - xc.toChild(NOTIFICATION_SRC_QNAME); - // ./*/notificationSource/@* - boolean hasAttr = xc.toFirstAttribute(); - while (hasAttr && !WF_TIMESTEP_QNAME.equals(xc.getName())) { - hasAttr = xc.toNextAttribute(); - } - if (hasAttr) { - // ./*/notificationSource/@workflowTimestep - return Integer.parseInt(xc.getTextValue()); - } else { - return -1; - } - } - - public static List<XmlObject> getAnnotations(XmlObject message, AnnotationConsts annoElementQName) { - // locate the wft:annotation element - final String ANNO_XPATH = "declare namespace wft='" + ANNO_QNAME.getNamespaceURI() + "' .//wft:" - + ANNO_QNAME.getLocalPart(); - XmlObject[] annoObj = message.selectPath(ANNO_XPATH); - // for(XmlObject obj : annoObj){ System.out.println(obj); } - // if no result, return nothing - if (annoObj == null || annoObj.length == 0) - return new ArrayList<XmlObject>(0); - // if more than one 'annotation' element, select only first. FIXME? - // Throw exception? - final String ANNO_ELEMENT_XPATH = "declare namespace ann='" + annoElementQName.getQName().getNamespaceURI() - + "' .//ann:" + annoElementQName.getQName().getLocalPart(); - XmlObject[] annoElements = annoObj[0].selectPath(ANNO_ELEMENT_XPATH); - // for(XmlObject obj : annoElements){ System.out.println(obj); } - return Arrays.asList(annoElements); - } - - public static List<String> getSimpleAnnotations(XmlObject message, AnnotationConsts annoElementQName) - throws XmlException { - List<XmlObject> simpleXmlElements = getAnnotations(message, annoElementQName); - List<String> simpleElements = new ArrayList<String>(simpleXmlElements.size()); - for (XmlObject obj : simpleXmlElements) { - simpleElements.add((XmlAnySimpleType.Factory.parse(obj.xmlText())).stringValue()); - } - return simpleElements; - } - - public static Map<QName, XmlObject> getAllAnnotations(XmlObject message) throws XmlException { - // locate the wft:annotation element - final String ANNO_XPATH = "declare namespace wft='" + ANNO_QNAME.getNamespaceURI() + "' .//wft:" - + ANNO_QNAME.getLocalPart(); - XmlObject[] annoObj = message.selectPath(ANNO_XPATH); - // for(XmlObject obj : annoObj){ System.out.println(obj); } - // if no result, return nothing - if (annoObj == null || annoObj.length == 0) - return new HashMap<QName, XmlObject>(); - // if more than one 'annotation' element, select only first. FIXME? - // Throw exception? - final String ANNO_ELEMENT_XPATH = "*"; - XmlObject[] annoElements = annoObj[0].selectPath(ANNO_ELEMENT_XPATH); - // for(XmlObject obj : annoElements){ System.out.println(obj); } - Map<QName, XmlObject> annoMap = new HashMap<QName, XmlObject>(); - for (XmlObject annoFrag : annoElements) { - XmlObject annoElt = XmlObject.Factory.parse(annoFrag.xmlText(new XmlOptions().setSaveOuter())); - // System.out.println(annoElt); - XmlCursor xc = annoElt.newCursor(); - xc.toNextToken(); - // System.out.println(xc.getName()); - // System.out.println(xc.getObject()); - annoMap.put(xc.getName(), xc.getObject()); - } - return annoMap; - } - - public static Map<QName, String> getSimpleAnnotations(XmlObject message) throws XmlException { - Map<QName, XmlObject> simpleXmlElements = getAllAnnotations(message); - Map<QName, String> simpleElements = new HashMap<QName, String>(simpleXmlElements.size()); - for (Map.Entry<QName, XmlObject> obj : simpleXmlElements.entrySet()) { - simpleElements.put(obj.getKey(), (XmlAnySimpleType.Factory.parse(obj.getValue().xmlText())).stringValue()); - } - return simpleElements; - } - - /** - * Constructs a conttructorProps from LeadContextHeader. - * - * This methods sets annotations available in LeadContextHeader. You still need to set additional annotations if any - * before calling NotifierFactory.createNotifier(). - * - * @param leadContext - * @return The constructor props created. - */ - public static ConstructorProps createConstructorPropsFromLeadContext(LeadContextHeader leadContext) { - EndpointReference sinkEpr = leadContext.getEventSink(); - ConstructorProps props = ConstructorProps.newProps(ConstructorConsts.BROKER_EPR, sinkEpr.getAddress()); - - AnnotationProps annotationProps = AnnotationProps.newProps(); - String experimentId = leadContext.getExperimentId(); - if (experimentId != null) { - annotationProps.set(AnnotationConsts.ExperimentID, experimentId); - } - URI workflowTemplateId = leadContext.getWorkflowTemplateId(); - if (workflowTemplateId != null) { - annotationProps.set(AnnotationConsts.AbstractWorkflowID, workflowTemplateId.toString()); - } - String userDn = leadContext.getUserDn(); - if (userDn != null) { - annotationProps.set(AnnotationConsts.UserDN, userDn); - } - props.set(ConstructorConsts.ANNOTATIONS, annotationProps); - return props; - } - - public static void testAnno(String[] args) throws XmlException { - String test1 = "<wor:dataProduced xmlns:wor='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>" - + "<wor:notificationSource wor:serviceID='urn:qname:http://org.apache.airavata/lead:Terrain' wor:workflowID='tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46' wor:workflowTimestep='6' wor:workflowNodeID='Terrain_Preprocessor'/>" - + "<wor:timestamp>2007-02-14T15:44:46.509-05:00</wor:timestamp>" - + "<wor:dataProduct>" - + "<wor:id>gsiftp://bigred.iu.teragrid.org//N/gpfsbr/tg-drlead/workDirs/Terrain_Wed_Feb_14_15_44_42_EST_2007_b017e36f-146e-4852-89de-e26b00d82d77/inputData/arpstrn.input</wor:id>" - + "<wor:location>gsiftp://bigred.iu.teragrid.org//N/gpfsbr/tg-drlead/workDirs/Terrain_Wed_Feb_14_15_44_42_EST_2007_b017e36f-146e-4852-89de-e26b00d82d77/inputData/arpstrn.input</wor:location>" - + "<wor:sizeInBytes>-1</wor:sizeInBytes>" - + "<wor:timestamp>2007-02-14T15:44:46.508-05:00</wor:timestamp>" - + "<wor:description>gsiftp://bigred.iu.teragrid.org//N/gpfsbr/tg-drlead/workDirs/Terrain_Wed_Feb_14_15_44_42_EST_2007_b017e36f-146e-4852-89de-e26b00d82d77/inputData/arpstrn.input</wor:description>" - + "<wor:annotation>" - + "<dataProductType xmlns='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>LEADNameListFile</dataProductType>" - + "</wor:annotation>" + "</wor:dataProduct>" + "</wor:dataProduced>"; - String test2 = "<wor:serviceInvoked xmlns:wor='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>" - + " <wor:notificationSource wor:serviceID='urn:qname:http://org.apache.airavata/lead:Terrain' wor:workflowID='tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46' wor:workflowTimestep='6' wor:workflowNodeID='Terrain_Preprocessor'/>" - + " <wor:timestamp>2007-02-14T15:44:42.784-05:00</wor:timestamp>" - + " <wor:description>Service Invoked</wor:description>" - + " <wor:annotation>" - + " <typedSOAPRequest xmlns='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>" - + " <S:Envelope xmlns:wsa='http://www.w3.org/2005/08/addressing' xmlns:wsp='http://schemas.xmlsoap.org/ws/2002/12/policy' xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'>" - + " <S:Header>" - + " <lh:context xmlns:lh='http://lead.extreme.indiana.edu/namespaces/2005/10/lead-context-header'>" - + " <lh:experiment-id>urn:uuid:3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:experiment-id>" - + " <lh:event-sink-epr>" - + " <wsa:Address>http://tyr11.cs.indiana.edu:12346/topic/3f422b0b-912f-49c1-8bb6-0c5612d160bf</wsa:Address>" - + " </lh:event-sink-epr>" - + " <lh:user-dn>/O=LEAD Project/OU=portal.leadproject.org/OU=cs.indiana.edu/CN=marcus/[email protected]</lh:user-dn>" - + " <lh:resource-catalog-url>https://everest.extreme.indiana.edu:22443/resource_catalog?wsdl</lh:resource-catalog-url>" - + " <lh:gfac-url>https://tyr09.cs.indiana.edu:23443?wsdl</lh:gfac-url>" - + " <lh:mylead-agent-url>https://bitternut.cs.indiana.edu:10243/myleadagent?wsdl</lh:mylead-agent-url>" - + " <lh:OUTPUT_DATA_DIRECTORY>gsiftp://chinkapin.cs.indiana.edu//data/data-output/3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:OUTPUT_DATA_DIRECTORY>" - + " <lh:OPENDAP_DIRECTORY>opendap://chinkapin.cs.indiana.edu:8080/thredds/dodsC/data/data-output/3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:OPENDAP_DIRECTORY>" - + " <lh:OUTPUT_DATA_FILES_SUFFIX>.nc</lh:OUTPUT_DATA_FILES_SUFFIX>" - + " <lh:workflow-instance-id>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46</lh:workflow-instance-id>" - + " <lh:resource-broker-url>http://152.54.1.30:3333/resourcebroker?wsdl</lh:resource-broker-url>" - + " <lh:workflow-time-step>6</lh:workflow-time-step>" - + " <lh:workflow-node-id>Terrain_Preprocessor</lh:workflow-node-id>" - + " <lh:service-instance-id>http://tempuri.org/no-service-id</lh:service-instance-id>" - + " </lh:context>" - + " <wsa:MessageID>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46/outgoing/Terrain_PreprocessorPartner/1</wsa:MessageID>" - + " <wsa:ReplyTo>" - + " <wsa:Address>http://tyr10.cs.indiana.edu:7080/gpel/728/ADASInitializedWRFForecasting/instance46/incoming/Terrain_PreprocessorPartner.atom</wsa:Address>" - + " </wsa:ReplyTo>" - + " <wsa:Action/>" - + " <wsa:To>https://tyr11.cs.indiana.edu:12554/</wsa:To>" - + " <wsa:FaultTo>" - + " <wsa:Address>http://tyr10.cs.indiana.edu:7080/gpel/728/ADASInitializedWRFForecasting/instance46/incoming/Terrain_PreprocessorPartner.atom</wsa:Address>" - + " </wsa:FaultTo>" - + " <wsa:RelatesTo>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46/outgoing/Terrain_PreprocessorPartner/1</wsa:RelatesTo>" - + " </S:Header>" - + " <S:Body>" - + " <terrain_preprocessortypens:Preprocessor_InputParams xmlns:terrain_preprocessortypens='http://org.apache.airavata/lead/Terrain/xsd'>" - + " <CrossCuttingConfigurations n1:leadType='LeadCrosscutParameters' xmlns:n1='http://org.apache.airavata/namespaces/2004/01/gFac'>" - + " <lcp:nx xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>53</lcp:nx>" - + " <lcp:ny xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>53</lcp:ny>" - + " <lcp:dx xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>20000</lcp:dx>" - + " <lcp:dy xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>20000</lcp:dy>" - + " <lcp:fcst_time xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>12.0</lcp:fcst_time>" - + " <lcp:start_date xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>2007/02/13</lcp:start_date>" - + " <lcp:start_hour xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>18</lcp:start_hour>" - + " <lcp:ctrlat xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>39.97712</lcp:ctrlat>" - + " <lcp:ctrlon xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-86.484375</lcp:ctrlon>" - + " <lcp:westbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-90.97595</lcp:westbc>" - + " <lcp:eastbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-81.9928</lcp:eastbc>" - + " <lcp:northbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>43.34412</lcp:northbc>" - + " <lcp:southbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>36.434242</lcp:southbc>" - + " </CrossCuttingConfigurations>" - + " </terrain_preprocessortypens:Preprocessor_InputParams>" - + " </S:Body>" - + " </S:Envelope>" - + " </typedSOAPRequest>" - + " </wor:annotation>" - + " <wor:request>" - + " <wor:header>" - + " <S:Header xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'>" - + " <lh:context xmlns:lh='http://lead.extreme.indiana.edu/namespaces/2005/10/lead-context-header'>" - + " <lh:experiment-id>urn:uuid:3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:experiment-id>" - + " <lh:event-sink-epr>" - + " <wsa:Address xmlns:wsa='http://www.w3.org/2005/08/addressing'>http://tyr11.cs.indiana.edu:12346/topic/3f422b0b-912f-49c1-8bb6-0c5612d160bf</wsa:Address>" - + " </lh:event-sink-epr>" - + " <lh:user-dn>/O=LEAD Project/OU=portal.leadproject.org/OU=cs.indiana.edu/CN=marcus/[email protected]</lh:user-dn>" - + " <lh:resource-catalog-url>https://everest.extreme.indiana.edu:22443/resource_catalog?wsdl</lh:resource-catalog-url>" - + " <lh:gfac-url>https://tyr09.cs.indiana.edu:23443?wsdl</lh:gfac-url>" - + " <lh:mylead-agent-url>https://bitternut.cs.indiana.edu:10243/myleadagent?wsdl</lh:mylead-agent-url>" - + " <lh:OUTPUT_DATA_DIRECTORY>gsiftp://chinkapin.cs.indiana.edu//data/data-output/3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:OUTPUT_DATA_DIRECTORY>" - + " <lh:OPENDAP_DIRECTORY>opendap://chinkapin.cs.indiana.edu:8080/thredds/dodsC/data/data-output/3f422b0b-912f-49c1-8bb6-0c5612d160bf</lh:OPENDAP_DIRECTORY>" - + " <lh:OUTPUT_DATA_FILES_SUFFIX>.nc</lh:OUTPUT_DATA_FILES_SUFFIX>" - + " <lh:workflow-instance-id>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46</lh:workflow-instance-id>" - + " <lh:resource-broker-url>http://152.54.1.30:3333/resourcebroker?wsdl</lh:resource-broker-url>" - + " <lh:workflow-time-step>6</lh:workflow-time-step>" - + " <lh:workflow-node-id>Terrain_Preprocessor</lh:workflow-node-id>" - + " <lh:service-instance-id>http://tempuri.org/no-service-id</lh:service-instance-id>" - + " </lh:context>" - + " <wsa:MessageID xmlns:wsa='http://www.w3.org/2005/08/addressing'>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46/outgoing/Terrain_PreprocessorPartner/1</wsa:MessageID>" - + " <wsa:ReplyTo xmlns:wsa='http://www.w3.org/2005/08/addressing'>" - + " <wsa:Address>http://tyr10.cs.indiana.edu:7080/gpel/728/ADASInitializedWRFForecasting/instance46/incoming/Terrain_PreprocessorPartner.atom</wsa:Address>" - + " </wsa:ReplyTo>" - + " <wsa:Action xmlns:wsa='http://www.w3.org/2005/08/addressing'/>" - + " <wsa:To xmlns:wsa='http://www.w3.org/2005/08/addressing'>https://tyr11.cs.indiana.edu:12554/</wsa:To>" - + " <wsa:FaultTo xmlns:wsa='http://www.w3.org/2005/08/addressing'>" - + " <wsa:Address>http://tyr10.cs.indiana.edu:7080/gpel/728/ADASInitializedWRFForecasting/instance46/incoming/Terrain_PreprocessorPartner.atom</wsa:Address>" - + " </wsa:FaultTo>" - + " <wsa:RelatesTo xmlns:wsa='http://www.w3.org/2005/08/addressing'>tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46/outgoing/Terrain_PreprocessorPartner/1</wsa:RelatesTo>" - + " </S:Header>" - + " </wor:header>" - + " <wor:body>" - + " <S:Body xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'>" - + " <terrain_preprocessortypens:Preprocessor_InputParams xmlns:terrain_preprocessortypens='http://org.apache.airavata/lead/Terrain/xsd'>" - + " <CrossCuttingConfigurations>" - + " <lcp:nx xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>53</lcp:nx>" - + " <lcp:ny xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>53</lcp:ny>" - + " <lcp:dx xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>20000</lcp:dx>" - + " <lcp:dy xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>20000</lcp:dy>" - + " <lcp:fcst_time xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>12.0</lcp:fcst_time>" - + " <lcp:start_date xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>2007/02/13</lcp:start_date>" - + " <lcp:start_hour xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>18</lcp:start_hour>" - + " <lcp:ctrlat xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>39.97712</lcp:ctrlat>" - + " <lcp:ctrlon xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-86.484375</lcp:ctrlon>" - + " <lcp:westbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-90.97595</lcp:westbc>" - + " <lcp:eastbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>-81.9928</lcp:eastbc>" - + " <lcp:northbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>43.34412</lcp:northbc>" - + " <lcp:southbc xmlns:lcp='http://lead.extreme.indiana.edu/namespaces/2006/lead-crosscut-parameters/'>36.434242</lcp:southbc>" - + " </CrossCuttingConfigurations>" - + " </terrain_preprocessortypens:Preprocessor_InputParams>" - + " </S:Body>" - + " </wor:body>" - + " </wor:request>" - + " <wor:initiator wor:serviceID='tag:gpel.leadproject.org,2006:728/ADASInitializedWRFForecasting/instance46' wor:workflowTimestep='-1'/>" - + "</wor:serviceInvoked>"; - - XmlObject test1Obj = XmlObject.Factory.parse(test1); - List<String> result1 = getSimpleAnnotations(test1Obj, AnnotationConsts.DataProductType); - for (String obj : result1) { - System.out.println(obj); - } - - XmlObject test2Obj = XmlObject.Factory.parse(test2); - List<XmlObject> result2 = getAnnotations(test2Obj, AnnotationConsts.TypedSOAPRequest); - for (XmlObject obj : result2) { - System.out.println(obj); - final String ANNO_XPATH = "declare namespace S='http://schemas.xmlsoap.org/soap/envelope/'" - + " ./S:Envelope/S:Body/*"; - XmlObject[] out = obj.selectPath(ANNO_XPATH); - for (XmlObject xo : out) { - System.out.println("===="); - System.out.println(xo); - System.out.println("----"); - class Param { - String paramName, paramType, paramValue; - - public Param(String paramName_, String paramType_, String paramValue_) { - paramName = paramName_; - paramType = paramType_; - paramValue = paramValue_; - } - - public String toString() { - return paramName + "<" + paramType + ">=[" + paramValue + "]"; - } - } - List<Param> paramList = new ArrayList<Param>(); - - XmlCursor xc = xo.newCursor(); - boolean exists = xc.toFirstChild(); - while (exists) { - String paramName = xc.getName().getLocalPart(); - String paramType = xc.getAttributeText(new QName( - "http://org.apache.airavata/namespaces/2004/01/gFac", "leadType")); - String paramValue; - if ("LeadCrosscutParameters".equals(paramType)) { - XmlObject paramObj = xc.getObject(); - XmlCursor xc2 = paramObj.newCursor(); - boolean exists2 = xc2.toFirstChild(); - while (exists2) { - String paramName2 = xc2.getName().getLocalPart(); - String paramValue2 = xc2.getTextValue(); - // get type from param name - String paramType2; // default - if ("nx".equals(paramName2) || "ny".equals(paramName2) || "dx".equals(paramName2) - || "dx".equals(paramName2) || "ctrlat".equals(paramName2) - || "ctrlon".equals(paramName2) || "westbc".equals(paramName2) - || "eastbc".equals(paramName2) || "northbc".equals(paramName2) - || "southbc".equals(paramName2) - // TODO: add more - ) { - - paramType2 = "Numeric"; - } else { - // default string - paramType2 = "String"; - } - - paramList.add(new Param(paramName + ":" + paramName2, paramType2, paramValue2)); - exists2 = xc2.toNextSibling(); - } - } else if ("Integer".equals(paramType)) { - paramValue = xc.getTextValue(); - paramType = "Numeric"; - paramList.add(new Param(paramName, paramType, paramValue)); - } else if ("Nominal".equals(paramType)) { - paramValue = xc.getTextValue(); - paramType = "Nominal"; - paramList.add(new Param(paramName, paramType, paramValue)); - } else { - // default - paramValue = xc.getTextValue(); - paramType = "String"; - paramList.add(new Param(paramName, paramType, paramValue)); - } - exists = xc.toNextSibling(); - } - // return paramList; - - for (Param p : paramList) { - System.out.println(p); - } - } - } - } - - public static void testTimestamp(String[] args) throws Exception { - final String ACTIVITY = "<wor:serviceInvoked infoModelVersion='2.6' xmlns:wor='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'><wor:notificationSource wor:serviceID='urn:qname:http://org.apache.airavata/lead:FactoryService_Fri_Jun_22_21_21_24_EDT_2007_311971' wor:workflowID='tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI/instance5' wor:workflowTimestep='6' wor:workflowNodeID='GFac:AlignWarpService_Run'/><wor:timestamp>2007-06-23T11:16:35.404-04:00</wor:timestamp><wor:description>Service Invoked</wor:description><wor:annotation><n1:typedSOAPRequest xmlns:n1='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'><S:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:wsa='http://www.w3.org/2005/08/addressing' xmlns:wsp='http://schemas.xmlsoap.org/ws/2002/12/policy' xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'><S:Header><lh:context xmlns:lh='http://lead.extreme.i ndiana.edu/namespaces/2005/10/lead-context-header'><lh:experiment-id>xbaya-experiment</lh:experiment-id><lh:event-sink-epr><wsa:Address>http://tyr10.cs.indiana.edu:12346/topic/second-provenance-challenge-20070623T111715</wsa:Address></lh:event-sink-epr><lh:user-dn>/O=LEAD Project/OU=Indiana University Extreme Lab/OU=linbox1.extreme.indiana.edu/OU=extreme.indiana.edu/CN=ysimmhan/[email protected]</lh:user-dn><lh:resource-catalog-url>https://everest.extreme.indiana.edu:20443/resource_catalog?wsdl</lh:resource-catalog-url><lh:gfac-url>https://tyr12.cs.indiana.edu:23443/?wsdl</lh:gfac-url><lh:mylead-agent-url>https://tyr03.cs.indiana.edu:20243/myleadagent?wsdl</lh:mylead-agent-url><lh:workflow-template-id>tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI</lh:workflow-template-id><lh:workflow-instance-id>tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI/instance5</lh:workflow-instance-id><lh:workflow-time-step>6</lh:workflow-time-step><lh:workflow-node-id>GFac :AlignWarpService_Run</lh:workflow-node-id><lh:service-instance-id>http://tempuri.org/no-service-id</lh:service-instance-id></lh:context><wsa:To>https://tyr12.cs.indiana.edu:23443/</wsa:To><wsa:Action>http://org.apache.airavata/lead/FactoryService/CreateService</wsa:Action></S:Header><S:Body><n1:CreateService_InputParams xmlns:n1='http://org.apache.airavata/lead/FactoryService/xsd'><serviceQName n2:leadType='String' xmlns:n2='http://org.apache.airavata/namespaces/2004/01/gFac'>{http://org.apache.airavata/karma/challenge2}AlignWarpService</serviceQName><security n3:leadType='String' xmlns:n3='http://org.apache.airavata/namespaces/2004/01/gFac'>None</security><registryUrl n4:leadType='String' xmlns:n4='http://org.apache.airavata/namespaces/2004/01/gFac'/><host n5:leadType='String' xmlns:n5='http://org.apache.airavata/namespaces/2004/01/gFac'/><appHost n6:leadType='String' xmlns:n6='http://org.apache.airavata/namespaces/2004/01/gFac'/></n1:CreateService_InputParams></S:Body></S:Envelop e></n1:typedSOAPRequest><n1:experimentID xmlns:n1='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>xbaya-experiment</n1:experimentID><n1:userDN xmlns:n1='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>/O=LEAD Project/OU=Indiana University Extreme Lab/OU=linbox1.extreme.indiana.edu/OU=extreme.indiana.edu/CN=ysimmhan/[email protected]</n1:userDN><experimentID xmlns='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>xbaya-experiment</experimentID></wor:annotation><wor:request><wor:header><S:Header xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'><lh:context xmlns:lh='http://lead.extreme.indiana.edu/namespaces/2005/10/lead-context-header'><lh:experiment-id>xbaya-experiment</lh:experiment-id><lh:event-sink-epr><wsa:Address xmlns:wsa='http://www.w3.org/2005/08/addressing'>http://tyr10.cs.indiana.edu:12346/topic/second-provenance-challenge-20070623T111715</wsa:Address></lh:event-sink-epr><lh:user-dn>/O=LEAD Pro ject/OU=Indiana University Extreme Lab/OU=linbox1.extreme.indiana.edu/OU=extreme.indiana.edu/CN=ysimmhan/[email protected]</lh:user-dn><lh:resource-catalog-url>https://everest.extreme.indiana.edu:20443/resource_catalog?wsdl</lh:resource-catalog-url><lh:gfac-url>https://tyr12.cs.indiana.edu:23443/?wsdl</lh:gfac-url><lh:mylead-agent-url>https://tyr03.cs.indiana.edu:20243/myleadagent?wsdl</lh:mylead-agent-url><lh:workflow-template-id>tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI</lh:workflow-template-id><lh:workflow-instance-id>tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI/instance5</lh:workflow-instance-id><lh:workflow-time-step>6</lh:workflow-time-step><lh:workflow-node-id>GFac:AlignWarpService_Run</lh:workflow-node-id><lh:service-instance-id>http://tempuri.org/no-service-id</lh:service-instance-id></lh:context><wsa:To xmlns:wsa='http://www.w3.org/2005/08/addressing'>https://tyr12.cs.indiana.edu:23443/</wsa:To><wsa:Action xmlns:wsa='http://www.w3.o rg/2005/08/addressing'>http://org.apache.airavata/lead/FactoryService/CreateService</wsa:Action></S:Header></wor:header><wor:body><S:Body xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'><n1:CreateService_InputParams xmlns:n1='http://org.apache.airavata/lead/FactoryService/xsd'><serviceQName>{http://org.apache.airavata/karma/challenge2}AlignWarpService</serviceQName><security>None</security><registryUrl/><host/><appHost/></n1:CreateService_InputParams></S:Body></wor:body></wor:request><wor:initiator wor:serviceID='tag:gpel.leadproject.org,2006:76M/Challenge2WorkflowPartI/instance5' wor:workflowTimestep='-1'/></wor:serviceInvoked>"; - XmlObject activity = XmlObject.Factory.parse(ACTIVITY); - System.out.println(getActivityTimestamp(activity)); - System.out.println(getActivityWorkflowTimestep(activity)); - } - - public static void main(String[] args) throws XmlException, ParseException { - final String ACTIVITY = "<wor:dataConsumed xmlns:wor='http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking'>" - + "<wor:notificationSource wor:serviceID='urn:qname:http://org.apache.airavata/karma/challenge2:AlignWarpService_Wed_Feb_21_12_09_49_EST_2007_67130' wor:workflowID='tag:gpel.leadproject.org,2006:72L/Challenge2WorkflowPartI/instance2' wor:workflowTimestep='6' wor:workflowNodeID='AlignWarpService_Run'/>" - + "<wor:timestamp>2007-02-21T12:10:33.772-05:00</wor:timestamp>" - + "<wor:dataProduct>" - + "<wor:id>urn:leadproject-org:data:3d847d61-696e-4742-b98b-51f39aa2c679</wor:id>" - + "<wor:location>gsiftp://tyr15.cs.indiana.edu//san/extreme/tmp/service_logs/development/AlignWarp_Wed_Feb_21_12_09_57_EST_2007_17/inputData/anatomy1.img</wor:location>" - + "<wor:sizeInBytes>-1</wor:sizeInBytes>" - + "<wor:timestamp>2007-02-21T12:10:33.771-05:00</wor:timestamp>" - + "<wor:description>gsiftp://tyr15.cs.indiana.edu//san/extreme/tmp/service_logs/development/AlignWarp_Wed_Feb_21_12_09_57_EST_2007_17/inputData/anatomy1.img</wor:description>" - + "<wor:annotation>" - + "<type xmlns='http://org.apache.airavata/namespaces/2004/01/gFac'>DataID</type>" - + "<center xmlns='http://twiki.ipaw.info/bin/view/Challenge/SecondProvenanceChallenge'>UChicago</center>" - + "</wor:annotation>" + "</wor:dataProduct>" + "</wor:dataConsumed>"; - - XmlObject activity = XmlObject.Factory.parse(ACTIVITY); - Map<QName, String> annos = getSimpleAnnotations(activity); - for (Map.Entry<QName, String> anno : annos.entrySet()) { - System.out.println(anno); - } - - } -}
http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/Timer.java ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/Timer.java b/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/Timer.java deleted file mode 100644 index 47bed09..0000000 --- a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/Timer.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * - * 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. - * - */ - -package org.apache.airavata.workflow.tracking.util; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * calculates simple timing information for instrumenting code - */ -public class Timer { - - private static final Logger logger = LoggerFactory.getLogger(Timer.class); - - private long start, end, total = 0, deltaStart, delta = 0; - private final String msg; - private boolean ended = false, started = false, paused = false, terminated = false; - - Timer(String msg_) { - msg = msg_; - start = System.currentTimeMillis(); - } - - public static Timer init(String msg_) { - return new Timer(msg_); - } - - public static Timer initAndStart(String msg_) { - - Timer tp = new Timer(msg_); - tp.start(); - return tp; - } - - public void start() { - - assert started == false && terminated == false; - started = true; - ended = false; - start = System.currentTimeMillis(); - } - - public boolean startOrContinue() { - - if (started) - return false; // continued...not started fresh - start(); - return true; // started fresh - } - - public long end(String msg_) { - - assert started == true && terminated == false; - end = System.currentTimeMillis(); - total += (end - start - delta); - logger.debug("\n!T!ENDOne \t" + msg_ + " \t" + (end - start - delta) + "\t millis of \t" + total); - ended = true; - return end - start; - } - - public long end() { - return end(msg); - } - - public long endAll() { - - logger.debug("\n!T!ENDAll \t" + msg + " \t" + total); - terminated = true; - return total; - } - - public void pause() { - - assert started == true && terminated == false; - deltaStart = System.currentTimeMillis(); - paused = true; - } - - public void resume() { - - assert paused == true && terminated == false; - paused = false; - delta = System.currentTimeMillis() - deltaStart; - } -}; http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/XmlBeanUtils.java ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/XmlBeanUtils.java b/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/XmlBeanUtils.java deleted file mode 100644 index d65004d..0000000 --- a/modules/commons/workflow-tracking/src/main/java/org/apache/airavata/workflow/tracking/util/XmlBeanUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * 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. - * - */ - -package org.apache.airavata.workflow.tracking.util; - -import org.apache.airavata.workflow.tracking.types.BaseNotificationType; -import org.apache.xmlbeans.XmlCursor; -import org.apache.xmlbeans.XmlObject; - -public class XmlBeanUtils { - - public static BaseNotificationType extractBaseNotificationType(XmlObject xmldata) { - XmlCursor c = xmldata.newCursor(); - c.toNextToken(); - BaseNotificationType type = (BaseNotificationType) c.getObject(); - c.dispose(); - return type; - } - -} http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/resources/log4j.properties b/modules/commons/workflow-tracking/src/main/resources/log4j.properties deleted file mode 100644 index 598ee12..0000000 --- a/modules/commons/workflow-tracking/src/main/resources/log4j.properties +++ /dev/null @@ -1,82 +0,0 @@ -# -# -# 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. -# -# - -#------------------------------------------------------------------------------ -# -# The following properties set the logging levels and log appender. The -# log4j.rootCategory variable defines the default log level and one or more -# appenders. For the console, use 'S'. For the daily rolling file, use 'R'. -# For an HTML formatted log, use 'H'. -# -# To override the default (rootCategory) log level, define a property of the -# form (see below for available values): -# -# log4j.logger. = -# -# Available logger names: -# TODO -# -# Possible Log Levels: -# FATAL, ERROR, WARN, INFO, DEBUG -# -#------------------------------------------------------------------------------ -log4j.rootCategory=FATAL,S - - -log4j.logger.com.dappit.Dapper.parser=ERROR -log4j.logger.org.w3c.tidy=FATAL - -#------------------------------------------------------------------------------ -# -# The following properties configure the console (stdout) appender. -# See http://logging.apache.org/log4j/docs/api/index.html for details. -# -#------------------------------------------------------------------------------ -log4j.appender.S = org.apache.log4j.ConsoleAppender -log4j.appender.S.layout = org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n -log4j.appender.S.Threshold=ERROR - -#------------------------------------------------------------------------------ -# -# The following properties configure the Daily Rolling File appender. -# See http://logging.apache.org/log4j/docs/api/index.html for details. -# -#------------------------------------------------------------------------------ -log4j.appender.R = org.apache.log4j.DailyRollingFileAppender -log4j.appender.R.File = logs/workflow.log -log4j.appender.R.Append = true -log4j.appender.R.DatePattern = '.'yyy-MM-dd -log4j.appender.R.layout = org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n - -#------------------------------------------------------------------------------ -# -# The following properties configure the Rolling File appender in HTML. -# See http://logging.apache.org/log4j/docs/api/index.html for details. -# -#------------------------------------------------------------------------------ -log4j.appender.H = org.apache.log4j.RollingFileAppender -log4j.appender.H.File = logs/workflow.html -log4j.appender.H.MaxFileSize = 100KB -log4j.appender.H.Append = false -log4j.appender.H.layout = org.apache.log4j.HTMLLayout -log4j.appender.S.Threshold=FATAL http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsd ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsd b/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsd deleted file mode 100644 index f4bdf96..0000000 --- a/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsd +++ /dev/null @@ -1,594 +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. --> - -<schema targetNamespace="http://airavata.apache.org/schemas/wft/2011/08" xmlns:wft="http://airavata.apache.org/schemas/wft/2011/08" - xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified"> - - <annotation> - <documentation> - *) Workflows and services can be abstract (template) or concrete (instance). - Unless otherwise noted, we always refer to the concrete instance of the workflow/service below - *) All workflows are also services. - *) Services may be part of zero or more workflows - *) When Services execute in the context of a workflow, - an invocation of the service is associated with the workflowID of the workflow whose context - in which it is being invoked (also called parent workflow), - the timestep of this invocation in the parent workflow, - and the node ID that uniquely identifies this service within the parent workflow instance. - *) Workflows can also be invoked in the context of another parent workflow. - *) Workflow ID always refers to the "parent workflow ID". When refering to the invocation of a workflow, - its instance ID is called the Service ID. - *) Workflows that are not invoked from another workflow do not have a context of execution - (parent workflow is not present => Workflow ID is NULL) - *) Schema design notes - - This schema uses the "Venetian Blind" schema design pattern - - It uses Upper Camel Case for schema types and lower camel case for - element and attribute names - </documentation> - </annotation> - - <simpleType name="ServiceIDType"> - <annotation> - <documentation> - ID to uniquely identify the service instance. - This is usually formed from the targetnamespace and porttype name of the service's WSDL. - This ID may refer to the instance ID for a service or for a workflow. - </documentation> - </annotation> - <restriction base="anyURI" /> - </simpleType> - - <simpleType name="WorkflowNodeIDType"> - <annotation> - <documentation> - String that identifies uniquely a node in workflow graph. - The node ID is unique in the scope of a workflow ID. - </documentation> - </annotation> - <restriction base="string" /> - </simpleType> - - <simpleType name="WorkflowTimestepType"> - <annotation> - <documentation> - The timestep within workflow execution at which this invocation is made. - This is a logical time that monotonically increments for each invocation in a workflow. - </documentation> - </annotation> - <restriction base="int" /> - </simpleType> - - <simpleType name="DataProductIDType"> - <annotation> - <documentation> - Unique logical ID for a data product in the form of a UUID. - Physical URL for the data products can be resolved using this ID. - </documentation> - </annotation> - <restriction base="anyURI" /> - </simpleType> - - <simpleType name="ExperimentIDType"> - <annotation> - <documentation> - String that identifies uniquely a node in workflow graph. - The node ID is unique in the scope of a workflow ID. - </documentation> - </annotation> - <restriction base="string" /> - </simpleType> - - <!-- ========================================================================================== --> - - <complexType name="BaseIDType"> - <attribute name="workflowID" type="wft:ServiceIDType" use="optional"> - <annotation> - <documentation> - The workflow context within which this service is executing. - If this service is itself a workflow and not executing as part of another workflow - (i.e. this is the root of the invocation trace) then the workflow ID is absent. - Otherwise, this is the service ID of the workflow instance. - </documentation> - </annotation> - </attribute> - - <attribute name="serviceID" type="wft:ServiceIDType" use="required"> - <annotation> - <documentation> - ID to uniquely identify a service instance. The service instance can - be part of zero or more workflow. - This is formed from the targetnamespace of the service's CWSDL. - </documentation> - </annotation> - </attribute> - - <attribute name="experimentID" type="wft:ExperimentIDType" use="required"> - <annotation> - <documentation> - ID to uniquely identify a workflow invocation. - </documentation> - </annotation> - </attribute> - - <attribute name="workflowNodeID" type="wft:WorkflowNodeIDType" use="optional"> - <annotation> - <documentation> - Distinct ID of a node within a Workflow graph. unique within the workflowID, - not necessarily the order of execution. - </documentation> - </annotation> - </attribute> - - <attribute name="workflowTimestep" type="wft:WorkflowTimestepType" use="optional"> - <annotation> - <documentation> - The timestep within workflow execution at which this invocation is made. - 32bit integer. Timestep is a numerically ordered monotonically increasing sequence - within wf execution that allows relative ordering of invocations. - It is unique within the workflowID for each invocation in the workflow. - </documentation> - </annotation> - </attribute> - </complexType> - - <!-- base type for all notifications --> - <complexType name="BaseNotificationType"> - <annotation> - <documentation>This is the base type for all notification activities that are produced</documentation> - </annotation> - <sequence> - - <element name="notificationSource" type="wft:BaseIDType"> - <annotation> - <documentation> - This identifies the entity/invocation context from which this notifcation is being sent. - </documentation> - </annotation> - </element> - - <element name="timestamp" type="dateTime" /> - - <element name="description" type="string" minOccurs="0"> - <annotation> - <documentation>Optional human friendly description of this notification.</documentation> - </annotation> - </element> - - <element name="annotation" type="anyType" minOccurs="0"> - <annotation> - <documentation>Optional additional metadata for this notification. See common.AnnotationConsts file. - </documentation> - </annotation> - </element> - - </sequence> - - <attribute name="infoModelVersion" form="unqualified" type="NMTOKEN" use="required"> - <!-- we set form as unqualified to allow WS-Messenger YFilter to match it --> - <!-- NMToken := (Letter | Digit | '.' | '-' | '_' | ':')+ --> - <annotation> - <documentation> - String identifying notification schema version (used for verifying compatible schema and filtering). - </documentation> - </annotation> - </attribute> - - </complexType> - - - <complexType name="MessageType"> - <sequence> - <element name="header" type="anyType" minOccurs="0" /> <!-- e.g. soap:header --> - <element name="body" type="anyType" minOccurs="0" /> <!-- e.g. soap:body --> <!-- fixme: change to message --> - </sequence> - </complexType> - - <complexType name="FaultMessageType"> - <complexContent> - <extension base="wft:MessageType" /> - </complexContent> - </complexType> - - <complexType name="InvocationMessageType"> - <complexContent> - <extension base="wft:MessageType" /> - </complexContent> - </complexType> - - - <complexType name="FailureMessageType"> - <sequence> - <element name="trace" type="anyType" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - </complexType> - - - <!-- ========================================================================================== --> - <!-- workflow provenance types --> - <!-- ========================================================================================== --> - - <!-- sent when the service is first created and is ready to accept invocations --> - <element name="serviceInitialized" type="wft:BaseNotificationType" /> - - <!-- sent when the service is terminated and will not accept any further invocations --> - <element name="serviceTerminated" type="wft:BaseNotificationType" /> - - <!-- sent when the workflow is first created and is ready to accept invocations --> - <!--element name="workflowInitialized" type="wft:BaseNotificationType" --> - <element name="workflowInitialized"> - <complexType> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="initialPriority" type="string" minOccurs="0" /> - <element name="workflowTemplateId" type="wft:ServiceIDType" minOccurs="0" /> - <element name="workflowCreatorDn" type="string" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - </element> - - <!-- sent when the workflow is terminated and will not accept any further invocations --> - <element name="workflowTerminated" type="wft:BaseNotificationType" /> - - <!-- sent when the workflow execution is paused: invocations will be accepted but no new messages will be sent by the workflow --> - <element name="workflowPaused" type="wft:BaseNotificationType" /> - - <!-- sent when the workflow execution is resumed --> - <element name="workflowResumed" type="wft:BaseNotificationType" /> - - <!-- workflow priority tracking --> - <element name="workflowPriorityChanged"> - <complexType> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="newPriority" type="string" /> - <element name="oldPriority" type="string" /> - </sequence> - </extension> - </complexContent> - </complexType> - </element> - - <!-- ========================================================================================== --> - - <complexType name="InvocationRequestType" abstract="true"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="request" type="wft:InvocationMessageType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="RequestInitiatorType"> - <complexContent> - <extension base="wft:InvocationRequestType"> - <sequence> - <!-- used by wf (client) to set service info, when invoking service --> - <element name="receiver" type="wft:BaseIDType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="RequestReceiverType"> - <complexContent> - <extension base="wft:InvocationRequestType"> - <sequence> - <!-- used by service to set workflow(client) info, when invoked by workflow (client) --> - <element name="initiator" type="wft:BaseIDType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - - <!-- ========================================================================================== --> - - <complexType name="AcknowledgementType" abstract="true"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="receiver" type="wft:BaseIDType" minOccurs="0" /> <!-- target of the action that succeeded --> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="AcknowledgeSuccessType"> - <complexContent> - <extension base="wft:AcknowledgementType" /> - </complexContent> - </complexType> - - <complexType name="AcknowledgeFailureType"> - <complexContent> - <extension base="wft:AcknowledgementType"> - <sequence> - <element name="failure" type="wft:FailureMessageType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <!-- ========================================================================================== --> - - <!-- sent by workflow when a service is invoked by it. --> - <element name="invokingService" type="wft:RequestInitiatorType" /> - - - <!-- sent by workflow when it is invoked. --> - <element name="workflowInvoked" type="wft:RequestReceiverType" /> - - <!-- sent by service when it is invoked. --> - <element name="serviceInvoked" type="wft:RequestReceiverType" /> - - - <!-- sent by workflow when it invoked a service successfully. --> - <element name="invokingServiceSucceeded" type="wft:AcknowledgeSuccessType" /> - - <!-- sent by workflow when it failed to invoke a service successfully. --> - <element name="invokingServiceFailed" type="wft:AcknowledgeFailureType" /> - - - <!-- ========================================================================================== --> - - <complexType name="InvocationResultType" abstract="true"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="result" type="wft:InvocationMessageType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="InvocationFaultType" abstract="true"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="fault" type="wft:FaultMessageType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="ResultReceiverType"> - <complexContent> - <extension base="wft:InvocationResultType"> - <sequence> - <!-- used by wf (client) to set service info, when receiving result from service --> - <element name="responder" type="wft:BaseIDType" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="FaultReceiverType"> - <complexContent> - <extension base="wft:InvocationFaultType"> - <sequence> - <!-- used by wf (client) to set service info, when receiving result from service --> - <element name="responder" type="wft:BaseIDType" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="ResultResponderType"> - <complexContent> - <extension base="wft:InvocationResultType"> - <sequence> - <!-- used by service to set workflow(client) info, when returning result to workflow (client) --> - <element name="receiver" type="wft:BaseIDType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="FaultResponderType"> - <complexContent> - <extension base="wft:InvocationFaultType"> - <sequence> - <!-- used by service to set workflow(client) info, when returning result to workflow (client) --> - <element name="receiver" type="wft:BaseIDType" minOccurs="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <!-- ========================================================================================== --> - - <!-- sent by service when it returns the result for an invocation. --> - <element name="sendingResult" type="wft:ResultResponderType" /> <!-- add workflowSendingResult --> - - <!-- sent by service when it returns a fault for an invocation. --> - <element name="sendingFault" type="wft:FaultResponderType" /> <!-- add workflowSendingFault --> - - - <!-- sent by workflow when it receives the result for an invocation. --> - <element name="receivedResult" type="wft:ResultReceiverType" /> <!-- add workflowReceivedResult --> - - <!-- sent by workflow when it receives a fault for an invocation. --> - <element name="receivedFault" type="wft:FaultReceiverType" /> <!-- add workflowFaultResult --> - - - <!-- sent by service when it has successfully sent the result for an invocation. --> - <element name="sendingResponseSucceeded" type="wft:AcknowledgeSuccessType" /> - - <!-- sent by service when it has successfully sent a fault for an invocation. --> - <element name="sendingResponseFailed" type="wft:AcknowledgeFailureType" /> - - <!-- ========================================================================================== --> - - - <!-- ========================================================================================== --> - <!-- data provenance types --> - <!-- ========================================================================================== --> - - <!-- general complex data types --> - <complexType name="DataProductType"> - <sequence> - <element name="id" type="wft:DataProductIDType" /> - <element name="location" type="anyURI" minOccurs="0" maxOccurs="unbounded" /> - <element name="sizeInBytes" type="long" minOccurs="0" /> - <element name="timestamp" type="dateTime" minOccurs="0" /> <!-- context sensitive. time at which data product was produced or consumed. --> - <element name="description" type="string" minOccurs="0"> - <annotation> - <documentation>Optional human friendly description of this data product.</documentation> - </annotation> - </element> - <element name="annotation" type="anyType" minOccurs="0"> - <annotation> - <documentation>Optional additional metadata for this data product.</documentation> - </annotation> - </element> - </sequence> - </complexType> - - <complexType name="DataProductNotificationType"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="dataProduct" type="wft:DataProductType" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <!-- sent when a file is used by the jython app. --> - <element name="dataConsumed" type="wft:DataProductNotificationType" /> - - <!-- sent when a file is generated by the jython app. --> - <element name="dataProduced" type="wft:DataProductNotificationType" /> - - - <!-- ========================================================================================== --> - <!-- performance audit types --> - <!-- ========================================================================================== --> - - - <!-- sent when the application launches a GRAM job, to facilitate --> - <!-- auditing and accounting of TeraGrid jobs --> - <!-- SJ The type name needed Type added at the end --> - <complexType name="ApplicationAuditType"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="name" type="string" /> - <element name="jobHandle" type="anyURI" /> - <element name="host" type="string" /> - <element name="queueName" type="string" minOccurs="0" /> - <element name="jobId" type="string" minOccurs="0" /> - <element name="distinguishedName" type="string" /> - <element name="projectId" type="string" minOccurs="0" /> - <element name="rsl" type="string" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <element name="applicationAudit" type="wft:ApplicationAuditType" /> - - - <!-- sent at the end of a computational block in the jython app --> - <!-- with the time in milliseconds taken for that computational block --> - <element name="computationDuration"> - <complexType> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="durationInMillis" type="long" /> - </sequence> - </extension> - </complexContent> - </complexType> - </element> - - <!-- sent at the end of sending a file to remote location (thro' gridftp?) by the jython app --> - <!-- with the time in milliseconds taken to send that file --> - <!-- TODO: later add support for time for multiple files in a single notification? --> - <complexType name="DataTransferDurationType"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="id" type="wft:DataProductIDType" /> - <element name="source" type="anyURI" /> - <element name="target" type="anyURI" /> - <element name="sizeInBytes" type="long" minOccurs="0" default="-1" /> - <element name="durationInMillis" type="long" default="-1" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <element name="dataSendDuration" type="wft:DataTransferDurationType" /> - <element name="dataReceiveDuration" type="wft:DataTransferDurationType" /> - - <!-- ========================================================================================== --> - <!-- generic log message types --> - <!-- ========================================================================================== --> - - - <!-- sent when an interesting file is created by the jython app that can be viewed thro' a URL --> - <!-- used to display as a link on the portal --> - <element name="publishURL"> - <complexType> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="title" type="string" minOccurs="0" /> - <element name="location" type="anyURI" /> - </sequence> - </extension> - </complexContent> - </complexType> - </element> - - <!-- generic log message at different levels of importance that can be produced by the jython app --> - <element name="logInfo" type="wft:BaseNotificationType" /> - <element name="logException" type="wft:BaseNotificationType" /> - <element name="logWarning" type="wft:BaseNotificationType" /> - <element name="logDebug" type="wft:BaseNotificationType" /> - - - <!-- ========================================================================================== --> - <!-- resource broker message types --> - <!-- ========================================================================================== --> - - <complexType name="ResourceMappingType"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="mappedResource" type="string" /> - <element name="retryStatusCount" type="int" default="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="JobStatusType"> - <complexContent> - <extension base="wft:BaseNotificationType"> - <sequence> - <element name="jobStatus" type="string" /> - <element name="retryCount" type="int" default="0" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <element name="resourceMapping" type="wft:ResourceMappingType" /> - <element name="jobStatus" type="wft:JobStatusType" /> - -</schema> http://git-wip-us.apache.org/repos/asf/airavata/blob/42f77edb/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsdconfig ---------------------------------------------------------------------- diff --git a/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsdconfig b/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsdconfig deleted file mode 100755 index bb1101b..0000000 --- a/modules/commons/workflow-tracking/src/main/resources/schemas/workflow_tracking_types.xsdconfig +++ /dev/null @@ -1,21 +0,0 @@ -<!--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. --> - -<!-- An xsdconfig file must begin with a "config" element in the - http://www.bea.com/2002/09/xbean/config namespace. Also, be sure - to declare any namespaces used to qualify types in your schema (here, - the namespace corresponding to the pol prefix. --> -<xb:config xmlns:xb="http://www.bea.com/2002/09/xbean/config"> - - <!-- Use the "namespace" element to map a namespace to the Java package - name that should be generated. --> - <xb:namespace uri="http://airavata.apache.org/schemas/wft/2011/08"> - <xb:package>org.apache.airavata.workflow.tracking.types</xb:package> - </xb:namespace> - -</xb:config>
