retiring ws-messenger and remove dependency of workflow tracking - AIRAVATA-1556, AIRAVATA-1557
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/cab15715 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/cab15715 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/cab15715 Branch: refs/heads/gfac-storm Commit: cab15715707215f8812b7bcac98ba71b06688529 Parents: 0b70b69 Author: Chathuri Wimalasena <[email protected]> Authored: Tue Jan 27 10:26:43 2015 -0500 Committer: Chathuri Wimalasena <[email protected]> Committed: Tue Jan 27 10:26:43 2015 -0500 ---------------------------------------------------------------------- .../app/catalog/test/ComputeResourceTest.java | 4 + modules/commons/pom.xml | 2 +- .../main/resources/credential-store/client.xml | 9 +- .../servlet/CredentialStoreCallbackServlet.java | 2 +- modules/distribution/server/pom.xml | 40 +- modules/gfac/gfac-core/pom.xml | 10 +- .../airavata/gfac/core/cpi/BetterGfacImpl.java | 33 +- .../listeners/WorkflowTrackingListener.java | 266 +++---- modules/gfac/gfac-ec2/pom.xml | 10 +- modules/gfac/gfac-monitor/pom.xml | 10 +- modules/test-suite/pom.xml | 10 +- modules/workflow-model/workflow-engine/pom.xml | 20 +- .../engine/interpretor/WorkflowInterpreter.java | 56 +- .../engine/invoker/AsynchronousInvoker.java | 9 +- .../invoker/MsgBoxWsaResponsesCorrelator.java | 278 +++---- .../airavata/xbaya/interpreter/Listener.java | 62 +- .../xbaya/interpreter/NotificationSender.java | 408 +++++----- modules/ws-messenger/INSTALL.txt | 162 ---- modules/ws-messenger/README.txt | 102 --- modules/ws-messenger/client/pom.xml | 60 -- .../wsmg/client/CommonMsgBrokerClient.java | 157 ---- .../wsmg/client/ConsumerMsgReceiver.java | 40 - .../client/ConsumerNotificationHandler.java | 29 - .../airavata/wsmg/client/ConsumerServer.java | 99 --- .../wsmg/client/ConsumerServerHandler.java | 54 -- .../airavata/wsmg/client/ConsumerService.java | 30 - .../wsmg/client/MessageBrokerClient.java | 173 ----- .../wsmg/client/MsgBrokerClientException.java | 37 - .../wsmg/client/NotificationHandler.java | 28 - .../wsmg/client/NotificationProducerStub.java | 190 ----- .../airavata/wsmg/client/SubscriptionInfo.java | 161 ---- .../airavata/wsmg/client/SubscriptionStub.java | 106 --- .../apache/airavata/wsmg/client/WidgetStub.java | 88 --- .../wsmg/client/WseCreateSubscription.java | 142 ---- .../wsmg/client/WseMsgBrokerClient.java | 201 ----- .../wsmg/client/WsntCreatePublishReg.java | 118 --- .../wsmg/client/WsntMsgBrokerClient.java | 190 ----- .../airavata/wsmg/client/WsrfResourceStub.java | 391 ---------- .../wsmg/client/amqp/AMQPBroadcastReceiver.java | 36 - .../wsmg/client/amqp/AMQPBroadcastSender.java | 39 - .../airavata/wsmg/client/amqp/AMQPCallback.java | 32 - .../airavata/wsmg/client/amqp/AMQPClient.java | 46 -- .../wsmg/client/amqp/AMQPException.java | 44 -- .../airavata/wsmg/client/amqp/AMQPReceiver.java | 38 - .../client/amqp/AMQPRoutingAwareClient.java | 154 ---- .../wsmg/client/amqp/AMQPRoutingKey.java | 369 --------- .../airavata/wsmg/client/amqp/AMQPSender.java | 40 - .../wsmg/client/amqp/AMQPTopicReceiver.java | 38 - .../wsmg/client/amqp/AMQPTopicSender.java | 41 - .../airavata/wsmg/client/amqp/AMQPUtil.java | 75 -- .../rabbitmq/AMQPBroadcastReceiverImpl.java | 72 -- .../amqp/rabbitmq/AMQPBroadcastSenderImpl.java | 63 -- .../client/amqp/rabbitmq/AMQPReceiverImpl.java | 72 -- .../client/amqp/rabbitmq/AMQPSenderImpl.java | 72 -- .../amqp/rabbitmq/AMQPTopicReceiverImpl.java | 73 -- .../amqp/rabbitmq/AMQPTopicSenderImpl.java | 72 -- .../client/commons/NotificationProducer.java | 121 --- .../wsmg/client/msgbox/MessagePuller.java | 126 --- .../wsmg/client/msgbox/MsgboxHandler.java | 122 --- .../wsmg/client/protocol/WSEProtocolClient.java | 146 ---- .../client/protocol/WSNTProtocolClient.java | 127 --- .../airavata/wsmg/client/util/ClientUtil.java | 58 -- .../airavata/wsmg/client/util/DcDate.java | 472 ----------- .../airavata/wsmg/gui/NotificationViewer.java | 82 -- .../wsmg/gui/NotificationViewerFrame.java | 328 -------- .../org/apache/airavata/wsmg/gui/README.txt | 15 - .../WsntViewerConsumerNotificationHandler.java | 114 --- .../wsmg/msgbox/client/CreateMsgBox.java | 118 --- .../wsmg/msgbox/client/DestroyMsgBox.java | 120 --- .../wsmg/msgbox/client/MsgBoxClient.java | 63 -- .../wsmg/msgbox/client/StoreMessage.java | 106 --- .../wsmg/msgbox/client/TakeMessages.java | 123 --- .../src/main/resources/amqp-routing-keys.xml | 40 - .../wsmg/client/amqp/BroadcastSubscriber.java | 54 -- .../wsmg/client/amqp/TopicSubscriber.java | 55 -- .../wsmg/client/util/ClientUtilTest.java | 60 -- .../airavata/wsmg/client/util/ConfigKeys.java | 37 - .../airavata/wsmg/client/util/TestDcDate.java | 106 --- .../org/apache/airavata/wsmg/gui/GUITest.java | 43 -- modules/ws-messenger/commons/pom.xml | 44 -- .../airavata/wsmg/commons/CommonRoutines.java | 222 ------ .../wsmg/commons/MsgBoxQNameConstants.java | 58 -- .../wsmg/commons/NameSpaceConstants.java | 77 -- .../wsmg/commons/WsmgCommonConstants.java | 93 --- .../airavata/wsmg/commons/WsmgVersion.java | 180 ----- .../commons/config/ConfigurationManager.java | 62 -- .../wsmg/commons/storage/ConnectionPool.java | 363 --------- .../wsmg/commons/storage/DatabaseCreator.java | 359 --------- .../wsmg/commons/storage/JdbcStorage.java | 193 ----- .../airavata/wsmg/commons/util/Axis2Utils.java | 65 -- modules/ws-messenger/message-monitor/pom.xml | 90 --- .../apache/airavata/ws/monitor/EventData.java | 174 ----- .../airavata/ws/monitor/EventDataListener.java | 68 -- .../ws/monitor/EventDataListenerAdapter.java | 70 -- .../ws/monitor/EventDataRepository.java | 503 ------------ .../apache/airavata/ws/monitor/EventFilter.java | 27 - .../org/apache/airavata/ws/monitor/Monitor.java | 339 -------- .../ws/monitor/MonitorConfiguration.java | 191 ----- .../airavata/ws/monitor/MonitorEvent.java | 33 - .../airavata/ws/monitor/MonitorEventData.java | 27 - .../ws/monitor/MonitorEventListener.java | 31 - .../airavata/ws/monitor/MonitorException.java | 62 -- .../apache/airavata/ws/monitor/MonitorUtil.java | 627 --------------- .../apache/airavata/ws/monitor/WsmgClient.java | 165 ---- .../apache/airavata/ws/monitor/event/Event.java | 84 -- .../ws/monitor/event/EventListener.java | 35 - .../ws/monitor/event/EventProducer.java | 105 --- .../ws-messenger/messagebox/maven-eclipse.xml | 16 - modules/ws-messenger/messagebox/pom.xml | 95 --- .../wsmg/msgbox/MsgBoxServiceLifeCycle.java | 192 ----- .../MsgBoxServiceMessageReceiverInOut.java | 138 ---- .../wsmg/msgbox/MsgBoxServiceSkeleton.java | 186 ----- .../wsmg/msgbox/Storage/MsgBoxStorage.java | 59 -- .../Storage/dbpool/DatabaseStorageImpl.java | 125 --- .../msgbox/Storage/dbpool/MessageBoxDB.java | 265 ------- .../msgbox/Storage/memory/InMemoryImpl.java | 133 ---- .../wsmg/msgbox/StoreMessageHandler.java | 123 --- .../airavata/wsmg/msgbox/util/ConfigKeys.java | 36 - .../wsmg/msgbox/util/MsgBoxCommonConstants.java | 26 - .../wsmg/msgbox/util/MsgBoxOperations.java | 53 -- .../airavata/wsmg/msgbox/util/MsgBoxUtils.java | 71 -- .../resources/database_scripts/msgBox-derby.sql | 41 - .../resources/database_scripts/msgBox-mysql.sql | 42 - .../messagebox/src/main/resources/services.xml | 57 -- .../wsmg/msgbox/InMemoryMessageBoxServer.java | 158 ---- .../wsmg/msgbox/MessageBoxStressTest.java | 129 ---- .../apache/airavata/wsmg/msgbox/MsgBoxTest.java | 103 --- modules/ws-messenger/messagebroker/pom.xml | 112 --- .../wsmg/broker/AbstractBrokerMsgReceiver.java | 105 --- .../wsmg/broker/AdditionalMessageContent.java | 131 ---- .../wsmg/broker/BrokerServiceLifeCycle.java | 328 -------- .../airavata/wsmg/broker/ConsumerInfo.java | 123 --- .../airavata/wsmg/broker/ConsumerList.java | 73 -- .../wsmg/broker/ConsumerListManager.java | 79 -- .../wsmg/broker/NotificationProcessor.java | 313 -------- .../broker/amqp/AMQPNotificationProcessor.java | 132 ---- .../broker/context/ContextParameterInfo.java | 58 -- .../wsmg/broker/context/ContextParameters.java | 72 -- .../wsmg/broker/context/ProcessingContext.java | 114 --- .../context/ProcessingContextBuilder.java | 30 - .../broker/handler/PublishedMessageHandler.java | 120 --- .../wsmg/broker/subscription/CleanupThread.java | 148 ---- .../broker/subscription/SubscriptionEntry.java | 49 -- .../subscription/SubscriptionManager.java | 440 ----------- .../broker/subscription/SubscriptionState.java | 301 -------- .../wseventing/WSEProcessingContextBuilder.java | 186 ----- .../broker/wseventing/WSEProtocolSupport.java | 204 ----- .../wseventing/WSEventingMsgReceiver.java | 77 -- .../WSEventingPublishMsgReceiver.java | 74 -- .../wsnotification/WSNTProtocolSupport.java | 237 ------ .../WSNotificationMsgReceiver.java | 110 --- .../WSNotificationProcessingContextBuilder.java | 179 ----- .../airavata/wsmg/commons/OutGoingMessage.java | 125 --- .../commons/storage/WsmgInMemoryStorage.java | 106 --- .../commons/storage/WsmgPersistantStorage.java | 773 ------------------- .../wsmg/commons/storage/WsmgQueue.java | 34 - .../wsmg/commons/storage/WsmgStorage.java | 39 - .../wsmg/commons/util/OMElementComparator.java | 177 ----- .../airavata/wsmg/config/WSMGParameter.java | 48 -- .../wsmg/config/WsmgConfigurationContext.java | 118 --- .../wsmg/matching/AbstractMessageMatcher.java | 89 --- .../wsmg/matching/XPath/YFilterInfo.java | 156 ---- .../matching/XPath/YFilterMessageMatcher.java | 183 ----- .../simpleTopic/DirectWsntMessageMatcher.java | 125 --- .../wsmg/messenger/ConsumerUrlManager.java | 195 ----- .../airavata/wsmg/messenger/Deliverable.java | 32 - .../wsmg/messenger/DeliveryProcessor.java | 90 --- .../airavata/wsmg/messenger/OutGoingQueue.java | 65 -- .../airavata/wsmg/messenger/SenderUtils.java | 161 ---- .../messenger/protocol/DeliveryProtocol.java | 34 - .../messenger/protocol/SendingException.java | 37 - .../messenger/protocol/impl/Axis2Protocol.java | 156 ---- .../messenger/strategy/SendingStrategy.java | 33 - .../strategy/impl/ConsumerHandler.java | 71 -- .../strategy/impl/FixedParallelSender.java | 185 ----- .../messenger/strategy/impl/LightweightMsg.java | 54 -- .../messenger/strategy/impl/ParallelSender.java | 155 ---- .../messenger/strategy/impl/SerialSender.java | 75 -- .../apache/airavata/wsmg/util/BrokerUtil.java | 121 --- .../org/apache/airavata/wsmg/util/Counter.java | 77 -- .../airavata/wsmg/util/RunTimeStatistics.java | 157 ---- .../apache/airavata/wsmg/util/TimerThread.java | 87 --- .../wsmg/util/WsEventingOperations.java | 55 -- .../wsmg/util/WsNotificationOperations.java | 56 -- .../database_scripts/cleanDBScript.sql | 27 - .../database_scripts/msgBroker-derby.sql | 60 -- .../database_scripts/msgBroker-mysql.sql | 61 -- .../src/main/resources/services.xml | 125 --- .../airavata/wsmg/broker/BrokerWSETest.java | 107 --- .../airavata/wsmg/broker/BrokerWSNTTest.java | 108 --- .../wsmg/commons/TestCommonRoutines.java | 57 -- .../TestAddtionalWseXpathAndTopicScenarios.java | 151 ---- .../XPath/TestWseXpathAndTopicSubscription.java | 137 ---- .../XPath/TestWseXpathSubscription.java | 139 ---- .../matching/XPath/performance/XppXPath.java | 269 ------- .../rtt/NotificationManager.java | 151 ---- .../rtt/PerformanceTest.java | 399 ---------- .../rtt/PublisherThread.java | 99 --- .../rtt/StatCalculatorThread.java | 103 --- .../rtt/StatContainer.java | 49 -- .../performance_evaluator/rtt/Subscription.java | 107 --- .../rtt/util/ConfigKeys.java | 43 -- .../rtt/util/LoadMsgPayload.java | 66 -- .../rtt/util/LoadXpath.java | 66 -- .../airavata/wsmg/util/BrokerUtilTest.java | 167 ---- .../apache/airavata/wsmg/util/ConfigKeys.java | 34 - .../airavata/wsmg/util/TestUtilServer.java | 225 ------ .../src/test/resources/unit_tests.properties | 24 - modules/ws-messenger/pom.xml | 162 ---- .../xbaya/jython/lib/NotificationSender.java | 578 +++++++------- .../jython/lib/ServiceNotificationSender.java | 586 +++++++------- .../airavata/xbaya/interpreter/Listener.java | 64 +- .../xbaya/interpreter/NotificationSender.java | 408 +++++----- pom.xml | 8 +- 214 files changed, 1416 insertions(+), 25022 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java ---------------------------------------------------------------------- diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java index 5587cba..28b2983 100644 --- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java +++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java @@ -146,6 +146,10 @@ public class ComputeResourceTest { ComputeResourceDescription host = null; if (computeResource.isComputeResourceExists(resourceId)){ host = computeResource.getComputeResource(resourceId); + List<BatchQueue> batchQueues = host.getBatchQueues(); + for (BatchQueue queue : batchQueues){ + System.out.println("%%%%%%%%%%%%%%%% queue description : %%%%%%%%%%%%%%%%%%% : " + queue.getQueueDescription()); + } List<String> hostAliases = host.getHostAliases(); if (hostAliases != null && !hostAliases.isEmpty()){ for (String alias : hostAliases){ http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/commons/pom.xml ---------------------------------------------------------------------- diff --git a/modules/commons/pom.xml b/modules/commons/pom.xml index e68f4e1..1a8d58f 100644 --- a/modules/commons/pom.xml +++ b/modules/commons/pom.xml @@ -32,7 +32,7 @@ <modules> <module>utils</module> <module>gfac-schema</module> - <module>workflow-tracking</module> + <!--<module>workflow-tracking</module>--> <module>workflow-execution-context</module> </modules> </profile> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/credential-store-service/credential-store-webapp/src/main/resources/credential-store/client.xml ---------------------------------------------------------------------- diff --git a/modules/credential-store-service/credential-store-webapp/src/main/resources/credential-store/client.xml b/modules/credential-store-service/credential-store-webapp/src/main/resources/credential-store/client.xml index b6cdb1a..bc721ed 100644 --- a/modules/credential-store-service/credential-store-webapp/src/main/resources/credential-store/client.xml +++ b/modules/credential-store-service/credential-store-webapp/src/main/resources/credential-store/client.xml @@ -20,14 +20,15 @@ debug="true"/> <id>myproxy:oa4mp,2012:/client/5a323fc6fcffcff7a95401046a303520</id> <serviceUri>https://oa4mp.xsede.org/oauth</serviceUri> - <callbackUri>https://149.160.145.44:8443/credential-store/callback</callbackUri> + <callbackUri>https://localhost:8443/credential-store/callback</callbackUri> + <!--callbackUri>http://149.165.228.118/PHP-Reference-Gateway/xsede_login.php</callbackUri--> <lifetime>864000</lifetime> - <publicKeyFile>/Users/chathuri/dev/airavata/source/trunk_git/airavata/modules/credential-store-service/credential-store-webapp/keys/credential-store/oauth-pubkey.pem</publicKeyFile> - <privateKeyFile>/Users/chathuri/dev/airavata/source/trunk_git/airavata/modules/credential-store-service/credential-store-webapp/keys/credential-store/oauth-privkey.pk8</privateKeyFile> + <publicKeyFile>/Users/chathuri/dev/airavata/credential-store/oa4mp/oauth-pubkey.pem</publicKeyFile> + <privateKeyFile>/Users/chathuri/dev/airavata/credential-store/oa4mp/oauth-privkey.pk8</privateKeyFile> </client> <credential-store> - <successUri>/credential-store/success.jsp</successUri> + <successUri>http://gw120.iu.xsede.org/PHP-Reference-Gateway/</successUri> <errorUri>/credential-store/error.jsp</errorUri> <redirectUri>/credential-store/show-redirect.jsp</redirectUri> </credential-store> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java ---------------------------------------------------------------------- diff --git a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java index cf6eac8..66d4be7 100644 --- a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java +++ b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java @@ -127,7 +127,7 @@ public class CredentialStoreCallbackServlet extends ClientServlet { // TODO remove hard coded values, once passing query parameters is // fixed in OA4MP client api - long duration = 800; + long duration = 864000; if (durationParameter != null) { duration = Long.parseLong(durationParameter); http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/distribution/server/pom.xml ---------------------------------------------------------------------- diff --git a/modules/distribution/server/pom.xml b/modules/distribution/server/pom.xml index 2481136..5f44c45 100644 --- a/modules/distribution/server/pom.xml +++ b/modules/distribution/server/pom.xml @@ -354,31 +354,31 @@ <artifactId>airavata-gfac-service</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-message-monitor</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-message-monitor</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <dependency> <groupId>org.apache.airavata</groupId> <artifactId>airavata-workflow-model-core</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-messenger-commons</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-messenger-client</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-messenger-commons</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-messenger-client</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <dependency> <groupId>org.apache.airavata</groupId> <artifactId>gsissh</artifactId> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/gfac/gfac-core/pom.xml ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/pom.xml b/modules/gfac/gfac-core/pom.xml index 604fa0c..4fc2a15 100644 --- a/modules/gfac/gfac-core/pom.xml +++ b/modules/gfac/gfac-core/pom.xml @@ -56,11 +56,11 @@ <version>${project.version}</version> </dependency> <!-- Workflow Tracking --> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <!-- Credential Store --> <dependency> <groupId>org.apache.airavata</groupId> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java index a712a74..9c4decd 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java @@ -41,7 +41,6 @@ import org.apache.airavata.gfac.core.monitor.MonitorID; import org.apache.airavata.gfac.core.monitor.state.GfacExperimentStateChangeRequest; import org.apache.airavata.gfac.core.notification.events.ExecutionFailEvent; import org.apache.airavata.gfac.core.notification.listeners.LoggingListener; -import org.apache.airavata.gfac.core.notification.listeners.WorkflowTrackingListener; import org.apache.airavata.gfac.core.provider.GFacProvider; import org.apache.airavata.gfac.core.provider.GFacProviderException; import org.apache.airavata.gfac.core.provider.GFacRecoverableProvider; @@ -51,7 +50,10 @@ import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.messaging.core.Publisher; import org.apache.airavata.messaging.core.PublisherFactory; import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription; -import org.apache.airavata.model.appcatalog.appinterface.*; +import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription; +import org.apache.airavata.model.appcatalog.appinterface.DataType; +import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType; +import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; import org.apache.airavata.model.appcatalog.computeresource.*; import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference; import org.apache.airavata.model.messaging.event.*; @@ -69,12 +71,7 @@ import javax.xml.xpath.XPathExpressionException; import java.io.File; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.Properties; +import java.util.*; /** * This is the GFac CPI class for external usage, this simply have a single method to submit a job to @@ -475,7 +472,7 @@ public class BetterGfacImpl implements GFac,Watcher { if ((workflowInstanceID = (String) jobExecutionContext.getProperty(Constants.PROP_WORKFLOW_INSTANCE_ID)) != null) { // This mean we need to register workflow tracking listener. //todo implement WorkflowTrackingListener properly - registerWorkflowTrackingListener(workflowInstanceID, jobExecutionContext); +// registerWorkflowTrackingListener(workflowInstanceID, jobExecutionContext); } // Register log event listener. This is required in all scenarios. jobExecutionContext.getNotificationService().registerListener(new LoggingListener()); @@ -525,7 +522,7 @@ public class BetterGfacImpl implements GFac,Watcher { if ((workflowInstanceID = (String) jobExecutionContext.getProperty(Constants.PROP_WORKFLOW_INSTANCE_ID)) != null) { // This mean we need to register workflow tracking listener. //todo implement WorkflowTrackingListener properly - registerWorkflowTrackingListener(workflowInstanceID, jobExecutionContext); +// registerWorkflowTrackingListener(workflowInstanceID, jobExecutionContext); } // Register log event listener. This is required in all scenarios. jobExecutionContext.getNotificationService().registerListener(new LoggingListener()); @@ -870,14 +867,14 @@ public class BetterGfacImpl implements GFac,Watcher { } } - private void registerWorkflowTrackingListener(String workflowInstanceID, JobExecutionContext jobExecutionContext) { - String workflowNodeID = (String) jobExecutionContext.getProperty(Constants.PROP_WORKFLOW_NODE_ID); - String topic = (String) jobExecutionContext.getProperty(Constants.PROP_TOPIC); - String brokerUrl = (String) jobExecutionContext.getProperty(Constants.PROP_BROKER_URL); - jobExecutionContext.getNotificationService().registerListener( - new WorkflowTrackingListener(workflowInstanceID, workflowNodeID, brokerUrl, topic)); - - } +// private void registerWorkflowTrackingListener(String workflowInstanceID, JobExecutionContext jobExecutionContext) { +// String workflowNodeID = (String) jobExecutionContext.getProperty(Constants.PROP_WORKFLOW_NODE_ID); +// String topic = (String) jobExecutionContext.getProperty(Constants.PROP_TOPIC); +// String brokerUrl = (String) jobExecutionContext.getProperty(Constants.PROP_BROKER_URL); +// jobExecutionContext.getNotificationService().registerListener( +// new WorkflowTrackingListener(workflowInstanceID, workflowNodeID, brokerUrl, topic)); +// +// } private void invokeInFlowHandlers(JobExecutionContext jobExecutionContext) throws GFacException { List<GFacHandlerConfig> handlers = jobExecutionContext.getGFacConfiguration().getInHandlers(); http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/notification/listeners/WorkflowTrackingListener.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/notification/listeners/WorkflowTrackingListener.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/notification/listeners/WorkflowTrackingListener.java index 4f1dd9e..1ff9346 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/notification/listeners/WorkflowTrackingListener.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/notification/listeners/WorkflowTrackingListener.java @@ -1,133 +1,133 @@ -/* - * - * 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.gfac.core.notification.listeners; - -import com.google.common.eventbus.Subscribe; -import org.apache.airavata.gfac.core.notification.events.*; -import org.apache.airavata.workflow.tracking.Notifier; -import org.apache.airavata.workflow.tracking.NotifierFactory; -import org.apache.airavata.workflow.tracking.common.DurationObj; -import org.apache.airavata.workflow.tracking.common.InvocationEntity; -import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext; - -import java.net.URI; -import java.util.Properties; - -public class WorkflowTrackingListener { - - private Notifier notifier; - - private String topic; - - private URI workflowID; - - private WorkflowTrackingContext context; - - private InvocationEntity initiator; - - private InvocationEntity receiver; - - private DurationObj duration; - - private org.apache.airavata.workflow.tracking.common.InvocationContext invocationContext; - - public WorkflowTrackingListener(String workflowID, String workflowNodeID, String brokerURL, String topic){ - this.topic = topic; - this.workflowID = URI.create(this.topic); - this.notifier = NotifierFactory.createNotifier(); - URI initiatorWorkflowID = URI.create(workflowID); - URI initiatorServiceID = URI.create(topic); - String initiatorWorkflowNodeID = workflowNodeID; - Integer initiatorWorkflowTimeStep = null; - this.context = this.notifier.createTrackingContext(new Properties(), brokerURL, initiatorWorkflowID, initiatorServiceID, - initiatorWorkflowNodeID, initiatorWorkflowTimeStep); - this.context.setTopic(topic); - this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID, - initiatorWorkflowTimeStep); - - URI receiverWorkflowID = this.workflowID; - URI receiverServiceID = this.workflowID; - String receiverWorkflowNodeID = null; - Integer receiverWorkflowTimeStep = null; - - setReceiver(this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID, - receiverWorkflowTimeStep)); - // send start workflow - this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator); - } - - - - @Subscribe - public void startExecution(StartExecutionEvent e) { - this.duration = this.notifier.computationStarted(); - } - - @Subscribe - public void finishExecution(FinishExecutionEvent e) { - this.duration = this.notifier.computationFinished(this.context, this.duration); - } - - @Subscribe - public void statusChanged(StatusChangeEvent event) { - this.notifier.info(this.context, event.getStatusMessage()); - } - - @Subscribe - public void startSchedule(StartScheduleEvent e){ - this.notifier.info(this.context,e.getEventType()); - } - - @Subscribe - public void executionFail(ExecutionFailEvent e) { - this.notifier.sendingFault(this.context, this.invocationContext, e.getCauseForFailure().getMessage()); - } - - - @Subscribe - public void info(String... data) { - this.notifier.info(this.context, data); - } - - @Subscribe - public void warning(String... data) { - } - - @Subscribe - public void exception(String... data) { - } - - @Subscribe - public void finishSchedule(FinishScheduleEvent e){ - this.notifier.info(this.context,e.getEventType()); - } - - - public InvocationEntity getReceiver() { - return receiver; - } - - public void setReceiver(InvocationEntity receiver) { - this.receiver = receiver; - } - -} +///* +// * +// * 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.gfac.core.notification.listeners; +// +//import com.google.common.eventbus.Subscribe; +//import org.apache.airavata.gfac.core.notification.events.*; +//import org.apache.airavata.workflow.tracking.Notifier; +//import org.apache.airavata.workflow.tracking.NotifierFactory; +//import org.apache.airavata.workflow.tracking.common.DurationObj; +//import org.apache.airavata.workflow.tracking.common.InvocationEntity; +//import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext; +// +//import java.net.URI; +//import java.util.Properties; +// +//public class WorkflowTrackingListener { +// +// private Notifier notifier; +// +// private String topic; +// +// private URI workflowID; +// +// private WorkflowTrackingContext context; +// +// private InvocationEntity initiator; +// +// private InvocationEntity receiver; +// +// private DurationObj duration; +// +// private org.apache.airavata.workflow.tracking.common.InvocationContext invocationContext; +// +// public WorkflowTrackingListener(String workflowID, String workflowNodeID, String brokerURL, String topic){ +// this.topic = topic; +// this.workflowID = URI.create(this.topic); +// this.notifier = NotifierFactory.createNotifier(); +// URI initiatorWorkflowID = URI.create(workflowID); +// URI initiatorServiceID = URI.create(topic); +// String initiatorWorkflowNodeID = workflowNodeID; +// Integer initiatorWorkflowTimeStep = null; +// this.context = this.notifier.createTrackingContext(new Properties(), brokerURL, initiatorWorkflowID, initiatorServiceID, +// initiatorWorkflowNodeID, initiatorWorkflowTimeStep); +// this.context.setTopic(topic); +// this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID, +// initiatorWorkflowTimeStep); +// +// URI receiverWorkflowID = this.workflowID; +// URI receiverServiceID = this.workflowID; +// String receiverWorkflowNodeID = null; +// Integer receiverWorkflowTimeStep = null; +// +// setReceiver(this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID, +// receiverWorkflowTimeStep)); +// // send start workflow +// this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator); +// } +// +// +// +// @Subscribe +// public void startExecution(StartExecutionEvent e) { +// this.duration = this.notifier.computationStarted(); +// } +// +// @Subscribe +// public void finishExecution(FinishExecutionEvent e) { +// this.duration = this.notifier.computationFinished(this.context, this.duration); +// } +// +// @Subscribe +// public void statusChanged(StatusChangeEvent event) { +// this.notifier.info(this.context, event.getStatusMessage()); +// } +// +// @Subscribe +// public void startSchedule(StartScheduleEvent e){ +// this.notifier.info(this.context,e.getEventType()); +// } +// +// @Subscribe +// public void executionFail(ExecutionFailEvent e) { +// this.notifier.sendingFault(this.context, this.invocationContext, e.getCauseForFailure().getMessage()); +// } +// +// +// @Subscribe +// public void info(String... data) { +// this.notifier.info(this.context, data); +// } +// +// @Subscribe +// public void warning(String... data) { +// } +// +// @Subscribe +// public void exception(String... data) { +// } +// +// @Subscribe +// public void finishSchedule(FinishScheduleEvent e){ +// this.notifier.info(this.context,e.getEventType()); +// } +// +// +// public InvocationEntity getReceiver() { +// return receiver; +// } +// +// public void setReceiver(InvocationEntity receiver) { +// this.receiver = receiver; +// } +// +//} http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/gfac/gfac-ec2/pom.xml ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ec2/pom.xml b/modules/gfac/gfac-ec2/pom.xml index 4943ae1..4568a11 100644 --- a/modules/gfac/gfac-ec2/pom.xml +++ b/modules/gfac/gfac-ec2/pom.xml @@ -51,11 +51,11 @@ <version>${project.version}</version> </dependency> <!-- Workflow Tracking --> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <!-- SSH --> <dependency> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/gfac/gfac-monitor/pom.xml ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/pom.xml b/modules/gfac/gfac-monitor/pom.xml index 58fa9d8..c4a6e2f 100644 --- a/modules/gfac/gfac-monitor/pom.xml +++ b/modules/gfac/gfac-monitor/pom.xml @@ -61,11 +61,11 @@ <version>${project.version}</version> </dependency> <!-- Workflow Tracking --> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <!-- Credential Store --> <dependency> <groupId>org.apache.airavata</groupId> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/test-suite/pom.xml ---------------------------------------------------------------------- diff --git a/modules/test-suite/pom.xml b/modules/test-suite/pom.xml index 06eb3c1..ddd555d 100644 --- a/modules/test-suite/pom.xml +++ b/modules/test-suite/pom.xml @@ -60,11 +60,11 @@ </dependency> <!-- Workflow Tracking --> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <!-- SSH --> <dependency> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/pom.xml ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/pom.xml b/modules/workflow-model/workflow-engine/pom.xml index 7f6c9f2..a043170 100644 --- a/modules/workflow-model/workflow-engine/pom.xml +++ b/modules/workflow-model/workflow-engine/pom.xml @@ -219,11 +219,11 @@ <artifactId>airavata-workflow-model-component</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-message-monitor</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-message-monitor</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <dependency> <groupId>org.apache.airavata</groupId> <artifactId>airavata-model-utils</artifactId> @@ -244,11 +244,11 @@ <artifactId>airavata-common-utils</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-tracking</artifactId> - <version>${project.version}</version> - </dependency> + <!--<dependency>--> + <!--<groupId>org.apache.airavata</groupId>--> + <!--<artifactId>airavata-workflow-tracking</artifactId>--> + <!--<version>${project.version}</version>--> + <!--</dependency>--> <dependency> <groupId>org.apache.airavata</groupId> <artifactId>airavata-jpa-registry</artifactId> http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java index 9b56b73..59fe8d0 100644 --- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java +++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java @@ -34,20 +34,9 @@ import org.apache.airavata.messaging.core.Publisher; import org.apache.airavata.model.appcatalog.appinterface.DataType; import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType; import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; -import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent; -import org.apache.airavata.model.messaging.event.MessageType; -import org.apache.airavata.model.messaging.event.TaskOutputChangeEvent; -import org.apache.airavata.model.messaging.event.TaskStatusChangeEvent; -import org.apache.airavata.model.messaging.event.WorkflowIdentifier; -import org.apache.airavata.model.messaging.event.WorkflowNodeStatusChangeEvent; +import org.apache.airavata.model.messaging.event.*; import org.apache.airavata.model.util.ExperimentModelUtil; -import org.apache.airavata.model.workspace.experiment.ExecutionUnit; -import org.apache.airavata.model.workspace.experiment.Experiment; -import org.apache.airavata.model.workspace.experiment.ExperimentState; -import org.apache.airavata.model.workspace.experiment.TaskDetails; -import org.apache.airavata.model.workspace.experiment.WorkflowNodeDetails; -import org.apache.airavata.model.workspace.experiment.WorkflowNodeState; -import org.apache.airavata.model.workspace.experiment.WorkflowNodeStatus; +import org.apache.airavata.model.workspace.experiment.*; import org.apache.airavata.orchestrator.cpi.OrchestratorService; import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory; import org.apache.airavata.registry.cpi.ChildDataType; @@ -63,19 +52,7 @@ import org.apache.airavata.workflow.model.component.Component; import org.apache.airavata.workflow.model.component.amazon.InstanceComponent; import org.apache.airavata.workflow.model.component.amazon.TerminateInstanceComponent; import org.apache.airavata.workflow.model.component.dynamic.DynamicComponent; -import org.apache.airavata.workflow.model.component.system.ConstantComponent; -import org.apache.airavata.workflow.model.component.system.DifferedInputComponent; -import org.apache.airavata.workflow.model.component.system.DoWhileComponent; -import org.apache.airavata.workflow.model.component.system.EndDoWhileComponent; -import org.apache.airavata.workflow.model.component.system.EndForEachComponent; -import org.apache.airavata.workflow.model.component.system.EndifComponent; -import org.apache.airavata.workflow.model.component.system.ForEachComponent; -import org.apache.airavata.workflow.model.component.system.IfComponent; -import org.apache.airavata.workflow.model.component.system.InputComponent; -import org.apache.airavata.workflow.model.component.system.MemoComponent; -import org.apache.airavata.workflow.model.component.system.OutputComponent; -import org.apache.airavata.workflow.model.component.system.S3InputComponent; -import org.apache.airavata.workflow.model.component.system.SubWorkflowComponent; +import org.apache.airavata.workflow.model.component.system.*; import org.apache.airavata.workflow.model.component.ws.WSComponent; import org.apache.airavata.workflow.model.exceptions.WorkflowException; import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException; @@ -88,42 +65,24 @@ import org.apache.airavata.workflow.model.graph.dynamic.DynamicNode; import org.apache.airavata.workflow.model.graph.impl.EdgeImpl; import org.apache.airavata.workflow.model.graph.impl.NodeImpl; import org.apache.airavata.workflow.model.graph.subworkflow.SubWorkflowNode; -import org.apache.airavata.workflow.model.graph.system.ConstantNode; -import org.apache.airavata.workflow.model.graph.system.DoWhileNode; -import org.apache.airavata.workflow.model.graph.system.EndForEachNode; -import org.apache.airavata.workflow.model.graph.system.EndifNode; -import org.apache.airavata.workflow.model.graph.system.ForEachNode; -import org.apache.airavata.workflow.model.graph.system.IfNode; -import org.apache.airavata.workflow.model.graph.system.InputNode; -import org.apache.airavata.workflow.model.graph.system.OutputNode; +import org.apache.airavata.workflow.model.graph.system.*; import org.apache.airavata.workflow.model.graph.ws.WSGraph; import org.apache.airavata.workflow.model.graph.ws.WSNode; import org.apache.airavata.workflow.model.graph.ws.WSPort; import org.apache.airavata.workflow.model.wf.Workflow; import org.apache.airavata.workflow.model.wf.WorkflowExecutionState; -import org.apache.airavata.ws.monitor.MonitorException; import org.apache.thrift.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xmlpull.infoset.XmlElement; -import xsul5.XmlConstants; -import javax.xml.namespace.QName; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import java.net.URL; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; @@ -461,10 +420,7 @@ public class WorkflowInterpreter implements AbstractActivityListener{ notifyViaInteractor(WorkflowExecutionMessage.EXECUTION_STATE_CHANGED, WorkflowExecutionState.PAUSED); } - /** - * @throws MonitorException - */ - public void cleanup() throws MonitorException { + public void cleanup() { this.getWorkflow().setExecutionState(WorkflowExecutionState.STOPPED); notifyViaInteractor(WorkflowExecutionMessage.EXECUTION_CLEANUP, null); } http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/AsynchronousInvoker.java ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/AsynchronousInvoker.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/AsynchronousInvoker.java index fa0709d..5a9e527 100644 --- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/AsynchronousInvoker.java +++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/AsynchronousInvoker.java @@ -70,11 +70,12 @@ public class AsynchronousInvoker extends SimpleInvoker { correlator = new XsulSoapHttpWsaResponsesCorrelator(); String serverLoc = ((XsulSoapHttpWsaResponsesCorrelator) correlator).getServerLocation(); logger.debug("using async correlator at " + serverLoc); - } else { - correlator = new MsgBoxWsaResponsesCorrelator(this.messageBoxURL,this); - logger.debug("using message box at " + this.messageBoxURL); + this.client.useAsyncMessaging(correlator); } - this.client.useAsyncMessaging(correlator); +// else { +// correlator = new MsgBoxWsaResponsesCorrelator(this.messageBoxURL,this); +// logger.debug("using message box at " + this.messageBoxURL); +// } } public boolean invoke() throws WorkflowException { http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java index 80825d8..cab3462 100644 --- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java +++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java @@ -1,140 +1,140 @@ -/* - * - * 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.engine.invoker; - -import org.apache.airavata.common.utils.XMLUtil; -import org.apache.airavata.wsmg.msgbox.client.MsgBoxClient; -import org.apache.axiom.om.OMElement; -import org.apache.axis2.addressing.EndpointReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xmlpull.v1.builder.XmlDocument; -import org.xmlpull.v1.builder.XmlElement; -import org.xmlpull.v1.builder.XmlInfosetBuilder; -import xsul.MLogger; -import xsul.XmlConstants; -import xsul.XsulException; -import xsul.processor.DynamicInfosetProcessorException; -import xsul.ws_addressing.WsaEndpointReference; -import xsul.ws_addressing.WsaMessageInformationHeaders; -import xsul.wsif.WSIFMessage; -import xsul.wsif.impl.WSIFMessageElement; -import xsul.xwsif_runtime_async.WSIFAsyncResponseListener; -import xsul.xwsif_runtime_async.WSIFAsyncResponsesCorrelator; -import xsul.xwsif_runtime_async.WSIFAsyncWsaResponsesCorrelatorBase; - -import javax.xml.stream.XMLStreamException; -import java.net.URI; -import java.net.URISyntaxException; -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -public class MsgBoxWsaResponsesCorrelator extends WSIFAsyncWsaResponsesCorrelatorBase - implements WSIFAsyncResponsesCorrelator, Runnable -{ - private static final Logger logger = LoggerFactory.getLogger(MsgBoxWsaResponsesCorrelator.class); - private final static XmlInfosetBuilder builder = XmlConstants.BUILDER; - - private String msgBoxServiceLoc; - private MsgBoxClient msgBoxClient; - EndpointReference msgBoxAddr; - private Thread messageBoxDonwloader; - - private AsynchronousInvoker invoker; - - public MsgBoxWsaResponsesCorrelator(String msgBoxServiceLoc,AsynchronousInvoker output) - throws DynamicInfosetProcessorException - { - this.invoker = output; - this.msgBoxServiceLoc = msgBoxServiceLoc; - msgBoxClient = new MsgBoxClient(); - try { - msgBoxAddr = msgBoxClient.createMessageBox(msgBoxServiceLoc,5000L); - try { - setReplyTo(new WsaEndpointReference(new URI(msgBoxAddr.getAddress()))); - } catch (URISyntaxException e) { - logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. - } - messageBoxDonwloader = new Thread(this, Thread.currentThread().getName()+"-async-msgbox-correlator"); - messageBoxDonwloader.setDaemon(true); - messageBoxDonwloader.start(); - } catch (RemoteException e) { - logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. - } - } - -// public void setMsgBoxAddr(WsaEndpointReference msgBoxAddr) { -// this.msgBoxAddr = msgBoxAddr; +///* +// * +// * 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.engine.invoker; +// +//import org.apache.airavata.common.utils.XMLUtil; +//import org.apache.airavata.wsmg.msgbox.client.MsgBoxClient; +//import org.apache.axiom.om.OMElement; +//import org.apache.axis2.addressing.EndpointReference; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.xmlpull.v1.builder.XmlDocument; +//import org.xmlpull.v1.builder.XmlElement; +//import org.xmlpull.v1.builder.XmlInfosetBuilder; +//import xsul.MLogger; +//import xsul.XmlConstants; +//import xsul.XsulException; +//import xsul.processor.DynamicInfosetProcessorException; +//import xsul.ws_addressing.WsaEndpointReference; +//import xsul.ws_addressing.WsaMessageInformationHeaders; +//import xsul.wsif.WSIFMessage; +//import xsul.wsif.impl.WSIFMessageElement; +//import xsul.xwsif_runtime_async.WSIFAsyncResponseListener; +//import xsul.xwsif_runtime_async.WSIFAsyncResponsesCorrelator; +//import xsul.xwsif_runtime_async.WSIFAsyncWsaResponsesCorrelatorBase; +// +//import javax.xml.stream.XMLStreamException; +//import java.net.URI; +//import java.net.URISyntaxException; +//import java.rmi.RemoteException; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +// +//public class MsgBoxWsaResponsesCorrelator extends WSIFAsyncWsaResponsesCorrelatorBase +// implements WSIFAsyncResponsesCorrelator, Runnable +//{ +// private static final Logger logger = LoggerFactory.getLogger(MsgBoxWsaResponsesCorrelator.class); +// private final static XmlInfosetBuilder builder = XmlConstants.BUILDER; +// +// private String msgBoxServiceLoc; +// private MsgBoxClient msgBoxClient; +// EndpointReference msgBoxAddr; +// private Thread messageBoxDonwloader; +// +// private AsynchronousInvoker invoker; +// +// public MsgBoxWsaResponsesCorrelator(String msgBoxServiceLoc,AsynchronousInvoker output) +// throws DynamicInfosetProcessorException +// { +// this.invoker = output; +// this.msgBoxServiceLoc = msgBoxServiceLoc; +// msgBoxClient = new MsgBoxClient(); +// try { +// msgBoxAddr = msgBoxClient.createMessageBox(msgBoxServiceLoc,5000L); +// try { +// setReplyTo(new WsaEndpointReference(new URI(msgBoxAddr.getAddress()))); +// } catch (URISyntaxException e) { +// logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. +// } +// messageBoxDonwloader = new Thread(this, Thread.currentThread().getName()+"-async-msgbox-correlator"); +// messageBoxDonwloader.setDaemon(true); +// messageBoxDonwloader.start(); +// } catch (RemoteException e) { +// logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. +// } // } - - - - public void run() { - while(true) { - try { - Iterator<OMElement> omElementIterator = msgBoxClient.takeMessagesFromMsgBox(msgBoxAddr, 5000L); - List<XmlElement> xmlArrayList = new ArrayList<XmlElement>(); - while (omElementIterator.hasNext()){ - OMElement next = omElementIterator.next(); - String message = next.toStringWithConsume(); - xmlArrayList.add(XMLUtil.stringToXmlElement3(message)); - } - // now hard work: find callbacks - for (int i = 0; i < xmlArrayList.size(); i++) { - XmlElement m = xmlArrayList.get(i); - try { - logger.debug(Thread.currentThread().getName()); - WSIFMessageElement e = new WSIFMessageElement(m); - this.invoker.setOutputMessage(e); - //ideally there are no multiple messages, so we can return from this thread at this point - //otherwise this thread will keep running forever for each worfklow node, so there can be large - // number of waiting threads in an airavata deployment - return; - } catch (Throwable e) { - logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. - } - } - try { - Thread.currentThread().sleep(1000L); //do not overload msg box service ... - } catch (InterruptedException e) { - break; - } - } catch (XsulException e) { - logger.error("could not retrieve messages"); - break; - } catch (RemoteException e) { - logger.error("could not retrieve messages"); - break; - } catch (XMLStreamException e) { - logger.error("could not retrieve messages"); - break; - } catch (Exception e){ - logger.error("could not retrieve messages"); - break; - } - } - } - - - -} +// +//// public void setMsgBoxAddr(WsaEndpointReference msgBoxAddr) { +//// this.msgBoxAddr = msgBoxAddr; +//// } +// +// +// +// public void run() { +// while(true) { +// try { +// Iterator<OMElement> omElementIterator = msgBoxClient.takeMessagesFromMsgBox(msgBoxAddr, 5000L); +// List<XmlElement> xmlArrayList = new ArrayList<XmlElement>(); +// while (omElementIterator.hasNext()){ +// OMElement next = omElementIterator.next(); +// String message = next.toStringWithConsume(); +// xmlArrayList.add(XMLUtil.stringToXmlElement3(message)); +// } +// // now hard work: find callbacks +// for (int i = 0; i < xmlArrayList.size(); i++) { +// XmlElement m = xmlArrayList.get(i); +// try { +// logger.debug(Thread.currentThread().getName()); +// WSIFMessageElement e = new WSIFMessageElement(m); +// this.invoker.setOutputMessage(e); +// //ideally there are no multiple messages, so we can return from this thread at this point +// //otherwise this thread will keep running forever for each worfklow node, so there can be large +// // number of waiting threads in an airavata deployment +// return; +// } catch (Throwable e) { +// logger.error(e.getLocalizedMessage(),e); //To change body of catch statement use File | Settings | File Templates. +// } +// } +// try { +// Thread.currentThread().sleep(1000L); //do not overload msg box service ... +// } catch (InterruptedException e) { +// break; +// } +// } catch (XsulException e) { +// logger.error("could not retrieve messages"); +// break; +// } catch (RemoteException e) { +// logger.error("could not retrieve messages"); +// break; +// } catch (XMLStreamException e) { +// logger.error("could not retrieve messages"); +// break; +// } catch (Exception e){ +// logger.error("could not retrieve messages"); +// break; +// } +// } +// } +// +// +// +//} http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/Listener.java ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/Listener.java b/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/Listener.java index 6443828..aeafd6d 100644 --- a/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/Listener.java +++ b/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/Listener.java @@ -1,31 +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.xbaya.interpreter; - -import org.apache.airavata.wsmg.client.NotificationHandler; - -public class Listener implements NotificationHandler { - - public void handleNotification(String message) { - System.out.println("MessageRecieved: " + message); - } - -} +///* +// * +// * 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.xbaya.interpreter; +// +//import org.apache.airavata.wsmg.client.NotificationHandler; +// +//public class Listener implements NotificationHandler { +// +// public void handleNotification(String message) { +// System.out.println("MessageRecieved: " + message); +// } +// +//} http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/NotificationSender.java ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/NotificationSender.java b/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/NotificationSender.java index 261b07f..5c34cf8 100644 --- a/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/NotificationSender.java +++ b/modules/workflow-model/workflow-engine/src/test/java/org/apache/airavata/xbaya/interpreter/NotificationSender.java @@ -1,204 +1,204 @@ -/* - * - * 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.xbaya.interpreter; - - -import org.apache.airavata.workflow.tracking.NotifierFactory; -import org.apache.airavata.workflow.tracking.WorkflowNotifier; -import org.apache.airavata.workflow.tracking.common.InvocationContext; -import org.apache.airavata.workflow.tracking.common.InvocationEntity; -import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext; -import org.apache.axis2.addressing.EndpointReference; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.net.URI; -import java.util.Properties; - -public class NotificationSender { - - protected WorkflowNotifier notifier; - - protected String brokerURL; - - protected String topic; - - protected URI workflowID; - - protected InvocationEntity initiator; - - protected InvocationEntity receiver; - - protected InvocationContext invocationContext; - - protected EndpointReference eventSink; - - protected WorkflowTrackingContext context; - - /** - * Constructs a NotificationSender. - * - * @param brokerURL - * @param topic - */ - public NotificationSender(URI brokerURL, String topic) { - this(brokerURL.toString(), topic); - } - - /** - * Creates a NotificationSender. - * - * @param brokerURL The location of notification brokerUrl. - * @param topic The notification topic. - */ - public NotificationSender(String brokerURL, String topic) { - this.topic = topic; - this.brokerURL = brokerURL; - this.workflowID = URI.create(this.convertToJavaIdentifier(this.topic)); - this.eventSink = new EndpointReference(this.brokerURL); - Properties props = new Properties(); - - this.notifier = NotifierFactory.createNotifier(); - URI initiatorWorkflowID = null; - URI initiatorServiceID = URI.create(this.convertToJavaIdentifier(topic)); - String initiatorWorkflowNodeID = null; - Integer initiatorWorkflowTimeStep = null; - this.context = this.notifier.createTrackingContext(props, brokerURL, initiatorWorkflowID, - initiatorServiceID, initiatorWorkflowNodeID, initiatorWorkflowTimeStep); - this.context.setTopic(topic); - this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID, - initiatorWorkflowTimeStep); - - URI receiverWorkflowID = this.workflowID; - URI receiverServiceID = this.workflowID; - String receiverWorkflowNodeID = null; - Integer receiverWorkflowTimeStep = null; - this.receiver = this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID, - receiverWorkflowTimeStep); - } - - /** - * @return The event sink EPR. - */ - public EndpointReference getEventSink() { - return this.eventSink; - } - - - public void workflowStarted(String message) { - this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator, message); - } - - - public void workflowFinished(String message) { - this.notifier.sendingResult(context, this.invocationContext, message); - this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully."); - } - - public void sendingPartialResults(Object[] args, String[] keywords) { - String message = ""; - for (int i = 0; i < args.length; i++) { - if (i != 0) { - message += ", "; - } - message += keywords[i] + "=" + args[i]; - } - this.notifier.sendingResult(context, this.invocationContext, message); - } - - - public void workflowTerminated() { - this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully."); - } - - /** - * Sends a START_INCOMPLETED notification message. - * - * @param message The message to send - */ - public void workflowFailed(String message) { - workflowFailed(message, null); - } - - /** - * Sends a START_INCOMPLETED notification message. - * - * @param e - */ - public void workflowFailed(Throwable e) { - workflowFailed(null, e); - } - - /** - * Sends a START_INCOMPLETED notification message. - * - * @param message The message to send - * @param e - */ - public void workflowFailed(String message, Throwable e) { - this.notifier.sendingFault(context, this.invocationContext, message); - } - - public void info(String message) { - this.notifier.info(context, message); - } - - /** - * @param throwable - * @return The stackTrace in String - */ - public static String getStackTraceInString(Throwable throwable) { - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - PrintStream printStream = new PrintStream(byteArrayOutputStream); - throwable.printStackTrace(printStream); - printStream.flush(); - return byteArrayOutputStream.toString(); - } - - public static String convertToJavaIdentifier(String name) { - - final char REPLACE_CHAR = '_'; - - if (name == null || name.length() == 0) { - return "" + REPLACE_CHAR; - } - - StringBuilder buf = new StringBuilder(); - - char c = name.charAt(0); - if (!Character.isJavaIdentifierStart(c)) { - // Add _ at the beggining instead of replacing it to _. This is - // more readable if the name is like 3D_Model. - buf.append(REPLACE_CHAR); - } - - for (int i = 0; i < name.length(); i++) { - c = name.charAt(i); - if (Character.isJavaIdentifierPart(c)) { - buf.append(c); - } else { - buf.append(REPLACE_CHAR); - } - } - - return buf.toString(); - } -} \ No newline at end of file +///* +// * +// * 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 +//re * under the License. +// * +//*/ +//package org.apache.airavata.xbaya.interpreter; +// +// +//import org.apache.airavata.workflow.tracking.NotifierFactory; +//import org.apache.airavata.workflow.tracking.WorkflowNotifier; +//import org.apache.airavata.workflow.tracking.common.InvocationContext; +//import org.apache.airavata.workflow.tracking.common.InvocationEntity; +//import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext; +//import org.apache.axis2.addressing.EndpointReference; +// +//import java.io.ByteArrayOutputStream; +//import java.io.PrintStream; +//import java.net.URI; +//import java.util.Properties; +// +//public class NotificationSender { +// +// protected WorkflowNotifier notifier; +// +// protected String brokerURL; +// +// protected String topic; +// +// protected URI workflowID; +// +// protected InvocationEntity initiator; +// +// protected InvocationEntity receiver; +// +// protected InvocationContext invocationContext; +// +// protected EndpointReference eventSink; +// +// protected WorkflowTrackingContext context; +// +// /** +// * Constructs a NotificationSender. +// * +// * @param brokerURL +// * @param topic +// */ +// public NotificationSender(URI brokerURL, String topic) { +// this(brokerURL.toString(), topic); +// } +// +// /** +// * Creates a NotificationSender. +// * +// * @param brokerURL The location of notification brokerUrl. +// * @param topic The notification topic. +// */ +// public NotificationSender(String brokerURL, String topic) { +// this.topic = topic; +// this.brokerURL = brokerURL; +// this.workflowID = URI.create(this.convertToJavaIdentifier(this.topic)); +// this.eventSink = new EndpointReference(this.brokerURL); +// Properties props = new Properties(); +// +// this.notifier = NotifierFactory.createNotifier(); +// URI initiatorWorkflowID = null; +// URI initiatorServiceID = URI.create(this.convertToJavaIdentifier(topic)); +// String initiatorWorkflowNodeID = null; +// Integer initiatorWorkflowTimeStep = null; +// this.context = this.notifier.createTrackingContext(props, brokerURL, initiatorWorkflowID, +// initiatorServiceID, initiatorWorkflowNodeID, initiatorWorkflowTimeStep); +// this.context.setTopic(topic); +// this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID, +// initiatorWorkflowTimeStep); +// +// URI receiverWorkflowID = this.workflowID; +// URI receiverServiceID = this.workflowID; +// String receiverWorkflowNodeID = null; +// Integer receiverWorkflowTimeStep = null; +// this.receiver = this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID, +// receiverWorkflowTimeStep); +// } +// +// /** +// * @return The event sink EPR. +// */ +// public EndpointReference getEventSink() { +// return this.eventSink; +// } +// +// +// public void workflowStarted(String message) { +// this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator, message); +// } +// +// +// public void workflowFinished(String message) { +// this.notifier.sendingResult(context, this.invocationContext, message); +// this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully."); +// } +// +// public void sendingPartialResults(Object[] args, String[] keywords) { +// String message = ""; +// for (int i = 0; i < args.length; i++) { +// if (i != 0) { +// message += ", "; +// } +// message += keywords[i] + "=" + args[i]; +// } +// this.notifier.sendingResult(context, this.invocationContext, message); +// } +// +// +// public void workflowTerminated() { +// this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully."); +// } +// +// /** +// * Sends a START_INCOMPLETED notification message. +// * +// * @param message The message to send +// */ +// public void workflowFailed(String message) { +// workflowFailed(message, null); +// } +// +// /** +// * Sends a START_INCOMPLETED notification message. +// * +// * @param e +// */ +// public void workflowFailed(Throwable e) { +// workflowFailed(null, e); +// } +// +// /** +// * Sends a START_INCOMPLETED notification message. +// * +// * @param message The message to send +// * @param e +// */ +// public void workflowFailed(String message, Throwable e) { +// this.notifier.sendingFault(context, this.invocationContext, message); +// } +// +// public void info(String message) { +// this.notifier.info(context, message); +// } +// +// /** +// * @param throwable +// * @return The stackTrace in String +// */ +// public static String getStackTraceInString(Throwable throwable) { +// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); +// PrintStream printStream = new PrintStream(byteArrayOutputStream); +// throwable.printStackTrace(printStream); +// printStream.flush(); +// return byteArrayOutputStream.toString(); +// } +// +// public static String convertToJavaIdentifier(String name) { +// +// final char REPLACE_CHAR = '_'; +// +// if (name == null || name.length() == 0) { +// return "" + REPLACE_CHAR; +// } +// +// StringBuilder buf = new StringBuilder(); +// +// char c = name.charAt(0); +// if (!Character.isJavaIdentifierStart(c)) { +// // Add _ at the beggining instead of replacing it to _. This is +// // more readable if the name is like 3D_Model. +// buf.append(REPLACE_CHAR); +// } +// +// for (int i = 0; i < name.length(); i++) { +// c = name.charAt(i); +// if (Character.isJavaIdentifierPart(c)) { +// buf.append(c); +// } else { +// buf.append(REPLACE_CHAR); +// } +// } +// +// return buf.toString(); +// } +//} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/cab15715/modules/ws-messenger/INSTALL.txt ---------------------------------------------------------------------- diff --git a/modules/ws-messenger/INSTALL.txt b/modules/ws-messenger/INSTALL.txt deleted file mode 100644 index 5a04c9e..0000000 --- a/modules/ws-messenger/INSTALL.txt +++ /dev/null @@ -1,162 +0,0 @@ -Installing Airavata WS-Messenger 0.0.1-SNAPSHOT ------------------------------------------------- - -Build WS-Messenger from Source ------------------------------- - -Prerequisites -------------- -Java 1.5 -Maven (tested on v 3.0.2) - - -1. Check out the code from SVN. - - -2. Go to project folder and type - - mvn clean install -Dmaven.test.skip=true - - -3. The binary distribution is located at - - <PROJECT DIR>/distribution/target - -Configure WS-Messenger messageBroker service. ----------------------------------------------- -Given below are the configurations for message broker service. configuration file should be named as -"airavata-server.properties". This should be included in the class path (e.g. <BROKER_DISTRIBUTION_DIR>/standalone-server/conf) when broker starts. - -Configuration Description -============================= ==================================== -broker.jdbc.driver Database driver. -broker.jdbc.url Url string used to connect the database -broker.start.delivery.thread If set to true message delivery thread will be started. -(true/false) Applicable when only running broker. User must set this to 'false' - if he wishes run message deliver component separately ( e.g. messenger servlet). -broker.socket.timeout Connection timeout in milliseconds.Set this to '0' if user wishes connections never to be timed out. - (not recommended)4000 -broker.storage.type Specifies message, subscriptions should be stored in a database or not. memory or persistent -(memory/persistent) -broker.delivery.method Specifies what mechanism to be used deliver messages. -(serial,parallel,pcrew) serial â single threaded delivery - parallel â dynamic thread pool based delivery - pcrew â fixed thread pool based delivery - serial , parallel or pcrew -broker.msg.delivery.retries Number of message delivery failures before a url become black listed (default is 2) 2 -consumer.expiration.time.gap Time period (in seconds) a url will be kept blacklisted (default is 5 seconds) 5 -sending.batch.size Maximum number of messages to be send to a one consumer/url at time. applicable if 'broker.delivery.method' is 'pcrew'(default is 10)10 -sending.thread.pool.size Size of the thread pool. only applicable if 'broker.delivery.method' is 'pcrew'. (default is 4) 4 - - -Configure WS-Messenger messagebox service ------------------------------------------ -Configuration Description -msgBox.jdbc.driver Database driver. -msgBox.jdbc.url Url string used to connect the data base -msgBox.usedatabase If set to 'true' use MySql database. If set to 'false' use inmemory implementation. -(true,false) In this scenario database settings i.e-broker.jdbc.url is not required. - -Run Ws-messenger ------------------ -1. User has the option to run broker in several modes. Steps for each mode is given below. - -Run standalone version supplied with binary distribution ---------------------------------------------------------- - -1. Unzip binary distribution. - -2. Change default configurations if needed. - -- configuration files is located at: - <extracted location>/standalone-server/conf/airavata-server.properties - - Run axis2 server by running the command: - Linux - - <extracted location>/standalone-server/bin/axis2server.sh - Windows - - <extracted location>/standalone-server/bin/axis2server.bat - -Run Ws-messenger using axis2 servlet -------------------------------------- -(Tested on tomcat v 6.0.20 & axis2 v1.5.1) -1. Copy broker aar file to axis2 distribution accordingly. -2. Create database tables (Scripts can be found <extracted location>/bin/database_scripts) -3. Set configurations appropriately and copy configuration file ( named airavata-server.properties) to - - <Axis-servlet>/webapps/axis2/WEB-INF/classes - -Note: a sample configuration file is located at: - -<extracted location>/standalone-server/conf/airavata-server.properties - -4. Start tomcat server. - -5. For more information follow how to deploy Apache Axis2 as a Web Application. - - -Run Ws-messenger using a external axis2 distribution ----------------------------------------------------- - -1. Copy broker aar file to following location: - <AXIS2_DIST_HOME>/repository/services - -2. Copy airavata-server.properties file to <AXIS2_DIST_HOME>/conf - - Configure the properties file with broker.start.delivery=false - -3. Start axis2 server. - -4. Run message delivery component separately. - -5. Deploy messenger servlet on tomcat. - -Note: messenger servlet can be found at <extracted_location>/messenger directory. - -6. Set configurations appropriately. - - <TOMECAT_HOME>/webapps/messenger/WEB-INF/classes/airavata-server.properties - -Note: Point to the correct database you want to pick the messages and do the message delivery, and check the -property axis2.repository to the correct location. - -7. Start tomcat. - - -Run Samples ------------ - -Sample programs are located at: <Extracted location>/client-api/samples. - -Prerequisites: --------------- - -Apache Ant (tested on 1.7.1) -Steps: - -1. Run WS-messenger in any mode previously described. - -2. Configure samples following the instructions given in README.txt (located in every sample directory) - -3. Run following command: - ant run - -Run WS-Notification Viewer --------------------------- - -1. Extract binary distribution. - -2. Go to following location: - - <extracted location>/gui/ - -3. Execute script startGUI.sh - - -System Requirements -------------------- -1. JDK - 1.6.x (1.6.0_24 onwards recommended for production) -2. Minimum memory - 1 GB -3. Processor - Pentium 800MHz or equivalent at minimum - -
