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/09/05 21:49:16 UTC

svn commit: r1381324 [2/2] - in /incubator/airavata/trunk/modules/commons/provenance-registry/src/main: java/org/apache/airavata/persistance/ java/org/apache/airavata/persistance/registry/ java/org/apache/airavata/persistance/registry/jpa/ java/org/apa...

Added: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java?rev=1381324&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java (added)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java Wed Sep  5 19:49:15 2012
@@ -0,0 +1,94 @@
+package org.apache.airavata.persistance.registry.jpa.resources;
+
+import org.apache.airavata.persistance.registry.jpa.Resource;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.model.Gateway;
+import org.apache.airavata.persistance.registry.jpa.model.Published_Workflow;
+
+import java.sql.Date;
+import java.util.List;
+
+public class PublishWorkflowResource extends AbstractResource {
+    private String name;
+    private String version;
+    private Date publishedDate;
+    private String content;
+    private int gatewayID;
+
+    public PublishWorkflowResource() {
+    }
+
+    public PublishWorkflowResource(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public Date getPublishedDate() {
+        return publishedDate;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public void setPublishedDate(Date publishedDate) {
+        this.publishedDate = publishedDate;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getGatewayID() {
+        return gatewayID;
+    }
+
+    public void setGatewayID(int gatewayID) {
+        this.gatewayID = gatewayID;
+    }
+
+    public Resource create(ResourceType type) {
+        return null;
+    }
+
+    public void remove(ResourceType type, Object name) {
+
+    }
+
+    public Resource get(ResourceType type, Object name) {
+        return null;
+    }
+
+    public List<Resource> get(ResourceType type) {
+        return null;
+    }
+
+    public void save() {
+        begin();
+        Published_Workflow publishedWorkflow = new Published_Workflow();
+        publishedWorkflow.setPublish_workflow_name(name);
+        publishedWorkflow.setPublished_date(publishedDate);
+        publishedWorkflow.setVersion(version);
+        publishedWorkflow.setWorkflow_content(content);
+        Gateway gateway = new Gateway();
+        gateway.setGateway_ID(gatewayID);
+        publishedWorkflow.setGateway(gateway);
+        em.persist(gateway);
+        end();
+    }
+
+    public boolean isExists(ResourceType type, Object name) {
+        return false;
+    }
+}

Added: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java?rev=1381324&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java (added)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java Wed Sep  5 19:49:15 2012
@@ -0,0 +1,138 @@
+package org.apache.airavata.persistance.registry.jpa.resources;
+
+import org.apache.airavata.persistance.registry.jpa.Resource;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.model.Application_Descriptor;
+import org.apache.airavata.persistance.registry.jpa.model.Gateway;
+import org.apache.airavata.persistance.registry.jpa.model.Service_Descriptor;
+
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ServiceDescriptorResource extends AbstractResource {
+    private String serviceDescName;
+    private int gatewayID;
+    private int userID;
+    private String content;
+
+
+    public ServiceDescriptorResource(String serviceDescName) {
+        this.serviceDescName = serviceDescName;
+    }
+
+    public ServiceDescriptorResource() {
+
+    }
+
+    public String getServiceDescName() {
+        return serviceDescName;
+    }
+
+    public int getUserID() {
+        return userID;
+    }
+
+    public void setUserID(int userID) {
+        this.userID = userID;
+    }
+
+    public int getGatewayID() {
+        return gatewayID;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setGatewayID(int gatewayID) {
+        this.gatewayID = gatewayID;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Resource create(ResourceType type) {
+        if (type == ResourceType.APPLICATION_DESCRIPTOR) {
+            ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource();
+            applicationDescriptorResource.setGatewayID(gatewayID);
+            applicationDescriptorResource.setHostDescName(serviceDescName);
+            return applicationDescriptorResource;
+        }
+        return null;
+    }
+
+    public void remove(ResourceType type, Object name) {
+        if (type == ResourceType.APPLICATION_DESCRIPTOR) {
+            begin();
+            Query q = em.createQuery("Delete p FROM Application_Descriptor p WHERE p.application_descriptor_ID = :app_desc_id and p.service_descriptor_ID = :service_desc_name and p.gateway_ID = :gate_ID");
+            q.setParameter("app_desc_id", name);
+            q.setParameter("service_desc_name", serviceDescName);
+            q.setParameter("gate_ID", gatewayID);
+            q.executeUpdate();
+            end();
+        }
+
+    }
+
+    public Resource get(ResourceType type, Object name) {
+        if (type == ResourceType.APPLICATION_DESCRIPTOR) {
+            begin();
+            Query q = em.createQuery("SELECT p FROM Application_Descriptor p WHERE p.application_descriptor_ID = :app_desc_id and p.service_descriptor_ID = :service_desc_name and p.gateway_ID =:gate_ID");
+            q.setParameter("app_desc_id", name);
+            q.setParameter("service_desc_name", serviceDescName);
+            q.setParameter("gate_ID", gatewayID);
+            Application_Descriptor eappDesc = (Application_Descriptor) q.getSingleResult();
+            ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource(eappDesc.getApplication_descriptor_ID());
+            applicationDescriptorResource.setGatewayID(eappDesc.getGateway().getGateway_ID());
+            applicationDescriptorResource.setContent(eappDesc.getApplication_descriptor_xml());
+            applicationDescriptorResource.setHostDescName(eappDesc.getHost_descriptor().getHost_descriptor_ID());
+            applicationDescriptorResource.setServiceDescName(serviceDescName);
+            end();
+            return applicationDescriptorResource;
+        }
+        return null;
+    }
+
+    public List<Resource> get(ResourceType type) {
+        List<Resource> resourceList = new ArrayList<Resource>();
+        if (type == ResourceType.APPLICATION_DESCRIPTOR) {
+            begin();
+            Query q = em.createQuery("SELECT p FROM Application_Descriptor p WHERE p.gateway_ID =:gate_ID and p.service_descriptor_ID = :service_desc_name");
+            q.setParameter("gate_ID", gatewayID);
+            q.setParameter("service_desc_name", serviceDescName);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Application_Descriptor applicationDescriptor = (Application_Descriptor) result;
+                    ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource(applicationDescriptor.getApplication_descriptor_ID());
+                    applicationDescriptorResource.setGatewayID(gatewayID);
+                    applicationDescriptorResource.setContent(applicationDescriptor.getApplication_descriptor_xml());
+                    applicationDescriptorResource.setHostDescName(applicationDescriptor.getHost_descriptor().getHost_descriptor_ID());
+                    applicationDescriptorResource.setServiceDescName(serviceDescName);
+                    resourceList.add(applicationDescriptorResource);
+                }
+            }
+            end();
+        }
+        return resourceList;
+    }
+
+    public void save() {
+        begin();
+        Service_Descriptor serviceDescriptor = new Service_Descriptor();
+        serviceDescriptor.setService_descriptor_ID(serviceDescName);
+        Gateway gateway = new Gateway();
+        gateway.setGateway_ID(gatewayID);
+        serviceDescriptor.setGateway(gateway);
+        serviceDescriptor.setService_descriptor_xml(content);
+        em.persist(serviceDescriptor);
+        end();
+
+    }
+
+    public boolean isExists(ResourceType type, Object name) {
+        return false;
+    }
+}

Added: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java?rev=1381324&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java (added)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java Wed Sep  5 19:49:15 2012
@@ -0,0 +1,211 @@
+package org.apache.airavata.persistance.registry.jpa.resources;
+
+import org.apache.airavata.persistance.registry.jpa.Resource;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.model.Experiment;
+import org.apache.airavata.persistance.registry.jpa.model.Gateway;
+import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
+import org.apache.airavata.persistance.registry.jpa.model.Users;
+
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserResource extends AbstractResource {
+    private int id;
+    private String userName;
+    private String password;
+    private int gatewayID;
+    private ProjectResource projectResource;
+
+
+    public UserResource() {
+    }
+
+    public UserResource(int id) {
+        this.id = id;
+//        this.gatewayID = gatewayID;
+//        this.projectResource = projectResource;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public int getGatewayID() {
+        return gatewayID;
+    }
+
+    public void setGatewayID(int gatewayID) {
+        this.gatewayID = gatewayID;
+    }
+
+    public Resource create(ResourceType type) {
+        if (type == ResourceType.USER_WORKFLOW) {
+            UserWorkflowResource userWorkflowResource = new UserWorkflowResource();
+            userWorkflowResource.setUserID(id);
+//            userWorkflowResource.setProjectID();
+            return userWorkflowResource;
+        } else if (type == ResourceType.EXPERIMENT) {
+            ExperimentResource experimentResource = new ExperimentResource();
+//            experimentResource.setProjectID(id);
+            experimentResource.setUserID(id);
+            return experimentResource;
+        } else {
+            return null;
+        }
+    }
+
+    public void remove(ResourceType type, Object name) {
+        begin();
+        if(type == ResourceType.USER_WORKFLOW){
+            Query q = em.createQuery("Delete p FROM User_Workflow p WHERE p.user_ID = :user_id and p.user_workflow_name = :usrwf_name");
+            q.setParameter("user_id", id);
+            q.setParameter("usrwf_name", name);
+            q.executeUpdate();
+        }else if (type == ResourceType.EXPERIMENT){
+            Query q = em.createQuery("Delete p FROM Experiment p WHERE p.user_ID = :user_id and p.experiment_ID = :ex_name");
+            q.setParameter("user_id", id);
+            q.setParameter("ex_name", name);
+            q.executeUpdate();
+        }
+        end();
+
+    }
+
+    public Resource get(ResourceType type, Object name) {
+        begin();
+        if (type == ResourceType.USER_WORKFLOW) {
+            Query q = em.createQuery("SELECT p FROM User_Workflow p WHERE p.user_ID = :user_id and p.user_workflow_name = :usrwf_name");
+            q.setParameter("user_id", id);
+            q.setParameter("usrwf_name", name);
+            User_Workflow userWorkflow = (User_Workflow) q.getSingleResult();
+            UserWorkflowResource userWorkflowResource = new UserWorkflowResource(userWorkflow.getProject().getProject_ID(), id, userWorkflow.getUser_workflow_name());
+            userWorkflowResource.setContent(userWorkflow.getWorkflow_content());
+            userWorkflowResource.setLastUpdateDate(userWorkflow.getLast_update_date());
+            end();
+            return userWorkflowResource;
+        } else if (type == ResourceType.EXPERIMENT) {
+            Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.user_ID = :user_id and p.experiment_ID = :ex_name");
+            q.setParameter("user_id", id);
+            q.setParameter("ex_name", name);
+            Experiment experiment = (Experiment) q.getSingleResult();
+            ExperimentResource experimentResource = new ExperimentResource(experiment.getExperiment_ID());
+            experimentResource.setProjectID(experiment.getProject().getProject_ID());
+            Users user = new Users();
+            user.setUser_ID(id);
+            user.setUser_name(userName);
+            user.setPassword(password);
+            experiment.setUser(user);
+            experiment.setSubmitted_date(experiment.getSubmitted_date());
+            experiment.setUser(experiment.getUser());
+            end();
+            return experimentResource;
+        }
+        return null;
+    }
+
+    public List<Resource> get(ResourceType type) {
+        List<Resource> resourceList = new ArrayList<Resource>();
+        begin();
+        if (type == ResourceType.USER_WORKFLOW) {
+            Query q = em.createQuery("SELECT p FROM User_Workflow p WHERE p.user_ID =:usr_ID");
+            q.setParameter("usr_ID", id);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    User_Workflow userWorkflow = (User_Workflow) result;
+                    UserWorkflowResource userWorkflowResource = new UserWorkflowResource(userWorkflow.getProject().getProject_ID(), userWorkflow.getUsers().getUser_ID(), userWorkflow.getUser_workflow_name());
+                    userWorkflowResource.setContent(userWorkflow.getWorkflow_content());
+                    userWorkflowResource.setLastUpdateDate(userWorkflow.getLast_update_date());
+                    resourceList.add(userWorkflowResource);
+                }
+            }
+        } else if (type == ResourceType.EXPERIMENT) {
+            Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.user_ID =:usr_ID");
+            q.setParameter("usr_ID", id);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Experiment experiment = (Experiment) result;
+                    ExperimentResource experimentResource = new ExperimentResource(experiment.getExperiment_ID());
+                    experimentResource.setProjectID(experiment.getProject().getProject_ID());
+                    experimentResource.setUserID(experiment.getUser().getUser_ID());
+                    experimentResource.setSubmittedDate(experiment.getSubmitted_date());
+                    resourceList.add(experimentResource);
+                }
+            }
+        }
+        end();
+        return resourceList;
+    }
+
+    public void save() {
+        begin();
+        Users user = new Users();
+        Gateway gateway = new Gateway();
+        gateway.setGateway_ID(gatewayID);
+        user.setGateway(gateway);
+        user.setUser_name(userName);
+        user.setPassword(password);
+        if (id != -1) {
+            user.setUser_ID(id);
+        }
+        em.persist(user);
+        end();
+
+    }
+
+    public boolean isExists(ResourceType type, Object name) {
+        begin();
+        if(type == ResourceType.USER_WORKFLOW){
+            Query q = em.createQuery("SELECT p FROM User_Workflow p WHERE p.gateway_ID =:gate_ID and p.user_ID =:userID and p.user_workflow_name =:usr_wf_name");
+            q.setParameter("gate_ID", gatewayID);
+            q.setParameter("userID",id);
+            q.setParameter("usr_wf_name", name);
+            User_Workflow userWorkflow = (User_Workflow)q.getSingleResult();
+            if(userWorkflow != null){
+                return true;
+            }else {
+                return false;
+            }
+        }else if(type == ResourceType.EXPERIMENT){
+            Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.gateway_ID =:gate_ID and p.user_ID =:userID and p.experiment_ID =:experimentID");
+            q.setParameter("gate_ID", gatewayID);
+            q.setParameter("userID",id);
+            q.setParameter("experimentID", name);
+            Experiment experiment = (Experiment)q.getSingleResult();
+            if(experiment != null){
+                return true;
+            }else {
+                return false;
+            }
+        }
+        end();
+        return false;
+    }
+
+    public ProjectResource getProjectResource() {
+        return projectResource;
+    }
+
+    public void setProjectResource(ProjectResource projectResource) {
+        this.projectResource = projectResource;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+}

