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/ScpDataMovementAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementAppCatalogResourceAppCat.java
deleted file mode 100644
index 59839ea..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,308 +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.common.utils.AiravataUtils;
-import org.apache.airavata.registry.core.app.catalog.model.ScpDataMovement;
-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.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ScpDataMovementAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       private final static Logger logger = 
LoggerFactory.getLogger(ScpDataMovementAppCatalogResourceAppCat.class);
-       private String queueDescription;
-       private String dataMovementInterfaceId;
-       private String securityProtocol;
-       private String alternativeScpHostname;
-       private int sshPort;
-    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(SCP_DATA_MOVEMENT);
-                       
generator.setParameter(ScpDataMovementConstants.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(SCP_DATA_MOVEMENT);
-                       
generator.setParameter(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
-                       Query q = generator.selectQuery(em);
-                       ScpDataMovement scpDataMovement = (ScpDataMovement) 
q.getSingleResult();
-                       ScpDataMovementAppCatalogResourceAppCat 
scpDataMovementResource = (ScpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
-                       em.getTransaction().commit();
-                       em.close();
-                       return scpDataMovementResource;
-               } 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> scpDataMovementResources = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SCP_DATA_MOVEMENT);
-                       Query q;
-                       if 
((fieldName.equals(ScpDataMovementConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(ScpDataMovementConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(ScpDataMovementConstants.ALTERNATIVE_SCP_HOSTNAME)) || 
(fieldName.equals(ScpDataMovementConstants.SSH_PORT))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       ScpDataMovement scpDataMovement = 
(ScpDataMovement) result;
-                                       ScpDataMovementAppCatalogResourceAppCat 
scpDataMovementResource = (ScpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
-                                       
scpDataMovementResources.add(scpDataMovementResource);
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Scp 
Data Movement Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Scp 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 scpDataMovementResources;
-       }
-
-    @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> scpDataMovementResourceIDs = new 
ArrayList<String>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SCP_DATA_MOVEMENT);
-                       Query q;
-                       if 
((fieldName.equals(ScpDataMovementConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(ScpDataMovementConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(ScpDataMovementConstants.ALTERNATIVE_SCP_HOSTNAME)) || 
(fieldName.equals(ScpDataMovementConstants.SSH_PORT))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       ScpDataMovement scpDataMovement = 
(ScpDataMovement) result;
-                                       ScpDataMovementAppCatalogResourceAppCat 
scpDataMovementResource = (ScpDataMovementAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
-                                       
scpDataMovementResourceIDs.add(scpDataMovementResource.getDataMovementInterfaceId());
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Scp 
Data Movement Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Scp 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 scpDataMovementResourceIDs;
-       }
-       
-       @Override
-       public void save() throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       ScpDataMovement existingScpDataMovement = 
em.find(ScpDataMovement.class, dataMovementInterfaceId);
-                       em.close();
-                       ScpDataMovement scpDataMovement;
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       if (existingScpDataMovement == null) {
-                               scpDataMovement = new ScpDataMovement();
-                
scpDataMovement.setCreationTime(AiravataUtils.getCurrentTimestamp());
-                       } else {
-                               scpDataMovement = existingScpDataMovement;
-                
scpDataMovement.setUpdateTime(AiravataUtils.getCurrentTimestamp());
-                       }
-                       
scpDataMovement.setQueueDescription(getQueueDescription());
-                       
scpDataMovement.setDataMovementInterfaceId(getDataMovementInterfaceId());
-                       
scpDataMovement.setSecurityProtocol(getSecurityProtocol());
-                       
scpDataMovement.setAlternativeScpHostname(getAlternativeScpHostname());
-                       scpDataMovement.setSshPort(getSshPort());
-                       if (existingScpDataMovement == null) {
-                               em.persist(scpDataMovement);
-                       } else {
-                               em.merge(scpDataMovement);
-                       }
-                       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();
-                       ScpDataMovement scpDataMovement = 
em.find(ScpDataMovement.class, identifier);
-                       em.close();
-                       return scpDataMovement != 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 getQueueDescription() {
-               return queueDescription;
-       }
-       
-       public String getDataMovementInterfaceId() {
-               return dataMovementInterfaceId;
-       }
-       
-       public String getSecurityProtocol() {
-               return securityProtocol;
-       }
-       
-       public String getAlternativeScpHostname() {
-               return alternativeScpHostname;
-       }
-       
-       public int getSshPort() {
-               return sshPort;
-       }
-       
-       public void setQueueDescription(String queueDescription) {
-               this.queueDescription=queueDescription;
-       }
-       
-       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
-               this.dataMovementInterfaceId=dataMovementInterfaceId;
-       }
-       
-       public void setSecurityProtocol(String securityProtocol) {
-               this.securityProtocol=securityProtocol;
-       }
-       
-       public void setAlternativeScpHostname(String alternativeScpHostname) {
-               this.alternativeScpHostname=alternativeScpHostname;
-       }
-       
-       public void setSshPort(int sshPort) {
-               this.sshPort=sshPort;
-       }
-}
\ 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/ScpDataMovementResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementResource.java
new file mode 100644
index 0000000..3b4c63d
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ScpDataMovementResource.java
@@ -0,0 +1,308 @@
+/**
+ * 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.common.utils.AiravataUtils;
+import org.apache.airavata.registry.core.app.catalog.model.ScpDataMovement;
+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.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ScpDataMovementResource extends AppCatAbstractResource {
+       private final static Logger logger = 
LoggerFactory.getLogger(ScpDataMovementResource.class);
+       private String queueDescription;
+       private String dataMovementInterfaceId;
+       private String securityProtocol;
+       private String alternativeScpHostname;
+       private int sshPort;
+    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(SCP_DATA_MOVEMENT);
+                       
generator.setParameter(ScpDataMovementConstants.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(SCP_DATA_MOVEMENT);
+                       
generator.setParameter(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID, 
identifier);
+                       Query q = generator.selectQuery(em);
+                       ScpDataMovement scpDataMovement = (ScpDataMovement) 
q.getSingleResult();
+                       ScpDataMovementResource scpDataMovementResource = 
(ScpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
+                       em.getTransaction().commit();
+                       em.close();
+                       return scpDataMovementResource;
+               } 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> scpDataMovementResources = new 
ArrayList<AppCatalogResource>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SCP_DATA_MOVEMENT);
+                       Query q;
+                       if 
((fieldName.equals(ScpDataMovementConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(ScpDataMovementConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(ScpDataMovementConstants.ALTERNATIVE_SCP_HOSTNAME)) || 
(fieldName.equals(ScpDataMovementConstants.SSH_PORT))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       ScpDataMovement scpDataMovement = 
(ScpDataMovement) result;
+                                       ScpDataMovementResource 
scpDataMovementResource = (ScpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
+                                       
scpDataMovementResources.add(scpDataMovementResource);
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Scp 
Data Movement Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Scp 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 scpDataMovementResources;
+       }
+
+    @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> scpDataMovementResourceIDs = new 
ArrayList<String>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SCP_DATA_MOVEMENT);
+                       Query q;
+                       if 
((fieldName.equals(ScpDataMovementConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(ScpDataMovementConstants.DATA_MOVEMENT_INTERFACE_ID)) || 
(fieldName.equals(ScpDataMovementConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(ScpDataMovementConstants.ALTERNATIVE_SCP_HOSTNAME)) || 
(fieldName.equals(ScpDataMovementConstants.SSH_PORT))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       ScpDataMovement scpDataMovement = 
(ScpDataMovement) result;
+                                       ScpDataMovementResource 
scpDataMovementResource = (ScpDataMovementResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SCP_DATA_MOVEMENT, 
scpDataMovement);
+                                       
scpDataMovementResourceIDs.add(scpDataMovementResource.getDataMovementInterfaceId());
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Scp 
Data Movement Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Scp 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 scpDataMovementResourceIDs;
+       }
+       
+       @Override
+       public void save() throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       ScpDataMovement existingScpDataMovement = 
em.find(ScpDataMovement.class, dataMovementInterfaceId);
+                       em.close();
+                       ScpDataMovement scpDataMovement;
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       if (existingScpDataMovement == null) {
+                               scpDataMovement = new ScpDataMovement();
+                
scpDataMovement.setCreationTime(AiravataUtils.getCurrentTimestamp());
+                       } else {
+                               scpDataMovement = existingScpDataMovement;
+                
scpDataMovement.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+                       }
+                       
scpDataMovement.setQueueDescription(getQueueDescription());
+                       
scpDataMovement.setDataMovementInterfaceId(getDataMovementInterfaceId());
+                       
scpDataMovement.setSecurityProtocol(getSecurityProtocol());
+                       
scpDataMovement.setAlternativeScpHostname(getAlternativeScpHostname());
+                       scpDataMovement.setSshPort(getSshPort());
+                       if (existingScpDataMovement == null) {
+                               em.persist(scpDataMovement);
+                       } else {
+                               em.merge(scpDataMovement);
+                       }
+                       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();
+                       ScpDataMovement scpDataMovement = 
em.find(ScpDataMovement.class, identifier);
+                       em.close();
+                       return scpDataMovement != 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 getQueueDescription() {
+               return queueDescription;
+       }
+       
+       public String getDataMovementInterfaceId() {
+               return dataMovementInterfaceId;
+       }
+       
+       public String getSecurityProtocol() {
+               return securityProtocol;
+       }
+       
+       public String getAlternativeScpHostname() {
+               return alternativeScpHostname;
+       }
+       
+       public int getSshPort() {
+               return sshPort;
+       }
+       
+       public void setQueueDescription(String queueDescription) {
+               this.queueDescription=queueDescription;
+       }
+       
+       public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+               this.dataMovementInterfaceId=dataMovementInterfaceId;
+       }
+       
+       public void setSecurityProtocol(String securityProtocol) {
+               this.securityProtocol=securityProtocol;
+       }
+       
+       public void setAlternativeScpHostname(String alternativeScpHostname) {
+               this.alternativeScpHostname=alternativeScpHostname;
+       }
+       
+       public void setSshPort(int sshPort) {
+               this.sshPort=sshPort;
+       }
+}
\ 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/SshJobSubmissionAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionAppCatalogResourceAppCat.java
deleted file mode 100644
index 2bbd6f3..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,332 +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.ResourceJobManager;
-import org.apache.airavata.registry.core.app.catalog.model.SshJobSubmission;
-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 SshJobSubmissionAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       private final static Logger logger = 
LoggerFactory.getLogger(SshJobSubmissionAppCatalogResourceAppCat.class);
-       private String resourceJobManagerId;
-       private ResourceJobManagerAppCatalogResourceAppCat 
resourceJobManagerResource;
-       private String jobSubmissionInterfaceId;
-       private String alternativeSshHostname;
-       private String securityProtocol;
-       private int sshPort;
-    private String monitorMode;
-    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(SSH_JOB_SUBMISSION);
-                       
generator.setParameter(SshJobSubmissionConstants.JOB_SUBMISSION_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(SSH_JOB_SUBMISSION);
-                       
generator.setParameter(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID, 
identifier);
-                       Query q = generator.selectQuery(em);
-                       SshJobSubmission sshJobSubmission = (SshJobSubmission) 
q.getSingleResult();
-                       SshJobSubmissionAppCatalogResourceAppCat 
sshJobSubmissionResource = (SshJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
-                       em.getTransaction().commit();
-                       em.close();
-                       return sshJobSubmissionResource;
-               } 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> sshJobSubmissionResources = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SSH_JOB_SUBMISSION);
-                       Query q;
-                       if 
((fieldName.equals(SshJobSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.ALTERNATIVE_SSH_HOSTNAME)) || 
(fieldName.equals(SshJobSubmissionConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(SshJobSubmissionConstants.SSH_PORT))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       SshJobSubmission sshJobSubmission = 
(SshJobSubmission) result;
-                                       
SshJobSubmissionAppCatalogResourceAppCat sshJobSubmissionResource = 
(SshJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
-                                       
sshJobSubmissionResources.add(sshJobSubmissionResource);
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Ssh 
Job Submission Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Ssh Job Submission 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 sshJobSubmissionResources;
-       }
-
-    @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> sshJobSubmissionResourceIDs = new 
ArrayList<String>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SSH_JOB_SUBMISSION);
-                       Query q;
-                       if 
((fieldName.equals(SshJobSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.ALTERNATIVE_SSH_HOSTNAME)) || 
(fieldName.equals(SshJobSubmissionConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(SshJobSubmissionConstants.SSH_PORT))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       SshJobSubmission sshJobSubmission = 
(SshJobSubmission) result;
-                                       
SshJobSubmissionAppCatalogResourceAppCat sshJobSubmissionResource = 
(SshJobSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
-                                       
sshJobSubmissionResourceIDs.add(sshJobSubmissionResource.getJobSubmissionInterfaceId());
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Ssh 
Job Submission Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Ssh Job Submission 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 sshJobSubmissionResourceIDs;
-       }
-       
-       @Override
-       public void save() throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       SshJobSubmission existingSshJobSubmission = 
em.find(SshJobSubmission.class, jobSubmissionInterfaceId);
-                       em.close();
-                       SshJobSubmission sshJobSubmission;
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       if (existingSshJobSubmission == null) {
-                               sshJobSubmission = new SshJobSubmission();
-                
sshJobSubmission.setCreationTime(AiravataUtils.getCurrentTimestamp());
-                       } else {
-                               sshJobSubmission = existingSshJobSubmission;
-                
sshJobSubmission.setUpdateTime(AiravataUtils.getCurrentTimestamp());
-                       }
-                       
sshJobSubmission.setResourceJobManagerId(getResourceJobManagerId());
-                       ResourceJobManager resourceJobManager = 
em.find(ResourceJobManager.class, getResourceJobManagerId());
-                       
sshJobSubmission.setResourceJobManager(resourceJobManager);
-                       
sshJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId());
-                       
sshJobSubmission.setAlternativeSshHostname(getAlternativeSshHostname());
-                       
sshJobSubmission.setSecurityProtocol(getSecurityProtocol());
-                       sshJobSubmission.setSshPort(getSshPort());
-            sshJobSubmission.setMonitorMode(getMonitorMode());
-            if (existingSshJobSubmission == null) {
-                               em.persist(sshJobSubmission);
-                       } else {
-                               em.merge(sshJobSubmission);
-                       }
-                       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();
-                       SshJobSubmission sshJobSubmission = 
em.find(SshJobSubmission.class, identifier);
-                       em.close();
-                       return sshJobSubmission != 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 getResourceJobManagerId() {
-               return resourceJobManagerId;
-       }
-       
-       public ResourceJobManagerAppCatalogResourceAppCat 
getResourceJobManagerResource() {
-               return resourceJobManagerResource;
-       }
-       
-       public String getJobSubmissionInterfaceId() {
-               return jobSubmissionInterfaceId;
-       }
-       
-       public String getAlternativeSshHostname() {
-               return alternativeSshHostname;
-       }
-       
-       public String getSecurityProtocol() {
-               return securityProtocol;
-       }
-       
-       public int getSshPort() {
-               return sshPort;
-       }
-       
-       public void setResourceJobManagerId(String resourceJobManagerId) {
-               this.resourceJobManagerId=resourceJobManagerId;
-       }
-       
-       public void 
setResourceJobManagerResource(ResourceJobManagerAppCatalogResourceAppCat 
resourceJobManagerResource) {
-               this.resourceJobManagerResource=resourceJobManagerResource;
-       }
-       
-       public void setJobSubmissionInterfaceId(String 
jobSubmissionInterfaceId) {
-               this.jobSubmissionInterfaceId=jobSubmissionInterfaceId;
-       }
-       
-       public void setAlternativeSshHostname(String alternativeSshHostname) {
-               this.alternativeSshHostname=alternativeSshHostname;
-       }
-       
-       public void setSecurityProtocol(String securityProtocol) {
-               this.securityProtocol=securityProtocol;
-       }
-       
-       public void setSshPort(int sshPort) {
-               this.sshPort=sshPort;
-       }
-
-    public String getMonitorMode() {
-        return monitorMode;
-    }
-
-    public void setMonitorMode(String monitorMode) {
-        this.monitorMode = monitorMode;
-    }
-
-}
\ 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/SshJobSubmissionResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionResource.java
new file mode 100644
index 0000000..2390f68
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/SshJobSubmissionResource.java
@@ -0,0 +1,332 @@
+/**
+ * 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.ResourceJobManager;
+import org.apache.airavata.registry.core.app.catalog.model.SshJobSubmission;
+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 SshJobSubmissionResource extends AppCatAbstractResource {
+       private final static Logger logger = 
LoggerFactory.getLogger(SshJobSubmissionResource.class);
+       private String resourceJobManagerId;
+       private ResourceJobManagerResource resourceJobManagerResource;
+       private String jobSubmissionInterfaceId;
+       private String alternativeSshHostname;
+       private String securityProtocol;
+       private int sshPort;
+    private String monitorMode;
+    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(SSH_JOB_SUBMISSION);
+                       
generator.setParameter(SshJobSubmissionConstants.JOB_SUBMISSION_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(SSH_JOB_SUBMISSION);
+                       
generator.setParameter(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID, 
identifier);
+                       Query q = generator.selectQuery(em);
+                       SshJobSubmission sshJobSubmission = (SshJobSubmission) 
q.getSingleResult();
+                       SshJobSubmissionResource sshJobSubmissionResource = 
(SshJobSubmissionResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
+                       em.getTransaction().commit();
+                       em.close();
+                       return sshJobSubmissionResource;
+               } 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> sshJobSubmissionResources = new 
ArrayList<AppCatalogResource>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SSH_JOB_SUBMISSION);
+                       Query q;
+                       if 
((fieldName.equals(SshJobSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.ALTERNATIVE_SSH_HOSTNAME)) || 
(fieldName.equals(SshJobSubmissionConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(SshJobSubmissionConstants.SSH_PORT))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       SshJobSubmission sshJobSubmission = 
(SshJobSubmission) result;
+                                       SshJobSubmissionResource 
sshJobSubmissionResource = (SshJobSubmissionResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
+                                       
sshJobSubmissionResources.add(sshJobSubmissionResource);
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Ssh 
Job Submission Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Ssh Job Submission 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 sshJobSubmissionResources;
+       }
+
+    @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> sshJobSubmissionResourceIDs = new 
ArrayList<String>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(SSH_JOB_SUBMISSION);
+                       Query q;
+                       if 
((fieldName.equals(SshJobSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID)) || 
(fieldName.equals(SshJobSubmissionConstants.ALTERNATIVE_SSH_HOSTNAME)) || 
(fieldName.equals(SshJobSubmissionConstants.SECURITY_PROTOCOL)) || 
(fieldName.equals(SshJobSubmissionConstants.SSH_PORT))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       SshJobSubmission sshJobSubmission = 
(SshJobSubmission) result;
+                                       SshJobSubmissionResource 
sshJobSubmissionResource = (SshJobSubmissionResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_JOB_SUBMISSION, 
sshJobSubmission);
+                                       
sshJobSubmissionResourceIDs.add(sshJobSubmissionResource.getJobSubmissionInterfaceId());
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Ssh 
Job Submission Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Ssh Job Submission 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 sshJobSubmissionResourceIDs;
+       }
+       
+       @Override
+       public void save() throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       SshJobSubmission existingSshJobSubmission = 
em.find(SshJobSubmission.class, jobSubmissionInterfaceId);
+                       em.close();
+                       SshJobSubmission sshJobSubmission;
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       if (existingSshJobSubmission == null) {
+                               sshJobSubmission = new SshJobSubmission();
+                
sshJobSubmission.setCreationTime(AiravataUtils.getCurrentTimestamp());
+                       } else {
+                               sshJobSubmission = existingSshJobSubmission;
+                
sshJobSubmission.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+                       }
+                       
sshJobSubmission.setResourceJobManagerId(getResourceJobManagerId());
+                       ResourceJobManager resourceJobManager = 
em.find(ResourceJobManager.class, getResourceJobManagerId());
+                       
sshJobSubmission.setResourceJobManager(resourceJobManager);
+                       
sshJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId());
+                       
sshJobSubmission.setAlternativeSshHostname(getAlternativeSshHostname());
+                       
sshJobSubmission.setSecurityProtocol(getSecurityProtocol());
+                       sshJobSubmission.setSshPort(getSshPort());
+            sshJobSubmission.setMonitorMode(getMonitorMode());
+            if (existingSshJobSubmission == null) {
+                               em.persist(sshJobSubmission);
+                       } else {
+                               em.merge(sshJobSubmission);
+                       }
+                       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();
+                       SshJobSubmission sshJobSubmission = 
em.find(SshJobSubmission.class, identifier);
+                       em.close();
+                       return sshJobSubmission != 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 getResourceJobManagerId() {
+               return resourceJobManagerId;
+       }
+       
+       public ResourceJobManagerResource getResourceJobManagerResource() {
+               return resourceJobManagerResource;
+       }
+       
+       public String getJobSubmissionInterfaceId() {
+               return jobSubmissionInterfaceId;
+       }
+       
+       public String getAlternativeSshHostname() {
+               return alternativeSshHostname;
+       }
+       
+       public String getSecurityProtocol() {
+               return securityProtocol;
+       }
+       
+       public int getSshPort() {
+               return sshPort;
+       }
+       
+       public void setResourceJobManagerId(String resourceJobManagerId) {
+               this.resourceJobManagerId=resourceJobManagerId;
+       }
+       
+       public void setResourceJobManagerResource(ResourceJobManagerResource 
resourceJobManagerResource) {
+               this.resourceJobManagerResource=resourceJobManagerResource;
+       }
+       
+       public void setJobSubmissionInterfaceId(String 
jobSubmissionInterfaceId) {
+               this.jobSubmissionInterfaceId=jobSubmissionInterfaceId;
+       }
+       
+       public void setAlternativeSshHostname(String alternativeSshHostname) {
+               this.alternativeSshHostname=alternativeSshHostname;
+       }
+       
+       public void setSecurityProtocol(String securityProtocol) {
+               this.securityProtocol=securityProtocol;
+       }
+       
+       public void setSshPort(int sshPort) {
+               this.sshPort=sshPort;
+       }
+
+    public String getMonitorMode() {
+        return monitorMode;
+    }
+
+    public void setMonitorMode(String monitorMode) {
+        this.monitorMode = monitorMode;
+    }
+
+}
\ 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/UnicoreDataMovementAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementAppCatalogResourceAppCat.java
deleted file mode 100644
index af8899a..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,255 +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.UnicoreDataMovement;
-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 UnicoreDataMovementAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       
-       private final static Logger logger = 
LoggerFactory.getLogger(UnicoreDataMovementAppCatalogResourceAppCat.class);
-       
-       private String dataMovementId;
-       private String securityProtocol;
-       private String unicoreEndpointUrl;
-
-        public void remove(Object identifier) throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                   em = AppCatalogJPAUtils.getEntityManager();
-                   em.getTransaction().begin();
-                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_DATA_MOVEMENT);
-                   
generator.setParameter(UnicoreDataMovementConstants.DATAMOVEMENT_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(UNICORE_DATA_MOVEMENT);
-                   
generator.setParameter(UnicoreDataMovementConstants.DATAMOVEMENT_ID, 
identifier);
-                   Query q = generator.selectQuery(em);
-                   UnicoreDataMovement unicoreDataMovement = 
(UnicoreDataMovement) q.getSingleResult();
-                   UnicoreDataMovementAppCatalogResourceAppCat 
dataMovementResource =
-                                       
(UnicoreDataMovementAppCatalogResourceAppCat) AppCatalogJPAUtils
-                                       
.getResource(AppCatalogResourceType.UNICORE_DATA_MOVEMENT,
-                                                       unicoreDataMovement);
-                   em.getTransaction().commit();
-                   em.close();
-                   return dataMovementResource;
-               } 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> unicoreDMResourceList = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                   em = AppCatalogJPAUtils.getEntityManager();
-                   em.getTransaction().begin();
-                   Query q;
-                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_DATA_MOVEMENT);
-                   List results;
-                   if 
(fieldName.equals(UnicoreDataMovementConstants.UNICORE_ENDPOINT_URL)) {
-                       
generator.setParameter(UnicoreDataMovementConstants.UNICORE_ENDPOINT_URL, 
value);
-                       q = generator.selectQuery(em);
-                       results = q.getResultList();
-                       if (results.size() != 0) {
-                           for (Object result : results) {
-                               UnicoreDataMovement dataMovement = 
(UnicoreDataMovement) result;
-                               UnicoreDataMovementAppCatalogResourceAppCat 
unicoreJobSubmissionResource =
-                                       
(UnicoreDataMovementAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(
-                                               
AppCatalogResourceType.UNICORE_DATA_MOVEMENT, dataMovement);
-                               
unicoreDMResourceList.add(unicoreJobSubmissionResource);
-                           }
-                       }
-                   } else if 
(fieldName.equals(UnicoreDataMovementConstants.SECURITY_PROTOCAL)) {
-                       
generator.setParameter(UnicoreDataMovementConstants.SECURITY_PROTOCAL, value);
-                       q = generator.selectQuery(em);
-                       results = q.getResultList();
-                       if (results.size() != 0) {
-                           for (Object result : results) {
-                               UnicoreDataMovement dataMovement = 
(UnicoreDataMovement) result;
-                               UnicoreDataMovementAppCatalogResourceAppCat 
dataMovementResource =
-                                       
(UnicoreDataMovementAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(
-                                               
AppCatalogResourceType.UNICORE_DATA_MOVEMENT, dataMovement);
-                               unicoreDMResourceList.add(dataMovementResource);
-                           }
-                       }
-                   } else {
-                       em.getTransaction().commit();
-                       em.close();
-                       logger.error("Unsupported field name for Unicore data 
movement resource.", new IllegalArgumentException());
-                       throw new IllegalArgumentException("Unsupported field 
name for Unicore data movement 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 unicoreDMResourceList;
-           }
-
-       @Override
-       public List<AppCatalogResource> getAll() throws AppCatalogException {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public List<String> getAllIds() throws AppCatalogException {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
-        return null;
-    }
-
-    public void save() throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            UnicoreDataMovement existingDataMovement = 
em.find(UnicoreDataMovement.class, dataMovementId);
-            em.close();
-
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            if (existingDataMovement != null) {
-                existingDataMovement.setDataMovementId(dataMovementId);;
-                existingDataMovement.setUnicoreEndpointUrl(unicoreEndpointUrl);
-                existingDataMovement.setSecurityProtocol(securityProtocol);
-                em.merge(existingDataMovement);
-            } else {
-                UnicoreDataMovement unicoreJobSubmission = new 
UnicoreDataMovement();
-                unicoreJobSubmission.setDataMovementId(dataMovementId);
-                unicoreJobSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
-                unicoreJobSubmission.setSecurityProtocol(securityProtocol);
-                em.persist(unicoreJobSubmission);
-            }
-            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();
-            UnicoreDataMovement dataMovement = 
em.find(UnicoreDataMovement.class, identifier);
-            em.close();
-            return dataMovement != 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 getDataMovementId() {
-        return dataMovementId;
-    }
-
-    public void setDataMovementId(String dataMovementId) {
-        this.dataMovementId = dataMovementId;
-    }
-
-    public String getSecurityProtocol() {
-               return securityProtocol;
-       }
-
-       public void setSecurityProtocol(String securityProtocol) {
-               this.securityProtocol = securityProtocol;
-       }
-
-       public String getUnicoreEndpointUrl() {
-               return unicoreEndpointUrl;
-       }
-
-       public void setUnicoreEndpointUrl(String unicoreEndpointUrl) {
-               this.unicoreEndpointUrl = unicoreEndpointUrl;
-       }
-       
-       
-}

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/UnicoreDataMovementResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementResource.java
new file mode 100644
index 0000000..db5ccde
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreDataMovementResource.java
@@ -0,0 +1,255 @@
+/*
+ *
+ * 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.UnicoreDataMovement;
+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 UnicoreDataMovementResource extends AppCatAbstractResource {
+       
+       private final static Logger logger = 
LoggerFactory.getLogger(UnicoreDataMovementResource.class);
+       
+       private String dataMovementId;
+       private String securityProtocol;
+       private String unicoreEndpointUrl;
+
+        public void remove(Object identifier) throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                   em = AppCatalogJPAUtils.getEntityManager();
+                   em.getTransaction().begin();
+                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_DATA_MOVEMENT);
+                   
generator.setParameter(UnicoreDataMovementConstants.DATAMOVEMENT_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(UNICORE_DATA_MOVEMENT);
+                   
generator.setParameter(UnicoreDataMovementConstants.DATAMOVEMENT_ID, 
identifier);
+                   Query q = generator.selectQuery(em);
+                   UnicoreDataMovement unicoreDataMovement = 
(UnicoreDataMovement) q.getSingleResult();
+                   UnicoreDataMovementResource dataMovementResource =
+                                       (UnicoreDataMovementResource) 
AppCatalogJPAUtils
+                                       
.getResource(AppCatalogResourceType.UNICORE_DATA_MOVEMENT,
+                                                       unicoreDataMovement);
+                   em.getTransaction().commit();
+                   em.close();
+                   return dataMovementResource;
+               } 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> unicoreDMResourceList = new 
ArrayList<AppCatalogResource>();
+               EntityManager em = null;
+               try {
+                   em = AppCatalogJPAUtils.getEntityManager();
+                   em.getTransaction().begin();
+                   Query q;
+                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_DATA_MOVEMENT);
+                   List results;
+                   if 
(fieldName.equals(UnicoreDataMovementConstants.UNICORE_ENDPOINT_URL)) {
+                       
generator.setParameter(UnicoreDataMovementConstants.UNICORE_ENDPOINT_URL, 
value);
+                       q = generator.selectQuery(em);
+                       results = q.getResultList();
+                       if (results.size() != 0) {
+                           for (Object result : results) {
+                               UnicoreDataMovement dataMovement = 
(UnicoreDataMovement) result;
+                               UnicoreDataMovementResource 
unicoreJobSubmissionResource =
+                                       (UnicoreDataMovementResource) 
AppCatalogJPAUtils.getResource(
+                                               
AppCatalogResourceType.UNICORE_DATA_MOVEMENT, dataMovement);
+                               
unicoreDMResourceList.add(unicoreJobSubmissionResource);
+                           }
+                       }
+                   } else if 
(fieldName.equals(UnicoreDataMovementConstants.SECURITY_PROTOCAL)) {
+                       
generator.setParameter(UnicoreDataMovementConstants.SECURITY_PROTOCAL, value);
+                       q = generator.selectQuery(em);
+                       results = q.getResultList();
+                       if (results.size() != 0) {
+                           for (Object result : results) {
+                               UnicoreDataMovement dataMovement = 
(UnicoreDataMovement) result;
+                               UnicoreDataMovementResource 
dataMovementResource =
+                                       (UnicoreDataMovementResource) 
AppCatalogJPAUtils.getResource(
+                                               
AppCatalogResourceType.UNICORE_DATA_MOVEMENT, dataMovement);
+                               unicoreDMResourceList.add(dataMovementResource);
+                           }
+                       }
+                   } else {
+                       em.getTransaction().commit();
+                       em.close();
+                       logger.error("Unsupported field name for Unicore data 
movement resource.", new IllegalArgumentException());
+                       throw new IllegalArgumentException("Unsupported field 
name for Unicore data movement 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 unicoreDMResourceList;
+           }
+
+       @Override
+       public List<AppCatalogResource> getAll() throws AppCatalogException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public List<String> getAllIds() throws AppCatalogException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        return null;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UnicoreDataMovement existingDataMovement = 
em.find(UnicoreDataMovement.class, dataMovementId);
+            em.close();
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingDataMovement != null) {
+                existingDataMovement.setDataMovementId(dataMovementId);;
+                existingDataMovement.setUnicoreEndpointUrl(unicoreEndpointUrl);
+                existingDataMovement.setSecurityProtocol(securityProtocol);
+                em.merge(existingDataMovement);
+            } else {
+                UnicoreDataMovement unicoreJobSubmission = new 
UnicoreDataMovement();
+                unicoreJobSubmission.setDataMovementId(dataMovementId);
+                unicoreJobSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
+                unicoreJobSubmission.setSecurityProtocol(securityProtocol);
+                em.persist(unicoreJobSubmission);
+            }
+            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();
+            UnicoreDataMovement dataMovement = 
em.find(UnicoreDataMovement.class, identifier);
+            em.close();
+            return dataMovement != 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 getDataMovementId() {
+        return dataMovementId;
+    }
+
+    public void setDataMovementId(String dataMovementId) {
+        this.dataMovementId = dataMovementId;
+    }
+
+    public String getSecurityProtocol() {
+               return securityProtocol;
+       }
+
+       public void setSecurityProtocol(String securityProtocol) {
+               this.securityProtocol = securityProtocol;
+       }
+
+       public String getUnicoreEndpointUrl() {
+               return unicoreEndpointUrl;
+       }
+
+       public void setUnicoreEndpointUrl(String unicoreEndpointUrl) {
+               this.unicoreEndpointUrl = unicoreEndpointUrl;
+       }
+       
+       
+}

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/UnicoreJobSubmissionAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreJobSubmissionAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreJobSubmissionAppCatalogResourceAppCat.java
deleted file mode 100644
index ae029f2..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UnicoreJobSubmissionAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,328 +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.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
-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.model.UnicoreJobSubmission;
-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 UnicoreJobSubmissionAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-       
-       private final static Logger logger = 
LoggerFactory.getLogger(UnicoreJobSubmissionAppCatalogResourceAppCat.class);
-       
-       private String jobSubmissionInterfaceId;
-       private String securityProtocol;
-       private String unicoreEndpointUrl;
-
-       public void remove(Object identifier) throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                   em = AppCatalogJPAUtils.getEntityManager();
-                   em.getTransaction().begin();
-                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_JOB_SUBMISSION);
-                   
generator.setParameter(UnicoreJobSubmissionConstants.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 {
-                HashMap<String, String> ids;
-                EntityManager em = null;
-               try {
-                   em = AppCatalogJPAUtils.getEntityManager();
-                   em.getTransaction().begin();
-                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_JOB_SUBMISSION);
-                   
generator.setParameter(UnicoreJobSubmissionConstants.SUBMISSION_ID, identifier);
-                   Query q = generator.selectQuery(em);
-                   UnicoreJobSubmission unicoreJobSubmission = 
(UnicoreJobSubmission) q.getSingleResult();
-                   UnicoreJobSubmissionAppCatalogResourceAppCat 
unicoreSubmissionResource =
-                                       
(UnicoreJobSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils
-                                       
.getResource(AppCatalogResourceType.UNICORE_JOB_SUBMISSION,
-                                                       unicoreJobSubmission);
-                   em.getTransaction().commit();
-                   em.close();
-                   return unicoreSubmissionResource;
-               } 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> unicoreSubmissionResourceList = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                   em = AppCatalogJPAUtils.getEntityManager();
-                   em.getTransaction().begin();
-                   Query q;
-                   AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(UNICORE_JOB_SUBMISSION);
-                   List results;
-                   if 
(fieldName.equals(UnicoreJobSubmissionConstants.UNICORE_ENDPOINT_URL)) {
-                       
generator.setParameter(UnicoreJobSubmissionConstants.UNICORE_ENDPOINT_URL, 
value);
-                       q = generator.selectQuery(em);
-                       results = q.getResultList();
-                       if (results.size() != 0) {
-                           for (Object result : results) {
-                               UnicoreJobSubmission unicoreJobSubmission = 
(UnicoreJobSubmission) result;
-                               UnicoreJobSubmissionAppCatalogResourceAppCat 
unicoreJobSubmissionResource =
-                                       
(UnicoreJobSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(
-                                               
AppCatalogResourceType.UNICORE_JOB_SUBMISSION, unicoreJobSubmission);
-                               
unicoreSubmissionResourceList.add(unicoreJobSubmissionResource);
-                           }
-                       }
-                   } else if 
(fieldName.equals(UnicoreJobSubmissionConstants.SECURITY_PROTOCAL)) {
-                       
generator.setParameter(UnicoreJobSubmissionConstants.SECURITY_PROTOCAL, value);
-                       q = generator.selectQuery(em);
-                       results = q.getResultList();
-                       if (results.size() != 0) {
-                           for (Object result : results) {
-                               UnicoreJobSubmission unicoreJobSubmission = 
(UnicoreJobSubmission) result;
-                               UnicoreJobSubmissionAppCatalogResourceAppCat 
unicoreJobSubmissionResource =
-                                       
(UnicoreJobSubmissionAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(
-                                               
AppCatalogResourceType.UNICORE_JOB_SUBMISSION, unicoreJobSubmission);
-                               
unicoreSubmissionResourceList.add(unicoreJobSubmissionResource);
-                           }
-                       }
-                   }        
-                   else {
-                       em.getTransaction().commit();
-                       em.close();
-                       logger.error("Unsupported field name for Unicore 
submission resource.", new IllegalArgumentException());
-                       throw new IllegalArgumentException("Unsupported field 
name for Unicore 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 unicoreSubmissionResourceList;
-           }
-
-       @Override
-       public List<AppCatalogResource> getAll() throws AppCatalogException {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public List<String> getAllIds() throws AppCatalogException {
-               // TODO Auto-generated method stub
-               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();
-            UnicoreJobSubmission existingUnicoreSubmission = 
em.find(UnicoreJobSubmission.class, jobSubmissionInterfaceId);
-            em.close();
-
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            if (existingUnicoreSubmission != null) {
-                
existingUnicoreSubmission.setSubmissionID(jobSubmissionInterfaceId);;
-                
existingUnicoreSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
-                
existingUnicoreSubmission.setSecurityProtocol(securityProtocol);
-
-                em.merge(existingUnicoreSubmission);
-            } else {
-               UnicoreJobSubmission unicoreJobSubmission = new 
UnicoreJobSubmission();
-                unicoreJobSubmission.setSubmissionID(jobSubmissionInterfaceId);
-                unicoreJobSubmission.setUnicoreEndpointUrl(unicoreEndpointUrl);
-                unicoreJobSubmission.setSecurityProtocol(securityProtocol);
-                em.persist(unicoreJobSubmission);
-            }
-            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();
-            UnicoreJobSubmission unicoreJobSubmission = 
em.find(UnicoreJobSubmission.class, identifier);
-            em.close();
-            return unicoreJobSubmission != 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 getjobSubmissionInterfaceId() {
-               return jobSubmissionInterfaceId;
-       }
-
-       public void setjobSubmissionInterfaceId(String 
jobSubmissionInterfaceId) {
-               this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
-       }
-
-       public String getSecurityProtocol() {
-               return securityProtocol;
-       }
-
-       public void setSecurityProtocol(String securityProtocol) {
-               this.securityProtocol = securityProtocol;
-       }
-
-       public String getUnicoreEndpointUrl() {
-               return unicoreEndpointUrl;
-       }
-
-       public void setUnicoreEndpointUrl(String unicoreEndpointUrl) {
-               this.unicoreEndpointUrl = unicoreEndpointUrl;
-       }
-       
-}

Reply via email to