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 2012/10/04 18:50:43 UTC

svn commit: r1394155 - in /airavata/trunk/modules: distribution/src/main/resources/conf/ registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ registry/airavata-registry-service/ registry/airavata-registry...

Author: lahiru
Date: Thu Oct  4 16:50:42 2012
New Revision: 1394155

URL: http://svn.apache.org/viewvc?rev=1394155&view=rev
Log:
applying AIRAVATA-591.patch and some other improvements

Added:
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java
Modified:
    airavata/trunk/modules/distribution/src/main/resources/conf/repository.properties
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
    airavata/trunk/modules/registry/airavata-registry-service/pom.xml
    airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/RegistryService.java
    airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/ConnectionPool.java
    airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/JdbcStorage.java
    airavata/trunk/modules/xbaya-gui/src/main/resources/repository.properties

Modified: airavata/trunk/modules/distribution/src/main/resources/conf/repository.properties
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/distribution/src/main/resources/conf/repository.properties?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/distribution/src/main/resources/conf/repository.properties (original)
+++ airavata/trunk/modules/distribution/src/main/resources/conf/repository.properties Thu Oct  4 16:50:42 2012
@@ -84,10 +84,10 @@ registry.jdbc.user=airavata
 registry.jdbc.password=airavata
 
 #for mysql
-registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
-registry.jdbc.driver=com.mysql.jdbc.Driver
+#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
+#registry.jdbc.driver=com.mysql.jdbc.Driver
 
 #for derby database
-#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-#registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata
+registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata
 

Added: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java?rev=1394155&view=auto
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java (added)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java Thu Oct  4 16:50:42 2012
@@ -0,0 +1,34 @@
+package org.apache.airavata.persistance.registry.jpa.resources;
+
+
+import org.apache.airavata.registry.api.AiravataRegistryConnectionDataProvider;
+import org.apache.airavata.registry.api.AiravataUser;
+import org.apache.airavata.registry.api.Gateway;
+import org.apache.airavata.registry.api.exception.UnknownRegistryConnectionDataException;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+public class AiravataRegistryConnectionDataProviderImpl implements AiravataRegistryConnectionDataProvider {
+
+    public static Properties loadProperties(){
+        URL resource = Utils.class.getClassLoader().getResource("repository.properties");
+        Properties properties = new Properties();
+        try {
+            properties.load(resource.openStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return properties;
+    }
+
+
+    public void setIdentity(Gateway gateway, AiravataUser use) {
+    }
+
+
+    public Object getValue(String key) throws UnknownRegistryConnectionDataException {
+        return loadProperties().getProperty(key);
+    }
+}

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java Thu Oct  4 16:50:42 2012
@@ -260,7 +260,7 @@ public class ExperimentResource extends 
     		return (ExperimentDataResource) get(ResourceType.EXPERIMENT_DATA, getExpID());
     	}else{
     		ExperimentDataResource data = (ExperimentDataResource) create(ResourceType.EXPERIMENT_DATA);
-    		data.save();
+            data.save();
 			return data;
     	}
     }

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java Thu Oct  4 16:50:42 2012
@@ -72,7 +72,7 @@ public class ProjectResource extends Abs
             experimentResource.setWorker(getWorker());
             return experimentResource;
         } else {
-            return null;
+            throw new IllegalArgumentException("Unsupported resource type for project resource.");
         }
     }
 
@@ -103,9 +103,9 @@ public class ProjectResource extends Abs
      * @return child resource
      */
     public Resource get(ResourceType type, Object name) {
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
         if (type == ResourceType.EXPERIMENT) {
+            EntityManager em = ResourceUtils.getEntityManager();
+            em.getTransaction().begin();
         	QueryGenerator generator = new QueryGenerator(EXPERIMENT);
         	generator.setParameter(ExperimentConstants.PROJECT_NAME, name);
         	generator.setParameter(ExperimentConstants.USERNAME, getWorker().getUser());
@@ -117,8 +117,10 @@ public class ProjectResource extends Abs
             em.getTransaction().commit();
             em.close();
             return experimentResource;
+        }else{
+            throw new IllegalArgumentException("Unsupported resource type for project resource.");
         }
-        return null;
+
     }
 
     /**
@@ -154,9 +156,10 @@ public class ProjectResource extends Abs
      */
     public List<Resource> get(ResourceType type) {
         List<Resource> resourceList = new ArrayList<Resource>();
-        EntityManager em = ResourceUtils.getEntityManager();
-        em.getTransaction().begin();
+
         if (type == ResourceType.EXPERIMENT) {
+            EntityManager em = ResourceUtils.getEntityManager();
+            em.getTransaction().begin();
         	QueryGenerator generator = new QueryGenerator(EXPERIMENT);
         	generator.setParameter(ExperimentConstants.PROJECT_NAME, name);
         	Query q = generator.selectQuery(em);
@@ -169,9 +172,9 @@ public class ProjectResource extends Abs
                     resourceList.add(experimentResource);
                 }
             }