Added: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java?rev=1381324&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java (added)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java Wed Sep  5 19:49:15 2012
@@ -0,0 +1,103 @@
+package org.apache.airavata.persistance.registry.jpa.resources;
+
+import org.apache.airavata.persistance.registry.jpa.Resource;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.model.Project;
+import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
+import org.apache.airavata.persistance.registry.jpa.model.Users;
+
+import java.sql.Date;
+import java.util.List;
+
+public class UserWorkflowResource extends AbstractResource {
+    private int projectID;
+    private int userID;
+    private String name;
+    private Date lastUpdateDate;
+    private String content;
+
+    public UserWorkflowResource() {
+    }
+
+    public UserWorkflowResource(int projectID, int userID, String name) {
+        this.projectID = projectID;
+        this.userID = userID;
+        this.name = name;
+    }
+
+    public int getProjectID() {
+        return projectID;
+    }
+
+    public int getUserID() {
+        return userID;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setLastUpdateDate(Date lastUpdateDate) {
+        this.lastUpdateDate = lastUpdateDate;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getLastUpdateDate() {
+        return lastUpdateDate;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setProjectID(int projectID) {
+        this.projectID = projectID;
+    }
+
+    public void setUserID(int userID) {
+        this.userID = userID;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Resource create(ResourceType type) {
+        return null;
+    }
+
+    public void remove(ResourceType type, Object name) {
+
+    }
+
+    public Resource get(ResourceType type, Object name) {
+        return null;
+    }
+
+    public List<Resource> get(ResourceType type) {
+        return null;
+    }
+
+    public void save() {
+        begin();
+        User_Workflow userWorkflow = new User_Workflow();
+        userWorkflow.setUser_workflow_name(name);
+        userWorkflow.setLast_update_date(lastUpdateDate);
+        userWorkflow.setWorkflow_content(content);
+        Project project = new Project();
+        project.setProject_ID(projectID);
+        userWorkflow.setProject(project);
+        Users user = new Users();
+        user.setUser_ID(userID);
+        userWorkflow.setUsers(user);
+        em.persist(userWorkflow);
+        end();
+    }
+
+    public boolean isExists(ResourceType type, Object name) {
+        return false;
+    }
+}

Modified: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/provenance/impl/jpa/AiravataJPAProvenanceRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/provenance/impl/jpa/AiravataJPAProvenanceRegistry.java?rev=1381324&r1=1381323&r2=1381324&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/provenance/impl/jpa/AiravataJPAProvenanceRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/java/org/apache/airavata/provenance/impl/jpa/AiravataJPAProvenanceRegistry.java Wed Sep  5 19:49:15 2012
@@ -372,6 +372,7 @@ public class AiravataJPAProvenanceRegist
 	public List<WorkflowServiceIOData> searchWorkflowExecutionServiceInput(
 			String arg0, String arg1, String arg2) throws RegistryException {
 		// TODO Auto-generated method stub
+
 		return null;
 	}
 

Modified: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/META-INF/persistence.xml?rev=1381324&r1=1381323&r2=1381324&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/META-INF/persistence.xml (original)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/META-INF/persistence.xml Wed Sep  5 19:49:15 2012
@@ -29,7 +29,7 @@
 		<class>org.apache.airavata.provenance.model.Gram_Data</class>
 		<properties>
 			<property name="openjpa.ConnectionURL"
-				value="jdbc:mysql://localhost:3306/workflow_provenance" />
+				value="jdbc:mysql://gf7.ucs.indiana.edu:3306/workflow_provenance" />
 			<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
 			<property name="openjpa.ConnectionUserName" value="airavata" />
 			<property name="openjpa.ConnectionPassword" value="airavata" />

Added: incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/data.sql
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/data.sql?rev=1381324&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/data.sql (added)
+++ incubator/airavata/trunk/modules/commons/provenance-registry/src/main/resources/data.sql Wed Sep  5 19:49:15 2012
@@ -0,0 +1,115 @@
+create table Gateway
+(
+        gateway_ID int(11) NOT NULL AUTO_INCREMENT,
+        gateway_name varchar(255),
+        PRIMARY KEY (gateway_ID)
+);
+
+create table Configuration
+(
+        config_ID int(11) NOT NULL AUTO_INCREMENT,
+        config_key varchar(255),
+        config_val varchar(255),
+        expire_date date,
+        PRIMARY KEY(config_ID)
+);
+
+create table Gateway_Worker
+(
+      gateway_ID int(11) ,
+      user_ID int(11),
+      PRIMARY KEY (gateway_ID, user_ID)
+);
+
+create table Users
+(
+        user_ID int(11) NOT NULL AUTO_INCREMENT,
+        user_name varchar(255),
+        password varchar(255),
+        PRIMARY KEY(user_ID),
+        FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE
+);
+
+create table Project
+(
+       project_ID int(11) NOT NULL AUTO_INCREMENT,
+       gateway_ID  int(11),
+       user_ID int(11),
+       project_name varchar(255),
+       PRIMARY KEY(project_ID),
+       FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE,
+       FOREIGN KEY (user_ID) REFERENCES Gateway(user_ID) ON DELETE CASCADE
+);
+
+create table Published_Workflow
+(
+       gateway_ID int(11),
+       publish_workflow_name varchar(255),
+       version varchar(255),
+       published_date DATE,
+       workflow_content varchar(2000),
+       PRIMARY KEY(gateway_ID, publish_workflow_name),
+       FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE
+);
+
+create table User_Workflow
+(
+       project_ID int(11),
+       user_ID int(11),
+       user_workflow_name varchar(255),
+       last_update_date DATE,
+       workflow_content varchar(2000),
+       PRIMARY KEY(project_ID, user_ID, user_workflow_name),
+       FOREIGN KEY (project_ID) REFERENCES Projects(project_ID) ON DELETE CASCADE,
+       FOREIGN KEY (user_ID) REFERENCES Users(user_ID) ON DELETE CASCADE
+);
+
+
+create table Host_Descriptor
+(
+       gateway_ID int(11),
+       user_ID int(11),
+       host_descriptor_ID varchar(255),
+       host_descriptor_xml varchar(2000),
+       PRIMARY KEY(host_descriptor_ID),
+       FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE
+       FOREIGN KEY (user_ID) REFERENCES Users(user_ID) ON DELETE CASCADE
+);
+
+create table Service_Descriptor
+(
+         gateway_ID int(11),
+         user_ID int(11),
+         service_descriptor_ID varchar(255),
+         service_descriptor_xml varchar(2000),
+         PRIMARY KEY(service_descriptor_ID),
+         FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE
+         FOREIGN KEY (user_ID) REFERENCES Users(user_ID) ON DELETE CASCADE
+);
+
+create table Application_Descriptor
+(
+         gateway_ID int(11),
+         user_ID int(11),
+         application_descriptor_ID varchar(255),
+         host_descriptor_ID varchar(255),
+         service_descriptor_ID varchar(255),
+         application_descriptor_xml varchar(2000),
+         PRIMARY KEY(application_descriptor_ID),
+         FOREIGN KEY (gateway_ID) REFERENCES Gateway(gateway_ID) ON DELETE CASCADE,
+         FOREIGN KEY (host_descriptor_ID) REFERENCES Host_Descriptor(host_descriptor_ID) ON DELETE CASCADE,
+         FOREIGN KEY (service_descriptor_ID) REFERENCES Service_Descriptor(service_descriptor_ID) ON DELETE CASCADE
+         FOREIGN KEY (user_ID) REFERENCES Users(user_ID) ON DELETE CASCADE
+);
+
+create table Experiment
+(
+          project_ID int(11),
+          user_ID int(11),
+          experiment_ID varchar(255),
+          submitted_date Date,
+          PRIMARY KEY(experiment_ID),
+          FOREIGN KEY (project_ID) REFERENCES Projects(project_ID) ON DELETE CASCADE,
+          FOREIGN KEY (user_ID) REFERENCES Users(user_ID) ON DELETE CASCADE
+);
+