You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by Suresh Marru <sm...@apache.org> on 2014/06/20 21:19:37 UTC

Re: git commit: adding app catalog data models

Sachith,

I am assuming this will not break the 0.12 release? I haven’t tested this, but just being watchful for commits between RC1 and the release. 

Suresh

On Jun 19, 2014, at 11:34 PM, sachith@apache.org wrote:

> Repository: airavata
> Updated Branches:
>  refs/heads/master 2bcadf554 -> 48cd362a5
> 
> 
> adding app catalog data models
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
> Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/48cd362a
> Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/48cd362a
> Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/48cd362a
> 
> Branch: refs/heads/master
> Commit: 48cd362a54293593d140c7ccd806c9f1be8283d4
> Parents: 2bcadf5
> Author: Sachith Withana <sa...@apache.org>
> Authored: Fri Jun 20 09:06:29 2014 +0530
> Committer: Sachith Withana <sa...@apache.org>
> Committed: Fri Jun 20 09:06:29 2014 +0530
> 
> ----------------------------------------------------------------------
> .../appcatalog/jpa/model/Application.java       |  77 ++++++++++++
> .../jpa/model/ApplicationDeployment.java        |  29 +++++
> .../jpa/model/ApplicationDeploymentPk.java      |  40 ++++++
> .../jpa/model/ApplicationInputOutputs.java      |  68 ++++++++++
> .../jpa/model/ApplicationInputOutputsPK.java    |  39 ++++++
> .../appcatalog/jpa/model/ComputeResource.java   |  68 ++++++++++
> .../jpa/model/DataMovementProtocol.java         |  75 +++++++++++
> .../jpa/model/DataMovementProtocolPK.java       |  72 +++++++++++
> .../appcatalog/jpa/model/Deployment.java        | 124 +++++++++++++++++++
> .../appcatalog/jpa/model/GSISSHExport.java      |  64 ++++++++++
> .../appcatalog/jpa/model/GSISSHExportPK.java    |  62 ++++++++++
> .../jpa/model/GSISSHPostJobCommand.java         |  66 ++++++++++
> .../jpa/model/GSISSHPostJobCommandPK.java       |  62 ++++++++++
> .../jpa/model/GSISSHPreJobCommand.java          |  64 ++++++++++
> .../jpa/model/GSISSHPreJobCommandPK.java        |  62 ++++++++++
> .../appcatalog/jpa/model/GSISSHSubmission.java  | 102 +++++++++++++++
> .../jpa/model/GatewayApplications.java          |  68 ++++++++++
> .../jpa/model/GatewayApplicationsPK.java        |  40 ++++++
> .../appcatalog/jpa/model/GatewayProfile.java    |  43 +++++++
> .../jpa/model/GlobusJobSubmission.java          |  92 ++++++++++++++
> .../appcatalog/jpa/model/InputOutputs.java      |  67 ++++++++++
> .../jpa/model/JobSubmissionProtocol.java        |  76 ++++++++++++
> .../jpa/model/JobSubmissionProtocolPK.java      |  72 +++++++++++
> .../appcatalog/jpa/model/SCPDataMovement.java   |  82 ++++++++++++
> .../appcatalog/jpa/model/SSHSubmission.java     |  82 ++++++++++++
> .../src/main/resources/appcatalog-mysql_new.sql |  14 +--
> 26 files changed, 1703 insertions(+), 7 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
> new file mode 100644
> index 0000000..8c64d0c
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
> @@ -0,0 +1,77 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GATEWAY_PROFILE")
> +public class Application {
> +
> +    @Id
> +    @Column(name = "APPLICATION_ID")
> +    private String applicationID;
> +    @Column(name = "APPLICATION_NAME")
> +    private String applicationName;
> +
> +    // the gateway that owns the application
> +    @Column(name = "GATEWAY_ID")
> +    private String gatewayID;
> +
> +    //whether the appliation is publicly available or not
> +    @Column(name = "IS_PUBLIC")
> +    private boolean published;
> +    @Column(name = "APPLICATION_DESCRIPTION")
> +    private String applicationDescription;
> +
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "GATEWAY_ID")
> +    private GatewayProfile gatewayProfile;
> +
> +    public GatewayProfile getGatewayProfile() {
> +        return gatewayProfile;
> +    }
> +
> +    public void setGatewayProfile(GatewayProfile gatewayProfile) {
> +        this.gatewayProfile = gatewayProfile;
> +    }
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public String getApplicationName() {
> +        return applicationName;
> +    }
> +
> +    public void setApplicationName(String applicationName) {
> +        this.applicationName = applicationName;
> +    }
> +
> +    public String getGatewayID() {
> +        return gatewayID;
> +    }
> +
> +    public void setGatewayID(String gatewayID) {
> +        this.gatewayID = gatewayID;
> +    }
> +
> +    public boolean isPublished() {
> +        return published;
> +    }
> +
> +    public void setPublished(boolean published) {
> +        this.published = published;
> +    }
> +
> +    public String getApplicationDescription() {
> +        return applicationDescription;
> +    }
> +
> +    public void setApplicationDescription(String applicationDescription) {
> +        this.applicationDescription = applicationDescription;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
> new file mode 100644
> index 0000000..a1290d3
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
> @@ -0,0 +1,29 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GATEWAY_PROFILE")
> +@IdClass(ApplicationDeploymentPK.class)
> +public class ApplicationDeployment {
> +
> +    @Id
> +    @Column(name = "DEPLOYMENT_ID")
> +    private String deploymentID;
> +
> +    @Id
> +    @Column(name = "APPLICATION_ID")
> +    private String applicationID;
> +
> +    @Column(name = "DEPLOYMENT_HOST_NAME")
> +    private String deploymentHostName;
> +
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "DEPLOYMENT_ID")
> +    private Deployment deployment;
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "APPLICATION_ID")
> +    private Application application;
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
> new file mode 100644
> index 0000000..a5695aa
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
> @@ -0,0 +1,40 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +public class ApplicationDeploymentPK {
> +    private String deploymentID;
> +    private String applicationID;
> +
> +    public ApplicationDeploymentPK(String deploymentID, String applicationID) {
> +        this.deploymentID = deploymentID;
> +        this.applicationID = applicationID;
> +    }
> +
> +    public ApplicationDeploymentPK() {
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getDeploymentID() {
> +        return deploymentID;
> +    }
> +
> +    public void setDeploymentID(String deploymentID) {
> +        this.deploymentID = deploymentID;
> +    }
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
> new file mode 100644
> index 0000000..2d3fed1
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
> @@ -0,0 +1,68 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "APPLICATION_INPUT_OUTPUTS")
> +@IdClass(ApplicationInputOutputsPK.class)
> +public class ApplicationInputOutputs {
> +
> +    @Id
> +    @Column(name = "APPLICATION_ID")
> +    private String applicationID;
> +
> +    @Id
> +    @Column(name = "INPUT_OUTPUT_ID")
> +    private String inputOutputID;
> +
> +    @Column(name = "IS_INPUT")
> +    private boolean input;
> +
> +    @OneToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "INPUT_OUTPUT_ID")
> +    private InputOutputs inputOutputs;
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "APPLICATION_ID")
> +    private Application application;
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public String getInputOutputID() {
> +        return inputOutputID;
> +    }
> +
> +    public void setInputOutputID(String inputOutputID) {
> +        this.inputOutputID = inputOutputID;
> +    }
> +
> +    public boolean isInput() {
> +        return input;
> +    }
> +
> +    public void setInput(boolean input) {
> +        this.input = input;
> +    }
> +
> +    public InputOutputs getInputOutputs() {
> +        return inputOutputs;
> +    }
> +
> +    public void setInputOutputs(InputOutputs inputOutputs) {
> +        this.inputOutputs = inputOutputs;
> +    }
> +
> +    public Application getApplication() {
> +        return application;
> +    }
> +
> +    public void setApplication(Application application) {
> +        this.application = application;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
> new file mode 100644
> index 0000000..715b5be
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
> @@ -0,0 +1,39 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +public class ApplicationInputOutputsPK {
> +    private String applicationID;
> +    private String inputOutputID;
> +
> +    public ApplicationInputOutputsPK(String applicationID, String inputOutputID) {
> +        this.applicationID = applicationID;
> +        this.inputOutputID = inputOutputID;
> +    }
> +
> +    public ApplicationInputOutputsPK() {
> +    }
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public String getInputOutputID() {
> +        return inputOutputID;
> +    }
> +
> +    public void setInputOutputID(String inputOutputID) {
> +        this.inputOutputID = inputOutputID;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
> new file mode 100644
> index 0000000..b9cc227
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
> @@ -0,0 +1,68 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.Column;
> +import javax.persistence.Entity;
> +import javax.persistence.Id;
> +import javax.persistence.Table;
> +
> +@Entity
> +@Table(name = "COMPUTE_RESOURCE")
> +public class ComputeResource {
> +
> +
> +    @Id
> +    @Column(name = "RESOURCE_ID")
> +    private String applicationID;
> +
> +    @Column(name = "HOST_NAME")
> +    private String hostname;
> +
> +    @Column(name = "IP_ADDRESS")
> +    private String ipAddress;
> +
> +    @Column(name = "DESCRIPTION")
> +    private String description;
> +
> +    @Column(name = "PREFERRED_JOB_SUBMISSION_PROTOCOL ")
> +    private String preferredJobSubmissionProtocol;
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public String getHostname() {
> +        return hostname;
> +    }
> +
> +    public void setHostname(String hostname) {
> +        this.hostname = hostname;
> +    }
> +
> +    public String getIpAddress() {
> +        return ipAddress;
> +    }
> +
> +    public void setIpAddress(String ipAddress) {
> +        this.ipAddress = ipAddress;
> +    }
> +
> +    public String getDescription() {
> +        return description;
> +    }
> +
> +    public void setDescription(String description) {
> +        this.description = description;
> +    }
> +
> +    public String getPreferredJobSubmissionProtocol() {
> +        return preferredJobSubmissionProtocol;
> +    }
> +
> +    public void setPreferredJobSubmissionProtocol(String preferredJobSubmissionProtocol) {
> +        this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocol.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocol.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocol.java
> new file mode 100644
> index 0000000..4b7d64e
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocol.java
> @@ -0,0 +1,75 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "DATA_MOVEMENT_PROTOCOL")
> +@IdClass(DataMovementProtocolPK.class)
> +public class DataMovementProtocol {
> +    @Id
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "DATA_MOVE_ID")
> +    private String dataMoveID;
> +    @Id
> +    @Column(name = "JOB_TYPE")
> +    private String jobType;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getDataMoveID() {
> +        return dataMoveID;
> +    }
> +
> +    public void setDataMoveID(String dataMoveID) {
> +        this.dataMoveID = dataMoveID;
> +    }
> +
> +    public String getJobType() {
> +        return jobType;
> +    }
> +
> +    public void setJobType(String jobType) {
> +        this.jobType = jobType;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocolPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocolPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocolPK.java
> new file mode 100644
> index 0000000..6367132
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/DataMovementProtocolPK.java
> @@ -0,0 +1,72 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +public class DataMovementProtocolPK {
> +    private String resourceID;
> +    private String dataMoveID;
> +    private String jobType;
> +
> +    public DataMovementProtocolPK(String resourceID, String dataMoveID, String jobType) {
> +        this.resourceID = resourceID;
> +        this.dataMoveID = dataMoveID;
> +        this.jobType = jobType;
> +    }
> +
> +    public DataMovementProtocolPK() {
> +        ;
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getDataMoveID() {
> +        return dataMoveID;
> +    }
> +
> +    public void setDataMoveID(String dataMoveID) {
> +        this.dataMoveID = dataMoveID;
> +    }
> +
> +    public String getJobType() {
> +        return jobType;
> +    }
> +
> +    public void setJobType(String jobType) {
> +        this.jobType = jobType;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Deployment.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Deployment.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Deployment.java
> new file mode 100644
> index 0000000..14fafa1
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Deployment.java
> @@ -0,0 +1,124 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "DEPLOYMENT")
> +public class Deployment {
> +    @Id
> +    @Column(name = "DEPLOYMENT_ID")
> +    private String applicationID;
> +
> +    @Column(name = "COMPUTE_RESOURCE_ID")
> +    private String computeResourceID;
> +
> +    @Column(name = "DEPLOYMENT_HOST_NAME")
> +    private String deploymentHostName;
> +
> +    @Column(name = "INPUT_DIR")
> +    private String inputDir;
> +
> +    @Column(name = "OUTPUT_DIR")
> +    private String outputDir;
> +
> +    @Column(name = "SCRATCH_DIR")
> +    private String scratchDir;
> +
> +    @Column(name = "EXECUTION_PATH")
> +    private String executionPath;
> +
> +    @Column(name = "CPU_COUNT")
> +    private String cpuCount;
> +
> +    @Column(name = "NODE_COUNT")
> +    private String nodeCount;
> +
> +    @Column(name = "WALLTIME")
> +    private String walltime;
> +
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "COMPUTE_RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public String getComputeResourceID() {
> +        return computeResourceID;
> +    }
> +
> +    public void setComputeResourceID(String computeResourceID) {
> +        this.computeResourceID = computeResourceID;
> +    }
> +
> +    public String getDeploymentHostName() {
> +        return deploymentHostName;
> +    }
> +
> +    public void setDeploymentHostName(String deploymentHostName) {
> +        this.deploymentHostName = deploymentHostName;
> +    }
> +
> +    public String getInputDir() {
> +        return inputDir;
> +    }
> +
> +    public void setInputDir(String inputDir) {
> +        this.inputDir = inputDir;
> +    }
> +
> +    public String getOutputDir() {
> +        return outputDir;
> +    }
> +
> +    public void setOutputDir(String outputDir) {
> +        this.outputDir = outputDir;
> +    }
> +
> +    public String getScratchDir() {
> +        return scratchDir;
> +    }
> +
> +    public void setScratchDir(String scratchDir) {
> +        this.scratchDir = scratchDir;
> +    }
> +
> +    public String getExecutionPath() {
> +        return executionPath;
> +    }
> +
> +    public void setExecutionPath(String executionPath) {
> +        this.executionPath = executionPath;
> +    }
> +
> +    public String getCpuCount() {
> +        return cpuCount;
> +    }
> +
> +    public void setCpuCount(String cpuCount) {
> +        this.cpuCount = cpuCount;
> +    }
> +
> +    public String getNodeCount() {
> +        return nodeCount;
> +    }
> +
> +    public void setNodeCount(String nodeCount) {
> +        this.nodeCount = nodeCount;
> +    }
> +
> +    public String getWalltime() {
> +        return walltime;
> +    }
> +
> +    public void setWalltime(String walltime) {
> +        this.walltime = walltime;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExport.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExport.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExport.java
> new file mode 100644
> index 0000000..2123340
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExport.java
> @@ -0,0 +1,64 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GSISSH_EXPORT")
> +@IdClass(GSISSHExportPK.class)
> +public class GSISSHExport {
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Id
> +    @Column(name = "EXPORT")
> +    private String export;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "SUBMISSION_ID")
> +    private GSISSHSubmission gsisshJobSubmission;
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getExport() {
> +        return export;
> +    }
> +
> +    public void setExport(String export) {
> +        this.export = export;
> +    }
> +
> +    public GSISSHSubmission getGsisshJobSubmission() {
> +        return gsisshJobSubmission;
> +    }
> +
> +    public void setGsisshJobSubmission(GSISSHSubmission gsisshJobSubmission) {
> +        this.gsisshJobSubmission = gsisshJobSubmission;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExportPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExportPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExportPK.java
> new file mode 100644
> index 0000000..8ec8315
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHExportPK.java
> @@ -0,0 +1,62 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +public class GSISSHExportPK {
> +    private String submissionID;
> +    private String export;
> +
> +    public GSISSHExportPK(String submissionID, String export) {
> +        this.submissionID = submissionID;
> +        this.export = export;
> +    }
> +
> +    public GSISSHExportPK() {
> +        ;
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getExport() {
> +        return export;
> +    }
> +
> +    public void setExport(String export) {
> +        this.export = export;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommand.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommand.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommand.java
> new file mode 100644
> index 0000000..0e1ee4f
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommand.java
> @@ -0,0 +1,66 @@
> +/*
> + *
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + *
> + */
> +
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import org.apache.airavata.model.appcatalog.GSISSHJobSubmission;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GSISSH_POSTJOBCOMMAND")
> +@IdClass(GSISSHPostJobCommandPK.class)
> +public class GSISSHPostJobCommand {
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Id
> +    @Column(name = "COMMAND")
> +    private String command;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "SUBMISSION_ID")
> +    private GSISSHJobSubmission gsisshJobSubmission;
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getCommand() {
> +        return command;
> +    }
> +
> +    public void setCommand(String command) {
> +        this.command = command;
> +    }
> +
> +    public GSISSHJobSubmission getGsisshJobSubmission() {
> +        return gsisshJobSubmission;
> +    }
> +
> +    public void setGsisshJobSubmission(GSISSHJobSubmission gsisshJobSubmission) {
> +        this.gsisshJobSubmission = gsisshJobSubmission;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommandPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommandPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommandPK.java
> new file mode 100644
> index 0000000..ca7ae6a
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPostJobCommandPK.java
> @@ -0,0 +1,62 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +public class GSISSHPostJobCommandPK {
> +    private String submissionID;
> +    private String command;
> +
> +    public GSISSHPostJobCommandPK(String submissionID, String command) {
> +        this.submissionID = submissionID;
> +        this.command = command;
> +    }
> +
> +    public GSISSHPostJobCommandPK() {
> +        ;
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getCommand() {
> +        return command;
> +    }
> +
> +    public void setCommand(String command) {
> +        this.command = command;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommand.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommand.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommand.java
> new file mode 100644
> index 0000000..92a4e5d
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommand.java
> @@ -0,0 +1,64 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GSISSH_PREJOBCOMMAND")
> +@IdClass(GSISSHPreJobCommandPK.class)
> +public class GSISSHPreJobCommand {
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Id
> +    @Column(name = "COMMAND")
> +    private String command;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "SUBMISSION_ID")
> +    private GSISSHSubmission gsisshJobSubmission;
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getCommand() {
> +        return command;
> +    }
> +
> +    public void setCommand(String command) {
> +        this.command = command;
> +    }
> +
> +    public GSISSHSubmission getGsisshJobSubmission() {
> +        return gsisshJobSubmission;
> +    }
> +
> +    public void setGsisshJobSubmission(GSISSHSubmission gsisshJobSubmission) {
> +        this.gsisshJobSubmission = gsisshJobSubmission;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommandPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommandPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommandPK.java
> new file mode 100644
> index 0000000..7aba7c8
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHPreJobCommandPK.java
> @@ -0,0 +1,62 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +public class GSISSHPreJobCommandPK {
> +    private String submissionID;
> +    private String command;
> +
> +    public GSISSHPreJobCommandPK(String submissionID, String command) {
> +        this.submissionID = submissionID;
> +        this.command = command;
> +    }
> +
> +    public GSISSHPreJobCommandPK() {
> +        ;
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getCommand() {
> +        return command;
> +    }
> +
> +    public void setCommand(String command) {
> +        this.command = command;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHSubmission.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHSubmission.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHSubmission.java
> new file mode 100644
> index 0000000..aa68daa
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GSISSHSubmission.java
> @@ -0,0 +1,102 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GSISSH_SUBMISSION")
> +public class GSISSHSubmission {
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Column(name = "RESOURCE_JOB_MANAGER")
> +    private String resourceJobManager;
> +    @Column(name = "SSH_PORT")
> +    private int sshPort;
> +    @Column(name = "INSTALLED_PATH")
> +    private String installedPath;
> +    @Column(name = "MONITOR_MODE")
> +    private String monitorMode;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getResourceJobManager() {
> +        return resourceJobManager;
> +    }
> +
> +    public void setResourceJobManager(String resourceJobManager) {
> +        this.resourceJobManager = resourceJobManager;
> +    }
> +
> +    public int getSshPort() {
> +        return sshPort;
> +    }
> +
> +    public void setSshPort(int sshPort) {
> +        this.sshPort = sshPort;
> +    }
> +
> +    public String getInstalledPath() {
> +        return installedPath;
> +    }
> +
> +    public void setInstalledPath(String installedPath) {
> +        this.installedPath = installedPath;
> +    }
> +
> +    public String getMonitorMode() {
> +        return monitorMode;
> +    }
> +
> +    public void setMonitorMode(String monitorMode) {
> +        this.monitorMode = monitorMode;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplications.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplications.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplications.java
> new file mode 100644
> index 0000000..64538b7
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplications.java
> @@ -0,0 +1,68 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GATEWAY_PROFILE")
> +@IdClass(GatewayApplicationsPK.class)
> +public class GatewayApplications {
> +
> +    @Id
> +    @Column(name = "GATEWAY_ID")
> +    private String gatewayID;
> +
> +    @Id
> +    @Column(name = "APPLICATION_ID")
> +    private String applicationID;
> +
> +    @Column(name = "IS_TURNED_ON")
> +    private boolean turnedOn;
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "GATEWAY_ID")
> +    private GatewayProfile gatewayProfile;
> +
> +    @ManyToOne(cascade = CascadeType.REMOVE)
> +    @JoinColumn(name = "APPLICATION_ID")
> +    private Application application;
> +
> +    public GatewayProfile getGatewayProfile() {
> +        return gatewayProfile;
> +    }
> +
> +    public void setGatewayProfile(GatewayProfile gatewayProfile) {
> +        this.gatewayProfile = gatewayProfile;
> +    }
> +
> +    public Application getApplication() {
> +        return application;
> +    }
> +
> +    public void setApplication(Application application) {
> +        this.application = application;
> +    }
> +
> +    public String getGatewayID() {
> +        return gatewayID;
> +    }
> +
> +    public void setGatewayID(String gatewayID) {
> +        this.gatewayID = gatewayID;
> +    }
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +
> +    public boolean isTurnedOn() {
> +        return turnedOn;
> +    }
> +
> +    public void setTurnedOn(boolean turnedOn) {
> +        this.turnedOn = turnedOn;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplicationsPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplicationsPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplicationsPK.java
> new file mode 100644
> index 0000000..2ce6eb2
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayApplicationsPK.java
> @@ -0,0 +1,40 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +public class GatewayApplicationsPK {
> +
> +    private String gatewayID;
> +    private String applicationID;
> +
> +    public GatewayApplicationsPK(String gatewayID, String applicationID) {
> +        this.gatewayID = gatewayID;
> +        this.applicationID = applicationID;
> +    }
> +
> +    public GatewayApplicationsPK() {
> +    }
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getGatewayID() {
> +        return gatewayID;
> +    }
> +
> +    public void setGatewayID(String gatewayID) {
> +        this.gatewayID = gatewayID;
> +    }
> +
> +    public String getApplicationID() {
> +        return applicationID;
> +    }
> +
> +    public void setApplicationID(String applicationID) {
> +        this.applicationID = applicationID;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayProfile.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayProfile.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayProfile.java
> new file mode 100644
> index 0000000..eaad518
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GatewayProfile.java
> @@ -0,0 +1,43 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.Column;
> +import javax.persistence.Entity;
> +import javax.persistence.Id;
> +import javax.persistence.Table;
> +
> +@Entity
> +@Table(name = "GATEWAY_PROFILE")
> +public class GatewayProfile {
> +
> +    @Id
> +    @Column(name = "GATEWAY_ID")
> +    private String gatewayID;
> +    @Column(name = "GATEWAY_NAME")
> +    private String gatewayName;
> +    @Column(name = "GATEWAY_DESCRIPTION")
> +    private String gatewayDescription;
> +
> +    public String getGatewayID() {
> +        return gatewayID;
> +    }
> +
> +    public void setGatewayID(String gatewayID) {
> +        this.gatewayID = gatewayID;
> +    }
> +
> +    public String getGatewayName() {
> +        return gatewayName;
> +    }
> +
> +    public void setGatewayName(String gatewayName) {
> +        this.gatewayName = gatewayName;
> +    }
> +
> +    public String getGatewayDescription() {
> +        return gatewayDescription;
> +    }
> +
> +    public void setGatewayDescription(String gatewayDescription) {
> +        this.gatewayDescription = gatewayDescription;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GlobusJobSubmission.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GlobusJobSubmission.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GlobusJobSubmission.java
> new file mode 100644
> index 0000000..890d19f
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/GlobusJobSubmission.java
> @@ -0,0 +1,92 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "GLOBUS_SUBMISSION")
> +public class GlobusJobSubmission {
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Column(name = "RESOURCE_JOB_MANAGER")
> +    private String resourceJobManager;
> +    @Column(name = "SECURITY_PROTOCAL")
> +    private String securityProtocol;
> +    @Column(name = "GLOBUS_GATEKEEPER_EP")
> +    private String globusEP;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getResourceJobManager() {
> +        return resourceJobManager;
> +    }
> +
> +    public void setResourceJobManager(String resourceJobManager) {
> +        this.resourceJobManager = resourceJobManager;
> +    }
> +
> +    public String getSecurityProtocol() {
> +        return securityProtocol;
> +    }
> +
> +    public void setSecurityProtocol(String securityProtocol) {
> +        this.securityProtocol = securityProtocol;
> +    }
> +
> +    public String getGlobusEP() {
> +        return globusEP;
> +    }
> +
> +    public void setGlobusEP(String globusEP) {
> +        this.globusEP = globusEP;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/InputOutputs.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/InputOutputs.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/InputOutputs.java
> new file mode 100644
> index 0000000..8ca5450
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/InputOutputs.java
> @@ -0,0 +1,67 @@
> +package org.apache.airavata.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.Column;
> +import javax.persistence.Entity;
> +import javax.persistence.Id;
> +import javax.persistence.Table;
> +
> +@Entity
> +@Table(name = "GATEWAY_PROFILE")
> +public class InputOutputs {
> +
> +    @Id
> +    @Column(name = "INPUT_OUTPUT_ID")
> +    private String inputOutputID;
> +
> +    @Column(name = "INPUT_OUTPUT_NAME")
> +    private String inputOutputName;
> +
> +    @Column(name = "INPUT_OUTPUT_TYPE")
> +    private String inputOutputType;
> +
> +    @Column(name = "MAXSIZE")
> +    private int maxSize;
> +
> +    @Column(name = "MINSIZE")
> +    private int minSize;
> +
> +    public String getInputOutputID() {
> +        return inputOutputID;
> +    }
> +
> +    public void setInputOutputID(String inputOutputID) {
> +        this.inputOutputID = inputOutputID;
> +    }
> +
> +    public String getInputOutputName() {
> +        return inputOutputName;
> +    }
> +
> +    public void setInputOutputName(String inputOutputName) {
> +        this.inputOutputName = inputOutputName;
> +    }
> +
> +    public String getInputOutputType() {
> +        return inputOutputType;
> +    }
> +
> +    public void setInputOutputType(String inputOutputType) {
> +        this.inputOutputType = inputOutputType;
> +    }
> +
> +    public int getMaxSize() {
> +        return maxSize;
> +    }
> +
> +    public void setMaxSize(int maxSize) {
> +        this.maxSize = maxSize;
> +    }
> +
> +    public int getMinSize() {
> +        return minSize;
> +    }
> +
> +    public void setMinSize(int minSize) {
> +        this.minSize = minSize;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocol.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocol.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocol.java
> new file mode 100644
> index 0000000..6a46f40
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocol.java
> @@ -0,0 +1,76 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "JOB_SUBMISSION_PROTOCOL")
> +@IdClass(JobSubmissionProtocolPK.class)
> +public class JobSubmissionProtocol {
> +    @Id
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +
> +    @Id
> +    @Column(name = "JOB_TYPE")
> +    private String jobType;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getJobType() {
> +        return jobType;
> +    }
> +
> +    public void setJobType(String jobType) {
> +        this.jobType = jobType;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocolPK.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocolPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocolPK.java
> new file mode 100644
> index 0000000..5482d63
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/JobSubmissionProtocolPK.java
> @@ -0,0 +1,72 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +public class JobSubmissionProtocolPK {
> +    private String resourceID;
> +    private String submissionID;
> +    private String jobType;
> +
> +    public JobSubmissionProtocolPK(String resourceID, String submissionID, String jobType) {
> +        this.resourceID = resourceID;
> +        this.submissionID = submissionID;
> +        this.jobType = jobType;
> +    }
> +
> +    public JobSubmissionProtocolPK() {
> +        ;
> +    }
> +
> +    @Override
> +    public boolean equals(Object o) {
> +        return false;
> +    }
> +
> +    @Override
> +    public int hashCode() {
> +        return 1;
> +    }
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getJobType() {
> +        return jobType;
> +    }
> +
> +    public void setJobType(String jobType) {
> +        this.jobType = jobType;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SCPDataMovement.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SCPDataMovement.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SCPDataMovement.java
> new file mode 100644
> index 0000000..42c3e03
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SCPDataMovement.java
> @@ -0,0 +1,82 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "SCP_DATAMOVEMENT")
> +public class SCPDataMovement {
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "DATA_MOVE_ID")
> +    private String dataMoveID;
> +    @Column(name = "RESOURCE_JOB_MANAGER")
> +    private String resourceJobManager;
> +    @Column(name = "SSH_PORT")
> +    private int sshPort;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getDataMoveID() {
> +        return dataMoveID;
> +    }
> +
> +    public void setDataMoveID(String dataMoveID) {
> +        this.dataMoveID = dataMoveID;
> +    }
> +
> +    public String getResourceJobManager() {
> +        return resourceJobManager;
> +    }
> +
> +    public void setResourceJobManager(String resourceJobManager) {
> +        this.resourceJobManager = resourceJobManager;
> +    }
> +
> +    public int getSshPort() {
> +        return sshPort;
> +    }
> +
> +    public void setSshPort(int sshPort) {
> +        this.sshPort = sshPort;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SSHSubmission.java
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SSHSubmission.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SSHSubmission.java
> new file mode 100644
> index 0000000..1ef2c1e
> --- /dev/null
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/SSHSubmission.java
> @@ -0,0 +1,82 @@
> +/*
> + *
> + * 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.persistence.appcatalog.jpa.model;
> +
> +import javax.persistence.*;
> +
> +@Entity
> +@Table(name = "SSH_SUBMISSION")
> +public class SSHSubmission {
> +    @Column(name = "RESOURCE_ID")
> +    private String resourceID;
> +    @Id
> +    @Column(name = "SUBMISSION_ID")
> +    private String submissionID;
> +    @Column(name = "RESOURCE_JOB_MANAGER")
> +    private String resourceJobManager;
> +    @Column(name = "SSH_PORT")
> +    private int sshPort;
> +
> +    @ManyToOne(cascade= CascadeType.MERGE)
> +    @JoinColumn(name = "RESOURCE_ID")
> +    private ComputeResource computeResource;
> +
> +    public String getResourceID() {
> +        return resourceID;
> +    }
> +
> +    public void setResourceID(String resourceID) {
> +        this.resourceID = resourceID;
> +    }
> +
> +    public String getSubmissionID() {
> +        return submissionID;
> +    }
> +
> +    public void setSubmissionID(String submissionID) {
> +        this.submissionID = submissionID;
> +    }
> +
> +    public String getResourceJobManager() {
> +        return resourceJobManager;
> +    }
> +
> +    public void setResourceJobManager(String resourceJobManager) {
> +        this.resourceJobManager = resourceJobManager;
> +    }
> +
> +    public int getSshPort() {
> +        return sshPort;
> +    }
> +
> +    public void setSshPort(int sshPort) {
> +        this.sshPort = sshPort;
> +    }
> +
> +    public ComputeResource getComputeResource() {
> +        return computeResource;
> +    }
> +
> +    public void setComputeResource(ComputeResource computeResource) {
> +        this.computeResource = computeResource;
> +    }
> +}
> 
> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/resources/appcatalog-mysql_new.sql
> ----------------------------------------------------------------------
> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/resources/appcatalog-mysql_new.sql b/modules/app-catalog/app-catalog-jpa/src/main/resources/appcatalog-mysql_new.sql
> index 802f3d4..df36eb9 100644
> --- a/modules/app-catalog/app-catalog-jpa/src/main/resources/appcatalog-mysql_new.sql
> +++ b/modules/app-catalog/app-catalog-jpa/src/main/resources/appcatalog-mysql_new.sql
> @@ -53,12 +53,12 @@ CREATE TABLE GATEWAY_APPLICATIONS
> 
> CREATE TABLE INPUT_OUTPUTS
> (
> -        ID VARCHAR (255),
> -        NAME VARCHAR (255),
> -        TYPE VARCHAR (255),
> +        INPUT_OUTPUT_ID VARCHAR (255),
> +        INPUT_OUTPUT_NAME VARCHAR (255),
> +        INPUT_OUTPUT_TYPE VARCHAR (255),
>         MAXSIZE INTEGER ,
>         MINSIZE INTEGER ,
> -        PRIMARY KEY (ID)
> +        PRIMARY KEY (INPUT_OUTPUT_ID)
> 
> );
> 
> @@ -69,7 +69,7 @@ CREATE TABLE APPLICATION_INPUT_OUTPUTS
>         IS_INPUT BOOLEAN,
>         PRIMARY KEY (APPLICATION_ID,INPUT_OUTPUT_ID),
>         FOREIGN KEY (APPLICATION_ID) REFERENCES APPLICATION(APPLICATION_ID) ON DELETE CASCADE,
> -        FOREIGN KEY (INPUT_OUTPUT_ID) REFERENCES INPUT_OUTPUTS(ID) ON DELETE CASCADE
> +        FOREIGN KEY (INPUT_OUTPUT_ID) REFERENCES INPUT_OUTPUTS(INPUT_OUTPUT_ID) ON DELETE CASCADE
> 
> );
> 
> @@ -79,7 +79,6 @@ CREATE TABLE COMPUTE_RESOURCE
>          HOST_NAME VARCHAR(255),
>          IP_ADDRESS VARCHAR(255),
>          DESCRIPTION VARCHAR(255),
> -         SCRATCH_LOCATION VARCHAR(255),
>          PREFERRED_JOB_SUBMISSION_PROTOCOL VARCHAR(255),
>          PRIMARY KEY(RESOURCE_ID)
> );
> @@ -90,13 +89,14 @@ CREATE TABLE DEPLOYMENT
>         DEPLOYMENT_ID VARCHAR (255),
>         COMPUTE_RESOURCE_ID VARCHAR (255),
>         DEPLOYMENT_HOST_NAME VARCHAR (255),
> -        INPUT_DIR_ID VARCHAR (255),
> +        INPUT_DIR VARCHAR (255),
>         ERROR_DIR VARCHAR (255),
>         OUTPUT_DIR VARCHAR (255),
>         SCRATCH_DIR VARCHAR (255),
>         EXECUTION_PATH VARCHAR (255),
>         CPU_COUNT SMALLINT ,
>         NODE_COUNT SMALLINT ,
> +        WALLCOUNT SMALLINT ,
>         PRIMARY KEY (DEPLOYMENT_ID),
>         FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
> 
> 


Re: git commit: adding app catalog data models

Posted by Sachith Withana <sw...@gmail.com>.
No Suresh. This will not affect the 0.12 release.  

I still have to commit the resource layer along with the tests. 

Thanks,
Sachith Withana

> On Jun 21, 2014, at 12:49 AM, Suresh Marru <sm...@apache.org> wrote:
> 
> Sachith,
> 
> I am assuming this will not break the 0.12 release? I haven’t tested this, but just being watchful for commits between RC1 and the release. 
> 
> Suresh
> 
>> On Jun 19, 2014, at 11:34 PM, sachith@apache.org wrote:
>> 
>> Repository: airavata
>> Updated Branches:
>> refs/heads/master 2bcadf554 -> 48cd362a5
>> 
>> 
>> adding app catalog data models
>> 
>> 
>> Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/48cd362a
>> Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/48cd362a
>> Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/48cd362a
>> 
>> Branch: refs/heads/master
>> Commit: 48cd362a54293593d140c7ccd806c9f1be8283d4
>> Parents: 2bcadf5
>> Author: Sachith Withana <sa...@apache.org>
>> Authored: Fri Jun 20 09:06:29 2014 +0530
>> Committer: Sachith Withana <sa...@apache.org>
>> Committed: Fri Jun 20 09:06:29 2014 +0530
>> 
>> ----------------------------------------------------------------------
>> .../appcatalog/jpa/model/Application.java       |  77 ++++++++++++
>> .../jpa/model/ApplicationDeployment.java        |  29 +++++
>> .../jpa/model/ApplicationDeploymentPk.java      |  40 ++++++
>> .../jpa/model/ApplicationInputOutputs.java      |  68 ++++++++++
>> .../jpa/model/ApplicationInputOutputsPK.java    |  39 ++++++
>> .../appcatalog/jpa/model/ComputeResource.java   |  68 ++++++++++
>> .../jpa/model/DataMovementProtocol.java         |  75 +++++++++++
>> .../jpa/model/DataMovementProtocolPK.java       |  72 +++++++++++
>> .../appcatalog/jpa/model/Deployment.java        | 124 +++++++++++++++++++
>> .../appcatalog/jpa/model/GSISSHExport.java      |  64 ++++++++++
>> .../appcatalog/jpa/model/GSISSHExportPK.java    |  62 ++++++++++
>> .../jpa/model/GSISSHPostJobCommand.java         |  66 ++++++++++
>> .../jpa/model/GSISSHPostJobCommandPK.java       |  62 ++++++++++
>> .../jpa/model/GSISSHPreJobCommand.java          |  64 ++++++++++
>> .../jpa/model/GSISSHPreJobCommandPK.java        |  62 ++++++++++
>> .../appcatalog/jpa/model/GSISSHSubmission.java  | 102 +++++++++++++++
>> .../jpa/model/GatewayApplications.java          |  68 ++++++++++
>> .../jpa/model/GatewayApplicationsPK.java        |  40 ++++++
>> .../appcatalog/jpa/model/GatewayProfile.java    |  43 +++++++
>> .../jpa/model/GlobusJobSubmission.java          |  92 ++++++++++++++
>> .../appcatalog/jpa/model/InputOutputs.java      |  67 ++++++++++
>> .../jpa/model/JobSubmissionProtocol.java        |  76 ++++++++++++
>> .../jpa/model/JobSubmissionProtocolPK.java      |  72 +++++++++++
>> .../appcatalog/jpa/model/SCPDataMovement.java   |  82 ++++++++++++
>> .../appcatalog/jpa/model/SSHSubmission.java     |  82 ++++++++++++
>> .../src/main/resources/appcatalog-mysql_new.sql |  14 +--
>> 26 files changed, 1703 insertions(+), 7 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
>> new file mode 100644
>> index 0000000..8c64d0c
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/Application.java
>> @@ -0,0 +1,77 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +import javax.persistence.*;
>> +
>> +@Entity
>> +@Table(name = "GATEWAY_PROFILE")
>> +public class Application {
>> +
>> +    @Id
>> +    @Column(name = "APPLICATION_ID")
>> +    private String applicationID;
>> +    @Column(name = "APPLICATION_NAME")
>> +    private String applicationName;
>> +
>> +    // the gateway that owns the application
>> +    @Column(name = "GATEWAY_ID")
>> +    private String gatewayID;
>> +
>> +    //whether the appliation is publicly available or not
>> +    @Column(name = "IS_PUBLIC")
>> +    private boolean published;
>> +    @Column(name = "APPLICATION_DESCRIPTION")
>> +    private String applicationDescription;
>> +
>> +
>> +    @ManyToOne(cascade= CascadeType.MERGE)
>> +    @JoinColumn(name = "GATEWAY_ID")
>> +    private GatewayProfile gatewayProfile;
>> +
>> +    public GatewayProfile getGatewayProfile() {
>> +        return gatewayProfile;
>> +    }
>> +
>> +    public void setGatewayProfile(GatewayProfile gatewayProfile) {
>> +        this.gatewayProfile = gatewayProfile;
>> +    }
>> +
>> +    public String getApplicationID() {
>> +        return applicationID;
>> +    }
>> +
>> +    public void setApplicationID(String applicationID) {
>> +        this.applicationID = applicationID;
>> +    }
>> +
>> +    public String getApplicationName() {
>> +        return applicationName;
>> +    }
>> +
>> +    public void setApplicationName(String applicationName) {
>> +        this.applicationName = applicationName;
>> +    }
>> +
>> +    public String getGatewayID() {
>> +        return gatewayID;
>> +    }
>> +
>> +    public void setGatewayID(String gatewayID) {
>> +        this.gatewayID = gatewayID;
>> +    }
>> +
>> +    public boolean isPublished() {
>> +        return published;
>> +    }
>> +
>> +    public void setPublished(boolean published) {
>> +        this.published = published;
>> +    }
>> +
>> +    public String getApplicationDescription() {
>> +        return applicationDescription;
>> +    }
>> +
>> +    public void setApplicationDescription(String applicationDescription) {
>> +        this.applicationDescription = applicationDescription;
>> +    }
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
>> new file mode 100644
>> index 0000000..a1290d3
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeployment.java
>> @@ -0,0 +1,29 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +import javax.persistence.*;
>> +
>> +@Entity
>> +@Table(name = "GATEWAY_PROFILE")
>> +@IdClass(ApplicationDeploymentPK.class)
>> +public class ApplicationDeployment {
>> +
>> +    @Id
>> +    @Column(name = "DEPLOYMENT_ID")
>> +    private String deploymentID;
>> +
>> +    @Id
>> +    @Column(name = "APPLICATION_ID")
>> +    private String applicationID;
>> +
>> +    @Column(name = "DEPLOYMENT_HOST_NAME")
>> +    private String deploymentHostName;
>> +
>> +
>> +    @ManyToOne(cascade = CascadeType.REMOVE)
>> +    @JoinColumn(name = "DEPLOYMENT_ID")
>> +    private Deployment deployment;
>> +
>> +    @ManyToOne(cascade = CascadeType.REMOVE)
>> +    @JoinColumn(name = "APPLICATION_ID")
>> +    private Application application;
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
>> new file mode 100644
>> index 0000000..a5695aa
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationDeploymentPk.java
>> @@ -0,0 +1,40 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +public class ApplicationDeploymentPK {
>> +    private String deploymentID;
>> +    private String applicationID;
>> +
>> +    public ApplicationDeploymentPK(String deploymentID, String applicationID) {
>> +        this.deploymentID = deploymentID;
>> +        this.applicationID = applicationID;
>> +    }
>> +
>> +    public ApplicationDeploymentPK() {
>> +    }
>> +
>> +    @Override
>> +    public boolean equals(Object o) {
>> +        return false;
>> +    }
>> +
>> +    @Override
>> +    public int hashCode() {
>> +        return 1;
>> +    }
>> +
>> +    public String getDeploymentID() {
>> +        return deploymentID;
>> +    }
>> +
>> +    public void setDeploymentID(String deploymentID) {
>> +        this.deploymentID = deploymentID;
>> +    }
>> +
>> +    public String getApplicationID() {
>> +        return applicationID;
>> +    }
>> +
>> +    public void setApplicationID(String applicationID) {
>> +        this.applicationID = applicationID;
>> +    }
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
>> new file mode 100644
>> index 0000000..2d3fed1
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputs.java
>> @@ -0,0 +1,68 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +import javax.persistence.*;
>> +
>> +@Entity
>> +@Table(name = "APPLICATION_INPUT_OUTPUTS")
>> +@IdClass(ApplicationInputOutputsPK.class)
>> +public class ApplicationInputOutputs {
>> +
>> +    @Id
>> +    @Column(name = "APPLICATION_ID")
>> +    private String applicationID;
>> +
>> +    @Id
>> +    @Column(name = "INPUT_OUTPUT_ID")
>> +    private String inputOutputID;
>> +
>> +    @Column(name = "IS_INPUT")
>> +    private boolean input;
>> +
>> +    @OneToOne(cascade = CascadeType.REMOVE)
>> +    @JoinColumn(name = "INPUT_OUTPUT_ID")
>> +    private InputOutputs inputOutputs;
>> +
>> +    @ManyToOne(cascade = CascadeType.REMOVE)
>> +    @JoinColumn(name = "APPLICATION_ID")
>> +    private Application application;
>> +
>> +    public String getApplicationID() {
>> +        return applicationID;
>> +    }
>> +
>> +    public void setApplicationID(String applicationID) {
>> +        this.applicationID = applicationID;
>> +    }
>> +
>> +    public String getInputOutputID() {
>> +        return inputOutputID;
>> +    }
>> +
>> +    public void setInputOutputID(String inputOutputID) {
>> +        this.inputOutputID = inputOutputID;
>> +    }
>> +
>> +    public boolean isInput() {
>> +        return input;
>> +    }
>> +
>> +    public void setInput(boolean input) {
>> +        this.input = input;
>> +    }
>> +
>> +    public InputOutputs getInputOutputs() {
>> +        return inputOutputs;
>> +    }
>> +
>> +    public void setInputOutputs(InputOutputs inputOutputs) {
>> +        this.inputOutputs = inputOutputs;
>> +    }
>> +
>> +    public Application getApplication() {
>> +        return application;
>> +    }
>> +
>> +    public void setApplication(Application application) {
>> +        this.application = application;
>> +    }
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
>> new file mode 100644
>> index 0000000..715b5be
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ApplicationInputOutputsPK.java
>> @@ -0,0 +1,39 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +public class ApplicationInputOutputsPK {
>> +    private String applicationID;
>> +    private String inputOutputID;
>> +
>> +    public ApplicationInputOutputsPK(String applicationID, String inputOutputID) {
>> +        this.applicationID = applicationID;
>> +        this.inputOutputID = inputOutputID;
>> +    }
>> +
>> +    public ApplicationInputOutputsPK() {
>> +    }
>> +    @Override
>> +    public boolean equals(Object o) {
>> +        return false;
>> +    }
>> +
>> +    @Override
>> +    public int hashCode() {
>> +        return 1;
>> +    }
>> +
>> +    public String getApplicationID() {
>> +        return applicationID;
>> +    }
>> +
>> +    public void setApplicationID(String applicationID) {
>> +        this.applicationID = applicationID;
>> +    }
>> +
>> +    public String getInputOutputID() {
>> +        return inputOutputID;
>> +    }
>> +
>> +    public void setInputOutputID(String inputOutputID) {
>> +        this.inputOutputID = inputOutputID;
>> +    }
>> +}
>> 
>> http://git-wip-us.apache.org/repos/asf/airavata/blob/48cd362a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
>> ----------------------------------------------------------------------
>> diff --git a/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
>> new file mode 100644
>> index 0000000..b9cc227
>> --- /dev/null
>> +++ b/modules/app-catalog/app-catalog-jpa/src/main/java/org/apache/airavata/persistence/appcatalog/jpa/model/ComputeResource.java
>> @@ -0,0 +1,68 @@
>> +package org.apache.airavata.persistence.appcatalog.jpa.model;
>> +
>> +import javax.persistence.Column;
>> +import javax.persistence.Entity;
>> +import javax.persistence.Id;
>> +import javax.persistence.Table;
>> +
>> +@Entity
>> +@Table(name = "COMPUTE_RESOURCE")
>> +public class ComputeResource {
>> +
>> +
>> +    @Id
>> +    @Column(name = "RESOURCE_ID")
>> +    private String applicationID;
>> +
>> +    @Column(name = "HOST_NAME")
>> +    private String hostname;
>> +
>> +    @Column(name = "IP_ADDRESS")
>> +    private String ipAddress;
>> +
>> +    @Column(name = "DESCRIPTION")
>> +    private String description;
>> +
>> +    @Column(name = "PREFERRED_JOB_SUBMISSION_PROTOCOL ")
>> +    private String preferredJobSubmissionProtocol;
>> +
>> +    public String getApplicationID() {
>> +        return applicationID;
>> +    }
>> +
>> +    public void setApplicationID(String applicationID) {
>> +        this.applicationID = applicationID;
>> +    }
>> +
>> +    public String getHostname() {
>> +        return hostname;
>> +    }
>> +
>> +    public void setHostname(String hostname) {
>> +        this.hostname = hostname;
>> +    }
>> +
>> +    public String getIpAddress() {
>> +        return ipAddress;
>> +    }
>> +
>> +    public void setIpAddress(String ipAddress) {
>> +        this.ipAddress = ipAddress;
>> +    }
>> +
>> +    public String getDescription() {
>> +        return description;
>> +    }
>> +
>> +    public void setDescription(String description) {
>> +        th