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; - } -}
