Author: samindaw
Date: Mon Jan 7 22:08:54 2013
New Revision: 1430053
URL: http://svn.apache.org/viewvc?rev=1430053&view=rev
Log:
motnitor listener udpate/refact + execution manager api improvement
Added:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListener.java
- copied, changed from r1429941,
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java
(contents, props changed)
- copied, changed from r1429941,
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListenerAdapter.java
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
(with props)
Removed:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListenerAdapter.java
Modified:
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataAPIFactory.java
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataRepository.java
Modified:
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataAPIFactory.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataAPIFactory.java?rev=1430053&r1=1430052&r2=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataAPIFactory.java
(original)
+++
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataAPIFactory.java
Mon Jan 7 22:08:54 2013
@@ -21,16 +21,12 @@
package org.apache.airavata.client;
-import java.io.IOException;
-import java.net.MalformedURLException;
import java.net.URI;
-import java.util.Map;
import org.apache.airavata.client.api.AiravataAPI;
import org.apache.airavata.client.api.AiravataAPIInvocationException;
import org.apache.airavata.client.impl.PasswordCallBackImpl;
import org.apache.airavata.registry.api.PasswordCallback;
-import org.apache.airavata.registry.api.exception.RegistryException;
public class AiravataAPIFactory {
Modified:
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java?rev=1430053&r1=1430052&r2=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
(original)
+++
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
Mon Jan 7 22:08:54 2013
@@ -27,7 +27,7 @@ import org.apache.airavata.common.workfl
import org.apache.airavata.workflow.model.wf.Workflow;
import org.apache.airavata.workflow.model.wf.WorkflowInput;
import org.apache.airavata.ws.monitor.Monitor;
-import org.apache.airavata.ws.monitor.MonitorEventListener;
+import org.apache.airavata.ws.monitor.EventDataListener;
public interface ExecutionManager {
/**
@@ -49,6 +49,16 @@ public interface ExecutionManager {
*/
public String runExperiment(String workflow,List<WorkflowInput> inputs,
ExperimentAdvanceOptions options) throws AiravataAPIInvocationException;
+ /**
+ * Run an experiment containing single workflow with custom settings for
the experiment & listen
+ * for notification events
+ * @param workflow - Workflow template Id or Workflow Graph XML
+ * @param inputs
+ * @param options
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public String runExperiment(String workflow,List<WorkflowInput> inputs,
ExperimentAdvanceOptions options, EventDataListener listener) throws
AiravataAPIInvocationException;
/**
* Run an experiment containing single workflow
@@ -126,7 +136,7 @@ public interface ExecutionManager {
* @return
* @throws AiravataAPIInvocationException
*/
- public Monitor getExperimentMonitor(String experimentId,
MonitorEventListener listener) throws AiravataAPIInvocationException;
+ public Monitor getExperimentMonitor(String experimentId,
EventDataListener listener) throws AiravataAPIInvocationException;
/**
* @deprecated
Modified:
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java?rev=1430053&r1=1430052&r2=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
(original)
+++
airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
Mon Jan 7 22:08:54 2013
@@ -53,8 +53,8 @@ import org.apache.airavata.ws.monitor.Ev
import org.apache.airavata.ws.monitor.EventDataRepository;
import org.apache.airavata.ws.monitor.Monitor;
import org.apache.airavata.ws.monitor.MonitorConfiguration;
-import org.apache.airavata.ws.monitor.MonitorEventListener;
-import org.apache.airavata.ws.monitor.MonitorEventListenerAdapter;
+import org.apache.airavata.ws.monitor.EventDataListener;
+import org.apache.airavata.ws.monitor.EventDataListenerAdapter;
import org.apache.airavata.ws.monitor.MonitorUtil.EventType;
import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
import org.apache.axis2.AxisFault;
@@ -77,7 +77,7 @@ public class ExecutionManagerImpl implem
public String runExperiment(String workflow,
List<WorkflowInput> inputs, ExperimentAdvanceOptions
options)
throws AiravataAPIInvocationException {
- return runWorkflow(workflow, inputs, options);
+ return runExperimentGeneral(extractWorkflow(workflow), inputs,
options, null);
}
@@ -108,7 +108,7 @@ public class ExecutionManagerImpl implem
@Override
public void waitForExperimentTermination(String experimentId)
throws AiravataAPIInvocationException {
- Monitor experimentMonitor = getExperimentMonitor(experimentId,
new MonitorEventListenerAdapter() {
+ Monitor experimentMonitor = getExperimentMonitor(experimentId,
new EventDataListenerAdapter() {
@Override
public void notify(EventDataRepository eventDataRepo,
EventData eventData) {
@@ -137,7 +137,7 @@ public class ExecutionManagerImpl implem
}
@Override
- public Monitor getExperimentMonitor(String
experimentId,MonitorEventListener listener)
+ public Monitor getExperimentMonitor(String experimentId,final
EventDataListener listener)
throws AiravataAPIInvocationException {
MonitorConfiguration monitorConfiguration;
try {
@@ -146,111 +146,40 @@ public class ExecutionManagerImpl implem
true,
getClient().getClientConfiguration().getMessageboxURL().toURI());
final Monitor monitor = new
Monitor(monitorConfiguration);
monitor.printRawMessage(false);
-
monitor.getEventDataRepository().registerEventListener(listener);
- listener.setExperimentMonitor(monitor);
+ if (listener!=null) {
+
monitor.getEventDataRepository().registerEventListener(listener);
+ listener.setExperimentMonitor(monitor);
+ }
+ if (!monitor.getExperimentId().equals(">")){
+
monitor.getEventDataRepository().registerEventListener(new
EventDataListenerAdapter() {
+ @Override
+ public void notify(EventDataRepository
eventDataRepo, EventData eventData) {
+ if
(eventData.getType()==EventType.WORKFLOW_TERMINATED ||
eventData.getType()==EventType.SENDING_FAULT){
+
monitor.stopMonitoring();
+ }
+ }
+ });
+ }
return monitor;
} catch (URISyntaxException e) {
throw new AiravataAPIInvocationException(e);
}
}
- //------------------Deprecated Functions---------------------//
-
- @Override
- public String runExperiment(String workflowTemplateId,
- List<WorkflowInput> inputs, String user, String
metadata, String workflowInstanceName)
- throws AiravataAPIInvocationException {
- ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
- return runExperiment(workflowTemplateId, inputs, options);
-
- }
-
- @Override
- public String runExperiment(Workflow workflow, List<WorkflowInput>
inputs,
- String user, String metadata) throws
AiravataAPIInvocationException {
- ExperimentAdvanceOptions
options=createExperimentAdvanceOptions(workflow.getName()+"_"+Calendar.getInstance().getTime().toString(),
user, metadata);
- return runExperiment(workflow,inputs,options);
- }
-
- @Override
- public String runExperiment(String workflowTemplateId,
- List<WorkflowInput> inputs, String user, String
metadata,
- String workflowInstanceName,
WorkflowContextHeaderBuilder builder)
- throws AiravataAPIInvocationException {
- ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
- ApplicationSchedulingContext[] nodeSchedules =
builder.getWorkflowSchedulingContext().getApplicationSchedulingContextArray();
- for (ApplicationSchedulingContext context : nodeSchedules) {
- NodeSettings nodeSettings =
options.getCustomWorkflowSchedulingSettings().addNewNodeSettings(context.getWorkflowNodeId());
- if (context.isSetServiceId())
nodeSettings.setServiceId(context.getServiceId());
- if (context.isSetGatekeeperEpr())
nodeSettings.getHostSettings().setGatekeeperEPR(context.getGatekeeperEpr());
- if (context.isSetHostName())
nodeSettings.getHostSettings().setHostId(context.getHostName());
- if (context.isSetWsgramPreferred())
nodeSettings.getHostSettings().setWSGramPreffered(context.getWsgramPreferred());
- if (context.isSetCpuCount())
nodeSettings.getHPCSettings().setCPUCount(context.getCpuCount());
- if (context.isSetJobManager())
nodeSettings.getHPCSettings().setJobManager(context.getJobManager());
- if (context.isSetMaxWallTime())
nodeSettings.getHPCSettings().setMaxWallTime(context.getMaxWallTime());
- if (context.isSetNodeCount())
nodeSettings.getHPCSettings().setNodeCount(context.getNodeCount());
- if (context.isSetQueueName())
nodeSettings.getHPCSettings().setQueueName(context.getQueueName());
- }
- ApplicationOutputDataHandling[] dataHandlingSettings =
builder.getWorkflowOutputDataHandling().getApplicationOutputDataHandlingArray();
- for (ApplicationOutputDataHandling handling :
dataHandlingSettings) {
-
options.getCustomWorkflowOutputDataSettings().addNewOutputDataSettings(handling.getOutputDataDirectory(),handling.getDataRegistryUrl(),handling.getDataPersistance());
- }
- //TODO rest of the builder configurations as they are added to
the experiment options
- return runExperiment(workflowTemplateId, inputs, options);
- }
-
-
- @Override
- public WorkflowContextHeaderBuilder createWorkflowContextHeader()
- throws AiravataAPIInvocationException {
- try {
- return new WorkflowContextHeaderBuilder(null,
- null,null,null,null,
- null);
- } catch (Exception e) {
- throw new AiravataAPIInvocationException(e);
- }
- }
-
@Override
- public String runExperiment(String workflowName,
- List<WorkflowInput> inputs, String user, String
metadata,
- String workflowInstanceName, String experimentName)
+ public String runExperiment(String workflow, List<WorkflowInput> inputs,
+ ExperimentAdvanceOptions options, EventDataListener
listener)
throws AiravataAPIInvocationException {
- ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
- options.setCustomExperimentId(experimentName);
- return runExperiment(workflowName, inputs, options);
+ return runExperimentGeneral(extractWorkflow(workflow), inputs,
options, listener);
}
- //------------------End of Deprecated Functions---------------------//
-
public AiravataClient getClient() {
return client;
}
public void setClient(AiravataClient client) {
this.client = client;
}
-
- private String runWorkflow(String workflowName, List<WorkflowInput>
inputs, ExperimentAdvanceOptions options) throws AiravataAPIInvocationException
{
- return runExperimentGeneral(extractWorkflow(workflowName),
inputs, options, null).toString();
- }
-
- private Workflow extractWorkflow(String workflowName) throws
AiravataAPIInvocationException {
- Workflow workflowObj = null;
- //FIXME - There should be a better way to figure-out if the passed
string is a name or an xml
-
if(!workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName))
{
- workflowObj =
getClient().getWorkflowManager().getWorkflow(workflowName);
- }else {
- try{
- workflowObj =
getClient().getWorkflowManager().getWorkflowFromString(workflowName);
- }catch (AiravataAPIInvocationException e){
- getClient().getWorkflowManager().getWorkflow(workflowName);
- }
- }
- return workflowObj;
- }
-
- private Object runExperimentGeneral(Workflow workflowObj,
List<WorkflowInput> inputs, ExperimentAdvanceOptions options,
MonitorEventListener listener) throws AiravataAPIInvocationException {
+ private String runExperimentGeneral(Workflow workflowObj,
List<WorkflowInput> inputs, ExperimentAdvanceOptions options, EventDataListener
listener) throws AiravataAPIInvocationException {
try {
String workflowString =
XMLUtil.xmlElementToString(workflowObj.toXML());
List<WSComponentPort> ports =
getWSComponentPortInputs(workflowObj);
@@ -298,16 +227,11 @@ public class ExecutionManagerImpl implem
}
runPreWorkflowExecutionTasks(experimentID,
executionUser, options.getExperimentMetadata(), options.getExperimentName());
NameValue[] inputVals = inputValues.toArray(new
NameValue[] {});
- Monitor monitorObj=null;
if (listener!=null){
- monitorObj=getExperimentMonitor(experimentID,
listener);
+ getExperimentMonitor(experimentID,
listener).startMonitoring();
}
launchWorkflow(experimentID, workflowString, inputVals,
builder);
- if (listener==null){
- return experimentID;
- }else{
- return monitorObj;
- }
+ return experimentID;
} catch (GraphException e) {
throw new AiravataAPIInvocationException(e);
} catch (ComponentException e) {
@@ -316,6 +240,25 @@ public class ExecutionManagerImpl implem
throw new AiravataAPIInvocationException("Error working with
Airavata Registry: " + e.getLocalizedMessage(), e);
}
}
+
+// private String runWorkflow(String workflowName, List<WorkflowInput>
inputs, ExperimentAdvanceOptions options) throws AiravataAPIInvocationException
{
+// return runExperimentGeneral(extractWorkflow(workflowName),
inputs, options, null);
+// }
+
+ private Workflow extractWorkflow(String workflowName) throws
AiravataAPIInvocationException {
+ Workflow workflowObj = null;
+ //FIXME - There should be a better way to figure-out if the passed
string is a name or an xml
+
if(!workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName))
{
+ workflowObj =
getClient().getWorkflowManager().getWorkflow(workflowName);
+ }else {
+ try{
+ workflowObj =
getClient().getWorkflowManager().getWorkflowFromString(workflowName);
+ }catch (AiravataAPIInvocationException e){
+ getClient().getWorkflowManager().getWorkflow(workflowName);
+ }
+ }
+ return workflowObj;
+ }
private List<WSComponentPort> getWSComponentPortInputs(Workflow
workflow)
throws GraphException, ComponentException {
@@ -366,4 +309,74 @@ public class ExecutionManagerImpl implem
getClient().getProvenanceManager().setExperimentName(experimentId,
experimentName);
}
+ //------------------Deprecated Functions---------------------//
+
+ @Override
+ public String runExperiment(String workflowTemplateId,
+ List<WorkflowInput> inputs, String user, String
metadata, String workflowInstanceName)
+ throws AiravataAPIInvocationException {
+ ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
+ return runExperiment(workflowTemplateId, inputs, options);
+
+ }
+
+ @Override
+ public String runExperiment(Workflow workflow, List<WorkflowInput>
inputs,
+ String user, String metadata) throws
AiravataAPIInvocationException {
+ ExperimentAdvanceOptions
options=createExperimentAdvanceOptions(workflow.getName()+"_"+Calendar.getInstance().getTime().toString(),
user, metadata);
+ return runExperiment(workflow,inputs,options);
+ }
+
+ @Override
+ public String runExperiment(String workflowTemplateId,
+ List<WorkflowInput> inputs, String user, String
metadata,
+ String workflowInstanceName,
WorkflowContextHeaderBuilder builder)
+ throws AiravataAPIInvocationException {
+ ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
+ ApplicationSchedulingContext[] nodeSchedules =
builder.getWorkflowSchedulingContext().getApplicationSchedulingContextArray();
+ for (ApplicationSchedulingContext context : nodeSchedules) {
+ NodeSettings nodeSettings =
options.getCustomWorkflowSchedulingSettings().addNewNodeSettings(context.getWorkflowNodeId());
+ if (context.isSetServiceId())
nodeSettings.setServiceId(context.getServiceId());
+ if (context.isSetGatekeeperEpr())
nodeSettings.getHostSettings().setGatekeeperEPR(context.getGatekeeperEpr());
+ if (context.isSetHostName())
nodeSettings.getHostSettings().setHostId(context.getHostName());
+ if (context.isSetWsgramPreferred())
nodeSettings.getHostSettings().setWSGramPreffered(context.getWsgramPreferred());
+ if (context.isSetCpuCount())
nodeSettings.getHPCSettings().setCPUCount(context.getCpuCount());
+ if (context.isSetJobManager())
nodeSettings.getHPCSettings().setJobManager(context.getJobManager());
+ if (context.isSetMaxWallTime())
nodeSettings.getHPCSettings().setMaxWallTime(context.getMaxWallTime());
+ if (context.isSetNodeCount())
nodeSettings.getHPCSettings().setNodeCount(context.getNodeCount());
+ if (context.isSetQueueName())
nodeSettings.getHPCSettings().setQueueName(context.getQueueName());
+ }
+ ApplicationOutputDataHandling[] dataHandlingSettings =
builder.getWorkflowOutputDataHandling().getApplicationOutputDataHandlingArray();
+ for (ApplicationOutputDataHandling handling :
dataHandlingSettings) {
+
options.getCustomWorkflowOutputDataSettings().addNewOutputDataSettings(handling.getOutputDataDirectory(),handling.getDataRegistryUrl(),handling.getDataPersistance());
+ }
+ //TODO rest of the builder configurations as they are added to
the experiment options
+ return runExperiment(workflowTemplateId, inputs, options);
+ }
+
+
+ @Override
+ public WorkflowContextHeaderBuilder createWorkflowContextHeader()
+ throws AiravataAPIInvocationException {
+ try {
+ return new WorkflowContextHeaderBuilder(null,
+ null,null,null,null,
+ null);
+ } catch (Exception e) {
+ throw new AiravataAPIInvocationException(e);
+ }
+ }
+
+ @Override
+ public String runExperiment(String workflowName,
+ List<WorkflowInput> inputs, String user, String
metadata,
+ String workflowInstanceName, String experimentName)
+ throws AiravataAPIInvocationException {
+ ExperimentAdvanceOptions options =
createExperimentAdvanceOptions(workflowInstanceName, user, metadata);
+ options.setCustomExperimentId(experimentName);
+ return runExperiment(workflowName, inputs, options);
+ }
+
+ //------------------End of Deprecated Functions---------------------//
+
}
Modified:
airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java?rev=1430053&r1=1430052&r2=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java
(original)
+++
airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java
Mon Jan 7 22:08:54 2013
@@ -11,7 +11,7 @@ import org.apache.airavata.registry.api.
import org.apache.airavata.ws.monitor.Monitor;
import org.apache.airavata.ws.monitor.EventData;
import org.apache.airavata.ws.monitor.EventDataRepository;
-import org.apache.airavata.ws.monitor.MonitorEventListener;
+import org.apache.airavata.ws.monitor.EventDataListener;
import org.apache.airavata.ws.monitor.MonitorUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory;
/**
* Monitor class for integration tests.
*/
-public class TestMonitorListener implements MonitorEventListener {
+public class TestMonitorListener implements EventDataListener {
private static final Logger log =
LoggerFactory.getLogger(BaseCaseIT.class);
@@ -96,4 +96,12 @@ public class TestMonitorListener impleme
public void monitoringPostStop() {
}
+ @Override
+ public void onFail(EventData failNotification) {
+ }
+
+ @Override
+ public void onCompletion(EventData completionNotification) {
+ }
+
}
Copied:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListener.java
(from r1429941,
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java)
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListener.java?p2=airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListener.java&p1=airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java&r1=1429941&r2=1430053&rev=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
(original)
+++
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListener.java
Mon Jan 7 22:08:54 2013
@@ -21,7 +21,7 @@
package org.apache.airavata.ws.monitor;
-public interface MonitorEventListener {
+public interface EventDataListener {
/**
* Gets triggered when a new message is received relevant for the
experiment subscribed to
@@ -55,4 +55,14 @@ public interface MonitorEventListener {
* Gets triggered just after the experiment monitoring is stopped
*/
public void monitoringPostStop();
+
+ /**
+ * Gets triggered when experiment fails
+ */
+ public void onFail(EventData failNotification);
+
+ /**
+ * Gets triggered when the experiment completes
+ */
+ public void onCompletion(EventData completionNotification);
}
Copied:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java
(from r1429941,
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListenerAdapter.java)
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java?p2=airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java&p1=airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListenerAdapter.java&r1=1429941&r2=1430053&rev=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListenerAdapter.java
(original)
+++
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java
Mon Jan 7 22:08:54 2013
@@ -21,7 +21,7 @@
package org.apache.airavata.ws.monitor;
-public abstract class MonitorEventListenerAdapter implements
MonitorEventListener {
+public abstract class EventDataListenerAdapter implements EventDataListener {
private Monitor monitor;
@Override
@@ -48,7 +48,7 @@ public abstract class MonitorEventListen
public void monitoringPostStop() {
//Nothing to do
}
-
+
protected Monitor getMonitor() {
return monitor;
}
@@ -57,4 +57,14 @@ public abstract class MonitorEventListen
this.monitor = monitor;
}
+ @Override
+ public void onFail(EventData failNotification) {
+ //Nothing to do
+ }
+
+ @Override
+ public void onCompletion(EventData completionNotification) {
+ //Nothing to do
+ }
+
}
Propchange:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataListenerAdapter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataRepository.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataRepository.java?rev=1430053&r1=1430052&r2=1430053&view=diff
==============================================================================
---
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataRepository.java
(original)
+++
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/EventDataRepository.java
Mon Jan 7 22:08:54 2013
@@ -32,6 +32,7 @@ import javax.swing.event.TableModelEvent
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
+import org.apache.airavata.ws.monitor.MonitorUtil.EventType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmlpull.infoset.XmlElement;
@@ -89,7 +90,7 @@ public class EventDataRepository impleme
private EventFilter filter;
- private List<MonitorEventListener> monitorEventListerners;
+ private List<EventDataListener> monitorEventListerners;
/**
*
@@ -142,7 +143,7 @@ public class EventDataRepository impleme
}
public void triggerListenerForPreMonitorStart() {
- for (MonitorEventListener listener :
getMonitorEventListerners()) {
+ for (EventDataListener listener : getMonitorEventListerners()) {
try {
listener.monitoringPreStart();
} catch (Exception e) {
@@ -153,7 +154,7 @@ public class EventDataRepository impleme
}
public void triggerListenerForPostMonitorStart() {
- for (MonitorEventListener listener :
getMonitorEventListerners()) {
+ for (EventDataListener listener : getMonitorEventListerners()) {
try {
listener.monitoringPostStart();
} catch (Exception e) {
@@ -164,7 +165,7 @@ public class EventDataRepository impleme
}
public void triggerListenerForPreMonitorStop() {
- for (MonitorEventListener listener :
getMonitorEventListerners()) {
+ for (EventDataListener listener : getMonitorEventListerners()) {
try {
listener.monitoringPreStop();
} catch (Exception e) {
@@ -175,7 +176,7 @@ public class EventDataRepository impleme
}
public void triggerListenerForPostMonitorStop() {
- for (MonitorEventListener listener :
getMonitorEventListerners()) {
+ for (EventDataListener listener : getMonitorEventListerners()) {
try {
listener.monitoringPostStop();
} catch (Exception e) {
@@ -185,9 +186,14 @@ public class EventDataRepository impleme
}
}
private void triggerListenerForMonitorEvent(EventData event) {
- for (MonitorEventListener listener :
getMonitorEventListerners()) {
+ for (EventDataListener listener : getMonitorEventListerners()) {
try {
listener.notify(this, event);
+ if
(event.getType()==EventType.WORKFLOW_TERMINATED){
+ listener.onCompletion(event);
+ }else if
(event.getType()==EventType.SENDING_FAULT){
+ listener.onFail(event);
+ }
} catch (Exception e) {
//just in case
e.printStackTrace();
@@ -475,20 +481,20 @@ public class EventDataRepository impleme
listener.stateChanged(this.tableModelChangeEvent);
}
}
- private List<MonitorEventListener> getMonitorEventListerners() {
+ private List<EventDataListener> getMonitorEventListerners() {
if (monitorEventListerners==null){
- monitorEventListerners=new
ArrayList<MonitorEventListener>();
+ monitorEventListerners=new
ArrayList<EventDataListener>();
}
return monitorEventListerners;
}
- public void registerEventListener(MonitorEventListener listener){
+ public void registerEventListener(EventDataListener listener){
if (listener!=null) {
getMonitorEventListerners().add(listener);
}
}
- public void unregisterEventListener(MonitorEventListener listener){
+ public void unregisterEventListener(EventDataListener listener){
if (getMonitorEventListerners().contains(listener)) {
getMonitorEventListerners().remove(listener);
}
Added:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java?rev=1430053&view=auto
==============================================================================
---
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
(added)
+++
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
Mon Jan 7 22:08:54 2013
@@ -0,0 +1,31 @@
+/*
+ *
+ * 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.ws.monitor;
+
+/**
+ * @deprecated - Use <code>EventDataListener</code> instead
+ * @author samindaw
+ *
+ */
+public interface MonitorEventListener extends EventDataListener {
+
+}
Propchange:
airavata/trunk/modules/ws-messenger/message-monitor/src/main/java/org/apache/airavata/ws/monitor/MonitorEventListener.java
------------------------------------------------------------------------------
svn:mime-type = text/plain