+            em.getTransaction().commit();
+            em.close();
         }
-        em.getTransaction().commit();
-        em.close();
         return resourceList;
     }
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java Thu Oct  4 16:50:42 2012
@@ -81,7 +81,7 @@ public class ServiceDescriptorResource e
             applicationDescriptorResource.setHostDescName(getServiceDescName());
             return applicationDescriptorResource;
         }
-        return null;
+        throw new IllegalArgumentException("Unsupported resource type for service descriptor resource.");
     }
 
     public void remove(ResourceType type, Object name) {

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java Thu Oct  4 16:50:42 2012
@@ -21,6 +21,7 @@
 package org.apache.airavata.persistance.registry.jpa.resources;
 
 import java.io.IOException;
+import java.net.URI;
 import java.net.URL;
 import java.util.Properties;
 
@@ -71,20 +72,60 @@ public class Utils {
 
     public static String getJDBCURL(){
     	try {
-			if (getProvider()!=null){
-				return getProvider().getValue(JPAConstants.KEY_JDBC_URL).toString();
-			}
+            return getProvider().getValue(JPAConstants.KEY_JDBC_URL).toString();
 		} catch (UnknownRegistryConnectionDataException e) {
 			e.printStackTrace();
+            return null;
 		}
-    	Properties properties = loadProperties();
-        return properties.getProperty(JPAConstants.KEY_JDBC_URL);
+    }
+
+    public static String getHost(){
+        try{
+            String jdbcURL = getJDBCURL();
+            String cleanURI = jdbcURL.substring(5);
+            URI uri = URI.create(cleanURI);
+            return uri.getHost();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    public static int getPort(){
+        try{
+            String jdbcURL = getJDBCURL();
+            String cleanURI = jdbcURL.substring(5);
+            URI uri = URI.create(cleanURI);
+            return uri.getPort();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+    public static String getDBType(){
+        try{
+            String jdbcURL = getJDBCURL();
+            String cleanURI = jdbcURL.substring(5);
+            URI uri = URI.create(cleanURI);
+            return uri.getScheme();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
     }
 
 	private static AiravataRegistryConnectionDataProvider getProvider() {
 		return AiravataRegistryFactory.getRegistryConnectionDataProvider();
 	}
 
+    static {
+        if(AiravataRegistryFactory.getRegistryConnectionDataProvider() == null){
+            AiravataRegistryFactory.registerRegistryConnectionDataProvider(new AiravataRegistryConnectionDataProviderImpl());
+        }
+
+    }
+
     public static String getJDBCUser(){
     	try {
 			if (getProvider()!=null){

Modified: airavata/trunk/modules/registry/airavata-registry-service/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-service/pom.xml?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-service/pom.xml (original)
+++ airavata/trunk/modules/registry/airavata-registry-service/pom.xml Thu Oct  4 16:50:42 2012
@@ -69,6 +69,26 @@
             <artifactId>jsr311-api</artifactId>
             <version>1.1.1</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbyclient</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbynet</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbytools</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
 	</dependencies>
 
     <build>

Modified: airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/RegistryService.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/RegistryService.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/RegistryService.java (original)
+++ airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/RegistryService.java Thu Oct  4 16:50:42 2012
@@ -23,16 +23,19 @@ package org.apache.airavata.registry.ser
 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.services.utils.DatabaseCreator;
 import org.apache.airavata.registry.services.utils.JdbcStorage;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.engine.ServiceLifeCycle;
+import org.apache.derby.drda.NetworkServerControl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.net.InetAddress;
 import java.net.URL;
 import java.sql.Connection;
 import java.sql.SQLException;
@@ -45,7 +48,9 @@ public class RegistryService implements 
     public static final String GATEWAY_ID = "gateway.id";
     public static final String REGISTRY_USER = "registry.user";
     public static final String REGISTRY_PASSWORD = "registry.password";
+    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
     private JdbcStorage db;
+    private NetworkServerControl server;
 
     @Override
     public void startUp(ConfigurationContext configurationContext, AxisService axisService) {
@@ -53,21 +58,51 @@ public class RegistryService implements 
         initializeDB();
     }
 
-	private void initializeDB() {
-		String jdbcUrl = null;
+    private void startDerbyInServerMode() {
+        try {
+            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
+            server = new NetworkServerControl(InetAddress.getByName(Utils.getHost()),
+                    Utils.getPort(),
+                    Utils.getJDBCUser(), Utils.getJDBCUser());
+            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 stopDerbyServer() {
+        try {
+            server.shutdown();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void initializeDB() {
+        String jdbcUrl = null;
         String jdbcDriver = null;
         URL resource = this.getClass().getClassLoader().getResource("repository.properties");
         Properties properties = new Properties();
         try {
             properties.load(resource.openStream());
         } catch (IOException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            logger.error("Unable to read repository properties", e);
         }
         jdbcDriver = properties.getProperty("registry.jdbc.driver");
         jdbcUrl = properties.getProperty("registry.jdbc.url");
         String jdbcUser = properties.getProperty("registry.jdbc.user");
         String jdbcPassword = properties.getProperty("registry.jdbc.password");
-        jdbcUrl = jdbcUrl + "?"  + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
+        jdbcUrl = jdbcUrl + "?" + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
+
+        if (Utils.getDBType().equals("derby")) {
+            startDerbyInServerMode();
+        }
         db = new JdbcStorage(10, 50, jdbcUrl, jdbcDriver, true);
 
         Connection conn = null;
@@ -85,26 +120,29 @@ public class RegistryService implements 
         } finally {
             db.closeConnection(conn);
             try {
+                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.
             }
         }
         GatewayResource gatewayResource = new GatewayResource();
-        gatewayResource.setGatewayName((String)properties.get(GATEWAY_ID));
-        gatewayResource.setOwner((String)properties.get(GATEWAY_ID));
+        gatewayResource.setGatewayName((String) properties.get(GATEWAY_ID));
+        gatewayResource.setOwner((String) properties.get(GATEWAY_ID));
         gatewayResource.save();
-        UserResource userResource = (UserResource)gatewayResource.create(ResourceType.USER);
-        userResource.setUserName((String)properties.get(REGISTRY_USER));
-        userResource.setPassword((String)properties.get(REGISTRY_PASSWORD));
+        UserResource userResource = (UserResource) gatewayResource.create(ResourceType.USER);
+        userResource.setUserName((String) properties.get(REGISTRY_USER));
+        userResource.setPassword((String) properties.get(REGISTRY_PASSWORD));
         userResource.save();
-        WorkerResource workerResource = (WorkerResource)gatewayResource.create(ResourceType.GATEWAY_WORKER);
+        WorkerResource workerResource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
         workerResource.setUser(userResource.getUserName());
         workerResource.save();
-	}
+    }
 
     @Override
     public void shutDown(ConfigurationContext configurationContext, AxisService axisService) {
-        //To change body of implemented methods use File | Settings | File Templates.
     }
 }

Modified: airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/ConnectionPool.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/ConnectionPool.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/ConnectionPool.java (original)
+++ airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/ConnectionPool.java Thu Oct  4 16:50:42 2012
@@ -379,4 +379,22 @@ public class ConnectionPool {
             }
         }
     }
+
+    public void shutdown(){
+        for (Connection c : availableConnections) {
+            try {
+                c.close();
+            } catch (SQLException e) {
+
+            }
+        }
+
+        for (Connection c : busyConnections) {
+            try {
+                c.close();
+            } catch (SQLException e) {
+                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            }
+        }
+    }
 }

Modified: airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/JdbcStorage.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/JdbcStorage.java?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/JdbcStorage.java (original)
+++ airavata/trunk/modules/registry/airavata-registry-service/src/main/java/org/apache/airavata/registry/services/utils/JdbcStorage.java Thu Oct  4 16:50:42 2012
@@ -173,4 +173,8 @@ public class JdbcStorage {
         if (connectionPool != null)
             connectionPool.dispose();
     }
+
+    public void shutdown() {
+        connectionPool.shutdown();
+    }
 }

Modified: airavata/trunk/modules/xbaya-gui/src/main/resources/repository.properties
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/resources/repository.properties?rev=1394155&r1=1394154&r2=1394155&view=diff
==============================================================================
--- airavata/trunk/modules/xbaya-gui/src/main/resources/repository.properties (original)
+++ airavata/trunk/modules/xbaya-gui/src/main/resources/repository.properties Thu Oct  4 16:50:42 2012
@@ -84,10 +84,12 @@ registry.jdbc.user=airavata
 registry.jdbc.password=airavata
 
 #for mysql
-registry.jdbc.driver=com.mysql.jdbc.Driver
-registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
+#registry.jdbc.driver=com.mysql.jdbc.Driver
+#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
+#registry.jdbc.url=jdbc:mysql://gf7.ucs.indiana.edu:4407/registry
+
 
 #for derby
-#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-#registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata
+registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata