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 2016/09/29 12:45:10 UTC

[33/50] [abbrv] airavata git commit: intitializing credenital store db using JPA models

intitializing credenital store db using JPA models


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/06ef33f9
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/06ef33f9
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/06ef33f9

Branch: refs/heads/lahiru/AIRAVATA-2065
Commit: 06ef33f94328c2c7d59f52bc01756a688ea25744
Parents: 875fc27
Author: scnakandala <su...@gmail.com>
Authored: Thu Sep 15 14:40:23 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Thu Sep 15 14:40:42 2016 -0400

----------------------------------------------------------------------
 .../main/resources/airavata-server.properties   |  1 +
 .../credential-store-service/pom.xml            | 19 +++--
 .../store/server/CredentialStoreServer.java     |  4 +
 modules/registry/registry-core/pom.xml          |  5 --
 .../credential/catalog/model/CommunityUser.java | 72 +++++++++++++++++
 .../catalog/model/CommunityUser_Pk.java         | 63 +++++++++++++++
 .../credential/catalog/model/Configuration.java | 54 +++++++++++++
 .../catalog/model/Configuration_PK.java         | 60 ++++++++++++++
 .../credential/catalog/model/Credential.java    | 83 ++++++++++++++++++++
 .../credential/catalog/model/Credential_PK.java | 55 +++++++++++++
 .../catalog/util/CredentialCatalogJPAUtils.java | 82 +++++++++++++++++++
 .../replica/catalog/model/Configuration.java    |  1 -
 .../replica/catalog/model/Configuration_PK.java | 65 +++++++++++++++
 .../src/main/resources/META-INF/persistence.xml |  8 ++
 .../src/main/resources/credstore-derby.sql      | 12 ++-
 .../src/main/resources/credstore-mysql.sql      | 12 ++-
 16 files changed, 581 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index 2ce3701..30a6338 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -190,6 +190,7 @@ credential.store.jdbc.url=jdbc:derby://localhost:1527/credential-store;create=tr
 credential.store.jdbc.user=airavata
 credential.store.jdbc.password=airavata
 credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+credential.store.jdbc.validationQuery=SELECT 1 from CONFIGURATION
 credential.store.server.host=localhost
 credential.store.server.port=8960
 credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/credential-store/credential-store-service/pom.xml
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/pom.xml b/modules/credential-store/credential-store-service/pom.xml
index 57d5155..7c03c4f 100644
--- a/modules/credential-store/credential-store-service/pom.xml
+++ b/modules/credential-store/credential-store-service/pom.xml
@@ -11,7 +11,8 @@
 	OF ANY ~ KIND, either express or implied. See the License for the specific 
 	language governing permissions and limitations under the License. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.airavata</groupId>
         <artifactId>airavata</artifactId>
@@ -62,11 +63,11 @@
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>5.1.34</version>
-        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>mysql</groupId>-->
+        <!--<artifactId>mysql-connector-java</artifactId>-->
+        <!--<version>5.1.34</version>-->
+        <!--</dependency>-->
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
@@ -78,6 +79,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>
             <version>${derby.version}</version>
@@ -157,7 +163,6 @@
                     <testSourceDirectory>${basedir}\src\test\java\</testSourceDirectory>
                 </configuration>
             </plugin>
-
         </plugins>
         <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
         <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServer.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServer.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServer.java
index 5ccec02..0829fda 100644
--- a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServer.java
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServer.java
@@ -24,6 +24,7 @@ package org.apache.airavata.credential.store.server;
 import org.apache.airavata.common.utils.IServer;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.registry.core.credential.catalog.util.CredentialCatalogJPAUtils;
 import org.apache.thrift.server.TServer;
 import org.apache.thrift.server.TThreadPoolServer;
 import org.apache.thrift.transport.TServerSocket;
@@ -107,6 +108,9 @@ public class CredentialStoreServer  implements IServer {
 
     public static void main(String[] args) {
         try {
+            //Initializing the database;
+            CredentialCatalogJPAUtils.getEntityManager();
+
             new CredentialStoreServer().start();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/pom.xml b/modules/registry/registry-core/pom.xml
index aa9a61b..1bea32f 100644
--- a/modules/registry/registry-core/pom.xml
+++ b/modules/registry/registry-core/pom.xml
@@ -56,11 +56,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-credential-store</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
             <artifactId>airavata-data-models</artifactId>
             <version>${project.version}</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser.java
new file mode 100644
index 0000000..24a9669
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser.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.registry.core.credential.catalog.model;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name ="COMMUNITY_USER")
+@IdClass(CommunityUser_PK.class)
+public class CommunityUser {
+    private String gatewayId;
+    private String communityUserName;
+    private String tokenId;
+    private String communityUserEmail;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    @Id
+    @Column(name = "COMMUNITY_USER_NAME")
+    public String getCommunityUserName() {
+        return communityUserName;
+    }
+
+    public void setCommunityUserName(String communityUserName) {
+        this.communityUserName = communityUserName;
+    }
+
+    @Id
+    @Column(name = "TOKEN_ID")
+    public String getTokenId() {
+        return tokenId;
+    }
+
+    public void setTokenId(String tokenId) {
+        this.tokenId = tokenId;
+    }
+
+    @Column(name = "COMMUNITY_USER_EMAIL")
+    public String getCommunityUserEmail() {
+        return communityUserEmail;
+    }
+
+    public void setCommunityUserEmail(String communityUserEmail) {
+        this.communityUserEmail = communityUserEmail;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser_Pk.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser_Pk.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser_Pk.java
new file mode 100644
index 0000000..47988c2
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/CommunityUser_Pk.java
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.registry.core.credential.catalog.model;
+
+import java.io.Serializable;
+
+public class CommunityUser_PK implements Serializable{
+    private String gatewayId;
+    private String communityUserName;
+    private String tokenId;
+
+    @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 getCommunityUserName() {
+        return communityUserName;
+    }
+
+    public void setCommunityUserName(String communityUserName) {
+        this.communityUserName = communityUserName;
+    }
+
+    public String getTokenId() {
+        return tokenId;
+    }
+
+    public void setTokenId(String tokenId) {
+        this.tokenId = tokenId;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration.java
new file mode 100644
index 0000000..281a3a1
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration.java
@@ -0,0 +1,54 @@
+/*
+*
+* 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.registry.core.credential.catalog.model;
+
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name ="CONFIGURATION")
+@IdClass(Configuration_PK.class)
+public class Configuration implements Serializable {
+    @Id
+    @Column(name = "CONFIG_KEY")
+    private String config_key;
+
+    @Id
+    @Column(name = "CONFIG_VAL")
+    private String config_val;
+
+    public String getConfig_key() {
+        return config_key;
+    }
+
+    public String getConfig_val() {
+        return config_val;
+    }
+
+    public void setConfig_key(String config_key) {
+        this.config_key = config_key;
+    }
+
+    public void setConfig_val(String config_val) {
+        this.config_val = config_val;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration_PK.java
new file mode 100644
index 0000000..1a18aea
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Configuration_PK.java
@@ -0,0 +1,60 @@
+/*
+ *
+ * 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.registry.core.credential.catalog.model;
+
+import java.io.Serializable;
+
+public class Configuration_PK implements Serializable {
+    private String config_key;
+    private String config_val;
+
+    public Configuration_PK() {
+        ;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getConfig_key() {
+        return config_key;
+    }
+
+    public void setConfig_key(String config_key) {
+        this.config_key = config_key;
+    }
+
+    public void setConfig_val(String config_val) {
+        this.config_val = config_val;
+    }
+
+    public String getConfig_val() {
+        return config_val;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential.java
new file mode 100644
index 0000000..ed146f7
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential.java
@@ -0,0 +1,83 @@
+/*
+ *
+ * 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.registry.core.credential.catalog.model;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name ="CREDENTIAL")
+@IdClass(Credential_PK.class)
+public class Credential {
+    private String gatewayId;
+    private String tokenId;
+    private Byte[] credential;
+    private String portalUserId;
+    private Timestamp timePersisted;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    @Id
+    @Column(name = "TOKEN_ID")
+    public String getTokenId() {
+        return tokenId;
+    }
+
+    public void setTokenId(String tokenId) {
+        this.tokenId = tokenId;
+    }
+
+    @Lob
+    @Column(name = "CREDENTIAL")
+    public Byte[] getCredential() {
+        return credential;
+    }
+
+    public void setCredential(Byte[] credential) {
+        this.credential = credential;
+    }
+
+    @Column(name = "PORTAL_USER_ID")
+    public String getPortalUserId() {
+        return portalUserId;
+    }
+
+    public void setPortalUserId(String portalUserId) {
+        this.portalUserId = portalUserId;
+    }
+
+    @Column(name = "TIME_PERSISTED")
+    public Timestamp getTimePersisted() {
+        return timePersisted;
+    }
+
+    public void setTimePersisted(Timestamp timePersisted) {
+        this.timePersisted = timePersisted;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential_PK.java
new file mode 100644
index 0000000..a9db85f
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/model/Credential_PK.java
@@ -0,0 +1,55 @@
+/*
+ *
+ * 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.registry.core.credential.catalog.model;
+
+import java.io.Serializable;
+
+public class Credential_PK implements Serializable{
+    private String gatewayId;
+    private String tokenId;
+
+
+    @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 getTokenId() {
+        return tokenId;
+    }
+
+    public void setTokenId(String tokenId) {
+        this.tokenId = tokenId;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/util/CredentialCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/util/CredentialCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/util/CredentialCatalogJPAUtils.java
new file mode 100644
index 0000000..5a509c7
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/credential/catalog/util/CredentialCatalogJPAUtils.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.registry.core.credential.catalog.util;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.*;
+import java.util.HashMap;
+import java.util.Map;
+
+public class CredentialCatalogJPAUtils {
+    private final static Logger logger = LoggerFactory.getLogger(CredentialCatalogJPAUtils.class);
+
+    private static final String PERSISTENCE_UNIT_NAME = "credentialcatalog_data";
+    private static final String CREDCATALOG_JDBC_DRIVER = "credential.store.jdbc.driver";
+    private static final String CREDCATALOG_JDBC_URL = "credential.store.jdbc.url";
+    private static final String CREDCATALOG_JDBC_USER = "credential.store.jdbc.user";
+    private static final String CREDCACATALOG_JDBC_PWD = "credential.store.jdbc.password";
+    private static final String CREDCACATALOG_VALIDATION_QUERY = "credential.store.jdbc.validationQuery";
+
+    @PersistenceUnit(unitName="credentialcatalog_data")
+    protected static EntityManagerFactory factory;
+
+    @PersistenceContext(unitName="credentialcatalog_data")
+    private static EntityManager credCatEntityManager;
+
+    public static EntityManager getEntityManager() throws ApplicationSettingsException {
+        if (factory == null) {
+            String connectionProperties = "DriverClassName=" + readServerProperties(CREDCATALOG_JDBC_DRIVER) + "," +
+                    "Url=" + readServerProperties(CREDCATALOG_JDBC_URL) + "?autoReconnect=true," +
+                    "Username=" + readServerProperties(CREDCATALOG_JDBC_USER) + "," +
+                    "Password=" + readServerProperties(CREDCACATALOG_JDBC_PWD) +
+                    ",validationQuery=" + readServerProperties(CREDCACATALOG_VALIDATION_QUERY);
+            System.out.println(connectionProperties);
+            Map<String, String> properties = new HashMap<String, String>();
+            properties.put("openjpa.ConnectionDriverName", "org.apache.commons.dbcp.BasicDataSource");
+            properties.put("openjpa.ConnectionProperties", connectionProperties);
+            properties.put("openjpa.DynamicEnhancementAgent", "true");
+            properties.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
+            properties.put("openjpa.RemoteCommitProvider","sjvm");
+            properties.put("openjpa.Log","DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=INFO");
+            properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
+            properties.put("openjpa.jdbc.QuerySQLCache", "false");
+            properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72," +
+                    " PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=31536000,  autoReconnect=true");
+            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties);
+        }
+        credCatEntityManager = factory.createEntityManager();
+        return credCatEntityManager;
+    }
+
+    private static String readServerProperties (String propertyName) throws ApplicationSettingsException {
+        try {
+            return ServerSettings.getSetting(propertyName);
+        } catch (ApplicationSettingsException e) {
+            logger.error("Unable to read airavata-server.properties...", e);
+            throw new ApplicationSettingsException("Unable to read airavata-server.properties...");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
index 881d043..8564d24 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration.java
@@ -20,7 +20,6 @@
 */
 package org.apache.airavata.registry.core.replica.catalog.model;
 
-import org.apache.airavata.registry.core.app.catalog.model.Configuration_PK;
 
 import javax.persistence.*;
 import java.io.Serializable;

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration_PK.java
new file mode 100644
index 0000000..5769478
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/replica/catalog/model/Configuration_PK.java
@@ -0,0 +1,65 @@
+/*
+ *
+ * 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.registry.core.replica.catalog.model;
+
+import java.io.Serializable;
+
+public class Configuration_PK implements Serializable {
+    private String config_key;
+    private String config_val;
+
+    public Configuration_PK(String config_key, String config_val) {
+        this.config_key = config_key;
+        this.config_val = config_val;
+    }
+
+    public Configuration_PK() {
+        ;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getConfig_key() {
+        return config_key;
+    }
+
+    public void setConfig_key(String config_key) {
+        this.config_key = config_key;
+    }
+
+    public void setConfig_val(String config_val) {
+        this.config_val = config_val;
+    }
+
+    public String getConfig_val() {
+        return config_val;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
index e502ae2..af23674 100644
--- a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
@@ -95,6 +95,7 @@
     </persistence-unit>
     <persistence-unit name="replicacatalog_data">
         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+        <class>org.apache.airavata.registry.core.replica.catalog.model.Configuration</class>
         <class>org.apache.airavata.registry.core.replica.catalog.model.DataProduct</class>
         <class>org.apache.airavata.registry.core.replica.catalog.model.DataReplicaLocation</class>
         <class>org.apache.airavata.registry.core.replica.catalog.model.DataProductMetaData</class>
@@ -114,4 +115,11 @@
         <class>org.apache.airavata.registry.core.workflow.catalog.model.WorkflowStatus</class>
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
+    <persistence-unit name="credentialcatalog_data">
+        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+        <class>org.apache.airavata.registry.core.credential.catalog.model.CommunityUser</class>
+        <class>org.apache.airavata.registry.core.credential.catalog.model.Configuration</class>
+        <class>org.apache.airavata.registry.core.credential.catalog.model.Credential</class>
+        <exclude-unlisted-classes>true</exclude-unlisted-classes>
+    </persistence-unit>
 </persistence>

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/resources/credstore-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/credstore-derby.sql b/modules/registry/registry-core/src/main/resources/credstore-derby.sql
index 9403cfd..bdae2bd 100644
--- a/modules/registry/registry-core/src/main/resources/credstore-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/credstore-derby.sql
@@ -36,4 +36,14 @@ CREATE TABLE CREDENTIALS
         PORTAL_USER_ID VARCHAR(256) NOT NULL,
         TIME_PERSISTED TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
         PRIMARY KEY (GATEWAY_ID, TOKEN_ID)
-);
\ No newline at end of file
+);
+
+CREATE TABLE CONFIGURATION
+(
+          CONFIG_KEY VARCHAR(255),
+          CONFIG_VAL VARCHAR(255),
+          PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
+);
+
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.16');
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/06ef33f9/modules/registry/registry-core/src/main/resources/credstore-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/credstore-mysql.sql b/modules/registry/registry-core/src/main/resources/credstore-mysql.sql
index df9e2bc..3d924ce 100644
--- a/modules/registry/registry-core/src/main/resources/credstore-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/credstore-mysql.sql
@@ -36,4 +36,14 @@ CREATE TABLE CREDENTIALS
         PORTAL_USER_ID VARCHAR(256) NOT NULL,
         TIME_PERSISTED TIMESTAMP DEFAULT NOW() ON UPDATE NOW(),
         PRIMARY KEY (GATEWAY_ID, TOKEN_ID)
-);
\ No newline at end of file
+);
+
+CREATE TABLE CONFIGURATION
+(
+          CONFIG_KEY VARCHAR(255),
+          CONFIG_VAL VARCHAR(255),
+          PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
+);
+
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.16');
+