merging wth master
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/93ed077e Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/93ed077e Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/93ed077e Branch: refs/heads/queue-gfac-rabbitmq Commit: 93ed077e87c3e29cd58301ead917fcf7e2025853 Parents: 1231c01 9a6eaaa Author: Lahiru Gunathilake <[email protected]> Authored: Wed Feb 25 01:09:40 2015 -0500 Committer: Lahiru Gunathilake <[email protected]> Committed: Wed Feb 25 01:09:40 2015 -0500 ---------------------------------------------------------------------- .../client/samples/CreateLaunchExperiment.java | 192 +- .../tools/RegisterSampleApplications.java | 31 +- .../catalog/data/impl/ComputeResourceImpl.java | 15 +- .../data/util/AppCatalogThriftConversion.java | 9 +- modules/commons/utils/pom.xml | 4 +- .../airavata/common/utils/WSConstants.java | 10 +- .../apache/airavata/common/utils/WSDLUtil.java | 764 ++--- .../apache/airavata/common/utils/XMLUtil.java | 34 +- .../credential-store/pom.xml | 5 + modules/distribution/server/pom.xml | 64 +- modules/gfac/gfac-bes/pom.xml | 5 + modules/gfac/gfac-gsissh/pom.xml | 10 - .../handler/GSISSHDirectorySetupHandler.java | 7 +- modules/gfac/gfac-ssh/pom.xml | 10 - .../ssh/handler/SSHDirectorySetupHandler.java | 7 +- .../airavata/gfac/ssh/util/GFACSSHUtils.java | 45 +- .../core/impl/RabbitMQStatusPublisher.java | 5 +- modules/workflow-model/workflow-engine/pom.xml | 5 +- .../engine/gfac/GFacRegistryClient.java | 186 +- .../workflow/engine/gfac/SimpleWSClient.java | 166 +- .../interpretor/SystemComponentInvoker.java | 86 +- .../engine/interpretor/WorkflowInterpreter.java | 24 +- .../engine/invoker/AsynchronousInvoker.java | 98 +- .../workflow/engine/invoker/DynamicInvoker.java | 48 +- .../workflow/engine/invoker/Invoker.java | 84 +- .../workflow/engine/invoker/SimpleInvoker.java | 411 +-- .../workflow/engine/util/InterpreterUtil.java | 112 +- .../workflow/engine/util/XBayaUtil.java | 94 +- .../engine/workflow/proxy/WorkflowContext.java | 4 +- .../workflow-model-component/pom.xml | 7 +- .../workflow-model/workflow-model-core/pom.xml | 8 +- .../component/system/SubWorkflowComponent.java | 4 +- .../component/url/URLComponentRegistry.java | 12 +- .../component/ws/WSComponentApplication.java | 2 +- .../model/component/ws/WSComponentFactory.java | 8 +- .../model/component/ws/WSComponentRegistry.java | 32 +- .../model/component/ws/WorkflowComponent.java | 108 +- .../airavata/workflow/model/gpel/DSCUtil.java | 140 +- .../workflow/model/gpel/script/BPELScript.java | 1276 ++++---- .../model/gpel/script/WorkflowWSDL.java | 528 ++-- .../model/graph/system/StreamSourceNode.java | 7 +- .../workflow/model/ode/ODEBPELTransformer.java | 1260 ++++---- .../airavata/workflow/model/ode/ODEClient.java | 200 +- .../model/ode/ODEDeploymentDescriptor.java | 368 +-- .../workflow/model/ode/ODEWSDLTransformer.java | 872 +++--- .../workflow/model/ode/WSDLCleaner.java | 196 +- .../workflow/model/wf/TridentTransformer.java | 50 +- .../airavata/workflow/model/wf/Workflow.java | 542 ++-- modules/xbaya-gui/pom.xml | 5 + .../xbaya/core/generators/BPELFiler.java | 38 +- .../xbaya/core/generators/ODEScriptFiler.java | 68 +- .../xbaya/invoker/factory/InvokerFactory.java | 16 +- .../graph/dynamic/DynamicNodeWindow.java | 72 +- tools/gsissh/pom.xml | 8 +- .../java/com/jcraft/jsch/ExtendedSession.java | 2 - .../illinois/ncsa/BCGSS/BCGSSContextImpl.java | 2894 +++++++++--------- .../illinois/ncsa/BCGSS/CircularByteBuffer.java | 1648 +++++----- .../ncsa/BCGSS/GlobusTlsCipherFactory.java | 126 +- .../illinois/ncsa/BCGSS/GlobusTlsClient.java | 494 +-- .../edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java | 564 ++-- .../apache/airavata/gsi/ssh/GSSContextX509.java | 32 +- .../gsi/ssh/impl/GSISSHAbstractCluster.java | 163 +- .../apache/airavata/gsi/ssh/util/SSHUtils.java | 4 +- .../impl/DefaultSSHApiTestWithMyProxyAuth.java | 15 +- .../gsi/ssh/impl/VanilaTestWithSSHAuth.java | 46 +- 65 files changed, 7232 insertions(+), 7118 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/93ed077e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java ---------------------------------------------------------------------- diff --cc airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java index 78c2d71,a5bc81c..90b8e6d --- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java +++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java @@@ -57,10 -57,10 +57,10 @@@ public class CreateLaunchExperiment private static final String DEFAULT_GATEWAY = "default.registry.gateway"; private static Airavata.Client airavataClient; - private static String echoAppId = "Echo_2e539083-665d-40fd-aaa2-4a751028326b"; + private static String echoAppId = "Echo_1365a7fd-eae1-4575-b447-99afb4d79c82"; private static String mpiAppId = "HelloMPI_720e159f-198f-4daa-96ca-9f5eafee92c9"; private static String wrfAppId = "WRF_7ad5da38-c08b-417c-a9ea-da9298839762"; - private static String amberAppId = "Amber_42124128-628b-484c-829d-aff8b584eb00"; + private static String amberAppId = "Amber_9e4f28b6-7a5d-4fe1-b07f-2053f8f0deb3"; private static String gromacsAppId = "GROMACS_05622038-9edd-4cb1-824e-0b7cb993364b"; private static String espressoAppId = "ESPRESSO_10cc2820-5d0b-4c63-9546-8a8b595593c1"; private static String lammpsAppId = "LAMMPS_10893eb5-3840-438c-8446-d26c7ecb001f"; @@@ -106,7 -104,7 +106,6 @@@ // final String expId = createExperimentForBR2Amber(airavataClient); // final String expId = createExperimentWRFStampede(airavataClient); // final String expId = createExperimentForStampedeAmber(airavataClient); - // final String expId = createExperimentForTrestlesAmber(airavataClient); - final String expId = createExperimentForTrestlesAmber(airavataClient); // final String expId = createExperimentGROMACSStampede(airavataClient); // final String expId = createExperimentESPRESSOStampede(airavataClient); // final String expId = createExperimentLAMMPSStampede(airavataClient); http://git-wip-us.apache.org/repos/asf/airavata/blob/93ed077e/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java ---------------------------------------------------------------------- diff --cc modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java index 70ed942,0000000..ae5e29e mode 100644,000000..100644 --- a/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java +++ b/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java @@@ -1,103 -1,0 +1,102 @@@ +/* + * + * 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.messaging.core.impl; + +import org.apache.airavata.common.exception.AiravataException; +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.common.utils.ServerSettings; +import org.apache.airavata.common.utils.ThriftUtils; +import org.apache.airavata.messaging.core.MessageContext; +import org.apache.airavata.messaging.core.MessagingConstants; +import org.apache.airavata.messaging.core.Publisher; - import org.apache.airavata.messaging.core.stats.StatCounter; +import org.apache.airavata.model.messaging.event.*; +import org.apache.thrift.TException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RabbitMQStatusPublisher implements Publisher { + + private static Logger log = LoggerFactory.getLogger(RabbitMQStatusPublisher.class); + + private RabbitMQProducer rabbitMQProducer; + - StatCounter statCounter = StatCounter.getInstance(); ++// StatCounter statCounter = StatCounter.getInstance(); + + public RabbitMQStatusPublisher() throws Exception { + String brokerUrl; + String exchangeName; + try { + brokerUrl = ServerSettings.getSetting(MessagingConstants.RABBITMQ_BROKER_URL); + exchangeName = ServerSettings.getSetting(MessagingConstants.RABBITMQ_STATUS_EXCHANGE_NAME); + } catch (ApplicationSettingsException e) { + String message = "Failed to get read the required properties from airavata to initialize rabbitmq"; + log.error(message, e); + throw new AiravataException(message, e); + } + rabbitMQProducer = new RabbitMQProducer(brokerUrl, exchangeName); + rabbitMQProducer.open(); + } + + public void publish(MessageContext msgCtx) throws AiravataException { + try { + log.info("Publishing status to rabbitmq..."); + byte[] body = ThriftUtils.serializeThriftObject(msgCtx.getEvent()); + Message message = new Message(); + message.setEvent(body); + message.setMessageId(msgCtx.getMessageId()); + message.setMessageType(msgCtx.getType()); + message.setUpdatedTime(msgCtx.getUpdatedTime().getTime()); + String gatewayId = msgCtx.getGatewayId(); + String routingKey = null; + if (msgCtx.getType().equals(MessageType.EXPERIMENT)){ + ExperimentStatusChangeEvent event = (ExperimentStatusChangeEvent) msgCtx.getEvent(); + routingKey = gatewayId + "." + event.getExperimentId(); + } else if (msgCtx.getType().equals(MessageType.TASK)) { + TaskStatusChangeEvent event = (TaskStatusChangeEvent) msgCtx.getEvent(); + routingKey = gatewayId + "." + event.getTaskIdentity().getExperimentId() + "." + + event.getTaskIdentity().getWorkflowNodeId() + "." + event.getTaskIdentity().getTaskId(); + }else if (msgCtx.getType().equals(MessageType.WORKFLOWNODE)){ + WorkflowNodeStatusChangeEvent event = (WorkflowNodeStatusChangeEvent) msgCtx.getEvent(); + WorkflowIdentifier workflowNodeIdentity = event.getWorkflowNodeIdentity(); + routingKey = gatewayId + "." + workflowNodeIdentity.getExperimentId() + "." + workflowNodeIdentity.getWorkflowNodeId(); + }else if (msgCtx.getType().equals(MessageType.JOB)){ + JobStatusChangeEvent event = (JobStatusChangeEvent)msgCtx.getEvent(); + JobIdentifier identity = event.getJobIdentity(); + routingKey = gatewayId + "." + identity.getExperimentId() + "." + + identity.getWorkflowNodeId() + "." + + identity.getTaskId() + "." + + identity.getJobId(); + } + byte[] messageBody = ThriftUtils.serializeThriftObject(message); + rabbitMQProducer.send(messageBody, routingKey); - statCounter.add(message); ++// statCounter.add(message); + } catch (TException e) { + String msg = "Error while deserializing the object"; + log.error(msg, e); + throw new AiravataException(msg, e); + } catch (Exception e) { + String msg = "Error while sending to rabbitmq"; + log.error(msg, e); + throw new AiravataException(msg, e); + } + } +}
