http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusGKEndpointResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusGKEndpointResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusGKEndpointResource.java
new file mode 100644
index 0000000..1fda19f
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusGKEndpointResource.java
@@ -0,0 +1,323 @@
+/**
+ * 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.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.GlobusGKEndPointPK;
+import org.apache.airavata.registry.core.app.catalog.model.GlobusGKEndpoint;
+import org.apache.airavata.registry.core.app.catalog.model.GlobusJobSubmission;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class GlobusGKEndpointResource extends AppCatAbstractResource {
+    private final static Logger logger = 
LoggerFactory.getLogger(GlobusGKEndpointResource.class);
+
+    private String submissionID;
+    private String endpoint;
+
+    private GlobusJobSubmissionResource globusJobSubmissionResource;
+
+
+    public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_GK_ENDPOINT);
+            generator.setParameter(GlobusEPConstants.ENDPOINT, 
ids.get(GlobusEPConstants.ENDPOINT));
+            generator.setParameter(GlobusEPConstants.SUBMISSION_ID, 
ids.get(GlobusEPConstants.SUBMISSION_ID));
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_GK_ENDPOINT);
+            generator.setParameter(GlobusEPConstants.SUBMISSION_ID, 
ids.get(GlobusEPConstants.SUBMISSION_ID));
+            generator.setParameter(GlobusEPConstants.ENDPOINT, 
ids.get(GlobusEPConstants.ENDPOINT));
+            Query q = generator.selectQuery(em);
+            GlobusGKEndpoint gkEndpoint = (GlobusGKEndpoint) 
q.getSingleResult();
+            GlobusGKEndpointResource gkEndpointResource =
+                    (GlobusGKEndpointResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GLOBUS_GK_ENDPOINT, 
gkEndpoint);
+            em.getTransaction().commit();
+            em.close();
+            return gkEndpointResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public List<AppCatalogResource> get(String fieldName, Object value) throws 
AppCatalogException {
+        List<AppCatalogResource> resources = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_GK_ENDPOINT);
+            List results;
+            if (fieldName.equals(GlobusEPConstants.ENDPOINT)) {
+                generator.setParameter(GlobusEPConstants.ENDPOINT, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusGKEndpoint gkEndpoint = (GlobusGKEndpoint) 
result;
+                        GlobusGKEndpointResource gkEndpointResource =
+                                (GlobusGKEndpointResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GLOBUS_GK_ENDPOINT, 
gkEndpoint);
+                        resources.add(gkEndpointResource);
+                    }
+                }
+            } else if (fieldName.equals(GlobusEPConstants.SUBMISSION_ID)) {
+                generator.setParameter(GlobusEPConstants.SUBMISSION_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusGKEndpoint globusGKEndpoint = (GlobusGKEndpoint) 
result;
+                        GlobusGKEndpointResource gkEndpointResource =
+                                (GlobusGKEndpointResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GLOBUS_GK_ENDPOINT, 
globusGKEndpoint);
+                        resources.add(gkEndpointResource);
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Globus Endpoint 
Resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Globus Endpoint Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return resources;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        List<String> list = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_GK_ENDPOINT);
+            List results;
+            if (fieldName.equals(GlobusEPConstants.SUBMISSION_ID)) {
+                generator.setParameter(GlobusEPConstants.SUBMISSION_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusGKEndpoint globusGKEndpoint = (GlobusGKEndpoint) 
result;
+                        list.add(globusGKEndpoint.getSubmissionID());
+                    }
+                }
+            } else if (fieldName.equals(GlobusEPConstants.ENDPOINT)) {
+                generator.setParameter(GlobusEPConstants.ENDPOINT, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusGKEndpoint globusGKEndpoint = (GlobusGKEndpoint) 
result;
+                        list.add(globusGKEndpoint.getSubmissionID());
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Globus EP resource.", 
new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Globus EP Resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return list;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            GlobusGKEndpoint existingGlobusEP = 
em.find(GlobusGKEndpoint.class, new GlobusGKEndPointPK(submissionID, endpoint));
+            em.close();
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            GlobusJobSubmission globusJobSubmission = 
em.find(GlobusJobSubmission.class, submissionID);
+            if (existingGlobusEP != null) {
+                existingGlobusEP.setSubmissionID(submissionID);
+                existingGlobusEP.setEndpoint(endpoint);
+                existingGlobusEP.setGlobusSubmission(globusJobSubmission);
+                em.merge(existingGlobusEP);
+            } else {
+                GlobusGKEndpoint globusGKEndpoint = new GlobusGKEndpoint();
+                globusGKEndpoint.setSubmissionID(submissionID);
+                globusGKEndpoint.setEndpoint(endpoint);
+                globusGKEndpoint.setGlobusSubmission(globusJobSubmission);
+                em.persist(globusGKEndpoint);
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map){
+            ids = (HashMap)identifier;
+        }else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            GlobusGKEndpoint gkEndpoint = em.find(GlobusGKEndpoint.class, new 
GlobusGKEndPointPK(ids.get(GlobusEPConstants.SUBMISSION_ID),
+                    ids.get(GlobusEPConstants.ENDPOINT)));
+
+            em.close();
+            return gkEndpoint != null;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }    }
+
+    public String getSubmissionID() {
+        return submissionID;
+    }
+
+    public void setSubmissionID(String submissionID) {
+        this.submissionID = submissionID;
+    }
+
+    public String getEndpoint() {
+        return endpoint;
+    }
+
+    public void setEndpoint(String endpoint) {
+        this.endpoint = endpoint;
+    }
+
+    public GlobusJobSubmissionResource getGlobusJobSubmissionResource() {
+        return globusJobSubmissionResource;
+    }
+
+    public void setGlobusJobSubmissionResource(GlobusJobSubmissionResource 
globusJobSubmissionResource) {
+        this.globusJobSubmissionResource = globusJobSubmissionResource;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionAppCatalogResourceAppCat.java
deleted file mode 100644
index b473905..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/**
- * 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.app.catalog.resources;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.registry.core.app.catalog.model.GlobusJobSubmission;
-import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
-
-public class GlobusJobSubmissionAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-
-    private final static Logger logger = 
LoggerFactory.getLogger(GlobusJobSubmissionAppCatalogResourceAppCat.class);
-
-    private String submissionID;
-    private String resourceJobManager;
-    private String securityProtocol;
-
-    public void remove(Object identifier) throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
-            generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, 
identifier);
-            Query q = generator.deleteQuery(em);
-            q.executeUpdate();
-            em.getTransaction().commit();
-            em.close();
-        } catch (ApplicationSettingsException e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
-            generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, 
identifier);
-            Query q = generator.selectQuery(em);
-            GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) 
q.getSingleResult();
-            GlobusJobSubmissionAppCatalogResourceAppCat 
globusJobSubmissionResource =
-                    (GlobusJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                            AppCatalogResourceType.GLOBUS_SUBMISSION, 
globusJobSubmission);
-            em.getTransaction().commit();
-            em.close();
-            return globusJobSubmissionResource;
-        } catch (ApplicationSettingsException e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    public List<AppCatalogResource> get(String fieldName, Object value) throws 
AppCatalogException {
-        List<AppCatalogResource> globusSubmissionResourceList = new 
ArrayList<AppCatalogResource>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            Query q;
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
-            List results;
-            if 
(fieldName.equals(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER, 
value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        GlobusJobSubmissionAppCatalogResourceAppCat 
globusJobSubmissionResource =
-                                (GlobusJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                                        
AppCatalogResourceType.GLOBUS_SUBMISSION, globusJobSubmission);
-                        
globusSubmissionResourceList.add(globusJobSubmissionResource);
-                    }
-                }
-            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.SECURITY_PROTOCAL)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.SECURITY_PROTOCAL, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        GlobusJobSubmissionAppCatalogResourceAppCat 
globusJobSubmissionResource =
-                                (GlobusJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                                        
AppCatalogResourceType.GLOBUS_SUBMISSION, globusJobSubmission);
-                        
globusSubmissionResourceList.add(globusJobSubmissionResource);
-                    }
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for Globus submission 
resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
Globus Submission resource.");
-            }
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return globusSubmissionResourceList;
-    }
-
-    @Override
-    public List<AppCatalogResource> getAll() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-    public List<String> getAllIds() throws AppCatalogException {
-        return null;
-    }
-
-    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
-        List<String> globusSubmissionResourceIDs = new ArrayList<String>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            Query q;
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
-            List results;
-            if (fieldName.equals(GlobusJobSubmissionConstants.SUBMISSION_ID)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
-                    }
-                }
-            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP, 
value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
-                    }
-                }
-            }
-            else if 
(fieldName.equals(GlobusJobSubmissionConstants.SECURITY_PROTOCAL)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.SECURITY_PROTOCAL, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
-                    }
-                }
-            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER)) {
-                
generator.setParameter(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER, 
value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
-                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
-                    }
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for Globus Submission 
resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
Globus Submission resource.");
-            }
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-        return globusSubmissionResourceIDs;
-    }
-
-    public void save() throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            GlobusJobSubmission existingGlobusSubmission = 
em.find(GlobusJobSubmission.class, submissionID);
-            em.close();
-
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            if (existingGlobusSubmission != null) {
-                existingGlobusSubmission.setSubmissionID(submissionID);
-                
existingGlobusSubmission.setResourceJobManager(resourceJobManager);
-                existingGlobusSubmission.setSecurityProtocol(securityProtocol);
-                em.merge(existingGlobusSubmission);
-            } else {
-                GlobusJobSubmission globusJobSubmission = new 
GlobusJobSubmission();
-                globusJobSubmission.setSubmissionID(submissionID);
-                globusJobSubmission.setSecurityProtocol(securityProtocol);
-                globusJobSubmission.setResourceJobManager(resourceJobManager);
-                em.persist(globusJobSubmission);
-            }
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    public boolean isExists(Object identifier) throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            GlobusJobSubmission globusJobSubmission = 
em.find(GlobusJobSubmission.class, identifier);
-            em.close();
-            return globusJobSubmission != null;
-        } catch (ApplicationSettingsException e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    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;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionResource.java
new file mode 100644
index 0000000..483c730
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GlobusJobSubmissionResource.java
@@ -0,0 +1,315 @@
+/**
+ * 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.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.GlobusJobSubmission;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GlobusJobSubmissionResource extends AppCatAbstractResource {
+
+    private final static Logger logger = 
LoggerFactory.getLogger(GlobusJobSubmissionResource.class);
+
+    private String submissionID;
+    private String resourceJobManager;
+    private String securityProtocol;
+
+    public void remove(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
+            generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, 
identifier);
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
+            generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, 
identifier);
+            Query q = generator.selectQuery(em);
+            GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) 
q.getSingleResult();
+            GlobusJobSubmissionResource globusJobSubmissionResource =
+                    (GlobusJobSubmissionResource) 
AppCatalogJPAUtils.getResource(
+                            AppCatalogResourceType.GLOBUS_SUBMISSION, 
globusJobSubmission);
+            em.getTransaction().commit();
+            em.close();
+            return globusJobSubmissionResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public List<AppCatalogResource> get(String fieldName, Object value) throws 
AppCatalogException {
+        List<AppCatalogResource> globusSubmissionResourceList = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
+            List results;
+            if 
(fieldName.equals(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER, 
value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        GlobusJobSubmissionResource 
globusJobSubmissionResource =
+                                (GlobusJobSubmissionResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.GLOBUS_SUBMISSION, globusJobSubmission);
+                        
globusSubmissionResourceList.add(globusJobSubmissionResource);
+                    }
+                }
+            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.SECURITY_PROTOCAL)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.SECURITY_PROTOCAL, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        GlobusJobSubmissionResource 
globusJobSubmissionResource =
+                                (GlobusJobSubmissionResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.GLOBUS_SUBMISSION, globusJobSubmission);
+                        
globusSubmissionResourceList.add(globusJobSubmissionResource);
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Globus submission 
resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Globus Submission resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return globusSubmissionResourceList;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        List<String> globusSubmissionResourceIDs = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GLOBUS_SUBMISSION);
+            List results;
+            if (fieldName.equals(GlobusJobSubmissionConstants.SUBMISSION_ID)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
+                    }
+                }
+            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP, 
value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
+                    }
+                }
+            }
+            else if 
(fieldName.equals(GlobusJobSubmissionConstants.SECURITY_PROTOCAL)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.SECURITY_PROTOCAL, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
+                    }
+                }
+            } else if 
(fieldName.equals(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER)) {
+                
generator.setParameter(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER, 
value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        GlobusJobSubmission globusJobSubmission = 
(GlobusJobSubmission) result;
+                        
globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID());
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for Globus Submission 
resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
Globus Submission resource.");
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return globusSubmissionResourceIDs;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            GlobusJobSubmission existingGlobusSubmission = 
em.find(GlobusJobSubmission.class, submissionID);
+            em.close();
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingGlobusSubmission != null) {
+                existingGlobusSubmission.setSubmissionID(submissionID);
+                
existingGlobusSubmission.setResourceJobManager(resourceJobManager);
+                existingGlobusSubmission.setSecurityProtocol(securityProtocol);
+                em.merge(existingGlobusSubmission);
+            } else {
+                GlobusJobSubmission globusJobSubmission = new 
GlobusJobSubmission();
+                globusJobSubmission.setSubmissionID(submissionID);
+                globusJobSubmission.setSecurityProtocol(securityProtocol);
+                globusJobSubmission.setResourceJobManager(resourceJobManager);
+                em.persist(globusJobSubmission);
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            GlobusJobSubmission globusJobSubmission = 
em.find(GlobusJobSubmission.class, identifier);
+            em.close();
+            return globusJobSubmission != null;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    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;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementAppCatalogResourceAppCat.java
deleted file mode 100644
index 4b55e20..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/**
- * 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.app.catalog.resources;
-
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.registry.core.app.catalog.model.GridftpDataMovement;
-import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class GridftpDataMovementAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       private final static Logger logger = 
LoggerFactory.getLogger(GridftpDataMovementAppCatalogResourceAppCat.class);
-       private String dataMovementInterfaceId;
-       private String securityProtocol;
-    private Timestamp createdTime;
-    private Timestamp updatedTime;
-
-    public Timestamp getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Timestamp createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public Timestamp getUpdatedTime() {
-        return updatedTime;
-    }
-
-    public void setUpdatedTime(Timestamp updatedTime) {
-        this.updatedTime = updatedTime;
-    }
-       
-       @Override
-       public void remove(Object identifier) throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
-                       
generator.setParameter(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
-                       Query q = generator.deleteQuery(em);
-                       q.executeUpdate();
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
-                       
generator.setParameter(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
-                       Query q = generator.selectQuery(em);
-                       GridftpDataMovement gridftpDataMovement = 
(GridftpDataMovement) q.getSingleResult();
-                       GridftpDataMovementAppCatalogResourceAppCat 
gridftpDataMovementResource = (GridftpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
-                       em.getTransaction().commit();
-                       em.close();
-                       return gridftpDataMovementResource;
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public List<AppCatalogResource> get(String fieldName, Object value) 
throws AppCatalogException {
-               List<AppCatalogResource> gridftpDataMovementResources = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
-                       Query q;
-                       if 
((fieldName.equals(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(GridftpDataMovementConstants.SECURITY_PROTOCOL))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       GridftpDataMovement gridftpDataMovement 
= (GridftpDataMovement) result;
-                                       
GridftpDataMovementAppCatalogResourceAppCat gridftpDataMovementResource = 
(GridftpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
-                                       
gridftpDataMovementResources.add(gridftpDataMovementResource);
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for 
Gridftp Data Movement Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Data Movement Resource.");
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-               return gridftpDataMovementResources;
-       }
-
-    @Override
-    public List<AppCatalogResource> getAll() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-    public List<String> getAllIds() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-       public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
-               List<String> gridftpDataMovementResourceIDs = new 
ArrayList<String>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
-                       Query q;
-                       if 
((fieldName.equals(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(GridftpDataMovementConstants.SECURITY_PROTOCOL))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       GridftpDataMovement gridftpDataMovement 
= (GridftpDataMovement) result;
-                                       
GridftpDataMovementAppCatalogResourceAppCat gridftpDataMovementResource = 
(GridftpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
-                                       
gridftpDataMovementResourceIDs.add(gridftpDataMovementResource.getDataMovementInterfaceId());
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for 
Gridftp Data Movement Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Data Movement Resource.");
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-               return gridftpDataMovementResourceIDs;
-       }
-       
-       @Override
-       public void save() throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       GridftpDataMovement existingGridftpDataMovement = 
em.find(GridftpDataMovement.class, dataMovementInterfaceId);
-                       em.close();
-                       GridftpDataMovement gridftpDataMovement;
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       if (existingGridftpDataMovement == null) {
-                               gridftpDataMovement = new GridftpDataMovement();
-                
gridftpDataMovement.setCreationTime(AiravataUtils.getCurrentTimestamp());
-                       } else {
-                               gridftpDataMovement = 
existingGridftpDataMovement;
-                
gridftpDataMovement.setUpdateTime(AiravataUtils.getCurrentTimestamp());
-                       }
-                       
gridftpDataMovement.setDataMovementInterfaceId(getDataMovementInterfaceId());
-                       
gridftpDataMovement.setSecurityProtocol(getSecurityProtocol());
-                       if (existingGridftpDataMovement == null) {
-                               em.persist(gridftpDataMovement);
-                       } else {
-                               em.merge(gridftpDataMovement);
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (Exception e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public boolean isExists(Object identifier) throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       GridftpDataMovement gridftpDataMovement = 
em.find(GridftpDataMovement.class, identifier);
-                       em.close();
-                       return gridftpDataMovement != null;
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       public String getDataMovementInterfaceId() {
-               return dataMovementInterfaceId;
-       }
-       
-       public String getSecurityProtocol() {
-               return securityProtocol;
-       }
-       
-       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
-               this.dataMovementInterfaceId=dataMovementInterfaceId;
-       }
-       
-       public void setSecurityProtocol(String securityProtocol) {
-               this.securityProtocol=securityProtocol;
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementResource.java
new file mode 100644
index 0000000..ebfc241
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpDataMovementResource.java
@@ -0,0 +1,279 @@
+/**
+ * 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.app.catalog.resources;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.registry.core.app.catalog.model.GridftpDataMovement;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GridftpDataMovementResource extends AppCatAbstractResource {
+       private final static Logger logger = 
LoggerFactory.getLogger(GridftpDataMovementResource.class);
+       private String dataMovementInterfaceId;
+       private String securityProtocol;
+    private Timestamp createdTime;
+    private Timestamp updatedTime;
+
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Timestamp getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Timestamp updatedTime) {
+        this.updatedTime = updatedTime;
+    }
+       
+       @Override
+       public void remove(Object identifier) throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
+                       
generator.setParameter(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
+                       Query q = generator.deleteQuery(em);
+                       q.executeUpdate();
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       @Override
+       public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
+                       
generator.setParameter(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
+                       Query q = generator.selectQuery(em);
+                       GridftpDataMovement gridftpDataMovement = 
(GridftpDataMovement) q.getSingleResult();
+                       GridftpDataMovementResource gridftpDataMovementResource 
= (GridftpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
+                       em.getTransaction().commit();
+                       em.close();
+                       return gridftpDataMovementResource;
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       @Override
+       public List<AppCatalogResource> get(String fieldName, Object value) 
throws AppCatalogException {
+               List<AppCatalogResource> gridftpDataMovementResources = new 
ArrayList<AppCatalogResource>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
+                       Query q;
+                       if 
((fieldName.equals(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(GridftpDataMovementConstants.SECURITY_PROTOCOL))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       GridftpDataMovement gridftpDataMovement 
= (GridftpDataMovement) result;
+                                       GridftpDataMovementResource 
gridftpDataMovementResource = (GridftpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
+                                       
gridftpDataMovementResources.add(gridftpDataMovementResource);
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for 
Gridftp Data Movement Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Data Movement Resource.");
+                       }
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+               return gridftpDataMovementResources;
+       }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+       public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+               List<String> gridftpDataMovementResourceIDs = new 
ArrayList<String>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_DATA_MOVEMENT);
+                       Query q;
+                       if 
((fieldName.equals(GridftpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(GridftpDataMovementConstants.SECURITY_PROTOCOL))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       GridftpDataMovement gridftpDataMovement 
= (GridftpDataMovement) result;
+                                       GridftpDataMovementResource 
gridftpDataMovementResource = (GridftpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_DATA_MOVEMENT, 
gridftpDataMovement);
+                                       
gridftpDataMovementResourceIDs.add(gridftpDataMovementResource.getDataMovementInterfaceId());
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for 
Gridftp Data Movement Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Data Movement Resource.");
+                       }
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+               return gridftpDataMovementResourceIDs;
+       }
+       
+       @Override
+       public void save() throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       GridftpDataMovement existingGridftpDataMovement = 
em.find(GridftpDataMovement.class, dataMovementInterfaceId);
+                       em.close();
+                       GridftpDataMovement gridftpDataMovement;
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       if (existingGridftpDataMovement == null) {
+                               gridftpDataMovement = new GridftpDataMovement();
+                
gridftpDataMovement.setCreationTime(AiravataUtils.getCurrentTimestamp());
+                       } else {
+                               gridftpDataMovement = 
existingGridftpDataMovement;
+                
gridftpDataMovement.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+                       }
+                       
gridftpDataMovement.setDataMovementInterfaceId(getDataMovementInterfaceId());
+                       
gridftpDataMovement.setSecurityProtocol(getSecurityProtocol());
+                       if (existingGridftpDataMovement == null) {
+                               em.persist(gridftpDataMovement);
+                       } else {
+                               em.merge(gridftpDataMovement);
+                       }
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (Exception e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       @Override
+       public boolean isExists(Object identifier) throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       GridftpDataMovement gridftpDataMovement = 
em.find(GridftpDataMovement.class, identifier);
+                       em.close();
+                       return gridftpDataMovement != null;
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       public String getDataMovementInterfaceId() {
+               return dataMovementInterfaceId;
+       }
+       
+       public String getSecurityProtocol() {
+               return securityProtocol;
+       }
+       
+       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+               this.dataMovementInterfaceId=dataMovementInterfaceId;
+       }
+       
+       public void setSecurityProtocol(String securityProtocol) {
+               this.securityProtocol=securityProtocol;
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/4045c094/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointAppCatalogResourceAppCat.java
deleted file mode 100644
index 6d04b6c..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/GridftpEndpointAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/**
- * 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.app.catalog.resources;
-
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.registry.core.app.catalog.model.GridftpDataMovement;
-import org.apache.airavata.registry.core.app.catalog.model.GridftpEndpoint;
-import org.apache.airavata.registry.core.app.catalog.model.GridftpEndpoint_PK;
-import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class GridftpEndpointAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       private final static Logger logger = 
LoggerFactory.getLogger(GridftpEndpointAppCatalogResourceAppCat.class);
-       private String endpoint;
-       private String dataMovementInterfaceId;
-       private GridftpDataMovementAppCatalogResourceAppCat 
gridftpDataMovementResource;
-    private Timestamp createdTime;
-    private Timestamp updatedTime;
-
-    public Timestamp getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Timestamp createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public Timestamp getUpdatedTime() {
-        return updatedTime;
-    }
-
-    public void setUpdatedTime(Timestamp updatedTime) {
-        this.updatedTime = updatedTime;
-    }
-       
-       @Override
-       public void remove(Object identifier) throws AppCatalogException {
-               HashMap<String, String> ids;
-               if (identifier instanceof Map) {
-                       ids = (HashMap<String, String>) identifier;
-               } else {
-                       logger.error("Identifier should be a map with the field 
name and it's value");
-                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
-               }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_ENDPOINT);
-                       
generator.setParameter(GridftpEndpointConstants.ENDPOINT, 
ids.get(GridftpEndpointConstants.ENDPOINT));
-                       
generator.setParameter(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID, 
ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID));
-                       Query q = generator.deleteQuery(em);
-                       q.executeUpdate();
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
-               HashMap<String, String> ids;
-               if (identifier instanceof Map) {
-                       ids = (HashMap<String, String>) identifier;
-               } else {
-                       logger.error("Identifier should be a map with the field 
name and it's value");
-                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
-               }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_ENDPOINT);
-                       
generator.setParameter(GridftpEndpointConstants.ENDPOINT, 
ids.get(GridftpEndpointConstants.ENDPOINT));
-                       
generator.setParameter(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID, 
ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID));
-                       Query q = generator.selectQuery(em);
-                       GridftpEndpoint gridftpEndpoint = (GridftpEndpoint) 
q.getSingleResult();
-                       GridftpEndpointAppCatalogResourceAppCat 
gridftpEndpointResource = (GridftpEndpointAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, 
gridftpEndpoint);
-                       em.getTransaction().commit();
-                       em.close();
-                       return gridftpEndpointResource;
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public List<AppCatalogResource> get(String fieldName, Object value) 
throws AppCatalogException {
-               List<AppCatalogResource> gridftpEndpointResources = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_ENDPOINT);
-                       Query q;
-                       if 
((fieldName.equals(GridftpEndpointConstants.ENDPOINT)) || 
(fieldName.equals(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       GridftpEndpoint gridftpEndpoint = 
(GridftpEndpoint) result;
-                                       GridftpEndpointAppCatalogResourceAppCat 
gridftpEndpointResource = (GridftpEndpointAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, 
gridftpEndpoint);
-                                       
gridftpEndpointResources.add(gridftpEndpointResource);
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for 
Gridftp Endpoint Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Endpoint Resource.");
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-               return gridftpEndpointResources;
-       }
-
-    @Override
-    public List<AppCatalogResource> getAll() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-    public List<String> getAllIds() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-       public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
-               List<String> gridftpEndpointResourceIDs = new 
ArrayList<String>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(GRIDFTP_ENDPOINT);
-                       Query q;
-                       if 
((fieldName.equals(GridftpEndpointConstants.ENDPOINT)) || 
(fieldName.equals(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       GridftpEndpoint gridftpEndpoint = 
(GridftpEndpoint) result;
-                                       GridftpEndpointAppCatalogResourceAppCat 
gridftpEndpointResource = (GridftpEndpointAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.GRIDFTP_ENDPOINT, 
gridftpEndpoint);
-                                       
gridftpEndpointResourceIDs.add(gridftpEndpointResource.getDataMovementInterfaceId());
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for 
Gridftp Endpoint Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Gridftp Endpoint Resource.");
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-               return gridftpEndpointResourceIDs;
-       }
-       
-       @Override
-       public void save() throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       GridftpEndpoint existingGridftpEndpoint = 
em.find(GridftpEndpoint.class, new GridftpEndpoint_PK(endpoint, 
dataMovementInterfaceId));
-                       em.close();
-                       GridftpEndpoint gridftpEndpoint;
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       if (existingGridftpEndpoint == null) {
-                               gridftpEndpoint = new GridftpEndpoint();
-                
gridftpEndpoint.setCreationTime(AiravataUtils.getCurrentTimestamp());
-                       } else {
-                               gridftpEndpoint = existingGridftpEndpoint;
-                
gridftpEndpoint.setUpdateTime(AiravataUtils.getCurrentTimestamp());
-                       }
-                       gridftpEndpoint.setEndpoint(getEndpoint());
-                       
gridftpEndpoint.setDataMovementInterfaceId(getDataMovementInterfaceId());
-                       GridftpDataMovement gridftpDataMovement = 
em.find(GridftpDataMovement.class, getDataMovementInterfaceId());
-                       
gridftpEndpoint.setGridftpDataMovement(gridftpDataMovement);
-                       if (existingGridftpEndpoint == null) {
-                               em.persist(gridftpEndpoint);
-                       } else {
-                               em.merge(gridftpEndpoint);
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (Exception e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public boolean isExists(Object identifier) throws AppCatalogException {
-               HashMap<String, String> ids;
-               if (identifier instanceof Map) {
-                       ids = (HashMap<String, String>) identifier;
-               } else {
-                       logger.error("Identifier should be a map with the field 
name and it's value");
-                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
-               }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       GridftpEndpoint gridftpEndpoint = 
em.find(GridftpEndpoint.class, new 
GridftpEndpoint_PK(ids.get(GridftpEndpointConstants.ENDPOINT), 
ids.get(GridftpEndpointConstants.DATA_MOVEMENT_INTERFACE_ID)));
-                       em.close();
-                       return gridftpEndpoint != null;
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       public String getEndpoint() {
-               return endpoint;
-       }
-       
-       public String getDataMovementInterfaceId() {
-               return dataMovementInterfaceId;
-       }
-       
-       public GridftpDataMovementAppCatalogResourceAppCat 
getGridftpDataMovementResource() {
-               return gridftpDataMovementResource;
-       }
-       
-       public void setEndpoint(String endpoint) {
-               this.endpoint=endpoint;
-       }
-       
-       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
-               this.dataMovementInterfaceId=dataMovementInterfaceId;
-       }
-       
-       public void 
setGridftpDataMovementResource(GridftpDataMovementAppCatalogResourceAppCat 
gridftpDataMovementResource) {
-               this.gridftpDataMovementResource=gridftpDataMovementResource;
-       }
-}
\ No newline at end of file

Reply via email to