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 DECE2E8B1 for ; Wed, 9 Jan 2013 01:52:37 +0000 (UTC) Received: (qmail 38892 invoked by uid 500); 9 Jan 2013 01:52:37 -0000 Delivered-To: apmail-airavata-commits-archive@airavata.apache.org Received: (qmail 38857 invoked by uid 500); 9 Jan 2013 01:52:37 -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 38850 invoked by uid 99); 9 Jan 2013 01:52:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jan 2013 01:52:37 +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; Wed, 09 Jan 2013 01:52:34 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B34DA23888FE; Wed, 9 Jan 2013 01:52:14 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1430653 - in /airavata/trunk/modules: airavata-client/src/main/java/org/apache/airavata/client/ airavata-client/src/main/java/org/apache/airavata/client/api/ commons/utils/src/main/java/org/apache/airavata/common/utils/ integration-tests/s... Date: Wed, 09 Jan 2013 01:52:14 -0000 To: commits@airavata.apache.org From: samindaw@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130109015214.B34DA23888FE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: samindaw Date: Wed Jan 9 01:52:13 2013 New Revision: 1430653 URL: http://svn.apache.org/viewvc?rev=1430653&view=rev Log: adding security settings - however not supported for 0.6 release Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java (with props) airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java (with props) airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java (with props) airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java (with props) airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java (with props) Modified: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataClient.java airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExperimentAdvanceOptions.java airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/XMLUtil.java airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java airavata/trunk/modules/integration-tests/src/test/resources/registry.properties airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java airavata/trunk/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java Modified: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataClient.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataClient.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataClient.java (original) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/AiravataClient.java Wed Jan 9 01:52:13 2013 @@ -78,12 +78,10 @@ public class AiravataClient extends Obse public static final String WORKFLOWSERVICEURL = "xbaya.service.url"; public static final String TRUSTED_CERT_LOCATION = "trusted.cert.location"; private AiravataClientConfiguration clientConfiguration; - private MonitorConfiguration monitorConfiguration; - private static String workflow = ""; private static WorkflowContextHeaderBuilder builder; private String currentUser; - private URI regitryURI; - private PasswordCallback callBack; + private URI regitryURI; + private PasswordCallback callBack; private AiravataRegistry2 registry; @@ -95,92 +93,24 @@ public class AiravataClient extends Obse private UserManagerImpl userManagerImpl; private ExecutionManagerImpl executionManagerImpl; private String gateway; - private boolean configCreated=false; - - // private NameValue[] configurations = new NameValue[7]; + private boolean configCreated = false; private static final Version API_VERSION = new Version("Airavata", 0, 6, null, null, null); -// -// @Deprecated -// protected AiravataClient(Map configuration) -// throws MalformedURLException { -// this.configuration = configuration; -// try { -// initialize(); -// } catch (AiravataConfigurationException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (RepositoryException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (RegistryException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } // FIXME: Need a constructor to set registry URL protected AiravataClient() { } -// @Deprecated -// protected AiravataClient(String fileName) throws RegistryException, -// MalformedURLException, IOException { -// URL url = this.getClass().getClassLoader().getResource(fileName); -// if (url == null) { -// url = (new File(fileName)).toURL(); -// } -// Properties properties = new Properties(); -// properties.load(url.openStream()); -// configuration.put(GFAC, -// validateAxisService(properties.getProperty(DEFAULT_GFAC_URL))); -// configuration.put(MSGBOX, validateAxisService(properties -// .getProperty(DEFAULT_MESSAGE_BOX_URL))); -// configuration -// .put(BROKER, validateAxisService(properties -// .getProperty(DEFAULT_BROKER_URL))); -// configuration -// .put(WORKFLOWSERVICEURL, validateAxisService(properties -// .getProperty(WORKFLOWSERVICEURL))); -// configuration.put(WITHLISTENER, properties.getProperty(WITHLISTENER)); -// -// try { -// initialize(); -// } catch (AiravataConfigurationException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (RepositoryException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } -// -// protected AiravataClient(URI registryUrl, String username, String password) -// throws MalformedURLException, RepositoryException, -// RegistryException, AiravataConfigurationException { -// Map configuration=createConfig(registryUrl, username, password); -// this.configuration = configuration; -// try { -// initialize(); -// } catch (AiravataConfigurationException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (RepositoryException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (RegistryException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } -// - private static HashMap createConfig(URI registryUrl,String username, String password) throws RepositoryException, RegistryException, AiravataConfigurationException { + private static HashMap createConfig(URI registryUrl, + String username, String password) throws RepositoryException, + RegistryException, AiravataConfigurationException { HashMap config = new HashMap(); - if (registryUrl!=null) { + if (registryUrl != null) { config.put(AiravataClient.REGISTRY, registryUrl.toString()); } - AiravataRegistry2 registryObject = getRegistry(registryUrl, "default", username, new PasswordCallBackImpl(username, password)); + AiravataRegistry2 registryObject = getRegistry(registryUrl, "default", + username, new PasswordCallBackImpl(username, password)); if (registryObject != null) { URI uri = registryObject.getEventingServiceURI(); config.put( @@ -205,30 +135,33 @@ public class AiravataClient extends Obse config.put(AiravataClient.WITHLISTENER, "true"); } return config; - } - - @Override + } + + @Override public void initialize() throws AiravataAPIInvocationException { try { - if (!configCreated){ - configuration=createConfig(getRegitryURI(), getCurrentUser(), getPassword()); - configCreated=true; + if (!configCreated) { + configuration = createConfig(getRegitryURI(), getCurrentUser(), + getPassword()); + configCreated = true; } updateClientConfiguration(configuration); // At this point we do not know the workflowExperimentId // FIXME: Registry URL is set null as its not used. Set this when we // have rest services - builder = new WorkflowContextHeaderBuilder(configuration.get(BROKER), - configuration.get(GFAC), null, null, null, - configuration.get(MSGBOX)); + builder = new WorkflowContextHeaderBuilder( + configuration.get(BROKER), configuration.get(GFAC), null, + null, null, configuration.get(MSGBOX)); - // TODO: At some point this should contain the current user the airavata + // TODO: At some point this should contain the current user the + // airavata // client is // logged in to the Airavata system setCurrentUser(getClientConfiguration().getJcrUsername()); } catch (Exception e) { - throw new AiravataAPIInvocationException("Error while initializing the Airavata API",e); + throw new AiravataAPIInvocationException( + "Error while initializing the Airavata API", e); } } @@ -246,9 +179,6 @@ public class AiravataClient extends Obse clientConfiguration.setMessagebrokerURL(new URL(configuration .get(BROKER))); } -// if (configuration.containsKey(REGISTRY)) { -// clientConfiguration.setRegistryURL(new URL(configuration.get(REGISTRY))); -// } if (configuration.get(WORKFLOWSERVICEURL) != null) { clientConfiguration.setXbayaServiceURL(new URL(configuration .get(WORKFLOWSERVICEURL))); @@ -261,8 +191,8 @@ public class AiravataClient extends Obse if (clientConfiguration.getRegistryURL() != null && clientConfiguration.getGfacURL() == null) { try { - clientConfiguration.setGfacURL(getRegistryClient().getGFacURIs() - .get(0).toURL()); + clientConfiguration.setGfacURL(getRegistryClient() + .getGFacURIs().get(0).toURL()); configuration.put(GFAC, clientConfiguration.getGfacURL() .toString()); } catch (Exception e) { @@ -271,287 +201,20 @@ public class AiravataClient extends Obse } } -// public void loadWorkflowFromaFile(String workflowFile) -// throws URISyntaxException, IOException { -// File workflow = null; -// URL url = AiravataClient.class.getClassLoader().getResource( -// workflowFile); -// if (url == null) { -// url = (new File(workflowFile)).toURL(); -// } -// try { -// workflow = new File(url.toURI()); -// } catch (URISyntaxException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } -// FileInputStream stream = new FileInputStream(workflow); -// try { -// FileChannel fc = stream.getChannel(); -// MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, -// fc.size()); -// /* Instead of using default, pass in a decoder. */ -// this.workflow = Charset.defaultCharset().decode(bb).toString(); -// } finally { -// stream.close(); -// } -// } -// -// public void loadWorkflowasaString(String workflowAsaString) { -// this.workflow = workflowAsaString; -// } - -// public static void updateWorkflowInputValuesFromProperties( -// List inputs, String fileName) throws IOException { -// URL url = AiravataClient.class.getClassLoader().getResource(fileName); -// if (url == null) { -// url = (new File(fileName)).toURL(); -// } -// Properties properties = new Properties(); -// properties.load(url.openStream()); -// for (WorkflowInput workflowInput : inputs) { -// if (properties.containsKey(workflowInput.getName())) { -// workflowInput.setValue(properties.get(workflowInput.getName())); -// } -// } -// } - -// public NameValue[] setInputs(String fileName) throws IOException { -// URL url = this.getClass().getClassLoader().getResource(fileName); -// if (url == null) { -// url = (new File(fileName)).toURL(); -// } -// Properties properties = new Properties(); -// properties.load(url.openStream()); -// try { -// Workflow workflow = new Workflow(this.workflow); -// List inputs = workflow.getGraph().getNodes(); -// int inputSize = 0; -// for (NodeImpl input : inputs) { -// if (input instanceof InputNode) { -// inputSize++; -// } -// } -// NameValue[] inputNameVals = new NameValue[inputSize]; -// int index = 0; -// for (NodeImpl input : inputs) { -// if (input instanceof InputNode) { -// inputNameVals[index] = new NameValue(); -// String name = input.getName(); -// inputNameVals[index].setName(name); -// inputNameVals[index].setValue(properties.getProperty(name)); -// ((InputNode) input).setDefaultValue(properties -// .getProperty(name)); -// index++; -// } -// } -// // setWorkflow(XMLUtil.xmlElementToString((workflow.toXML())); -// return inputNameVals; -// } catch (GraphException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } catch (ComponentException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } -// return null; -// } -// -// public void setInputs(Properties inputList) { -// try { -// Workflow workflow = new Workflow(this.workflow); -// List inputs = workflow.getInputs(); -// for (WSComponentPort input : inputs) { -// input.setValue(inputList.getProperty(input.getName())); -// } -// } catch (GraphException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } catch (ComponentException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } -// } -// -// public String runWorkflow(String topic) throws AiravataConfigurationException { -// return runWorkflow(topic, (String) null); -// } -// -// public String runWorkflow(String topic, String user) throws AiravataConfigurationException { -// return runWorkflow(topic, user, null, topic); -// } -// -// public String runWorkflow(String topic, String user, String metadata, -// String workflowInstanceName) throws AiravataConfigurationException { -// return runWorkflow(topic, user, metadata, workflowInstanceName, builder); -// } -// -// public String runWorkflow(String topic, String user, String metadata, -// String workflowInstanceName, WorkflowContextHeaderBuilder builder) throws AiravataConfigurationException { -// String worflowoutput = null; -// try { -// builder.setUserIdentifier(getCurrentUser()); -// WorkflowInterpretorStub stub = new WorkflowInterpretorStub( -// getClientConfiguration().getXbayaServiceURL().toString()); -// OMElement omElement = AXIOMUtil.stringToOM(XMLUtil -// .xmlElementToString(builder.getXml())); -// stub._getServiceClient().addHeader(omElement); -// worflowoutput = stub.launchWorkflow(workflow, topic, null); -// runPreWorkflowExecutionTasks(worflowoutput, user, metadata, -// workflowInstanceName); -// -// } catch (AxisFault e) { -// -// } catch (RemoteException e) { -// // log.fine(e.getMessage(), e); -// } catch (RegistryException e) { -// // log.fine(e.getMessage(), e); -// } catch (XMLStreamException e) { -// e.printStackTrace(); // To change body of catch statement use File | -// // Settings | File Templates. -// } -// // log.info("Workflow output : " + worflowoutput); -// return worflowoutput; -// } -// -// public Monitor getWorkflowExecutionMonitor(String topic) { -// return getWorkflowExecutionMonitor(topic, null); -// } -// -// public Monitor getWorkflowExecutionMonitor(String topic, -// MonitorEventListener listener) { -// final String fTopic = topic; -// MonitorConfiguration monitorConfiguration; -// try { -// monitorConfiguration = new MonitorConfiguration( -// getClientConfiguration().getMessagebrokerURL().toURI(), fTopic, -// true, getClientConfiguration().getMessageboxURL().toURI()); -// final Monitor monitor = new Monitor(monitorConfiguration); -// monitor.printRawMessage(false); -// monitor.getEventDataRepository().registerEventListener(listener); -// listener.setExperimentMonitor(monitor); -// return monitor; -// } catch (URISyntaxException e) { -// e.printStackTrace(); -// } -// -// } -// -// private void runPreWorkflowExecutionTasks(String topic, String user, -// String metadata, String experimentName) throws RegistryException, AiravataConfigurationException { -// if (user != null) { -// getRegistryClient().updateExperimentExecutionUser(topic, user); -// } -// if (metadata != null) { -// getRegistryClient().updateExperimentMetadata(topic, metadata); -// } -// if (experimentName == null) { -// experimentName = topic; -// } -// getRegistryClient().updateExperimentName(topic, experimentName); -// } -// -// public String runWorkflow(String topic, NameValue[] inputs) -// throws Exception { -// return runWorkflow(topic, inputs, null); -// } -// -// public String runWorkflow(String topic, NameValue[] inputs, String user) -// throws Exception { -// return runWorkflow(topic, inputs, user, null, topic); -// } -// -// public String runWorkflow(final String topic, final NameValue[] inputs, -// final String user, final String metadata, -// final String experimentName) throws Exception { -// return runWorkflow(topic, inputs, user, metadata, experimentName, -// builder); -// } -// -// public String runWorkflow(final String topic, final NameValue[] inputs, -// final String user, final String metadata, -// final String experimentName, -// final WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException, AiravataConfigurationException { -// return runWorkflow(topic, inputs, user, metadata, experimentName, -// builder, true); -// } -// -// private static int TIMEOUT_STEP = 1000; -// private static int MAX_TIMEOUT = 60000; -// -// public String runWorkflow(final String topic, final NameValue[] inputs, -// final String user, final String metadata, -// final String experimentName, -// final WorkflowContextHeaderBuilder builder, boolean launchOnThread) -// throws AiravataAPIInvocationException, AiravataConfigurationException { -// -// //TODO - fix user passing -// builder.setUserIdentifier(getCurrentUser()); -// try { -// runPreWorkflowExecutionTasks(topic, user, metadata, experimentName); -// } catch (RegistryException e) { -// throw new AiravataAPIInvocationException(e); -// } -// if (launchOnThread) { -// new Thread(new Runnable() { -// public void run() { -// launchWorkflow(topic, inputs, builder); -// } -// }).start(); -// int timeout = 0; -// try { -// while (!getRegistryClient().isExperimentExists(topic) -// && timeout < MAX_TIMEOUT) { -// Thread.sleep(TIMEOUT_STEP); -// timeout += MAX_TIMEOUT; -// } -// } catch (InterruptedException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (RegistryException e) { -// throw new AiravataAPIInvocationException(e); -// } -// } else { -// launchWorkflow(topic, inputs, builder); -// } -// return topic; -// } -// -// public List getWorkflowExecutionDataByUser(String user) -// throws RegistryException, AiravataConfigurationException { -// return getRegistryClient().getExperimentByUser(user); -// } -// -// public ExperimentData getWorkflowExecutionData(String topic) -// throws RegistryException, AiravataConfigurationException { -// return getRegistryClient().getExperiment(topic); -// } -// -// public List getWorkflowExecutionData(String user, -// int pageSize, int PageNo) throws RegistryException { -// return null; -//// return getProvenanceResouceClient().getExperimentByUser(user, pageSize, PageNo); -// } -// -// public static String getWorkflow() { -// return workflow; -// } -// -// public static void setWorkflow(String workflow) { -// AiravataClient.workflow = workflow; -// } - - public AiravataRegistry2 getRegistryClient() throws AiravataConfigurationException, RegistryException{ - if (registry==null) { - registry = getRegistry(getRegitryURI(), - getGateway(),getCurrentUser(), getCallBack()); - } - return registry; - } - - public static AiravataRegistry2 getRegistry(URI registryURI, String gateway, String username, PasswordCallback callback) throws RegistryException, AiravataConfigurationException { - return AiravataRegistryFactory.getRegistry(registryURI, - new Gateway(gateway), new AiravataUser( - username), callback); + public AiravataRegistry2 getRegistryClient() + throws AiravataConfigurationException, RegistryException { + if (registry == null) { + registry = getRegistry(getRegitryURI(), getGateway(), + getCurrentUser(), getCallBack()); + } + return registry; + } + + public static AiravataRegistry2 getRegistry(URI registryURI, + String gateway, String username, PasswordCallback callback) + throws RegistryException, AiravataConfigurationException { + return AiravataRegistryFactory.getRegistry(registryURI, new Gateway( + gateway), new AiravataUser(username), callback); } public AiravataClientConfiguration getClientConfiguration() { @@ -561,382 +224,6 @@ public class AiravataClient extends Obse return clientConfiguration; } -// private String validateAxisService(String urlString) -// throws RegistryException { -// String originalURL = urlString; -// if (!urlString.endsWith("?wsdl")) { -// urlString = urlString + "?wsdl"; -// } -// try { -// URL url = new URL(urlString); -// URLConnection conn = url.openConnection(); -// conn.connect(); -// } catch (MalformedURLException e) { -// // the URL is not in a valid form -// throw new RegistryException("Given Axis2 Service URL : " -// + urlString + " is Invalid", e); -// } catch (IOException e) { -// // the connection couldn't be established -// throw new RegistryException("Given Axis2 Service URL : " -// + urlString + " is Invalid", e); -// } -// return originalURL; -// } -// -// private String validateURL(String urlString) throws RegistryException { -// try { -// URL url = new URL(urlString); -// URLConnection conn = url.openConnection(); -// conn.connect(); -// } catch (MalformedURLException e) { -// // the URL is not in a valid form -// throw new RegistryException("Given URL: " + urlString -// + " is Invalid", e); -// } catch (IOException e) { -// // the connection couldn't be established -// throw new RegistryException("Given URL: " + urlString -// + " is Invalid", e); -// } -// return urlString; -// } -// -// public List getWorkflowTemplateIds() { -// List workflowList = new ArrayList(); -// Map workflows; -// try { -// workflows = getRegistryClient().getWorkflows(); -// for (String name : workflows.keySet()) { -// workflowList.add(name); -// } -// } catch (Exception e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// return workflowList; -// } - -// public String runWorkflow(String workflowTemplateId, -// List inputs) throws Exception { -// return runWorkflow(workflowTemplateId, inputs, getRegistryClient().getUser() -// .getUserName(), null, workflowTemplateId + "_" -// + Calendar.getInstance().getTime().toString()); -// } -// -// public String runWorkflow(String workflowTemplateId, -// List inputs, String workflowInstanceName) -// throws Exception { -// return runWorkflow(workflowTemplateId, inputs, getRegistryClient().getUser() -// .getUserName(), null, workflowInstanceName); -// } -// -// public String runWorkflow(String workflowTemplateId, -// List inputs, String user, String metadata, -// String workflowInstanceName) throws Exception { -// Workflow workflowObj = getWorkflow(workflowTemplateId); -// return runWorkflow(workflowObj, inputs, user, metadata, -// workflowInstanceName, builder); -// } - -// public String runWorkflow(String workflowTemplateId, -// List inputs, String user, String metadata, -// String workflowInstanceName, WorkflowContextHeaderBuilder builder) -// throws Exception { -// Workflow workflowObj = getWorkflowManager().getWorkflowFromString(workflowTemplateId); -//// Workflow workflowObj = extractWorkflow(workflowTemplateId); -// return runWorkflow(workflowObj, inputs, user, metadata, -// workflowInstanceName, builder); -// } - -// public String runWorkflow(Workflow workflow, List inputs, -// String workflowInstanceName) throws GraphException, -// ComponentException, Exception { -// return runWorkflow(workflow, inputs, null, null, workflowInstanceName, -// builder); -// } -// -// public String runWorkflow(Workflow workflowObj, List inputs, -// String user, String metadata, String workflowInstanceName) -// throws GraphException, ComponentException, Exception { -// return runWorkflow(workflowObj, inputs, user, metadata, -// workflowInstanceName, builder); -// } - -// public String runWorkflow(Workflow workflowObj, List inputs, -// String user, String metadata, String workflowInstanceName, -// WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException{ -// try { -// String workflowString = XMLUtil.xmlElementToString(workflowObj -// .toXML()); -// List ports = getWSComponentPortInputs(workflowObj); -// for (WorkflowInput input : inputs) { -// WSComponentPort port = getWSComponentPort(input.getName(), -// ports); -// if (port != null) { -// port.setValue(input.getValue()); -// } -// } -// List inputValues = new ArrayList(); -// for (WSComponentPort port : ports) { -// NameValue nameValue = new NameValue(); -// nameValue.setName(port.getName()); -// if (port.getValue() == null) { -// nameValue.setValue(port.getDefaultValue()); -// } else { -// nameValue.setValue(port.getValue().toString()); -// } -// inputValues.add(nameValue); -// } -// workflow = workflowString; -// String topic = workflowObj.getName() + "_" + UUID.randomUUID(); -// getRegistryClient().setWorkflowInstanceTemplateName(topic, -// workflowObj.getName()); -// return runWorkflow(topic, inputValues.toArray(new NameValue[] {}), -// user, metadata, workflowInstanceName, builder); -// } catch (GraphException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (ComponentException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (Exception e) { -// throw new AiravataAPIInvocationException(e); -// } -// } -// -//// public String runWorkflow(String workflowName, List inputs, -// String user, String metadata, String workflowInstanceName, -// String experimentID) throws AiravataAPIInvocationException { -// try { -// Workflow workflowObj = extractWorkflow(workflowName); -// String workflowString = XMLUtil.xmlElementToString(workflowObj -// .toXML()); -// List ports; -// ports = getWSComponentPortInputs(workflowObj); -// for (WorkflowInput input : inputs) { -// WSComponentPort port = getWSComponentPort(input.getName(), -// ports); -// if (port != null) { -// port.setValue(input.getValue()); -// } -// } -// List inputValues = new ArrayList(); -// for (WSComponentPort port : ports) { -// NameValue nameValue = new NameValue(); -// nameValue.setName(port.getName()); -// if (port.getValue() == null) { -// nameValue.setValue(port.getDefaultValue()); -// } else { -// nameValue.setValue(port.getValue().toString()); -// } -// inputValues.add(nameValue); -// } -// workflow = workflowString; -// if (experimentID == null || experimentID.isEmpty()) { -// experimentID = workflowObj.getName() + "_" + UUID.randomUUID(); -// } -// getRegistryClient().setWorkflowInstanceTemplateName(experimentID, -// workflowObj.getName()); -// return runWorkflow(experimentID, -// inputValues.toArray(new NameValue[] {}), user, metadata, -// workflowInstanceName, this.builder); -// } catch (GraphException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (ComponentException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (Exception e) { -// throw new AiravataAPIInvocationException( -// "Error working with Airavata Registry: " -// + e.getLocalizedMessage(), e); -// } -// } -// -// private Workflow extractWorkflow(String workflowName) throws AiravataAPIInvocationException { -// Workflow workflowObj = null; -// if(!workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName)) { -// workflowObj = getWorkflow(workflowName); -// }else { -// try{ -// workflowObj = getWorkflowManager().getWorkflowFromString(workflowName); -// }catch (AiravataAPIInvocationException e){ -// getWorkflowManager().getWorkflow(workflowName); -// } -// -// } -// return workflowObj; -// } -// -// public List getWorkflowInputs(String workflowTemplateId) -// throws AiravataAPIInvocationException { -// try { -// Workflow workflowTemplate = getWorkflow(workflowTemplateId); -// List inputs = getWSComponentPortInputs(workflowTemplate); -// List inputNodes = getInputNodes(workflowTemplate); -// List results = new ArrayList(); -// for (InputNode port : inputNodes) { -// Object value = null; -// WSComponentPort wsComponentPort = getWSComponentPort( -// port.getName(), inputs); -// if (wsComponentPort != null) { -// value = wsComponentPort.getValue(); -// } -// results.add(new WorkflowInput(port.getName(), port -// .getParameterType().getLocalPart(), port -// .getDefaultValue(), value, !port.isVisibility())); -// } -// return results; -// } catch (AiravataAPIInvocationException e) { -// throw e; -// }catch (Exception e) { -// throw new AiravataAPIInvocationException(e); -// } -// } -// -// public String getWorkflowAsString(String workflowTemplateId) -// throws AiravataAPIInvocationException { -// try { -// Map workflows = getRegistryClient().getWorkflows(); -// for (String name : workflows.keySet()) { -// if (name.equals(workflowTemplateId)) { -// return workflows.get(name); -// } -// } -// return null; -// } catch (Exception e) { -// throw new AiravataAPIInvocationException(e); -// } -// -// } -// -// private List getWSComponentPortInputs( -// String workflowTemplateId) throws AiravataAPIInvocationException{ -// Workflow workflow = getWorkflow(workflowTemplateId); -// try { -// return getWSComponentPortInputs(workflow); -// } catch (GraphException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (ComponentException e) { -// throw new AiravataAPIInvocationException(e); -// } -// } -// -// private Workflow getWorkflow(String workflowTemplateId) -// throws AiravataAPIInvocationException { -// try { -// Workflow workflow = new Workflow( -// getWorkflowAsString(workflowTemplateId)); -// return workflow; -// } catch (GraphException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (ComponentException e) { -// throw new AiravataAPIInvocationException(e); -// } -// -// } -// -// private List getWSComponentPortInputs(Workflow workflow) -// throws GraphException, ComponentException { -// workflow.createScript(); -// List inputs = workflow.getInputs(); -// return inputs; -// } -// -// private List getInputNodes(String workflowTemplateId) -// throws AiravataAPIInvocationException { -// Workflow workflow = getWorkflow(workflowTemplateId); -// return getInputNodes(workflow); -// } -// -// private List getInputNodes(Workflow workflow) { -// List inputNodes = GraphUtil.getInputNodes(workflow -// .getGraph()); -// return inputNodes; -// } -// -// private WSComponentPort getWSComponentPort(String name, -// List ports) { -// for (WSComponentPort port : ports) { -// if (port.getName().equals(name)) { -// return port; -// } -// } -// return null; -// } - - public static WorkflowContextHeaderBuilder getBuilder() { - return builder; - } -// -// private static void addNode(Node parentNode, Node childNode) -// throws RepositoryException { -// Node node; -// String childNodeName = childNode.getName(); -// if (!parentNode.hasNode(childNodeName)) { -// node = parentNode.addNode(childNodeName); -// } else { -// node = parentNode.getNode(childNodeName); -// } -// System.out.println(node.getPath()); -// PropertyIterator childProperties = childNode.getProperties(); -// while (childProperties.hasNext()) { -// Property childProperty = childProperties.nextProperty(); -// if (!(childProperty.getName().startsWith("jcr:") || childProperty -// .getName().startsWith("rep:"))) { -// if (childProperty.isMultiple()) { -// node.setProperty(childProperty.getName(), -// childProperty.getValues()); -// } else { -// node.setProperty(childProperty.getName(), -// childProperty.getValue()); -// } -// -// } -// } -// NodeIterator children = childNode.getNodes(); -// while (children.hasNext()) { -// Node c = children.nextNode(); -// addNode(node, c); -// } -// } - - // private static void migrateRespositoryData( - // AiravataJCRRegistry sourceRegistry, - // AiravataJCRRegistry targetRegistry) throws Exception { - // Session session1 = null; - // Session session2 = null; - // try { - // session1 = sourceRegistry.getRepository().login(new - // SimpleCredentials(sourceRegistry.getUsername(), new - // String(sourceRegistry.getPassword()).toCharArray())); - // session2 = targetRegistry.getRepository().login(new - // SimpleCredentials(targetRegistry.getUsername(), new - // String(targetRegistry.getPassword()).toCharArray())); - // } catch (Exception e) { - // // TODO Auto-generated catch block - // e.printStackTrace(); - // throw e; - // } - // - // - // NodeIterator nodes = session1.getRootNode().getNodes(); - // Node rootNode = session2.getRootNode(); - // List ignoreRoots=Arrays.asList(new - // String[]{"/AIRAVATA_CONFIGURATION_DATA"}); - // while(nodes.hasNext()){ - // Node nextNode = nodes.nextNode(); - // String path = nextNode.getPath(); - // if (!(path.equals("/jcr:system")||path.equals("/rep:policy") || - // ignoreRoots.contains(path))) { - // addNode(rootNode,nextNode); - // System.out.println(); - // } - // } - // System.out.print("Saving session."); - // session1.logout(); - // System.out.print("."); - // session2.save(); - // System.out.print("."); - // session2.logout(); - // System.out.println(".done"); - // } - public AiravataManager getAiravataManager() { if (airavataManagerImpl == null) { airavataManagerImpl = new AiravataManagerImpl(this); @@ -982,77 +269,43 @@ public class AiravataClient extends Obse public String getCurrentUser() { return currentUser; } -// -// public List getWorkflowServiceNodeIDs(String templateID) throws AiravataAPIInvocationException { -// try { -// Workflow workflow = new Workflow(getWorkflowAsString(templateID)); -// return workflow.getWorkflowServiceNodeIDs(); -// } catch (GraphException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (ComponentException e) { -// throw new AiravataAPIInvocationException(e); -// } catch (AiravataAPIInvocationException e) { -// throw e; -// } -// } public Version getVersion() { return API_VERSION; } - @Override - public DescriptorBuilder getDescriptorBuilder() { - return new DescriptorBuilder(); - } + @Override + public DescriptorBuilder getDescriptorBuilder() { + return new DescriptorBuilder(); + } - public void setCurrentUser(String currentUser) { + public void setCurrentUser(String currentUser) { this.currentUser = currentUser; } -// -// private void launchWorkflow(final String topic, final NameValue[] inputs, -// final WorkflowContextHeaderBuilder builder) { -// try { -// builder.getWorkflowMonitoringContext().setExperimentId(topic); -// WorkflowInterpretorStub stub = new WorkflowInterpretorStub( -// getClientConfiguration().getXbayaServiceURL().toString()); -// stub._getServiceClient().addHeader( -// AXIOMUtil.stringToOM(XMLUtil.xmlElementToString(builder -// .getXml()))); -// stub.launchWorkflow(workflow, topic, inputs); -// // log.info("Workflow output : " + worflowoutput); -// } catch (AxisFault e) { -// e.printStackTrace(); -// } catch (XMLStreamException e) { -// e.printStackTrace(); -// } catch (RemoteException e) { -// e.printStackTrace(); -// } -// } - - public void setRegitryURI(URI regitryURI) { - this.regitryURI = regitryURI; - } - - public String getPassword() { - if(getCallBack() != null){ - return getCallBack().getPassword(getCurrentUser()); - } - return null; - - } - - public URI getRegitryURI() { - return regitryURI; - } - - public PasswordCallback getCallBack() { - return callBack; - } - - public void setCallBack(PasswordCallback callBack) { - this.callBack = callBack; - } - + + public void setRegitryURI(URI regitryURI) { + this.regitryURI = regitryURI; + } + + public String getPassword() { + if (getCallBack() != null) { + return getCallBack().getPassword(getCurrentUser()); + } + return null; + + } + + public URI getRegitryURI() { + return regitryURI; + } + + public PasswordCallback getCallBack() { + return callBack; + } + + public void setCallBack(PasswordCallback callBack) { + this.callBack = callBack; + } public String getGateway() { return gateway; Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java?rev=1430653&view=auto ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java (added) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java Wed Jan 9 01:52:13 2013 @@ -0,0 +1,38 @@ +/* + * + * 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.client.api; + +public interface AmazonWebServicesSettings { + public String getAccessKeyId(); + public String getAMIId(); + public String getInstanceId(); + public String getInstanceType(); + public String getSecretAccessKey(); + public String getUsername(); + + public void setAccessKeyId(String accessKeyId); + public void setAMIId(String amiId); + public void setInstanceId(String instanceId); + public void setInstanceType(String instanceType); + public void setSecretAccessKey(String secretAccessKey); + public void setUsername(String username); +} Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/AmazonWebServicesSettings.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java?rev=1430653&view=auto ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java (added) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java Wed Jan 9 01:52:13 2013 @@ -0,0 +1,33 @@ +/* + * + * 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.client.api; + +public interface CredentialManagementServiceSettings { + public String getExecutionSessionId(); + public String getScmsURL(); + + public void setExecutionSessionId(String executionSessionId); + public void setScmsURL(String scmsURL); + + public void resetExecutionSessionId(); + public void resetScmsURL(); +} Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/CredentialManagementServiceSettings.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExperimentAdvanceOptions.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExperimentAdvanceOptions.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExperimentAdvanceOptions.java (original) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExperimentAdvanceOptions.java Wed Jan 9 01:52:13 2013 @@ -26,6 +26,8 @@ import java.util.UUID; import org.apache.airavata.client.impl.WorkflowOutputDataSettingsImpl; import org.apache.airavata.client.impl.WorkflowSchedulingSettingsImpl; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + public class ExperimentAdvanceOptions { private String executionUser; @@ -143,4 +145,13 @@ public class ExperimentAdvanceOptions { } return outputDataSettings; } + + /** + * Get the custom security settings for running the experiment + * @return + * @throws AiravataAPIInvocationException + */ + public SecuritySettings getCustomSecuritySettings() throws AiravataAPIInvocationException{ + throw new AiravataAPIInvocationException(new NotImplementedException()); + } } Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java?rev=1430653&view=auto ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java (added) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java Wed Jan 9 01:52:13 2013 @@ -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.client.api; + +public interface GridMyProxyRepositorySettings { + public String getUsername(); + public String getPassword(); + public String getMyProxyServer(); + public int getLifeTime(); + + public void setUsername(String username); + public void setPassword(String password); + public void setMyProxyServer(String myproxyServer); + public void setLifeTime(int lifeTime); + + public void resetUsername(); + public void resetPassword(); + public void resetMyProxyServer(); + public void resetLifeTime(); +} Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/GridMyProxyRepositorySettings.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java?rev=1430653&view=auto ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java (added) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java Wed Jan 9 01:52:13 2013 @@ -0,0 +1,30 @@ +/* + * + * 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.client.api; + +public interface SSHAuthenticationSettings { + public String getAccessKeyId(); + public String getSecretAccessKey(); + + public void setAccessKeyId(String accessKeyId); + public void setSecretAccessKey(String secretAccessKey); +} Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SSHAuthenticationSettings.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java?rev=1430653&view=auto ============================================================================== --- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java (added) +++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java Wed Jan 9 01:52:13 2013 @@ -0,0 +1,29 @@ +/* + * + * 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.client.api; + +public interface SecuritySettings { + public AmazonWebServicesSettings getAmazonWSSettings(); + public CredentialManagementServiceSettings getCMServiceSettings(); + public GridMyProxyRepositorySettings getGridMyProxyRepositorySettings(); + public SSHAuthenticationSettings getSSHAuthenticationSettings(); +} Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/SecuritySettings.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/XMLUtil.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/XMLUtil.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/XMLUtil.java (original) +++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/XMLUtil.java Wed Jan 9 01:52:13 2013 @@ -22,6 +22,7 @@ package org.apache.airavata.common.utils; import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; @@ -43,7 +44,9 @@ import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlOptions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.w3c.dom.*; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; import org.xml.sax.SAXException; import org.xmlpull.infoset.XmlDocument; import org.xmlpull.infoset.XmlElement; @@ -283,11 +286,20 @@ public class XMLUtil { * @return The XmlElement in the document. * @throws IOException */ - public static org.xmlpull.infoset.XmlElement loadXML(File file) throws IOException { - String xmlText = IOUtil.readFileToString(file); + public static org.xmlpull.infoset.XmlElement loadXML(InputStream stream) throws IOException { + String xmlText = IOUtil.readToString(stream); XmlDocument document = BUILDER.parseString(xmlText); return document.getDocumentElement(); } + + /** + * @param file + * @return The XmlElement in the document. + * @throws IOException + */ + public static org.xmlpull.infoset.XmlElement loadXML(File file) throws IOException { + return loadXML(new FileInputStream(file)); + } /** * @param string Modified: airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java (original) +++ airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/BaseCaseIT.java Wed Jan 9 01:52:13 2013 @@ -22,15 +22,23 @@ import org.apache.airavata.commons.gfac. 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.schemas.gfac.*; +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.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.Workflow; import org.apache.airavata.workflow.model.wf.WorkflowInput; +import org.apache.airavata.ws.monitor.EventData; +import org.apache.airavata.ws.monitor.EventDataListenerAdapter; +import org.apache.airavata.ws.monitor.EventDataRepository; import org.apache.airavata.ws.monitor.Monitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -359,7 +367,7 @@ public class BaseCaseIT { log("Workflow setting up completed ..."); try { - runWorkFlow(workflow, Arrays.asList("echo_output=Airavata Test")); + runWorkFlowWithoutMonitor(workflow, Arrays.asList("echo_output=Airavata_Test")); } catch (Exception e) { log.error("An error occurred while invoking workflow", e); } @@ -369,16 +377,8 @@ public class BaseCaseIT { AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(new URI(getRegistryURL()), getGatewayName(), getUserName(), new PasswordCallbackImpl()); + List workflowInputs = setupInputs(workflow, inputValues); String workflowName = workflow.getName(); - List workflowInputs = airavataAPI.getWorkflowManager().getWorkflowInputs(workflowName); - - Assert.assertEquals(workflowInputs.size(), inputValues.size()); - - int i = 0; - for (String valueString : inputValues) { - workflowInputs.get(i).setValue(valueString); - ++i; - } ExperimentAdvanceOptions options = airavataAPI.getExecutionManager().createExperimentAdvanceOptions(workflowName,getUserName(),null); String experimentId = airavataAPI.getExecutionManager().runExperiment(workflowName, workflowInputs, options); @@ -388,11 +388,69 @@ public class BaseCaseIT { log.info("Starting monitoring ...."); monitor(experimentId); + } + + protected void runWorkFlowWithoutMonitor(Workflow workflow, List inputValues) throws Exception { + + AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(new URI(getRegistryURL()), getGatewayName(), + getUserName(), new PasswordCallbackImpl()); + List workflowInputs = setupInputs(workflow, inputValues); + String workflowName = workflow.getName(); + ExperimentAdvanceOptions options = airavataAPI.getExecutionManager().createExperimentAdvanceOptions(workflowName,getUserName(),null); + String experimentId = airavataAPI.getExecutionManager().runExperiment(workflowName, workflowInputs, options, new EventDataListenerAdapter() { + @Override + public void notify(EventDataRepository eventDataRepo, EventData eventData) { + //do nothing + } + }); + + Assert.assertNotNull(experimentId); + airavataAPI.getExecutionManager().waitForExperimentTermination(experimentId); + + log.info("Run workflow completed ...."); + log.info("Starting monitoring ...."); + verifyOutput(experimentId, "echo_output=Airavata_Test"); } - protected String getWorkflowComposeContent(String fileName) throws IOException { + protected void verifyOutput(String experimentId, String outputVerifyingString) throws Exception { + AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(new URI(getRegistryURL()), getGatewayName(), + getUserName(), new PasswordCallbackImpl()); + log.info("Workflow Experiment ID Returned : " + experimentId); + + ExperimentData experimentData = airavataAPI.getProvenanceManager().getExperimentData(experimentId); + + log.info("Verifying output ..."); + + List workflowInstanceData = experimentData.getWorkflowExecutionDataList(); + + for(WorkflowExecutionDataImpl data:workflowInstanceData){ + List nodeDataList = data.getNodeDataList(); + for(NodeExecutionData nodeData:nodeDataList){ + System.out.print("******************************"); + System.out.println(nodeData.getOutputData().get(0).getValue()); + Assert.assertEquals("Airavata_Test", nodeData.getOutputData().get(0).getValue()); + Assert.assertEquals(outputVerifyingString, nodeData.getInputData().get(0).getValue()); + } + } + } + + private 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; + } + + protected String getWorkflowComposeContent(String fileName) throws IOException { File f = new File("."); log.info(f.getAbsolutePath()); Modified: airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java (original) +++ airavata/trunk/modules/integration-tests/src/test/java/org/apache/airavata/integration/TestMonitorListener.java Wed Jan 9 01:52:13 2013 @@ -39,7 +39,7 @@ public class TestMonitorListener impleme Assert.assertNotNull(event); if (MonitorUtil.EventType.WORKFLOW_TERMINATED.equals(event.getType())) { try { - verifyOutput("echo_output=Airavata Test"); + verifyOutput("echo_output=Airavata_Test"); } catch (Exception e) { log.error("Error verifying output", e); throw new RuntimeException(e); @@ -65,7 +65,7 @@ public class TestMonitorListener impleme for(WorkflowExecutionDataImpl data:workflowInstanceData){ List nodeDataList = data.getNodeDataList(); for(NodeExecutionData nodeData:nodeDataList){ - Assert.assertEquals("Airavata Test", nodeData.getOutputData().get(0).getValue()); + Assert.assertEquals("Airavata_Test", nodeData.getOutputData().get(0).getValue()); Assert.assertEquals(outputVerifyingString, nodeData.getInputData().get(0).getValue()); } } Modified: airavata/trunk/modules/integration-tests/src/test/resources/registry.properties URL: http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/src/test/resources/registry.properties?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/integration-tests/src/test/resources/registry.properties (original) +++ airavata/trunk/modules/integration-tests/src/test/resources/registry.properties Wed Jan 9 01:52:13 2013 @@ -53,11 +53,3 @@ default.registry.gateway=default #for rest [RegistryClient] #registry.jdbc.url=http://localhost:9080/airavata-services -#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 - Modified: airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java (original) +++ airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java Wed Jan 9 01:52:13 2013 @@ -21,7 +21,6 @@ package org.apache.airavata.registry.api.util; -import java.io.File; import java.net.URL; import java.util.Properties; @@ -40,17 +39,15 @@ public class RegistrySettings { private static final String REGISTRY_ACCESSOR_CLASS = "class.registry.accessor"; static{ - String propertyFileName = REPOSITORY_PROPERTIES; - if (RegistrySettings.class.getClassLoader() - .getResource(propertyFileName) == null) { + URL url = RegistrySettings.class.getClassLoader() + .getResource(REPOSITORY_PROPERTIES); + if (url == null) { if (AiravataUtils.isServer()){ - propertyFileName=SERVER_REPOSITORY_PROPERTIES; + url=RegistrySettings.class.getClassLoader().getResource(SERVER_REPOSITORY_PROPERTIES); }else{ - propertyFileName=CLIENT_REPOSITORY_PROPERTIES; + url=RegistrySettings.class.getClassLoader().getResource(CLIENT_REPOSITORY_PROPERTIES); } } - URL url = RegistrySettings.class.getClassLoader() - .getResource(propertyFileName); try { properties.load(url.openStream()); } catch (Exception e) { Modified: airavata/trunk/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java URL: http://svn.apache.org/viewvc/airavata/trunk/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java?rev=1430653&r1=1430652&r2=1430653&view=diff ============================================================================== --- airavata/trunk/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java (original) +++ airavata/trunk/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java Wed Jan 9 01:52:13 2013 @@ -24,7 +24,6 @@ package org.apache.airavata.workflow.mod import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -145,8 +144,6 @@ public class Workflow implements Cloneab private XmlElement odeDeploymentDiscriptor; - private QName qname; - private volatile WorkflowExecutionState executionState = WorkflowExecutionState.NONE; private WsdlDefinitions tridentWSDL; @@ -190,8 +187,7 @@ public class Workflow implements Cloneab public Workflow(URI workflowFilePath) throws GraphException, ComponentException { this(); try { - File filePath = new File(workflowFilePath); - XmlElement workflowElement = XMLUtil.loadXML(filePath); + XmlElement workflowElement = XMLUtil.loadXML(workflowFilePath.toURL().openStream()); parse(workflowElement); } catch (RuntimeException e) { throw new GraphException(e); @@ -853,11 +849,6 @@ public class Workflow implements Cloneab private void generateODEScripts(URI dscUrl, String odeEprEndingWithPort) throws GraphException, ComponentException { this.getGraph().setID(this.getName()); - // find whether its Streaming - List nodes = this.graph.getNodes(); - Node activeNode = null; - String operationName = null; - BPELScript script = null; script = new BPELScript(this); @@ -910,7 +901,7 @@ public class Workflow implements Cloneab */ public QName getQname() { - return this.qname = new QName(WorkflowConstants.LEAD_NS, this.getName()); + return new QName(WorkflowConstants.LEAD_NS, this.getName()); }