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/ApplicationOutputAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputAppCatalogResourceAppCat.java
deleted file mode 100644
index e383c1c..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,433 +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.AppOutput_PK;
-import 
org.apache.airavata.registry.core.app.catalog.model.ApplicationInterface;
-import org.apache.airavata.registry.core.app.catalog.model.ApplicationOutput;
-import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
-import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class ApplicationOutputAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-    private final static Logger logger = 
LoggerFactory.getLogger(ApplicationOutputAppCatalogResourceAppCat.class);
-
-    private String interfaceID;
-    private String outputKey;
-    private String outputVal;
-    private String dataType;
-    private boolean isRequired;
-    private boolean dataMovement;
-    private String dataNameLocation;
-    private boolean requiredToCMD;
-    private String searchQuery;
-    private String appArgument;
-
-    private AppInterfaceAppCatalogResourceAppCat appInterfaceResource;
-
-    public void remove(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
-        } else {
-            logger.error("Identifier should be a map with the field name and 
it's value");
-            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
-        }
-
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
-            generator.setParameter(AppOutputConstants.INTERFACE_ID, 
ids.get(AppOutputConstants.INTERFACE_ID));
-            if (ids.get(AppOutputConstants.OUTPUT_KEY) != null){
-                generator.setParameter(AppOutputConstants.OUTPUT_KEY, 
ids.get(AppOutputConstants.OUTPUT_KEY));
-            }
-            Query q = generator.deleteQuery(em);
-            q.executeUpdate();
-            em.getTransaction().commit();
-            em.close();
-        } catch (ApplicationSettingsException e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
-        } else {
-            logger.error("Identifier should be a map with the field name and 
it's value");
-            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
-        }
-
-        EntityManager em = null;
-
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
-            generator.setParameter(AppOutputConstants.INTERFACE_ID, 
ids.get(AppOutputConstants.INTERFACE_ID));
-            generator.setParameter(AppOutputConstants.OUTPUT_KEY, 
ids.get(AppOutputConstants.OUTPUT_KEY));
-            Query q = generator.selectQuery(em);
-            ApplicationOutput applicationOutput = (ApplicationOutput) 
q.getSingleResult();
-            ApplicationOutputAppCatalogResourceAppCat 
applicationOutputResource =
-                    (ApplicationOutputAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_OUTPUT
-                            , applicationOutput);
-            em.getTransaction().commit();
-            em.close();
-            return applicationOutputResource;
-        } 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> appInputResources = new 
ArrayList<AppCatalogResource>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            Query q;
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
-            List results;
-            if (fieldName.equals(AppOutputConstants.INTERFACE_ID)) {
-                generator.setParameter(AppOutputConstants.INTERFACE_ID, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        ApplicationOutputAppCatalogResourceAppCat 
applicationOutputResource =
-                                (ApplicationOutputAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
-                        appInputResources.add(applicationOutputResource);
-                    }
-                }
-            } else if (fieldName.equals(AppOutputConstants.OUTPUT_KEY)) {
-                generator.setParameter(AppOutputConstants.OUTPUT_KEY, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        ApplicationOutputAppCatalogResourceAppCat 
applicationOutputResource =
-                                (ApplicationOutputAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
-                        appInputResources.add(applicationOutputResource);
-                    }
-                }
-            } else if (fieldName.equals(AppOutputConstants.DATA_TYPE)) {
-                generator.setParameter(AppOutputConstants.DATA_TYPE, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        ApplicationOutputAppCatalogResourceAppCat 
applicationOutputResource =
-                                (ApplicationOutputAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(
-                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
-                        appInputResources.add(applicationOutputResource);
-                    }
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for App Output 
Resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
App Output 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 appInputResources;
-    }
-
-    @Override
-    public List<AppCatalogResource> getAll() throws AppCatalogException {
-        return null;
-    }
-
-    @Override
-    public List<String> getAllIds() throws AppCatalogException {
-        return null;
-    }
-
-    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
-        List<String> appOutputResourceIDs = new ArrayList<String>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            Query q;
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
-            List results;
-            if (fieldName.equals(AppOutputConstants.INTERFACE_ID)) {
-                generator.setParameter(AppOutputConstants.INTERFACE_ID, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
-                    }
-                }
-            }
-            if (fieldName.equals(AppOutputConstants.OUTPUT_KEY)) {
-                generator.setParameter(AppOutputConstants.OUTPUT_KEY, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
-                    }
-                }
-            } else if (fieldName.equals(AppOutputConstants.DATA_TYPE)) {
-                generator.setParameter(AppOutputConstants.DATA_TYPE, value);
-                q = generator.selectQuery(em);
-                results = q.getResultList();
-                if (results.size() != 0) {
-                    for (Object result : results) {
-                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
-                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
-                    }
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for App Output 
resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
App Output 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 appOutputResourceIDs;
-    }
-
-    public void save() throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            ApplicationOutput existingApplicationOutput = 
em.find(ApplicationOutput.class,
-                    new AppOutput_PK(interfaceID, outputKey));
-            em.close();
-
-            ApplicationOutput applicationOutput;
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            if (existingApplicationOutput == null) {
-                applicationOutput = new ApplicationOutput();
-            } else {
-                applicationOutput = existingApplicationOutput;
-            }
-            ApplicationInterface applicationInterface = 
em.find(ApplicationInterface.class, interfaceID);
-            applicationOutput.setApplicationInterface(applicationInterface);
-            
applicationOutput.setInterfaceID(applicationInterface.getInterfaceID());
-            applicationOutput.setDataType(dataType);
-            applicationOutput.setOutputKey(outputKey);
-            applicationOutput.setOutputVal(outputVal);
-            applicationOutput.setRequired(isRequired);
-            applicationOutput.setRequiredToCMD(requiredToCMD);
-            applicationOutput.setDataMovement(dataMovement);
-            applicationOutput.setDataNameLocation(dataNameLocation);
-            applicationOutput.setSearchQuery(searchQuery);
-            applicationOutput.setApplicationArgument(appArgument);
-            em.merge(applicationOutput);
-            em.getTransaction().commit();
-            em.close();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            throw new AppCatalogException(e);
-        } finally {
-            if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()) {
-                    em.getTransaction().rollback();
-                }
-                em.close();
-            }
-        }
-    }
-
-    public boolean isExists(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
-        } else {
-            logger.error("Identifier should be a map with the field name and 
it's value");
-            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
-        }
-
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            ApplicationOutput applicationOutput = 
em.find(ApplicationOutput.class, new AppOutput_PK(
-                    ids.get(AppOutputConstants.INTERFACE_ID),
-                    ids.get(AppOutputConstants.OUTPUT_KEY)));
-
-            em.close();
-            return applicationOutput != 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 getInterfaceID() {
-        return interfaceID;
-    }
-
-    public void setInterfaceID(String interfaceID) {
-        this.interfaceID = interfaceID;
-    }
-
-    public String getOutputKey() {
-        return outputKey;
-    }
-
-    public void setOutputKey(String outputKey) {
-        this.outputKey = outputKey;
-    }
-
-    public String getOutputVal() {
-        return outputVal;
-    }
-
-    public void setOutputVal(String outputVal) {
-        this.outputVal = outputVal;
-    }
-
-    public String getDataType() {
-        return dataType;
-    }
-
-    public void setDataType(String dataType) {
-        this.dataType = dataType;
-    }
-
-    public AppInterfaceAppCatalogResourceAppCat getAppInterfaceResource() {
-        return appInterfaceResource;
-    }
-
-    public void setAppInterfaceResource(AppInterfaceAppCatalogResourceAppCat 
appInterfaceResource) {
-        this.appInterfaceResource = appInterfaceResource;
-    }
-
-    public boolean getRequired() {
-        return isRequired;
-    }
-
-    public void setRequired(boolean required) {
-        this.isRequired = required;
-    }
-
-    public boolean isDataMovement() {
-        return dataMovement;
-    }
-
-    public void setDataMovement(boolean dataMovement) {
-        this.dataMovement = dataMovement;
-    }
-
-    public String getDataNameLocation() {
-        return dataNameLocation;
-    }
-
-    public void setDataNameLocation(String dataNameLocation) {
-        this.dataNameLocation = dataNameLocation;
-    }
-
-    public boolean getRequiredToCMD() {
-        return requiredToCMD;
-    }
-
-    public void setRequiredToCMD(boolean requiredToCMD) {
-        this.requiredToCMD = requiredToCMD;
-    }
-
-    public String getSearchQuery() {
-        return searchQuery;
-    }
-
-    public void setSearchQuery(String searchQuery) {
-        this.searchQuery = searchQuery;
-    }
-
-    public String getAppArgument() {
-        return appArgument;
-    }
-
-    public void setAppArgument(String appArgument) {
-        this.appArgument = appArgument;
-    }
-}

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/ApplicationOutputResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputResource.java
new file mode 100644
index 0000000..b78ed41
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ApplicationOutputResource.java
@@ -0,0 +1,433 @@
+/**
+ * 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.AppOutput_PK;
+import 
org.apache.airavata.registry.core.app.catalog.model.ApplicationInterface;
+import org.apache.airavata.registry.core.app.catalog.model.ApplicationOutput;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import 
org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ApplicationOutputResource extends AppCatAbstractResource {
+    private final static Logger logger = 
LoggerFactory.getLogger(ApplicationOutputResource.class);
+
+    private String interfaceID;
+    private String outputKey;
+    private String outputVal;
+    private String dataType;
+    private boolean isRequired;
+    private boolean dataMovement;
+    private String dataNameLocation;
+    private boolean requiredToCMD;
+    private String searchQuery;
+    private String appArgument;
+
+    private AppInterfaceResource appInterfaceResource;
+
+    public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
+            generator.setParameter(AppOutputConstants.INTERFACE_ID, 
ids.get(AppOutputConstants.INTERFACE_ID));
+            if (ids.get(AppOutputConstants.OUTPUT_KEY) != null){
+                generator.setParameter(AppOutputConstants.OUTPUT_KEY, 
ids.get(AppOutputConstants.OUTPUT_KEY));
+            }
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
+            generator.setParameter(AppOutputConstants.INTERFACE_ID, 
ids.get(AppOutputConstants.INTERFACE_ID));
+            generator.setParameter(AppOutputConstants.OUTPUT_KEY, 
ids.get(AppOutputConstants.OUTPUT_KEY));
+            Query q = generator.selectQuery(em);
+            ApplicationOutput applicationOutput = (ApplicationOutput) 
q.getSingleResult();
+            ApplicationOutputResource applicationOutputResource =
+                    (ApplicationOutputResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_OUTPUT
+                            , applicationOutput);
+            em.getTransaction().commit();
+            em.close();
+            return applicationOutputResource;
+        } 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> appInputResources = new 
ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
+            List results;
+            if (fieldName.equals(AppOutputConstants.INTERFACE_ID)) {
+                generator.setParameter(AppOutputConstants.INTERFACE_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        ApplicationOutputResource applicationOutputResource =
+                                (ApplicationOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
+                        appInputResources.add(applicationOutputResource);
+                    }
+                }
+            } else if (fieldName.equals(AppOutputConstants.OUTPUT_KEY)) {
+                generator.setParameter(AppOutputConstants.OUTPUT_KEY, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        ApplicationOutputResource applicationOutputResource =
+                                (ApplicationOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
+                        appInputResources.add(applicationOutputResource);
+                    }
+                }
+            } else if (fieldName.equals(AppOutputConstants.DATA_TYPE)) {
+                generator.setParameter(AppOutputConstants.DATA_TYPE, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        ApplicationOutputResource applicationOutputResource =
+                                (ApplicationOutputResource) 
AppCatalogJPAUtils.getResource(
+                                        
AppCatalogResourceType.APPLICATION_OUTPUT, applicationOutput);
+                        appInputResources.add(applicationOutputResource);
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for App Output 
Resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
App Output 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 appInputResources;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getIds(String fieldName, Object value) throws 
AppCatalogException {
+        List<String> appOutputResourceIDs = new ArrayList<String>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(APPLICATION_OUTPUT);
+            List results;
+            if (fieldName.equals(AppOutputConstants.INTERFACE_ID)) {
+                generator.setParameter(AppOutputConstants.INTERFACE_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
+                    }
+                }
+            }
+            if (fieldName.equals(AppOutputConstants.OUTPUT_KEY)) {
+                generator.setParameter(AppOutputConstants.OUTPUT_KEY, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
+                    }
+                }
+            } else if (fieldName.equals(AppOutputConstants.DATA_TYPE)) {
+                generator.setParameter(AppOutputConstants.DATA_TYPE, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        ApplicationOutput applicationOutput = 
(ApplicationOutput) result;
+                        
appOutputResourceIDs.add(applicationOutput.getInterfaceID());
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported field name for App Output 
resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for 
App Output 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 appOutputResourceIDs;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            ApplicationOutput existingApplicationOutput = 
em.find(ApplicationOutput.class,
+                    new AppOutput_PK(interfaceID, outputKey));
+            em.close();
+
+            ApplicationOutput applicationOutput;
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingApplicationOutput == null) {
+                applicationOutput = new ApplicationOutput();
+            } else {
+                applicationOutput = existingApplicationOutput;
+            }
+            ApplicationInterface applicationInterface = 
em.find(ApplicationInterface.class, interfaceID);
+            applicationOutput.setApplicationInterface(applicationInterface);
+            
applicationOutput.setInterfaceID(applicationInterface.getInterfaceID());
+            applicationOutput.setDataType(dataType);
+            applicationOutput.setOutputKey(outputKey);
+            applicationOutput.setOutputVal(outputVal);
+            applicationOutput.setRequired(isRequired);
+            applicationOutput.setRequiredToCMD(requiredToCMD);
+            applicationOutput.setDataMovement(dataMovement);
+            applicationOutput.setDataNameLocation(dataNameLocation);
+            applicationOutput.setSearchQuery(searchQuery);
+            applicationOutput.setApplicationArgument(appArgument);
+            em.merge(applicationOutput);
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            ApplicationOutput applicationOutput = 
em.find(ApplicationOutput.class, new AppOutput_PK(
+                    ids.get(AppOutputConstants.INTERFACE_ID),
+                    ids.get(AppOutputConstants.OUTPUT_KEY)));
+
+            em.close();
+            return applicationOutput != 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 getInterfaceID() {
+        return interfaceID;
+    }
+
+    public void setInterfaceID(String interfaceID) {
+        this.interfaceID = interfaceID;
+    }
+
+    public String getOutputKey() {
+        return outputKey;
+    }
+
+    public void setOutputKey(String outputKey) {
+        this.outputKey = outputKey;
+    }
+
+    public String getOutputVal() {
+        return outputVal;
+    }
+
+    public void setOutputVal(String outputVal) {
+        this.outputVal = outputVal;
+    }
+
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public AppInterfaceResource getAppInterfaceResource() {
+        return appInterfaceResource;
+    }
+
+    public void setAppInterfaceResource(AppInterfaceResource 
appInterfaceResource) {
+        this.appInterfaceResource = appInterfaceResource;
+    }
+
+    public boolean getRequired() {
+        return isRequired;
+    }
+
+    public void setRequired(boolean required) {
+        this.isRequired = required;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
+
+    public boolean getRequiredToCMD() {
+        return requiredToCMD;
+    }
+
+    public void setRequiredToCMD(boolean requiredToCMD) {
+        this.requiredToCMD = requiredToCMD;
+    }
+
+    public String getSearchQuery() {
+        return searchQuery;
+    }
+
+    public void setSearchQuery(String searchQuery) {
+        this.searchQuery = searchQuery;
+    }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+}

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/BatchQueueAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueAppCatalogResourceAppCat.java
deleted file mode 100644
index 6ba1762..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,357 +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 java.util.Map;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.registry.core.app.catalog.model.BatchQueue;
-import org.apache.airavata.registry.core.app.catalog.model.BatchQueue_PK;
-import org.apache.airavata.registry.core.app.catalog.model.ComputeResource;
-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 BatchQueueAppCatalogResourceAppCat extends AppCatAbstractResource 
{
-       private final static Logger logger = 
LoggerFactory.getLogger(BatchQueueAppCatalogResourceAppCat.class);
-       private String computeResourceId;
-       private ComputeResourceAppCatalogResourceAppCat computeHostResource;
-       private int maxRuntime;
-       private int maxJobInQueue;
-       private String queueDescription;
-       private String queueName;
-       private int maxProcessors;
-       private int maxNodes;
-       private int maxMemory;
-
-       @Override
-       public void remove(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap<String, String>) identifier;
-        } else {
-            logger.error("Identifier should be a map with the field name and 
it's value");
-            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
-        }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
-            generator.setParameter(BatchQueueConstants.COMPUTE_RESOURCE_ID, 
ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID));
-            generator.setParameter(BatchQueueConstants.QUEUE_NAME, 
ids.get(BatchQueueConstants.QUEUE_NAME));
-                       Query q = generator.deleteQuery(em);
-                       q.executeUpdate();
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (ApplicationSettingsException e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
-               HashMap<String, String> ids;
-               if (identifier instanceof Map) {
-                       ids = (HashMap<String, String>) identifier;
-               } else {
-                       logger.error("Identifier should be a map with the field 
name and it's value");
-                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
-               }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
-                       
generator.setParameter(BatchQueueConstants.COMPUTE_RESOURCE_ID, 
ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID));
-                       generator.setParameter(BatchQueueConstants.QUEUE_NAME, 
ids.get(BatchQueueConstants.QUEUE_NAME));
-                       Query q = generator.selectQuery(em);
-                       BatchQueue batchQueue = (BatchQueue) 
q.getSingleResult();
-                       BatchQueueAppCatalogResourceAppCat batchQueueResource = 
(BatchQueueAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
-                       em.getTransaction().commit();
-                       em.close();
-                       return batchQueueResource;
-               } 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> batchQueueResources = new 
ArrayList<AppCatalogResource>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
-                       Query q;
-                       if 
((fieldName.equals(BatchQueueConstants.COMPUTE_RESOURCE_ID)) || 
(fieldName.equals(BatchQueueConstants.MAX_RUNTIME)) || 
(fieldName.equals(BatchQueueConstants.MAX_JOB_IN_QUEUE)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_NAME)) || 
(fieldName.equals(BatchQueueConstants.MAX_PROCESSORS)) || 
(fieldName.equals(BatchQueueConstants.MAX_NODES))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       BatchQueue batchQueue = (BatchQueue) 
result;
-                                       BatchQueueAppCatalogResourceAppCat 
batchQueueResource = (BatchQueueAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
-                                       
batchQueueResources.add(batchQueueResource);
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Batch 
Queue Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Batch Queue 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 batchQueueResources;
-       }
-
-    @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> batchQueueResourceIDs = new ArrayList<String>();
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
-                       Query q;
-                       if 
((fieldName.equals(BatchQueueConstants.COMPUTE_RESOURCE_ID)) || 
(fieldName.equals(BatchQueueConstants.MAX_RUNTIME)) || 
(fieldName.equals(BatchQueueConstants.MAX_JOB_IN_QUEUE)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_NAME)) || 
(fieldName.equals(BatchQueueConstants.MAX_PROCESSORS)) || 
(fieldName.equals(BatchQueueConstants.MAX_NODES))) {
-                               generator.setParameter(fieldName, value);
-                               q = generator.selectQuery(em);
-                               List<?> results = q.getResultList();
-                               for (Object result : results) {
-                                       BatchQueue batchQueue = (BatchQueue) 
result;
-                                       BatchQueueAppCatalogResourceAppCat 
batchQueueResource = (BatchQueueAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
-                                       
batchQueueResourceIDs.add(batchQueueResource.getComputeResourceId());
-                               }
-                       } else {
-                               em.getTransaction().commit();
-                                       em.close();
-                               logger.error("Unsupported field name for Batch 
Queue Resource.", new IllegalArgumentException());
-                               throw new IllegalArgumentException("Unsupported 
field name for Batch Queue 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 batchQueueResourceIDs;
-       }
-       
-       @Override
-       public void save() throws AppCatalogException {
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       BatchQueue existingBatchQueue = 
em.find(BatchQueue.class, new BatchQueue_PK(computeResourceId, queueName));
-                       em.close();
-                       BatchQueue batchQueue;
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       em.getTransaction().begin();
-                       if (existingBatchQueue == null) {
-                               batchQueue = new BatchQueue();
-                       } else {
-                               batchQueue = existingBatchQueue;
-                       }
-                       batchQueue.setComputeResourceId(getComputeResourceId());
-                       ComputeResource computeResource = 
em.find(ComputeResource.class, getComputeResourceId());
-                       batchQueue.setComputeResource(computeResource);
-                       batchQueue.setMaxRuntime(getMaxRuntime());
-                       batchQueue.setMaxJobInQueue(getMaxJobInQueue());
-                       batchQueue.setQueueDescription(getQueueDescription());
-                       batchQueue.setQueueName(getQueueName());
-                       batchQueue.setMaxProcessors(getMaxProcessors());
-                       batchQueue.setMaxNodes(getMaxNodes());
-                       batchQueue.setMaxMemory(getMaxMemory());
-                       if (existingBatchQueue == null) {
-                               em.persist(batchQueue);
-                       } else {
-                               em.merge(batchQueue);
-                       }
-                       em.getTransaction().commit();
-                       em.close();
-               } catch (Exception e) {
-                       logger.error(e.getMessage(), e);
-                       throw new AppCatalogException(e);
-               } finally {
-                       if (em != null && em.isOpen()) {
-                               if (em.getTransaction().isActive()) {
-                                       em.getTransaction().rollback();
-                               }
-                               em.close();
-                       }
-               }
-       }
-       
-       @Override
-       public boolean isExists(Object identifier) throws AppCatalogException {
-               HashMap<String, String> ids;
-               if (identifier instanceof Map) {
-                       ids = (HashMap<String, String>) identifier;
-               } else {
-                       logger.error("Identifier should be a map with the field 
name and it's value");
-                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
-               }
-               EntityManager em = null;
-               try {
-                       em = AppCatalogJPAUtils.getEntityManager();
-                       BatchQueue batchQueue = em.find(BatchQueue.class, new 
BatchQueue_PK(ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID), 
ids.get(BatchQueueConstants.QUEUE_NAME)));
-                       em.close();
-                       return batchQueue != 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 getComputeResourceId() {
-               return computeResourceId;
-       }
-       
-       public ComputeResourceAppCatalogResourceAppCat getComputeHostResource() 
{
-               return computeHostResource;
-       }
-       
-       public int getMaxRuntime() {
-               return maxRuntime;
-       }
-       
-       public int getMaxJobInQueue() {
-               return maxJobInQueue;
-       }
-       
-       public String getQueueDescription() {
-               return queueDescription;
-       }
-       
-       public String getQueueName() {
-               return queueName;
-       }
-       
-       public int getMaxProcessors() {
-               return maxProcessors;
-       }
-       
-       public int getMaxNodes() {
-               return maxNodes;
-       }
-       
-       public void setComputeResourceId(String computeResourceId) {
-               this.computeResourceId=computeResourceId;
-       }
-       
-       public void 
setComputeHostResource(ComputeResourceAppCatalogResourceAppCat 
computeHostResource) {
-               this.computeHostResource=computeHostResource;
-       }
-       
-       public void setMaxRuntime(int maxRuntime) {
-               this.maxRuntime=maxRuntime;
-       }
-       
-       public void setMaxJobInQueue(int maxJobInQueue) {
-               this.maxJobInQueue=maxJobInQueue;
-       }
-       
-       public void setQueueDescription(String queueDescription) {
-               this.queueDescription=queueDescription;
-       }
-       
-       public void setQueueName(String queueName) {
-               this.queueName=queueName;
-       }
-       
-       public void setMaxProcessors(int maxProcessors) {
-               this.maxProcessors=maxProcessors;
-       }
-       
-       public void setMaxNodes(int maxNodes) {
-               this.maxNodes=maxNodes;
-       }
-
-    public int getMaxMemory() {
-        return maxMemory;
-    }
-
-    public void setMaxMemory(int maxMemory) {
-        this.maxMemory = maxMemory;
-    }
-}
\ 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/BatchQueueResource.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
new file mode 100644
index 0000000..56e088c
--- /dev/null
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
@@ -0,0 +1,357 @@
+/*
+ *
+ * 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 java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.BatchQueue;
+import org.apache.airavata.registry.core.app.catalog.model.BatchQueue_PK;
+import org.apache.airavata.registry.core.app.catalog.model.ComputeResource;
+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 BatchQueueResource extends AppCatAbstractResource {
+       private final static Logger logger = 
LoggerFactory.getLogger(BatchQueueResource.class);
+       private String computeResourceId;
+       private ComputeResourceResource computeHostResource;
+       private int maxRuntime;
+       private int maxJobInQueue;
+       private String queueDescription;
+       private String queueName;
+       private int maxProcessors;
+       private int maxNodes;
+       private int maxMemory;
+
+       @Override
+       public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap<String, String>) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and 
it's value");
+            throw new AppCatalogException("Identifier should be a map with the 
field name and it's value");
+        }
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
+            generator.setParameter(BatchQueueConstants.COMPUTE_RESOURCE_ID, 
ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID));
+            generator.setParameter(BatchQueueConstants.QUEUE_NAME, 
ids.get(BatchQueueConstants.QUEUE_NAME));
+                       Query q = generator.deleteQuery(em);
+                       q.executeUpdate();
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (ApplicationSettingsException e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       @Override
+       public AppCatalogResource get(Object identifier) throws 
AppCatalogException {
+               HashMap<String, String> ids;
+               if (identifier instanceof Map) {
+                       ids = (HashMap<String, String>) identifier;
+               } else {
+                       logger.error("Identifier should be a map with the field 
name and it's value");
+                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
+               }
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
+                       
generator.setParameter(BatchQueueConstants.COMPUTE_RESOURCE_ID, 
ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID));
+                       generator.setParameter(BatchQueueConstants.QUEUE_NAME, 
ids.get(BatchQueueConstants.QUEUE_NAME));
+                       Query q = generator.selectQuery(em);
+                       BatchQueue batchQueue = (BatchQueue) 
q.getSingleResult();
+                       BatchQueueResource batchQueueResource = 
(BatchQueueResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
+                       em.getTransaction().commit();
+                       em.close();
+                       return batchQueueResource;
+               } 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> batchQueueResources = new 
ArrayList<AppCatalogResource>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
+                       Query q;
+                       if 
((fieldName.equals(BatchQueueConstants.COMPUTE_RESOURCE_ID)) || 
(fieldName.equals(BatchQueueConstants.MAX_RUNTIME)) || 
(fieldName.equals(BatchQueueConstants.MAX_JOB_IN_QUEUE)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_NAME)) || 
(fieldName.equals(BatchQueueConstants.MAX_PROCESSORS)) || 
(fieldName.equals(BatchQueueConstants.MAX_NODES))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       BatchQueue batchQueue = (BatchQueue) 
result;
+                                       BatchQueueResource batchQueueResource = 
(BatchQueueResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
+                                       
batchQueueResources.add(batchQueueResource);
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Batch 
Queue Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Batch Queue 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 batchQueueResources;
+       }
+
+    @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> batchQueueResourceIDs = new ArrayList<String>();
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(BATCH_QUEUE);
+                       Query q;
+                       if 
((fieldName.equals(BatchQueueConstants.COMPUTE_RESOURCE_ID)) || 
(fieldName.equals(BatchQueueConstants.MAX_RUNTIME)) || 
(fieldName.equals(BatchQueueConstants.MAX_JOB_IN_QUEUE)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_DESCRIPTION)) || 
(fieldName.equals(BatchQueueConstants.QUEUE_NAME)) || 
(fieldName.equals(BatchQueueConstants.MAX_PROCESSORS)) || 
(fieldName.equals(BatchQueueConstants.MAX_NODES))) {
+                               generator.setParameter(fieldName, value);
+                               q = generator.selectQuery(em);
+                               List<?> results = q.getResultList();
+                               for (Object result : results) {
+                                       BatchQueue batchQueue = (BatchQueue) 
result;
+                                       BatchQueueResource batchQueueResource = 
(BatchQueueResource) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.BATCH_QUEUE, batchQueue);
+                                       
batchQueueResourceIDs.add(batchQueueResource.getComputeResourceId());
+                               }
+                       } else {
+                               em.getTransaction().commit();
+                                       em.close();
+                               logger.error("Unsupported field name for Batch 
Queue Resource.", new IllegalArgumentException());
+                               throw new IllegalArgumentException("Unsupported 
field name for Batch Queue 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 batchQueueResourceIDs;
+       }
+       
+       @Override
+       public void save() throws AppCatalogException {
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       BatchQueue existingBatchQueue = 
em.find(BatchQueue.class, new BatchQueue_PK(computeResourceId, queueName));
+                       em.close();
+                       BatchQueue batchQueue;
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       em.getTransaction().begin();
+                       if (existingBatchQueue == null) {
+                               batchQueue = new BatchQueue();
+                       } else {
+                               batchQueue = existingBatchQueue;
+                       }
+                       batchQueue.setComputeResourceId(getComputeResourceId());
+                       ComputeResource computeResource = 
em.find(ComputeResource.class, getComputeResourceId());
+                       batchQueue.setComputeResource(computeResource);
+                       batchQueue.setMaxRuntime(getMaxRuntime());
+                       batchQueue.setMaxJobInQueue(getMaxJobInQueue());
+                       batchQueue.setQueueDescription(getQueueDescription());
+                       batchQueue.setQueueName(getQueueName());
+                       batchQueue.setMaxProcessors(getMaxProcessors());
+                       batchQueue.setMaxNodes(getMaxNodes());
+                       batchQueue.setMaxMemory(getMaxMemory());
+                       if (existingBatchQueue == null) {
+                               em.persist(batchQueue);
+                       } else {
+                               em.merge(batchQueue);
+                       }
+                       em.getTransaction().commit();
+                       em.close();
+               } catch (Exception e) {
+                       logger.error(e.getMessage(), e);
+                       throw new AppCatalogException(e);
+               } finally {
+                       if (em != null && em.isOpen()) {
+                               if (em.getTransaction().isActive()) {
+                                       em.getTransaction().rollback();
+                               }
+                               em.close();
+                       }
+               }
+       }
+       
+       @Override
+       public boolean isExists(Object identifier) throws AppCatalogException {
+               HashMap<String, String> ids;
+               if (identifier instanceof Map) {
+                       ids = (HashMap<String, String>) identifier;
+               } else {
+                       logger.error("Identifier should be a map with the field 
name and it's value");
+                       throw new AppCatalogException("Identifier should be a 
map with the field name and it's value");
+               }
+               EntityManager em = null;
+               try {
+                       em = AppCatalogJPAUtils.getEntityManager();
+                       BatchQueue batchQueue = em.find(BatchQueue.class, new 
BatchQueue_PK(ids.get(BatchQueueConstants.COMPUTE_RESOURCE_ID), 
ids.get(BatchQueueConstants.QUEUE_NAME)));
+                       em.close();
+                       return batchQueue != 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 getComputeResourceId() {
+               return computeResourceId;
+       }
+       
+       public ComputeResourceResource getComputeHostResource() {
+               return computeHostResource;
+       }
+       
+       public int getMaxRuntime() {
+               return maxRuntime;
+       }
+       
+       public int getMaxJobInQueue() {
+               return maxJobInQueue;
+       }
+       
+       public String getQueueDescription() {
+               return queueDescription;
+       }
+       
+       public String getQueueName() {
+               return queueName;
+       }
+       
+       public int getMaxProcessors() {
+               return maxProcessors;
+       }
+       
+       public int getMaxNodes() {
+               return maxNodes;
+       }
+       
+       public void setComputeResourceId(String computeResourceId) {
+               this.computeResourceId=computeResourceId;
+       }
+       
+       public void setComputeHostResource(ComputeResourceResource 
computeHostResource) {
+               this.computeHostResource=computeHostResource;
+       }
+       
+       public void setMaxRuntime(int maxRuntime) {
+               this.maxRuntime=maxRuntime;
+       }
+       
+       public void setMaxJobInQueue(int maxJobInQueue) {
+               this.maxJobInQueue=maxJobInQueue;
+       }
+       
+       public void setQueueDescription(String queueDescription) {
+               this.queueDescription=queueDescription;
+       }
+       
+       public void setQueueName(String queueName) {
+               this.queueName=queueName;
+       }
+       
+       public void setMaxProcessors(int maxProcessors) {
+               this.maxProcessors=maxProcessors;
+       }
+       
+       public void setMaxNodes(int maxNodes) {
+               this.maxNodes=maxNodes;
+       }
+
+    public int getMaxMemory() {
+        return maxMemory;
+    }
+
+    public void setMaxMemory(int maxMemory) {
+        this.maxMemory = maxMemory;
+    }
+}
\ 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/CloudSubmissionAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionAppCatalogResourceAppCat.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionAppCatalogResourceAppCat.java
deleted file mode 100644
index cb01e2a..0000000
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/CloudSubmissionAppCatalogResourceAppCat.java
+++ /dev/null
@@ -1,298 +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.CloudJobSubmission;
-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 CloudSubmissionAppCatalogResourceAppCat extends 
AppCatAbstractResource {
-    private final static Logger logger = 
LoggerFactory.getLogger(LocalSubmissionAppCatalogResourceAppCat.class);
-    private String jobSubmissionInterfaceId;
-    private String securityProtocol;
-    private String nodeId;
-    private String executableType;
-    private String providerName;
-    private String userAccountName;
-
-    @Override
-    public void remove(Object identifier) throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION);
-            
generator.setParameter(LocalSubmissionConstants.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(CLOUD_JOB_SUBMISSION);
-            
generator.setParameter(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID, 
identifier);
-            Query q = generator.selectQuery(em);
-            CloudJobSubmission cloudJobSubmission = (CloudJobSubmission) 
q.getSingleResult();
-            CloudSubmissionAppCatalogResourceAppCat localSubmissionResource = 
(CloudSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, 
cloudJobSubmission);
-            em.getTransaction().commit();
-            em.close();
-            return localSubmissionResource;
-        } 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> localSubmissionResources = new 
ArrayList<AppCatalogResource>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION);
-            Query q;
-            if 
((fieldName.equals(LocalSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID))) {
-                generator.setParameter(fieldName, value);
-                q = generator.selectQuery(em);
-                List<?> results = q.getResultList();
-                for (Object result : results) {
-                    CloudJobSubmission localSubmission = (CloudJobSubmission) 
result;
-                    CloudSubmissionAppCatalogResourceAppCat 
localSubmissionResource = (CloudSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, 
localSubmission);
-                    localSubmissionResources.add(localSubmissionResource);
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for Local Submission 
Resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
Local 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 localSubmissionResources;
-    }
-
-    @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> localSubmissionResourceIDs = new ArrayList<String>();
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            AppCatalogQueryGenerator generator = new 
AppCatalogQueryGenerator(CLOUD_JOB_SUBMISSION);
-            Query q;
-            if 
((fieldName.equals(LocalSubmissionConstants.RESOURCE_JOB_MANAGER_ID)) || 
(fieldName.equals(LocalSubmissionConstants.JOB_SUBMISSION_INTERFACE_ID))) {
-                generator.setParameter(fieldName, value);
-                q = generator.selectQuery(em);
-                List<?> results = q.getResultList();
-                for (Object result : results) {
-                    CloudJobSubmission localSubmission = (CloudJobSubmission) 
result;
-                    LocalSubmissionAppCatalogResourceAppCat 
localSubmissionResource = (LocalSubmissionAppCatalogResourceAppCat) 
AppCatalogJPAUtils.getResource(AppCatalogResourceType.ClOUD_SUBMISSION, 
localSubmission);
-                    
localSubmissionResourceIDs.add(localSubmissionResource.getJobSubmissionInterfaceId());
-                }
-            } else {
-                em.getTransaction().commit();
-                em.close();
-                logger.error("Unsupported field name for Local Submission 
Resource.", new IllegalArgumentException());
-                throw new IllegalArgumentException("Unsupported field name for 
Local 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 localSubmissionResourceIDs;
-    }
-
-    @Override
-    public void save() throws AppCatalogException {
-        EntityManager em = null;
-        try {
-            em = AppCatalogJPAUtils.getEntityManager();
-            CloudJobSubmission existingLocalSubmission = 
em.find(CloudJobSubmission.class, jobSubmissionInterfaceId);
-            em.close();
-            CloudJobSubmission cloudJobSubmission;
-            em = AppCatalogJPAUtils.getEntityManager();
-            em.getTransaction().begin();
-            if (existingLocalSubmission == null) {
-                cloudJobSubmission = new CloudJobSubmission();
-            } else {
-                cloudJobSubmission = existingLocalSubmission;
-            }
-            cloudJobSubmission.setExecutableType(getExecutableType());
-            cloudJobSubmission.setNodeId(getNodeId());
-            
cloudJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId());
-            cloudJobSubmission.setSecurityProtocol(getSecurityProtocol());
-            
cloudJobSubmission.setJobSubmissionInterfaceId(getJobSubmissionInterfaceId());
-            cloudJobSubmission.setUserAccountName(getUserAccountName());
-            cloudJobSubmission.setProviderName(getProviderName());
-            if (existingLocalSubmission == null) {
-                em.persist(cloudJobSubmission);
-            } else {
-                em.merge(cloudJobSubmission);
-            }
-            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();
-            CloudJobSubmission localSubmission = 
em.find(CloudJobSubmission.class, identifier);
-            em.close();
-            return localSubmission != 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 String getSecurityProtocol() {
-        return securityProtocol;
-    }
-
-    public void setSecurityProtocol(String securityProtocol) {
-        this.securityProtocol = securityProtocol;
-    }
-
-    public String getNodeId() {
-        return nodeId;
-    }
-
-    public void setNodeId(String nodeId) {
-        this.nodeId = nodeId;
-    }
-
-    public String getExecutableType() {
-        return executableType;
-    }
-
-    public void setExecutableType(String executableType) {
-        this.executableType = executableType;
-    }
-
-    public String getProviderName() {
-        return providerName;
-    }
-
-    public void setProviderName(String providerName) {
-        this.providerName = providerName;
-    }
-
-    public String getUserAccountName() {
-        return userAccountName;
-    }
-
-    public void setUserAccountName(String userAccountName) {
-        this.userAccountName = userAccountName;
-    }
-
-    public void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
-        this.jobSubmissionInterfaceId=jobSubmissionInterfaceId;
-    }
-}

Reply via email to