You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/01/14 15:42:34 UTC
svn commit: r1558053 - in /airavata/trunk/modules:
orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/
orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/
orchestrator/orchestrator-co...
Author: lahiru
Date: Tue Jan 14 14:42:33 2014
New Revision: 1558053
URL: http://svn.apache.org/r1558053
Log:
adding test case for orchestrator-core.
Added:
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/util/
airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql
Modified:
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/PullBasedOrchestrator.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/EmbeddedGFACJobSubmitter.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/job/JobSubmitter.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
airavata/trunk/modules/orchestrator/orchestrator-core/src/main/resources/orchestrator.properties
airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/PullBasedOrchestratorTest.java
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/AbstractResourceTest.java
airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/util/Initialize.java
airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/OrchestratorRegistry.java
airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java Tue Jan 14 14:42:33 2014
@@ -52,7 +52,7 @@ public class HangedJobWorker implements
submitInterval = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterInterval();
Class<? extends JobSubmitter> aClass = Class.forName(submitterClass.trim()).asSubclass(JobSubmitter.class);
jobSubmitter = aClass.newInstance();
- jobSubmitter.initialize(this.orchestratorContext.getRegistry());
+ jobSubmitter.initialize(this.orchestratorContext);
} catch (ClassNotFoundException e) {
logger.error("Error while loading Job Submitter");
} catch (InstantiationException e) {
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java Tue Jan 14 14:42:33 2014
@@ -20,6 +20,7 @@
*/
package org.apache.airavata.orchestrator.core;
+import org.apache.airavata.gfac.provider.GFacProvider;
import org.apache.airavata.orchestrator.core.context.OrchestratorContext;
import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
import org.apache.airavata.orchestrator.core.gfac.GFACInstance;
@@ -52,7 +53,7 @@ public class NewJobWorker implements Run
submitInterval = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterInterval();
Class<? extends JobSubmitter> aClass = Class.forName(submitterClass.trim()).asSubclass(JobSubmitter.class);
jobSubmitter = aClass.newInstance();
- jobSubmitter.initialize(this.orchestratorContext.getRegistry());
+ jobSubmitter.initialize(this.orchestratorContext);
} catch (ClassNotFoundException e) {
logger.error("Error while loading Job Submitter");
} catch (InstantiationException e) {
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/PullBasedOrchestrator.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/PullBasedOrchestrator.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/PullBasedOrchestrator.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/PullBasedOrchestrator.java Tue Jan 14 14:42:33 2014
@@ -112,11 +112,11 @@ public class PullBasedOrchestrator imple
public String createExperiment(ExperimentRequest request) throws OrchestratorException {
//todo use a consistent method to create the experiment ID
- String experimentID = request.getUserExperimentID();
+ String experimentID = request.getUserExperimentID();
String orchestratorID = UUID.randomUUID().toString();
String username = request.getUserName();
try {
- airavataRegistry.storeExperiment(username, experimentID, orchestratorID, AiravataJobState.State.CREATED);
+ airavataRegistry.storeExperiment(username, experimentID, orchestratorID);
} catch (RegistryException e) {
//todo put more meaningful error message
logger.error("Failed to create experiment for the request from " + request.getUserName());
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/EmbeddedGFACJobSubmitter.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/EmbeddedGFACJobSubmitter.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/EmbeddedGFACJobSubmitter.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/impl/EmbeddedGFACJobSubmitter.java Tue Jan 14 14:42:33 2014
@@ -20,20 +20,16 @@
*/
package org.apache.airavata.orchestrator.core.impl;
+
import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.AiravataJobState;
import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.common.utils.XMLUtil;
-import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
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.gfac.Constants;
import org.apache.airavata.gfac.GFacAPI;
import org.apache.airavata.gfac.GFacConfiguration;
-import org.apache.airavata.gfac.GFacException;
import org.apache.airavata.gfac.context.ApplicationContext;
import org.apache.airavata.gfac.context.JobExecutionContext;
import org.apache.airavata.gfac.context.MessageContext;
@@ -44,21 +40,10 @@ import org.apache.airavata.orchestrator.
import org.apache.airavata.orchestrator.core.utils.OrchestratorConstants;
import org.apache.airavata.registry.api.AiravataRegistry2;
import org.apache.airavata.registry.api.JobRequest;
-import org.apache.airavata.registry.api.exception.RegistryException;
-import org.apache.axiom.om.OMElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-import org.xmlpull.v1.builder.XmlElement;
-
-import xsul.wsif.impl.WSIFMessageElement;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.xpath.XPathExpressionException;
import java.io.File;
-import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -75,12 +60,9 @@ public class EmbeddedGFACJobSubmitter im
private OrchestratorContext orchestratorContext;
- public EmbeddedGFACJobSubmitter(OrchestratorContext orchestratorContext) {
- this.orchestratorContext = orchestratorContext;
- }
- public void initialize(AiravataRegistry2 registry2) {
- // since this is embedded mode we do not use gfacinstance information
+ public void initialize(OrchestratorContext orchestratorContext) {
+ this.orchestratorContext = orchestratorContext;
}
public GFACInstance selectGFACInstance() {
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/job/JobSubmitter.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/job/JobSubmitter.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/job/JobSubmitter.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/job/JobSubmitter.java Tue Jan 14 14:42:33 2014
@@ -22,6 +22,7 @@ package org.apache.airavata.orchestrator
import java.util.List;
+import org.apache.airavata.orchestrator.core.context.OrchestratorContext;
import org.apache.airavata.orchestrator.core.gfac.GFACInstance;
import org.apache.airavata.registry.api.AiravataRegistry2;
@@ -35,7 +36,7 @@ import org.apache.airavata.registry.api.
public interface JobSubmitter {
- void initialize(AiravataRegistry2 registry2);
+ void initialize(OrchestratorContext orchestratorContext);
/**
* This will return a single GFACInstance among multiple if available
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java Tue Jan 14 14:42:33 2014
@@ -49,8 +49,8 @@ public class OrchestratorUtils {
Properties orchestratorProps = new Properties();
orchestratorProps.load(resource.openStream());
orchestratorConfiguration.setSubmitterClass((String) orchestratorProps.get(OrchestratorConstants.JOB_SUBMITTER));
- orchestratorConfiguration.setSubmitterInterval((Integer) orchestratorProps.get(OrchestratorConstants.SUBMIT_INTERVAL));
- orchestratorConfiguration.setThreadPoolSize((Integer) orchestratorProps.get(OrchestratorConstants.THREAD_POOL_SIZE));
+ orchestratorConfiguration.setSubmitterInterval(Integer.parseInt((String)orchestratorProps.get(OrchestratorConstants.SUBMIT_INTERVAL)));
+ orchestratorConfiguration.setThreadPoolSize(Integer.parseInt((String)orchestratorProps.get(OrchestratorConstants.THREAD_POOL_SIZE)));
orchestratorConfiguration.setStartSubmitter(Boolean.valueOf(orchestratorProps.getProperty(OrchestratorConstants.START_SUBMITTER)));
orchestratorConfiguration.setEmbeddedMode(Boolean.valueOf(orchestratorProps.getProperty(OrchestratorConstants.EMBEDDED_MODE)));
return orchestratorConfiguration;
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/main/resources/orchestrator.properties
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/main/resources/orchestrator.properties?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/main/resources/orchestrator.properties (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/main/resources/orchestrator.properties Tue Jan 14 14:42:33 2014
@@ -2,4 +2,4 @@ job.submitter=org.apache.airavata.orches
submitter.interval=10000
threadpool.size=10
start.submitter=true
-embedded.mode=true
\ No newline at end of file
+embedded.mode=true
Added: 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=1558053&view=auto
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java (added)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/AbstractOrchestratorTest.java Tue Jan 14 14:42:33 2014
@@ -0,0 +1,71 @@
+/*
+ *
+ * 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.orchestrator.core;
+
+import junit.framework.TestCase;
+import org.apache.airavata.orchestrator.core.util.Initialize;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
+import org.apache.airavata.persistance.registry.jpa.model.OrchestratorData;
+import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
+import org.apache.airavata.persistance.registry.jpa.resources.OrchestratorDataResource;
+import org.apache.airavata.persistance.registry.jpa.resources.UserResource;
+import org.apache.airavata.persistance.registry.jpa.resources.WorkerResource;
+
+public class AbstractOrchestratorTest extends TestCase {
+
+ private GatewayResource gatewayResource;
+ private WorkerResource workerResource;
+ private UserResource userResource;
+ private OrchestratorDataResource orchestratorDataResource;
+ private Initialize initialize;
+
+ @Override
+ public void setUp() throws Exception {
+ initialize = new Initialize("data-derby.sql");
+ initialize.initializeDB();
+ gatewayResource = (GatewayResource) ResourceUtils.getGateway("default");
+ workerResource = (WorkerResource) ResourceUtils.getWorker(gatewayResource.getGatewayName(), "admin");
+ userResource = (UserResource) gatewayResource.create(ResourceType.USER);
+ orchestratorDataResource = (OrchestratorDataResource) gatewayResource.create(ResourceType.ORCHESTRATOR_DATA);
+ userResource.setUserName("admin");
+ userResource.setPassword("admin");
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ initialize.stopDerbyServer();
+ }
+
+ public GatewayResource getGatewayResource() {
+ return gatewayResource;
+ }
+
+ public WorkerResource getWorkerResource() {
+ return workerResource;
+ }
+
+ public UserResource getUserResource() {
+ return userResource;
+ }
+
+
+}
Modified: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/PullBasedOrchestratorTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/PullBasedOrchestratorTest.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/PullBasedOrchestratorTest.java (original)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/PullBasedOrchestratorTest.java Tue Jan 14 14:42:33 2014
@@ -36,13 +36,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.UUID;
-public class PullBasedOrchestratorTest {
+public class PullBasedOrchestratorTest extends AbstractOrchestratorTest{
private static final Logger log = LoggerFactory.getLogger(PullBasedOrchestratorTest.class);
private Orchestrator orchestrator;
@BeforeTest
public void setUp() throws Exception {
+ super.setUp();
orchestrator = new PullBasedOrchestrator();
orchestrator.initialize();
}
Added: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java?rev=1558053&view=auto
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java (added)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/util/Initialize.java Tue Jan 14 14:42:33 2014
@@ -0,0 +1,331 @@
+/*
+ *
+ * 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.orchestrator.core.util;
+
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
+import org.apache.airavata.persistance.registry.jpa.resources.UserResource;
+import org.apache.airavata.persistance.registry.jpa.resources.Utils;
+import org.apache.airavata.persistance.registry.jpa.resources.WorkerResource;
+import org.apache.airavata.registry.api.exception.RegistrySettingsException;
+import org.apache.airavata.registry.api.util.RegistrySettings;
+import org.apache.derby.drda.NetworkServerControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
+import java.sql.*;
+import java.util.StringTokenizer;
+
+public class Initialize {
+ private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
+ public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
+ public String scriptName = "data-derby.sql";
+ private NetworkServerControl server;
+ private static final String delimiter = ";";
+ public static final String PERSISTANT_DATA = "Configuration";
+
+ public Initialize(String scriptName) {
+ this.scriptName = scriptName;
+ }
+
+ public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
+ if (suffix.length() > buffer.length()) {
+ return false;
+ }
+ // this loop is done on purpose to avoid memory allocation performance
+ // problems on various JDKs
+ // StringBuffer.lastIndexOf() was introduced in jdk 1.4 and
+ // implementation is ok though does allocation/copying
+ // StringBuffer.toString().endsWith() does massive memory
+ // allocation/copying on JDK 1.5
+ // See http://issues.apache.org/bugzilla/show_bug.cgi?id=37169
+ int endIndex = suffix.length() - 1;
+ int bufferIndex = buffer.length() - 1;
+ while (endIndex >= 0) {
+ if (buffer.charAt(bufferIndex) != suffix.charAt(endIndex)) {
+ return false;
+ }
+ bufferIndex--;
+ endIndex--;
+ }
+ return true;
+ }
+
+ private static boolean isServerStarted(NetworkServerControl server, int ntries)
+ {
+ for (int i = 1; i <= ntries; i ++)
+ {
+ try {
+ Thread.sleep(500);
+ server.ping();
+ return true;
+ }
+ catch (Exception e) {
+ if (i == ntries)
+ return false;
+ }
+ }
+ return false;
+ }
+
+ public void initializeDB() {
+ String jdbcUrl = null;
+ String jdbcDriver = null;
+ String jdbcUser = null;
+ String jdbcPassword = null;
+ try{
+ jdbcDriver = RegistrySettings.getSetting("registry.jdbc.driver");
+ jdbcUrl = RegistrySettings.getSetting("registry.jdbc.url");
+ jdbcUser = RegistrySettings.getSetting("registry.jdbc.user");
+ jdbcPassword = RegistrySettings.getSetting("registry.jdbc.password");
+ jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
+ } catch (RegistrySettingsException e) {
+ logger.error("Unable to read properties" , e);
+ }
+
+
+ startDerbyInServerMode();
+ if(!isServerStarted(server, 20)){
+ throw new RuntimeException("Derby server cound not started within five seconds...");
+ }
+// startDerbyInEmbeddedMode();
+
+ Connection conn = null;
+ try {
+ Class.forName(Utils.getJDBCDriver()).newInstance();
+ conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
+ if (!isDatabaseStructureCreated(PERSISTANT_DATA, conn)) {
+ executeSQLScript(conn);
+ logger.info("New Database created for Registry");
+ } else {
+ logger.debug("Database already created for Registry!");
+ }
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Database failure", e);
+ } finally {
+ try {
+ if (conn != null){
+ if (!conn.getAutoCommit()) {
+ conn.commit();
+ }
+ conn.close();
+ }
+ } catch (SQLException e) {
+ logger.error(e.getMessage(), e);
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
+
+ try{
+ GatewayResource gatewayResource = new GatewayResource();
+ gatewayResource.setGatewayName(RegistrySettings.getSetting("default.registry.gateway"));
+ gatewayResource.setOwner(RegistrySettings.getSetting("default.registry.gateway"));
+ gatewayResource.save();
+
+ UserResource userResource = (UserResource) gatewayResource.create(ResourceType.USER);
+ userResource.setUserName(RegistrySettings.getSetting("default.registry.user"));
+ userResource.setPassword(RegistrySettings.getSetting("default.registry.password"));
+ userResource.save();
+
+ WorkerResource workerResource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
+ workerResource.setUser(userResource.getUserName());
+ workerResource.save();
+ } catch (RegistrySettingsException e) {
+ logger.error("Unable to read properties", e);
+ }
+ }
+
+ public static boolean isDatabaseStructureCreated(String tableName, Connection conn) {
+ try {
+ System.out.println("Running a query to test the database tables existence.");
+ // check whether the tables are already created with a query
+ Statement statement = null;
+ try {
+ statement = conn.createStatement();
+ ResultSet rs = statement.executeQuery("select * from " + tableName);
+ if (rs != null) {
+ rs.close();
+ }
+ } finally {
+ try {
+ if (statement != null) {
+ statement.close();
+ }
+ } catch (SQLException e) {
+ return false;
+ }
+ }
+ } catch (SQLException e) {
+ return false;
+ }
+
+ return true;
+ }
+
+ private void executeSQLScript(Connection conn) throws Exception {
+ StringBuffer sql = new StringBuffer();
+ BufferedReader reader = null;
+ try{
+
+ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
+ reader = new BufferedReader(new InputStreamReader(inputStream));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ line = line.trim();
+ if (line.startsWith("//")) {
+ continue;
+ }
+ if (line.startsWith("--")) {
+ continue;
+ }
+ StringTokenizer st = new StringTokenizer(line);
+ if (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ if ("REM".equalsIgnoreCase(token)) {
+ continue;
+ }
+ }
+ sql.append(" ").append(line);
+
+ // SQL defines "--" as a comment to EOL
+ // and in Oracle it may contain a hint
+ // so we cannot just remove it, instead we must end it
+ if (line.indexOf("--") >= 0) {
+ sql.append("\n");
+ }
+ if ((checkStringBufferEndsWith(sql, delimiter))) {
+ executeSQL(sql.substring(0, sql.length() - delimiter.length()), conn);
+ sql.replace(0, sql.length(), "");
+ }
+ }
+ // Catch any statements not followed by ;
+ if (sql.length() > 0) {
+ executeSQL(sql.toString(), conn);
+ }
+ }catch (IOException e){
+ logger.error("Error occurred while executing SQL script for creating Airavata database", e);
+ throw new Exception("Error occurred while executing SQL script for creating Airavata database", e);
+ }finally {
+ if (reader != null) {
+ reader.close();
+ }
+
+ }
+
+ }
+
+ private static void executeSQL(String sql, Connection conn) throws Exception {
+ // Check and ignore empty statements
+ if ("".equals(sql.trim())) {
+ return;
+ }
+
+ Statement statement = null;
+ try {
+ logger.debug("SQL : " + sql);
+
+ boolean ret;
+ int updateCount = 0, updateCountTotal = 0;
+ statement = conn.createStatement();
+ ret = statement.execute(sql);
+ updateCount = statement.getUpdateCount();
+ do {
+ if (!ret) {
+ if (updateCount != -1) {
+ updateCountTotal += updateCount;
+ }
+ }
+ ret = statement.getMoreResults();
+ if (ret) {
+ updateCount = statement.getUpdateCount();
+ }
+ } while (ret);
+
+ logger.debug(sql + " : " + updateCountTotal + " rows affected");
+
+ SQLWarning warning = conn.getWarnings();
+ while (warning != null) {
+ logger.warn(warning + " sql warning");
+ warning = warning.getNextWarning();
+ }
+ conn.clearWarnings();
+ } catch (SQLException e) {
+ if (e.getSQLState().equals("X0Y32")) {
+ // eliminating the table already exception for the derby
+ // database
+ logger.info("Table Already Exists", e);
+ } else {
+ throw new Exception("Error occurred while executing : " + sql, e);
+ }
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ logger.error("Error occurred while closing result set.", e);
+ }
+ }
+ }
+ }
+
+ private void startDerbyInServerMode() {
+ try {
+ System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
+ server = new NetworkServerControl(InetAddress.getByName(Utils.getHost()),
+ 20000,
+ Utils.getJDBCUser(), Utils.getJDBCPassword());
+ java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
+ server.start(consoleWriter);
+ } catch (IOException e) {
+ logger.error("Unable to start Apache derby in the server mode! Check whether " +
+ "specified port is available");
+ } catch (Exception e) {
+ logger.error("Unable to start Apache derby in the server mode! Check whether " +
+ "specified port is available");
+ }
+
+ }
+
+ private void startDerbyInEmbeddedMode(){
+ try {
+ Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
+ DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void stopDerbyServer() {
+ try {
+ server.shutdown();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
Added: airavata/trunk/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql?rev=1558053&view=auto
==============================================================================
--- airavata/trunk/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql (added)
+++ airavata/trunk/modules/orchestrator/orchestrator-core/src/test/resources/data-derby.sql Tue Jan 14 14:42:33 2014
@@ -0,0 +1,278 @@
+/*
+ *
+ * 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.
+ *
+ */
+create table Gateway
+(
+ gateway_name varchar(255),
+ owner varchar(255),
+ PRIMARY KEY (gateway_name)
+);
+
+
+create table Configuration
+(
+ config_key varchar(255),
+ config_val varchar(255),
+ expire_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ category_id varchar (255),
+ PRIMARY KEY(config_key, config_val, category_id)
+);
+
+INSERT INTO CONFIGURATION (config_key, config_val, expire_date, category_id) VALUES('registry.version', '0.11', CURRENT_TIMESTAMP ,'SYSTEM');
+
+create table Users
+(
+ user_name varchar(255),
+ password varchar(255),
+ PRIMARY KEY(user_name)
+);
+
+create table Gateway_Worker
+(
+ gateway_name varchar(255),
+ user_name varchar(255),
+ PRIMARY KEY (gateway_name, user_name),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
+
+);
+
+create table Project
+(
+ gateway_name varchar(255),
+ user_name varchar(255),
+ project_name varchar(255),
+ PRIMARY KEY (project_name),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table Published_Workflow
+(
+ gateway_name varchar(255),
+ created_user varchar(255),
+ publish_workflow_name varchar(255),
+ version varchar(255),
+ published_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ path varchar (255),
+ workflow_content BLOB,
+ PRIMARY KEY(gateway_name, publish_workflow_name),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (created_user) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table User_Workflow
+
+(
+ gateway_name varchar(255),
+ owner varchar(255),
+ template_name varchar(255),
+ last_updated_date TIMESTAMP DEFAULT CURRENT TIMESTAMP,
+ path varchar (255),
+ workflow_graph BLOB,
+ PRIMARY KEY(gateway_name, owner, template_name),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (owner) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+
+create table Host_Descriptor
+(
+ gateway_name varchar(255),
+ updated_user varchar(255),
+ host_descriptor_ID varchar(255),
+ host_descriptor_xml BLOB,
+ PRIMARY KEY(gateway_name, host_descriptor_ID),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table Service_Descriptor
+(
+ gateway_name varchar(255),
+ updated_user varchar(255),
+ service_descriptor_ID varchar(255),
+ service_descriptor_xml BLOB,
+ PRIMARY KEY(gateway_name,service_descriptor_ID),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table Application_Descriptor
+(
+ gateway_name varchar(255),
+ updated_user varchar(255),
+ application_descriptor_ID varchar(255),
+ host_descriptor_ID varchar(255),
+ service_descriptor_ID varchar(255),
+ application_descriptor_xml BLOB,
+ PRIMARY KEY(gateway_name,application_descriptor_ID),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (updated_user) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table Experiment
+(
+ project_name varchar(255),
+ gateway_name varchar(255),
+ user_name varchar(255),
+ experiment_ID varchar(255),
+ submitted_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY(experiment_ID),
+ FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
+ FOREIGN KEY (project_name) REFERENCES Project(project_name) ON DELETE CASCADE,
+ FOREIGN KEY (user_name) REFERENCES Users(user_name) ON DELETE CASCADE
+);
+
+create table Experiment_Data
+(
+ experiment_ID varchar(255),
+ name varchar(255),
+ username varchar(255),
+ PRIMARY KEY (experiment_ID)
+);
+
+create table Experiment_Metadata
+(
+ experiment_ID varchar(255),
+ metadata BLOB,
+ PRIMARY KEY (experiment_ID)
+);
+
+
+create table Workflow_Data
+(
+ experiment_ID varchar(255),
+ workflow_instanceID varchar(255),
+ template_name varchar(255),
+ status varchar(255),
+ start_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ last_update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY(workflow_instanceID),
+ FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+
+create table Node_Data
+(
+ workflow_instanceID varchar(255),
+ node_id varchar(255),
+ node_type varchar(255),
+ inputs BLOB,
+ outputs BLOB,
+ status varchar(255),
+ start_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ last_update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ execution_index int NOT NULL,
+ PRIMARY KEY(workflow_instanceID, node_id, execution_index),
+ FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE
+);
+
+-- need to remove this in future
+create table Gram_Data
+(
+ workflow_instanceID varchar(255),
+ node_id varchar(255),
+ rsl BLOB,
+ invoked_host varchar(255),
+ local_Job_ID varchar(255),
+ PRIMARY KEY(workflow_instanceID, node_id),
+ FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE
+);
+
+create table GFac_Job_Data
+(
+ experiment_ID varchar(255),
+ workflow_instanceID varchar(255),
+ node_id varchar(255),
+ application_descriptor_ID varchar(255),
+ host_descriptor_ID varchar(255),
+ service_descriptor_ID varchar(255),
+ job_data CLOB,
+ local_Job_ID varchar(255),
+ submitted_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ status_update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ status varchar(255),
+ metadata CLOB,
+ PRIMARY KEY(local_Job_ID),
+ FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID),
+ FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID)
+);
+
+create table GFac_Job_Status
+(
+ local_Job_ID varchar(255),
+ status_update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+ status varchar(255),
+ FOREIGN KEY (local_Job_ID) REFERENCES GFac_Job_Data(local_Job_ID)
+);
+
+
+CREATE TABLE community_user
+(
+ GATEWAY_NAME VARCHAR(256) NOT NULL,
+ COMMUNITY_USER_NAME VARCHAR(256) NOT NULL,
+ TOKEN_ID VARCHAR(256) NOT NULL,
+ COMMUNITY_USER_EMAIL VARCHAR(256) NOT NULL,
+ PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME, TOKEN_ID)
+);
+
+
+CREATE TABLE credentials
+(
+ GATEWAY_ID VARCHAR(256) NOT NULL,
+ TOKEN_ID VARCHAR(256) NOT NULL,
+ CREDENTIAL BLOB NOT NULL,
+ PORTAL_USER_ID VARCHAR(256) NOT NULL,
+ TIME_PERSISTED TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (GATEWAY_ID, TOKEN_ID)
+);
+
+CREATE TABLE Execution_Error
+(
+ error_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ experiment_ID varchar(255),
+ workflow_instanceID varchar(255),
+ node_id varchar(255),
+ gfacJobID varchar(255),
+ source_type varchar(255),
+ error_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ error_msg CLOB,
+ error_des CLOB,
+ error_code varchar(255),
+ error_reporter varchar(255),
+ error_location varchar(255),
+ action_taken varchar(255),
+ error_reference INTEGER,
+ PRIMARY KEY(error_id),
+ FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
+ FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+
+create table Orchestrator_Data
+(
+ orchestrator_ID varchar(255),
+ experiment_ID varchar(255),
+ username varchar(255),
+ status varchar(255),
+ state varchar(255),
+ PRIMARY KEY (experiment_ID)
+);
+
+
Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java Tue Jan 14 14:42:33 2014
@@ -2581,12 +2581,12 @@ public class AiravataJPARegistry extends
return false; //To change body of implemented methods use File | Settings | File Templates.
}
- public boolean storeExperiment(String userName, String experimentID, String orchestratorID,AiravataJobState.State state) throws RegistryException {
+ public boolean storeExperiment(String userName, String experimentID, String orchestratorID) throws RegistryException {
GatewayResource gateway = jpa.getGateway();
OrchestratorDataResource dataResource = gateway.createOrchestratorData(orchestratorID);
dataResource.setUserName(userName);
dataResource.setExperimentID(experimentID);
- dataResource.setStatus(state.toString());
+ dataResource.setStatus(AiravataJobState.State.CREATED.toString());
dataResource.save();
return true;
}
Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/AbstractResourceTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/AbstractResourceTest.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/AbstractResourceTest.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/AbstractResourceTest.java Tue Jan 14 14:42:33 2014
@@ -36,7 +36,7 @@ public abstract class AbstractResourceTe
private Initialize initialize;
@Override
public void setUp() throws Exception {
- initialize = new Initialize();
+ initialize = new Initialize("data-derby.sql");
initialize.initializeDB();
gatewayResource = (GatewayResource)ResourceUtils.getGateway("default");
workerResource = (WorkerResource)ResourceUtils.getWorker(gatewayResource.getGatewayName(), "admin");
Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/util/Initialize.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/util/Initialize.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/util/Initialize.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/util/Initialize.java Tue Jan 14 14:42:33 2014
@@ -43,10 +43,15 @@ import java.util.StringTokenizer;
public class Initialize {
private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
+ public String scriptName = "data-derby.sql";
private NetworkServerControl server;
private static final String delimiter = ";";
public static final String PERSISTANT_DATA = "Configuration";
+ public Initialize(String scriptName) {
+ this.scriptName = scriptName;
+ }
+
public static boolean checkStringBufferEndsWith(StringBuffer buffer, String suffix) {
if (suffix.length() > buffer.length()) {
return false;
@@ -187,7 +192,7 @@ public class Initialize {
BufferedReader reader = null;
try{
- InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("data-derby.sql");
+ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(scriptName);
reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
Modified: airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/OrchestratorRegistry.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/OrchestratorRegistry.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/OrchestratorRegistry.java (original)
+++ airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/OrchestratorRegistry.java Tue Jan 14 14:42:33 2014
@@ -54,7 +54,7 @@ public interface OrchestratorRegistry ex
* @return
* @throws RegistryException
*/
- boolean storeExperiment(String userName,String experimentID, String orchestratorID, AiravataJobState.State state)throws RegistryException;
+ boolean storeExperiment(String userName,String experimentID, String orchestratorID)throws RegistryException;
/**
* This can be used to change the status to any valid status
Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java?rev=1558053&r1=1558052&r2=1558053&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java Tue Jan 14 14:42:33 2014
@@ -1057,7 +1057,7 @@ public class RegistryClient extends Aira
@Override
public boolean storeExperiment(String userName, String experimentID,
- String orchestratorID, State state) throws RegistryException {
+ String orchestratorID) throws RegistryException {
// TODO Auto-generated method stub
return false;
}