Return-Path: X-Original-To: apmail-airavata-commits-archive@www.apache.org Delivered-To: apmail-airavata-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CB94E10663 for ; Tue, 21 Jan 2014 20:59:22 +0000 (UTC) Received: (qmail 31228 invoked by uid 500); 21 Jan 2014 20:59:21 -0000 Delivered-To: apmail-airavata-commits-archive@airavata.apache.org Received: (qmail 31190 invoked by uid 500); 21 Jan 2014 20:59:21 -0000 Mailing-List: contact commits-help@airavata.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@airavata.apache.org Delivered-To: mailing list commits@airavata.apache.org Received: (qmail 31183 invoked by uid 99); 21 Jan 2014 20:59:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Jan 2014 20:59:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Jan 2014 20:59:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3B6EE23889D5; Tue, 21 Jan 2014 20:58:49 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1560181 - in /airavata/trunk: modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/ samples/ samples/gateway-developer-guide/ samples/gateway-developer-guide/src/ samples/gateway-developer-guide/src/ma... Date: Tue, 21 Jan 2014 20:58:48 -0000 To: commits@airavata.apache.org From: raminder@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140121205849.3B6EE23889D5@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: raminder Date: Tue Jan 21 20:58:48 2014 New Revision: 1560181 URL: http://svn.apache.org/r1560181 Log: applying AIRAVATA-985 patch Added: airavata/trunk/samples/gateway-developer-guide/ airavata/trunk/samples/gateway-developer-guide/README.txt airavata/trunk/samples/gateway-developer-guide/pom.xml airavata/trunk/samples/gateway-developer-guide/src/ airavata/trunk/samples/gateway-developer-guide/src/main/ airavata/trunk/samples/gateway-developer-guide/src/main/java/ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/MonitorListener.java airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/PasswordCallbackImpl.java airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/SimpleGateway.java airavata/trunk/samples/gateway-developer-guide/src/main/resources/ airavata/trunk/samples/gateway-developer-guide/src/main/resources/EchoWorkflow.xwf airavata/trunk/samples/gateway-developer-guide/src/main/resources/SimpleEcho.xwf airavata/trunk/samples/gateway-developer-guide/src/main/resources/airavata-client.properties airavata/trunk/samples/gateway-developer-guide/src/main/resources/gateway.properties airavata/trunk/samples/gateway-developer-guide/src/main/resources/log4j.properties Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/SimpleOrchestratorTest.java airavata/trunk/samples/pom.xml Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java?rev=1560181&r1=1560180&r2=1560181&view=diff ============================================================================== --- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java (original) +++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java Tue Jan 21 20:58:48 2014 @@ -23,7 +23,6 @@ package org.apache.airavata.orchestrator import junit.framework.TestCase; import org.apache.airavata.orchestrator.core.util.Initialize; -import org.apache.airavata.persistance.registry.jpa.Resource; import org.apache.airavata.persistance.registry.jpa.ResourceType; import org.apache.airavata.persistance.registry.jpa.ResourceUtils; import org.apache.airavata.persistance.registry.jpa.resources.*; Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/SimpleOrchestratorTest.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/SimpleOrchestratorTest.java?rev=1560181&r1=1560180&r2=1560181&view=diff ============================================================================== --- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/SimpleOrchestratorTest.java (original) +++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/SimpleOrchestratorTest.java Tue Jan 21 20:58:48 2014 @@ -20,25 +20,30 @@ */ package org.apache.airavata.orchestrator.core; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + import junit.framework.Assert; + import org.apache.airavata.common.utils.AiravataUtils; import org.apache.airavata.commons.gfac.type.ActualParameter; import org.apache.airavata.commons.gfac.type.ApplicationDescription; import org.apache.airavata.commons.gfac.type.HostDescription; import org.apache.airavata.commons.gfac.type.ServiceDescription; import org.apache.airavata.registry.api.JobRequest; -import org.apache.airavata.schemas.gfac.*; -import org.apache.tools.ant.taskdefs.Echo; +import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType; +import org.apache.airavata.schemas.gfac.DataType; +import org.apache.airavata.schemas.gfac.InputParameterType; +import org.apache.airavata.schemas.gfac.OutputParameterType; +import org.apache.airavata.schemas.gfac.ParameterType; +import org.apache.airavata.schemas.gfac.StringParameterType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.UUID; - public class SimpleOrchestratorTest extends AbstractOrchestratorTest { private static final Logger log = LoggerFactory.getLogger(SimpleOrchestratorTest.class); Added: airavata/trunk/samples/gateway-developer-guide/README.txt URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/README.txt?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/README.txt (added) +++ airavata/trunk/samples/gateway-developer-guide/README.txt Tue Jan 21 20:58:48 2014 @@ -0,0 +1,7 @@ +Gateway Developer guide +================================= + +This module contains code used in the Gateway Developer guide in the Apache Airavata Wiki [1] + + +1. https://cwiki.apache.org/confluence/display/AIRAVATA/Simple+Gateway+Developer+Guide \ No newline at end of file Added: airavata/trunk/samples/gateway-developer-guide/pom.xml URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/pom.xml?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/pom.xml (added) +++ airavata/trunk/samples/gateway-developer-guide/pom.xml Tue Jan 21 20:58:48 2014 @@ -0,0 +1,86 @@ + + + + + + org.apache.airavata + airavata + 0.12-SNAPSHOT + ../../pom.xml + + + 4.0.0 + gateway-developer-guide + jar + Gateway Developer Guide + https://cwiki.apache.org/confluence/display/AIRAVATA/Simple+Gateway+Developer+Guide + + + + org.apache.airavata + airavata-rest-client + ${project.version} + + + org.slf4j + slf4j-simple + + + + + org.apache.airavata + airavata-jpa-registry + ${project.version} + + + org.slf4j + slf4j-simple + + + + + org.apache.airavata + airavata-client-api + ${project.version} + + + org.slf4j + slf4j-simple + + + + + org.apache.airavata + airavata-registry-api + ${project.version} + + + org.slf4j + slf4j-simple + + + + + org.slf4j + slf4j-log4j12 + + + org.testng + testng + 6.1.1 + + + + + + 10.9.1.0 + + + Added: airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/MonitorListener.java URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/MonitorListener.java?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/MonitorListener.java (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/MonitorListener.java Tue Jan 21 20:58:48 2014 @@ -0,0 +1,84 @@ +/* + * + * 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.samples; + +import org.apache.airavata.ws.monitor.EventData; +import org.apache.airavata.ws.monitor.EventDataListener; +import org.apache.airavata.ws.monitor.EventDataRepository; +import org.apache.airavata.ws.monitor.Monitor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MonitorListener implements EventDataListener { + + private static final Logger log = LoggerFactory.getLogger(MonitorListener.class); + + @Override + public void notify(EventDataRepository eventDataRepo, EventData eventData) { + log.info("ExperimentID: " + eventData.getExperimentID()); + log.info("Message: " + eventData.getMessage()); + log.info("Status: " + eventData.getStatusText()); + } + + @Override + public void setExperimentMonitor(Monitor monitor) { + // TODO Auto-generated method stub + + } + + @Override + public void monitoringPreStart() { + // TODO Auto-generated method stub + + } + + @Override + public void monitoringPostStart() { + // TODO Auto-generated method stub + + } + + @Override + public void monitoringPreStop() { + // TODO Auto-generated method stub + + } + + @Override + public void monitoringPostStop() { + // TODO Auto-generated method stub + + } + + @Override + public void onFail(EventData failNotification) { + // TODO Auto-generated method stub + + } + + @Override + public void onCompletion(EventData completionNotification) { + // TODO Auto-generated method stub + + } + +} Added: airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/PasswordCallbackImpl.java URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/PasswordCallbackImpl.java?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/PasswordCallbackImpl.java (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/PasswordCallbackImpl.java Tue Jan 21 20:58:48 2014 @@ -0,0 +1,39 @@ +/* + * + * 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.samples; + +import org.apache.airavata.registry.api.PasswordCallback; + +/** + * Callback for tests + */ +public class PasswordCallbackImpl implements PasswordCallback { + @Override + public String getPassword(String username) { + + if (username.equals("admin")) { + return "admin"; + } + + return null; + } +} Added: airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/SimpleGateway.java URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/SimpleGateway.java?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/SimpleGateway.java (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/java/org/apache/airavata/samples/SimpleGateway.java Tue Jan 21 20:58:48 2014 @@ -0,0 +1,328 @@ +/* + * + * 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.samples; + +import org.apache.airavata.client.AiravataAPIFactory; +import org.apache.airavata.client.api.AiravataAPI; +import org.apache.airavata.client.api.ApplicationManager; +import org.apache.airavata.client.api.builder.DescriptorBuilder; +import org.apache.airavata.client.api.exception.AiravataAPIInvocationException; +import org.apache.airavata.commons.gfac.type.ApplicationDescription; +import org.apache.airavata.commons.gfac.type.HostDescription; +import org.apache.airavata.commons.gfac.type.ServiceDescription; +import org.apache.airavata.registry.api.PasswordCallback; +import org.apache.airavata.registry.api.exception.worker.ExperimentLazyLoadedException; +import org.apache.airavata.registry.api.impl.WorkflowExecutionDataImpl; +import org.apache.airavata.registry.api.workflow.ExperimentData; +import org.apache.airavata.registry.api.workflow.NodeExecutionData; +import org.apache.airavata.registry.api.workflow.WorkflowNodeType; +import org.apache.airavata.schemas.gfac.DataType; +import org.apache.airavata.schemas.gfac.HostDescriptionType; +import org.apache.airavata.schemas.gfac.InputParameterType; +import org.apache.airavata.schemas.gfac.OutputParameterType; +import org.apache.airavata.workflow.model.component.ComponentException; +import org.apache.airavata.workflow.model.graph.GraphException; +import org.apache.airavata.workflow.model.wf.InvalidDataFormatException; +import org.apache.airavata.workflow.model.wf.Workflow; +import org.apache.airavata.workflow.model.wf.WorkflowInput; +import org.apache.airavata.ws.monitor.Monitor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.io.*; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import junit.framework.Assert; + +public class SimpleGateway { + private final Logger log = LoggerFactory.getLogger(SimpleGateway.class); + + private int port; + private String serverUrl; + private String serverContextName; + + private String registryURL; + + private String gatewayName; + private String userName; + private String password; + + private static final int TIME_OUT = 20000; + + private static final int TRIES = 3; + + private AiravataAPI airavataAPI; + + private ApplicationManager applicationManager; + + + @BeforeTest + public void setupTests() throws URISyntaxException, AiravataAPIInvocationException { + + //get the registry URLs and the credentials from the gateway.properties file + setGatewayProperties(); + + //get the Airavata API + PasswordCallback passwordCallback = new PasswordCallbackImpl(); + this.airavataAPI = AiravataAPIFactory.getAPI(new URI(getRegistryURL()), getGatewayName(), getUserName(), + passwordCallback); + this.applicationManager = airavataAPI.getApplicationManager(); + + log("Setting Up Tests: Complete ..."); + + } + + @Test + public void runGatewayTest() throws Exception { + String experimentId = submitJob(); + monitorJob(experimentId); + getResults(experimentId); + } + + private String submitJob() throws Exception, IOException, ComponentException, GraphException, InvalidDataFormatException { + //setup the descriptors to run the workflow + setupDescriptors(); + + // ---------------load and add the workflow to the server ---------------- + Workflow workflow = new Workflow(getWorkflowContent("src/main/resources/SimpleEcho.xwf")); + + //check if a workflow with the same name exists already, if not add it to the server + if (!airavataAPI.getWorkflowManager().isWorkflowExists(workflow.getName())) { + airavataAPI.getWorkflowManager().addWorkflow(workflow); + } + + // add the inputs + + //List workflowInputs = setupInputs(workflow, Arrays.asList("Hello Developer!")); + List workflowInputs = airavataAPI.getWorkflowManager().getWorkflowInputs(workflow.getName()); + workflowInputs.get(0).setValue("Hello Scientist ---!!"); + log("Workfllow Setting up complete ..."); + + String experimentId = airavataAPI.getExecutionManager().runExperiment(workflow.getName(), workflowInputs); + Assert.assertNotNull(experimentId); + + log("Job submitted ...."); + return experimentId; + } + + // provides the current details of the job + private void monitorJob(String experimentId) throws AiravataAPIInvocationException { + MonitorListener monitorListener = new MonitorListener(); + Monitor monitor = airavataAPI.getExecutionManager().getExperimentMonitor(experimentId, monitorListener); + log("Started monitoring the job " + experimentId); + monitor.startMonitoring(); + airavataAPI.getExecutionManager().waitForExperimentTermination(experimentId); + + } + + private void getResults(String experimentId) throws AiravataAPIInvocationException, ExperimentLazyLoadedException, URISyntaxException { + + log("Fetching the results ..."); + //get the experiment data through the provenance manager + ExperimentData experimentData = airavataAPI.getProvenanceManager().getExperimentData(experimentId); + List workflowInstanceData = experimentData.getWorkflowExecutionDataList(); + Assert.assertFalse("Workflow instance data cannot be empty !", workflowInstanceData.isEmpty()); + + for (WorkflowExecutionDataImpl data : workflowInstanceData) { + List nodeDataList = data.getNodeDataList(WorkflowNodeType.WorkflowNode.OUTPUTNODE); + for (NodeExecutionData nodeData : nodeDataList) { + log("Output: " + nodeData.getOutput()); + } + } + } + + + protected List setupInputs(Workflow workflow, List inputValues) throws Exception { + AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(new URI(getRegistryURL()), getGatewayName(), getUserName(), + new PasswordCallbackImpl()); + List workflowInputs = airavataAPI.getWorkflowManager().getWorkflowInputs(workflow.getName()); + + Assert.assertEquals(workflowInputs.size(), inputValues.size()); + + int i = 0; + for (String valueString : inputValues) { + workflowInputs.get(i).setValue(valueString); + ++i; + } + return workflowInputs; + } + + private String getWorkflowContent(String filename) throws IOException { + File file = getFile(filename); + + BufferedReader reader = new BufferedReader(new FileReader(file)); + String line; + StringBuilder buffer = new StringBuilder(); + while ((line = reader.readLine()) != null) { + buffer.append(line); + } + reader.close(); + log.debug("Workflow compose - " + buffer.toString()); + return buffer.toString(); + } + + private void setupDescriptors() throws AiravataAPIInvocationException { + // get the descriptor builder to build the necessary descriptors + DescriptorBuilder descriptorBuilder = airavataAPI.getDescriptorBuilder(); + + // ------------------Adding the host description ---------------------------------------- + HostDescription hostDescription = descriptorBuilder.buildHostDescription(HostDescriptionType.type, "localhost", + "127.0.0.1"); + applicationManager.addHostDescription(hostDescription); + + //test that the host description was added properly + Assert.assertTrue(airavataAPI.getApplicationManager().isHostDescriptorExists( + hostDescription.getType().getHostName())); + log("Added Application Description ..."); + + + // ------------------Adding the service description ---------------------------------------- + //Input parameter description + List inputParameters = new ArrayList(); + inputParameters.add(descriptorBuilder.buildInputParameterType("echo_input", "echo_input", DataType.STRING)); + + //Output parameter description + List outputParameters = new ArrayList(); + outputParameters.add(descriptorBuilder.buildOutputParameterType("echo_out", "echo_out", DataType.STRING)); + + //add the service descriptor + ServiceDescription serviceDescription = descriptorBuilder.buildServiceDescription("echo_app", "echo_app", + inputParameters, outputParameters); + applicationManager.addServiceDescription(serviceDescription); + + //test that the service description was added properly + Assert.assertTrue(airavataAPI.getApplicationManager().isServiceDescriptorExists( + serviceDescription.getType().getName())); + + log("Added Service Description ..."); + + //------------------Adding the Application Description --------------------------------------- + ApplicationDescription applicationDescription = descriptorBuilder. + buildApplicationDeploymentDescription("echo_app", "/bin/echo", "/tmp"); + applicationManager.addApplicationDescription(serviceDescription, hostDescription, applicationDescription); + log("Added Application Deployment Description ..."); + + } + + private File getFile(String fileName) { + File f = new File("."); + log.debug(f.getAbsolutePath()); + + File file = new File(fileName); + if (!file.exists()) { + file = new File("samples/gateway-developer-guide/" + fileName); + } + return file; + } + + private void log(String message) { + log.info(message); + } + + public String getGatewayName() { + return gatewayName; + } + + public AiravataAPI getAiravataAPI() { + return airavataAPI; + } + + public Logger getLog() { + + return log; + } + + public int getPort() { + return port; + } + + public String getServerUrl() { + return serverUrl; + } + + public String getServerContextName() { + return serverContextName; + } + + public String getRegistryURL() { + return registryURL; + } + + public void setPort(int port) { + this.port = port; + } + + public void setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; + } + + public void setRegistryURL(String registryURL) { + this.registryURL = registryURL; + } + + public void setServerContextName(String serverContextName) { + this.serverContextName = serverContextName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserName() { + return userName; + } + + //get the registry URL and the credentials from the property file + private void setGatewayProperties() { + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("gateway.properties"); + + Properties properties = new Properties(); + try { + properties.load(inputStream); + } catch (IOException e) { + e.printStackTrace(); + } + + String username = properties.getProperty("airavata.server.user"); + String password = properties.getProperty("airavata.server.password"); + String gatewayName = properties.getProperty("gateway.name"); + String registryURL = properties.getProperty("airavata.server.url"); + setRegistryURL(registryURL); + setUserName(username); + setPassword(password); + setGatewayName(gatewayName); + log("loaded the properties ..."); + } + + public void setPassword(String password) { + this.password = password; + } +} Added: airavata/trunk/samples/gateway-developer-guide/src/main/resources/EchoWorkflow.xwf URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/resources/EchoWorkflow.xwf?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/resources/EchoWorkflow.xwf (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/resources/EchoWorkflow.xwf Tue Jan 21 20:58:48 2014 @@ -0,0 +1,149 @@ + + + + + + Echo + Echo + + + + + + + + Echo_invoke + Echo:invoke + Echo_invoke_out_0 + Echo_invoke_in_0 + Echo_invoke_ctrl_in_0 + Echo_invoke_ctrl_out_0 + 278 + 123 + Echo + {http://airavata.apache.org/schemas/gfac/2012/12}Echo + invoke + + + echo_input + echo_input + Input_out_2 + 151 + 103 + + + {http://airavata.apache.org/schemas/gfac/2012/12}StringParameterType + true + + + + echo_output + echo_output + Output_in_2 + 510 + 125 + + + {http://airavata.apache.org/schemas/gfac/2012/12}StringParameterType + + + + Echo_invoke_in_0 + echo_input + Echo_invoke + + + Echo_invoke_out_0 + echo_output + Echo_invoke + + + Echo_invoke_ctrl_in_0 + control + Echo_invoke + + + Echo_invoke_ctrl_out_0 + control + Echo_invoke + + + Input_out_2 + Parameter + echo_input + + + Output_in_2 + Parameter + echo_output + + + Input_out_2 + Echo_invoke_in_0 + + + Echo_invoke_out_0 + Output_in_2 + + + + <wsdl:definitions name="Echo" targetNamespace="http://airavata.apache.org/schemas/gfac/2012/12" + xmlns:typens="http://airavata.apache.org/schemas/gfac/2012/12/Echo/xsd" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:globalTypens="http://airavata.apache.org/schemas/gfac/2012/12/xsd" + xmlns:wsdlns="http://airavata.apache.org/schemas/gfac/2012/12" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:gfac="http://airavata.apache.org/schemas/gfac/2012/12" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <schema elementFormDefault="unqualified" targetNamespace="http://airavata.apache.org/schemas/gfac/2012/12/Echo/xsd" xmlns="http://www.w3.org/2001/XMLSchema"> + <import namespace="http://airavata.apache.org/schemas/gfac/2012/12" schemaLocation="http://airavata.apache.org/schemas/gfac/2012/12/GFacParameterTypes.xsd" /> + <element name="invoke_InputParams" type="typens:invoke_InputParamsType" /> + <complexType name="invoke_InputParamsType"> + <sequence> + <element name="echo_input" type="gfac:StringParameterType"> + <annotation> + <documentation /> + </annotation> + </element> + </sequence> + </complexType> + <element name="invoke_OutputParams" type="typens:invoke_OutputParamsType" /> + <complexType name="invoke_OutputParamsType"> + <sequence> + <element name="echo_output" type="gfac:StringParameterType"> + <annotation> + <documentation /> + </annotation> + </element> + </sequence> + </complexType> + </schema> + </wsdl:types> + <wsdl:message name="invoke_ResponseMessage_504bca7e-4bb2-4432-84bc-f5f21f77ac76"> + <wsdl:part name="parameters" element="typens:invoke_OutputParams"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="invoke_RequestMessage_ebe74610-34d1-4a31-8e00-84c2b2219843"> + <wsdl:part name="parameters" element="typens:invoke_InputParams"> + </wsdl:part> + </wsdl:message> + <wsdl:portType name="Echo"> +<wsdl:documentation /> + <wsdl:operation name="invoke"> +<wsdl:documentation /> + <wsdl:input name="invoke_RequestMessage_ebe74610-34d1-4a31-8e00-84c2b2219843" message="wsdlns:invoke_RequestMessage_ebe74610-34d1-4a31-8e00-84c2b2219843"> + </wsdl:input> + <wsdl:output name="invoke_ResponseMessage_504bca7e-4bb2-4432-84bc-f5f21f77ac76" message="wsdlns:invoke_ResponseMessage_504bca7e-4bb2-4432-84bc-f5f21f77ac76"> + </wsdl:output> + </wsdl:operation> + </wsdl:portType> +</wsdl:definitions> + + iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAFUlEQVR42mN49Ojef2Iww6hC+ioE +AJr2avQ9sXYrAAAAAElFTkSuQmCC + + \ No newline at end of file Added: airavata/trunk/samples/gateway-developer-guide/src/main/resources/SimpleEcho.xwf URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/resources/SimpleEcho.xwf?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/resources/SimpleEcho.xwf (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/resources/SimpleEcho.xwf Tue Jan 21 20:58:48 2014 @@ -0,0 +1,404 @@ + + + + + + + Workflow + SimpleEcho + + + + + + + + input + input + input_out_0 + 59 + 67 + + + {http://www.w3.org/2001/XMLSchema}string + true + + + + return + return + return_in_0 + 455 + 138 + + + {http://www.w3.org/2001/XMLSchema}string + + + + EchoServicePortType_echo + EchoServicePortType:echo + EchoServicePortType_echo_out_0 + EchoServicePortType_echo_in_0 + EchoServicePortType_echo_ctrl_in_0 + EchoServicePortType_echo_ctrl_out_0 + 200 + 112 + _ + {http://samples.airavata.apache.org}EchoServicePortType + echo + + + input_out_0 + Parameter + input + + + return_in_0 + Parameter + return + + + EchoServicePortType_echo_in_0 + input + EchoServicePortType_echo + + + EchoServicePortType_echo_out_0 + return + EchoServicePortType_echo + + + EchoServicePortType_echo_ctrl_in_0 + control + EchoServicePortType_echo + + + EchoServicePortType_echo_ctrl_out_0 + control + EchoServicePortType_echo + + + EchoServicePortType_echo_out_0 + return_in_0 + + + input_out_0 + EchoServicePortType_echo_in_0 + + + + <wsdl:definitions targetNamespace="http://samples.airavata.apache.org" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://samples.airavata.apache.org" + xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:documentation> + Provide Simple Service for Testing Purpose which Echo's the input + </wsdl:documentation> + <wsdl:types> + <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://samples.airavata.apache.org"> + <xs:element name="echo"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="input" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="echoResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:schema> + </wsdl:types> + <wsdl:message name="echoRequest"> + <wsdl:part name="parameters" element="ns:echo" /> + </wsdl:message> + <wsdl:message name="echoResponse"> + <wsdl:part name="parameters" element="ns:echoResponse" /> + </wsdl:message> + <wsdl:portType name="EchoServicePortType"> + <wsdl:operation name="echo"> + <wsdl:input wsaw:Action="urn:echo" message="ns:echoRequest" /> + <wsdl:output wsaw:Action="urn:echoResponse" message="ns:echoResponse" /> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="EchoServiceSoap11Binding" type="ns:EchoServicePortType"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> + <wsdl:operation name="echo"> + <soap:operation soapAction="urn:echo" style="document" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:binding name="EchoServiceSoap12Binding" type="ns:EchoServicePortType"> + <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> + <wsdl:operation name="echo"> + <soap12:operation soapAction="urn:echo" style="document" /> + <wsdl:input> + <soap12:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap12:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:binding name="EchoServiceHttpBinding" type="ns:EchoServicePortType"> + <http:binding verb="POST" /> + <wsdl:operation name="echo"> + <http:operation location="EchoService/echo" /> + <wsdl:input> + <mime:content type="text/xml" part="echo" /> + </wsdl:input> + <wsdl:output> + <mime:content type="text/xml" part="echo" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="EchoService"> + <wsdl:port name="EchoServiceHttpSoap11Endpoint" binding="ns:EchoServiceSoap11Binding"> + <soap:address location="http://localhost:8080/airavata-server/services/EchoService/" /> + </wsdl:port> + <wsdl:port name="EchoServiceHttpSoap12Endpoint" binding="ns:EchoServiceSoap12Binding"> + <soap12:address location="http://localhost:8080/airavata-server/services/EchoService/" /> + </wsdl:port> + <wsdl:port name="EchoServiceHttpEndpoint" binding="ns:EchoServiceHttpBinding"> + <http:address location="http://localhost:8080/airavata-server/services/EchoService/" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> + + 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 +SWrCEzOF1PyWkG6Smq1xJ4TUhByUpGZjjCQ1vx44KkvNESE1K8PjhdT8IkvNjzurpWb+VklqZm2O +ElIzY9N+ITVTNkpSM3GdJDXj1kpSM2rNTllqtltITT9Zar6Qpeb/LQoSUvPx/A1Caj6YI0nNf2dK +UvPOjGqp6TpllZCaLpNWCqn558TlZlLzD1lqnhm5hJ4asYT+b+Q8mjZjus0VG0gNcAt4haa2hp5q +K1PDLxp8Pz8/3/C+/AKkPsYrL8rG/1pWV2GU6gg/rmy8LK58nwJ/DH9/f9P3tG/fXhxXZEeRBfVF +TbnvlStXTMeUi9/IkSPNJIcf15MAa6/XnudgbfjJlvdE77U4KjWxsbHiGK9g8I1XaPj+oUOHLO6n +fU68omLP6zfabLlvXXzWGprU8N5V4eHhdL2iUkjNlWuS1Fy4UiakhldpuNQUnpOkJt+K1BzPKxJS +czSnQEhNfKYkNbFpktQcSMkRUrMvKUtIDa/SKFLDqzRcajYfkqQm2CQ1x4TUBEQmCKlZJUvN8j2S +1Py0q1pqeJWGS82csANCanxDJKmZGiRJzSRZaib8uluWml1CaoarpOYbWWoGyFLT96cQITW8SsOl +pteCjUJqPpwrSU2PWZLUvOsbYJKabtNWC6n592Q/M6l5WZaa58dKUtNp1I9Cap4cvpieGLaIvpnh +a3PfI0gNcAt69fqEvv9+Qr2UGkdutxZarel7+PCAeuN/vUdGRoq/4B999FFT5aYm+VJf1IyeK7+o +8WoQH3riFRM9ebDn9dryHBTuuOMOERTWXoxrek9sHV6y9fYXX3zRVHnRyoq9z8na67dXnm35+bn6 +s9aQpIb3rjpdUCCkpuy6JDW8SsOlpvSyNPR0xorUpBecFVKTkn9GSE3iSUlqDmdJUnMoXZKamBMn +hdTwKg2Xmr0qqdkhS80Wk9QcF1KzISZRSE1glCQ1/vskqVmxV5Kan8XQkyQ1i+Shp3lbooXUzAyV +pGa6LDWTN4bLUrNHSM3Ytb8JqRnpXy01Q1ZKUjNomSQ1vErDpeZzeeipz0JzqekpS817M9eapOat +6f5mUtNZlppXvpOk5sVxPwup4VUaLjVPj5Ck5vGhi0S1xta+R5Aa4DbLIuzevdOtpEb56zk3N9eh +Cw2/eKr/wrblr+czZ85YDNkof+mr5cDW16IMQ3C50A6pGFVq9F6vM89BvdnynrhaakJCQsxkgg9r +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 + + Added: airavata/trunk/samples/gateway-developer-guide/src/main/resources/airavata-client.properties URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/resources/airavata-client.properties?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/resources/airavata-client.properties (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/resources/airavata-client.properties Tue Jan 21 20:58:48 2014 @@ -0,0 +1,66 @@ +# +# +# 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. +# + +########################################################################### +# +# This properties file provides configuration for Airavata Clients: +# XBaya and Airavata API +# +########################################################################### + +###---------------------------REGISTRY API IMPLEMENTATION---------------------------### + +#class.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +class.registry.accessor=org.apache.airavata.rest.client.RegistryClient + +###---------------------REGISTRY API IMPLEMENTATION - CUSTOM SETTINGS----------------------### + +#for mysql [AiravataJPARegistry] +#registry.jdbc.driver=com.mysql.jdbc.Driver +#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data + +#for derby [AiravataJPARegistry] +registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver +registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata +registry.jdbc.user=airavata +registry.jdbc.password=airavata +start.derby.server.mode=true + +default.registry.user=admin +default.registry.password=admin +default.registry.password.hash.method=SHA +default.registry.gateway=default + +#for xbaya +xbaya.registry.user=admin +xbaya.registry.url=http://localhost:8080/airavata/services/registry +xbaya.default.gateway=default + +trust.store=aiaravata.jks +trust.store.password=airavata + +#user defined registry accessor classes +#class.provenance.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.configuration.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.descriptor.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.project.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.user.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry +#class.published.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry + Added: airavata/trunk/samples/gateway-developer-guide/src/main/resources/gateway.properties URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/resources/gateway.properties?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/resources/gateway.properties (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/resources/gateway.properties Tue Jan 21 20:58:48 2014 @@ -0,0 +1,24 @@ +# +# +# 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. +# + +airavata.server.url=http://localhost:8080/airavata/services/registry +airavata.server.user=admin +airavata.server.password=admin +gateway.name=default Added: airavata/trunk/samples/gateway-developer-guide/src/main/resources/log4j.properties URL: http://svn.apache.org/viewvc/airavata/trunk/samples/gateway-developer-guide/src/main/resources/log4j.properties?rev=1560181&view=auto ============================================================================== --- airavata/trunk/samples/gateway-developer-guide/src/main/resources/log4j.properties (added) +++ airavata/trunk/samples/gateway-developer-guide/src/main/resources/log4j.properties Tue Jan 21 20:58:48 2014 @@ -0,0 +1,34 @@ +# +# 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. +# + +# Set root category priority to INFO and its only appender to CONSOLE. +log4j.rootCategory=INFO, CONSOLE,LOGFILE +log4j.rootLogger=INFO, CONSOLE, LOGFILE + + +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n + +# LOGFILE is set to be a File appender using a PatternLayout. +log4j.appender.LOGFILE=org.apache.log4j.FileAppender +log4j.appender.LOGFILE.File=./target/integration-tests.log +log4j.appender.LOGFILE.Append=true +log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout +log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n Modified: airavata/trunk/samples/pom.xml URL: http://svn.apache.org/viewvc/airavata/trunk/samples/pom.xml?rev=1560181&r1=1560180&r2=1560181&view=diff ============================================================================== --- airavata/trunk/samples/pom.xml (original) +++ airavata/trunk/samples/pom.xml Tue Jan 21 20:58:48 2014 @@ -8,7 +8,8 @@ ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> - + org.apache.airavata airavata @@ -35,6 +36,8 @@ sample-gateway airavata-client distribution + gateway-developer-guide +