You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/06/12 16:06:25 UTC
[airavata] 01/02: AIRAVATA-2823 Refactor into common
AbstractRepository
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch group-based-auth
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 2c489dc72ed88f6b223ca2615c5510f637a01553
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Jun 12 12:03:46 2018 -0400
AIRAVATA-2823 Refactor into common AbstractRepository
---
.../core/repositories/AbstractRepository.java | 62 +++++++++---
.../appcatalog/AppCatAbstractRepository.java | 105 ++------------------
.../appcatalog/StoragePrefRepository.java | 1 -
.../expcatalog/ExpCatAbstractRepository.java | 104 ++------------------
.../replicacatalog/RepCatAbstractRepository.java | 108 ++-------------------
.../WorkflowCatAbstractRepository.java | 106 ++------------------
.../workspacecatalog/UserProfileRepository.java | 72 --------------
7 files changed, 83 insertions(+), 475 deletions(-)
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/AbstractRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/AbstractRepository.java
index a83928d..ee4b3c9 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/AbstractRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/AbstractRepository.java
@@ -1,5 +1,4 @@
/*
- *
* 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
@@ -17,15 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*
-*/
+ */
package org.apache.airavata.registry.core.repositories;
-import org.apache.airavata.registry.core.utils.JPAUtils;
+import org.apache.airavata.registry.core.utils.Committer;
+import org.apache.airavata.registry.core.utils.DBConstants;
import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
import org.dozer.Mapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
@@ -49,12 +50,15 @@ public abstract class AbstractRepository<T, E, Id> {
public T update(T t) {
Mapper mapper = ObjectMapperSingleton.getInstance();
E entity = mapper.map(t, dbEntityGenericClass);
- E persistedCopy = JPAUtils.execute(entityManager -> entityManager.merge(entity));
+// if (entity instanceof ParentIdPopulater) {
+// ((ParentIdPopulater) entity).populateParentIds();
+// }
+ E persistedCopy = execute(entityManager -> entityManager.merge(entity));
return mapper.map(persistedCopy, thriftGenericClass);
}
public boolean delete(Id id) {
- JPAUtils.execute(entityManager -> {
+ execute(entityManager -> {
E entity = entityManager.find(dbEntityGenericClass, id);
entityManager.remove(entity);
return entity;
@@ -63,15 +67,17 @@ public abstract class AbstractRepository<T, E, Id> {
}
public T get(Id id) {
- E entity = JPAUtils.execute(entityManager -> entityManager
+ E entity = execute(entityManager -> entityManager
.find(dbEntityGenericClass, id));
+ if(entity == null)
+ return null;
Mapper mapper = ObjectMapperSingleton.getInstance();
return mapper.map(entity, thriftGenericClass);
}
- public List<T> select(String query, int limit, int offset) {
- List resultSet = (List) JPAUtils.execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
- .setMaxResults(offset).getResultList());
+ public List<T> select(String query, int offset) {
+ List resultSet = (List) execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
+ .getResultList());
Mapper mapper = ObjectMapperSingleton.getInstance();
List<T> gatewayList = new ArrayList<>();
resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
@@ -79,7 +85,9 @@ public abstract class AbstractRepository<T, E, Id> {
}
public List<T> select(String query, int limit, int offset, Map<String, Object> queryParams) {
- List resultSet = (List) JPAUtils.execute(entityManager -> {
+ int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS: limit;
+
+ List resultSet = (List) execute(entityManager -> {
Query jpaQuery = entityManager.createQuery(query);
for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
@@ -87,7 +95,7 @@ public abstract class AbstractRepository<T, E, Id> {
jpaQuery.setParameter(entry.getKey(), entry.getValue());
}
- return jpaQuery.setFirstResult(offset).setMaxResults(limit).getResultList();
+ return jpaQuery.setFirstResult(offset).setMaxResults(newLimit).getResultList();
});
Mapper mapper = ObjectMapperSingleton.getInstance();
@@ -95,4 +103,36 @@ public abstract class AbstractRepository<T, E, Id> {
resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
return gatewayList;
}
+
+ public boolean isExists(Id id) {
+ return get(id) != null;
+ }
+
+ public <R> R execute(Committer<EntityManager, R> committer){
+ EntityManager entityManager = null;
+ try {
+ entityManager = getEntityManager();
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to get EntityManager", e);
+ }
+ try {
+ entityManager.getTransaction().begin();
+ R r = committer.commit(entityManager);
+ entityManager.getTransaction().commit();
+ return r;
+ } catch(Exception e) {
+ logger.error("Failed to execute transaction", e);
+ throw e;
+ }finally {
+ if (entityManager != null && entityManager.isOpen()) {
+ if (entityManager.getTransaction().isActive()) {
+ entityManager.getTransaction().rollback();
+ }
+ entityManager.close();
+ }
+ }
+ }
+
+ abstract protected EntityManager getEntityManager();
+
}
\ No newline at end of file
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/AppCatAbstractRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/AppCatAbstractRepository.java
index f27dc76..1468dd8 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/AppCatAbstractRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/AppCatAbstractRepository.java
@@ -20,116 +20,27 @@
*/
package org.apache.airavata.registry.core.repositories.appcatalog;
-import org.apache.airavata.registry.core.utils.Committer;
-import org.apache.airavata.registry.core.utils.DBConstants;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.repositories.AbstractRepository;
import org.apache.airavata.registry.core.utils.JPAUtil.AppCatalogJPAUtils;
-import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
-import org.dozer.Mapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-public abstract class AppCatAbstractRepository<T, E, Id> {
+public class AppCatAbstractRepository<T, E, Id> extends AbstractRepository<T, E, Id> {
private final static Logger logger = LoggerFactory.getLogger(AppCatAbstractRepository.class);
- private Class<T> thriftGenericClass;
- private Class<E> dbEntityGenericClass;
-
public AppCatAbstractRepository(Class<T> thriftGenericClass, Class<E> dbEntityGenericClass) {
- this.thriftGenericClass = thriftGenericClass;
- this.dbEntityGenericClass = dbEntityGenericClass;
- }
-
- public T create(T t) {
- return update(t);
- }
-
- public T update(T t) {
- Mapper mapper = ObjectMapperSingleton.getInstance();
- E entity = mapper.map(t, dbEntityGenericClass);
- E persistedCopy = execute(entityManager -> entityManager.merge(entity));
- return mapper.map(persistedCopy, thriftGenericClass);
- }
-
- public boolean delete(Id id) {
- execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
- entityManager.remove(entity);
- return entity;
- });
- return true;
- }
-
- public T get(Id id) {
- E entity = execute(entityManager -> entityManager
- .find(dbEntityGenericClass, id));
- if(entity == null)
- return null;
- Mapper mapper = ObjectMapperSingleton.getInstance();
- return mapper.map(entity, thriftGenericClass);
+ super(thriftGenericClass, dbEntityGenericClass);
}
- public List<T> select(String query, int offset) {
- List resultSet = (List) execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
- .getResultList());
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public List<T> select(String query, int limit, int offset, Map<String, Object> queryParams) {
- int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS: limit;
-
- List resultSet = (List) execute(entityManager -> {
- Query jpaQuery = entityManager.createQuery(query);
-
- for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
-
- jpaQuery.setParameter(entry.getKey(), entry.getValue());
- }
-
- return jpaQuery.setFirstResult(offset).setMaxResults(newLimit).getResultList();
-
- });
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public boolean isExists(Id id) {
- return get(id) != null;
- }
-
- public <R> R execute(Committer<EntityManager, R> committer){
- EntityManager entityManager = null;
+ @Override
+ protected EntityManager getEntityManager() {
try {
- entityManager = AppCatalogJPAUtils.getEntityManager();
- } catch (Exception e) {
+ return AppCatalogJPAUtils.getEntityManager();
+ } catch (ApplicationSettingsException e) {
throw new RuntimeException("Failed to get App Catalog EntityManager", e);
}
- try {
- entityManager.getTransaction().begin();
- R r = committer.commit(entityManager);
- entityManager.getTransaction().commit();
- return r;
- } catch(Exception e) {
- logger.error("Failed to execute App Catalog transaction", e);
- throw e;
- }finally {
- if (entityManager != null && entityManager.isOpen()) {
- if (entityManager.getTransaction().isActive()) {
- entityManager.getTransaction().rollback();
- }
- entityManager.close();
- }
- }
}
-
}
\ No newline at end of file
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
index 347ee03..d1e3a71 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/StoragePrefRepository.java
@@ -22,7 +22,6 @@ package org.apache.airavata.registry.core.repositories.appcatalog;
import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
import org.apache.airavata.registry.core.entities.appcatalog.StoragePreferenceEntity;
import org.apache.airavata.registry.core.entities.appcatalog.StoragePreferencePK;
-import org.apache.airavata.registry.core.repositories.AbstractRepository;
public class StoragePrefRepository extends AppCatAbstractRepository<StoragePreference, StoragePreferenceEntity, StoragePreferencePK> {
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExpCatAbstractRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExpCatAbstractRepository.java
index f4e110b..e85491a 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExpCatAbstractRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExpCatAbstractRepository.java
@@ -1,111 +1,23 @@
package org.apache.airavata.registry.core.repositories.expcatalog;
-import org.apache.airavata.registry.core.utils.Committer;
-import org.apache.airavata.registry.core.utils.DBConstants;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.repositories.AbstractRepository;
import org.apache.airavata.registry.core.utils.JPAUtil.ExpCatalogJPAUtils;
-import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
-import org.dozer.Mapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-public abstract class ExpCatAbstractRepository<T, E, Id> {
- private final static Logger logger = LoggerFactory.getLogger(ExpCatAbstractRepository.class);
-
- private Class<T> thriftGenericClass;
- private Class<E> dbEntityGenericClass;
+public class ExpCatAbstractRepository<T, E, Id> extends AbstractRepository<T, E, Id> {
public ExpCatAbstractRepository(Class<T> thriftGenericClass, Class<E> dbEntityGenericClass) {
- this.thriftGenericClass = thriftGenericClass;
- this.dbEntityGenericClass = dbEntityGenericClass;
- }
-
- public T create(T t) {
- return update(t);
- }
-
- public T update(T t) {
- Mapper mapper = ObjectMapperSingleton.getInstance();
- E entity = mapper.map(t, dbEntityGenericClass);
- E persistedCopy = execute(entityManager -> entityManager.merge(entity));
- return mapper.map(persistedCopy, thriftGenericClass);
- }
-
- public boolean delete(Id id) {
- execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
- entityManager.remove(entity);
- return entity;
- });
- return true;
- }
-
- public T get(Id id) {
- E entity = execute(entityManager -> entityManager
- .find(dbEntityGenericClass, id));
- if(entity == null)
- return null;
- Mapper mapper = ObjectMapperSingleton.getInstance();
- return mapper.map(entity, thriftGenericClass);
- }
-
- public List<T> select(String query, int offset) {
- List resultSet = (List) execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
- .getResultList());
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
+ super(thriftGenericClass, dbEntityGenericClass);
}
- public List<T> select(String query, int limit, int offset, Map<String, Object> queryParams) {
- int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS: limit;
-
- List resultSet = (List) execute(entityManager -> {
- Query jpaQuery = entityManager.createQuery(query);
-
- for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
-
- jpaQuery.setParameter(entry.getKey(), entry.getValue());
- }
-
- return jpaQuery.setFirstResult(offset).setMaxResults(newLimit).getResultList();
-
- });
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public boolean isExists(Id id) {
- return get(id) != null;
- }
-
- public <R> R execute(Committer<EntityManager, R> committer){
- EntityManager entityManager = null;
+ @Override
+ protected EntityManager getEntityManager() {
try {
- entityManager = ExpCatalogJPAUtils.getEntityManager();
- } catch (Exception e) {
+ return ExpCatalogJPAUtils.getEntityManager();
+ } catch (ApplicationSettingsException e) {
throw new RuntimeException("Failed to get Experiment Catalog EntityManager", e);
}
- try {
- entityManager.getTransaction().begin();
- R r = committer.commit(entityManager);
- entityManager.getTransaction().commit();
- return r;
- }finally {
- if (entityManager != null && entityManager.isOpen()) {
- if (entityManager.getTransaction().isActive()) {
- entityManager.getTransaction().rollback();
- }
- entityManager.close();
- }
- }
}
}
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
index ceeb228..31e6e5f 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/replicacatalog/RepCatAbstractRepository.java
@@ -20,116 +20,24 @@
*/
package org.apache.airavata.registry.core.repositories.replicacatalog;
-import org.apache.airavata.registry.core.utils.Committer;
-import org.apache.airavata.registry.core.utils.DBConstants;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.repositories.AbstractRepository;
import org.apache.airavata.registry.core.utils.JPAUtil.RepCatalogJPAUtils;
-import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
-import org.dozer.Mapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-public abstract class RepCatAbstractRepository<T, E, Id> {
- private final static Logger logger = LoggerFactory.getLogger(RepCatAbstractRepository.class);
-
- private Class<T> thriftGenericClass;
- private Class<E> dbEntityGenericClass;
+public class RepCatAbstractRepository<T, E, Id> extends AbstractRepository<T, E, Id> {
public RepCatAbstractRepository(Class<T> thriftGenericClass, Class<E> dbEntityGenericClass) {
- this.thriftGenericClass = thriftGenericClass;
- this.dbEntityGenericClass = dbEntityGenericClass;
- }
-
- public T create(T t) {
- return update(t);
- }
-
- public T update(T t) {
- Mapper mapper = ObjectMapperSingleton.getInstance();
- E entity = mapper.map(t, dbEntityGenericClass);
- E persistedCopy = execute(entityManager -> entityManager.merge(entity));
- return mapper.map(persistedCopy, thriftGenericClass);
- }
-
- public boolean delete(Id id) {
- execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
- entityManager.remove(entity);
- return entity;
- });
- return true;
- }
-
- public T get(Id id) {
- E entity = execute(entityManager -> entityManager
- .find(dbEntityGenericClass, id));
- if(entity == null)
- return null;
- Mapper mapper = ObjectMapperSingleton.getInstance();
- return mapper.map(entity, thriftGenericClass);
+ super(thriftGenericClass, dbEntityGenericClass);
}
- public List<T> select(String query, int offset) {
- List resultSet = (List) execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
- .getResultList());
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public List<T> select(String query, int limit, int offset, Map<String, Object> queryParams) {
- int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS: limit;
-
- List resultSet = (List) execute(entityManager -> {
- Query jpaQuery = entityManager.createQuery(query);
-
- for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
-
- jpaQuery.setParameter(entry.getKey(), entry.getValue());
- }
-
- return jpaQuery.setFirstResult(offset).setMaxResults(newLimit).getResultList();
-
- });
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public boolean isExists(Id id) {
- return get(id) != null;
- }
-
- public <R> R execute(Committer<EntityManager, R> committer){
- EntityManager entityManager = null;
+ @Override
+ protected EntityManager getEntityManager() {
try {
- entityManager = RepCatalogJPAUtils.getEntityManager();
- } catch (Exception e) {
+ return RepCatalogJPAUtils.getEntityManager();
+ } catch (ApplicationSettingsException e) {
throw new RuntimeException("Failed to get Replica Catalog EntityManager", e);
}
- try {
- entityManager.getTransaction().begin();
- R r = committer.commit(entityManager);
- entityManager.getTransaction().commit();
- return r;
- } catch(Exception e) {
- logger.error("Failed to execute Replica Catalog transaction", e);
- throw e;
- }finally {
- if (entityManager != null && entityManager.isOpen()) {
- if (entityManager.getTransaction().isActive()) {
- entityManager.getTransaction().rollback();
- }
- entityManager.close();
- }
- }
}
-
}
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workflowcatalog/WorkflowCatAbstractRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workflowcatalog/WorkflowCatAbstractRepository.java
index 94df040..93adbc5 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workflowcatalog/WorkflowCatAbstractRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workflowcatalog/WorkflowCatAbstractRepository.java
@@ -20,114 +20,24 @@
*/
package org.apache.airavata.registry.core.repositories.workflowcatalog;
-import org.apache.airavata.registry.core.utils.Committer;
-import org.apache.airavata.registry.core.utils.DBConstants;
-import org.apache.airavata.registry.core.utils.JPAUtil.RepCatalogJPAUtils;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.repositories.AbstractRepository;
import org.apache.airavata.registry.core.utils.JPAUtil.WorkflowCatalogJPAUtils;
-import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
-import org.dozer.Mapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-public abstract class WorkflowCatAbstractRepository<T, E, Id> {
- private final static Logger logger = LoggerFactory.getLogger(WorkflowCatAbstractRepository.class);
-
- private Class<T> thriftGenericClass;
- private Class<E> dbEntityGenericClass;
+public class WorkflowCatAbstractRepository<T, E, Id> extends AbstractRepository<T, E, Id> {
public WorkflowCatAbstractRepository(Class<T> thriftGenericClass, Class<E> dbEntityGenericClass) {
- this.thriftGenericClass = thriftGenericClass;
- this.dbEntityGenericClass = dbEntityGenericClass;
- }
-
- public T create(T t) {
- return update(t);
- }
-
- public T update(T t) {
- Mapper mapper = ObjectMapperSingleton.getInstance();
- E entity = mapper.map(t, dbEntityGenericClass);
- E persistedCopy = execute(entityManager -> entityManager.merge(entity));
- return mapper.map(persistedCopy, thriftGenericClass);
- }
-
- public boolean delete(Id id) {
- execute(entityManager -> {
- E entity = entityManager.find(dbEntityGenericClass, id);
- entityManager.remove(entity);
- return entity;
- });
- return true;
- }
-
- public T get(Id id) {
- E entity = execute(entityManager -> entityManager
- .find(dbEntityGenericClass, id));
- if(entity == null)
- return null;
- Mapper mapper = ObjectMapperSingleton.getInstance();
- return mapper.map(entity, thriftGenericClass);
+ super(thriftGenericClass, dbEntityGenericClass);
}
- public List<T> select(String query, int offset) {
- List resultSet = (List) execute(entityManager -> entityManager.createQuery(query).setFirstResult(offset)
- .getResultList());
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public List<T> select(String query, int limit, int offset, Map<String, Object> queryParams) {
- int newLimit = limit < 0 ? DBConstants.SELECT_MAX_ROWS: limit;
-
- List resultSet = (List) execute(entityManager -> {
- Query jpaQuery = entityManager.createQuery(query);
-
- for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
-
- jpaQuery.setParameter(entry.getKey(), entry.getValue());
- }
-
- return jpaQuery.setFirstResult(offset).setMaxResults(newLimit).getResultList();
-
- });
- Mapper mapper = ObjectMapperSingleton.getInstance();
- List<T> gatewayList = new ArrayList<>();
- resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, thriftGenericClass)));
- return gatewayList;
- }
-
- public boolean isExists(Id id) {
- return get(id) != null;
- }
-
- public <R> R execute(Committer<EntityManager, R> committer){
- EntityManager entityManager = null;
+ @Override
+ protected EntityManager getEntityManager() {
try {
- entityManager = WorkflowCatalogJPAUtils.getEntityManager();
- } catch (Exception e) {
+ return WorkflowCatalogJPAUtils.getEntityManager();
+ } catch (ApplicationSettingsException e) {
throw new RuntimeException("Failed to get Workflow Catalog EntityManager", e);
}
- try {
- entityManager.getTransaction().begin();
- R r = committer.commit(entityManager);
- entityManager.getTransaction().commit();
- return r;
- }finally {
- if (entityManager != null && entityManager.isOpen()) {
- if (entityManager.getTransaction().isActive()) {
- entityManager.getTransaction().rollback();
- }
- entityManager.close();
- }
- }
}
-
}
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workspacecatalog/UserProfileRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workspacecatalog/UserProfileRepository.java
deleted file mode 100644
index 3fb71f0..0000000
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/workspacecatalog/UserProfileRepository.java
+++ /dev/null
@@ -1,72 +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.repositories.workspacecatalog;
-
-import org.apache.airavata.model.user.UserProfile;
-import org.apache.airavata.registry.core.entities.workspacecatalog.UserProfileEntity;
-import org.apache.airavata.registry.core.repositories.AbstractRepository;
-import org.apache.airavata.registry.core.utils.QueryConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class UserProfileRepository extends AbstractRepository<UserProfile, UserProfileEntity, String> {
- private final static Logger logger = LoggerFactory.getLogger(UserProfileRepository.class);
-
- public UserProfileRepository(Class<UserProfile> thriftGenericClass, Class<UserProfileEntity> dbEntityGenericClass) {
- super(thriftGenericClass, dbEntityGenericClass);
- }
-
- @Override
- public List<UserProfile> select(String query, int offset, int limit) {
- throw new UnsupportedOperationException("Due to performance overheads this method is not supported. Instead use" +
- " UserProfileSummaryRepository");
- }
-
- public UserProfile getUserProfileByIdAndGateWay(String userId, String gatewayId) {
-
- UserProfile userProfile = null;
-
- Map<String, Object> queryParam = new HashMap<String, Object>();
- queryParam.put(UserProfile._Fields.USER_ID.getFieldName(), userId);
- queryParam.put(UserProfile._Fields.GATEWAY_ID.getFieldName(), gatewayId);
- List<UserProfile> resultList = select(QueryConstants.FIND_USER_PROFILE_BY_USER_ID, 0, 1, queryParam);
-
- if (resultList != null && resultList.size() > 0)
- userProfile = resultList.get(0);
-
-
- return userProfile;
- }
-
- public List<UserProfile> getAllUserProfilesInGateway(String gatewayId, int offset, int limit) {
-
- Map<String, Object> queryParam = new HashMap<String, Object>();
- queryParam.put(UserProfile._Fields.GATEWAY_ID.getFieldName(), gatewayId);
-
- List<UserProfile> resultList = select(QueryConstants.FIND_ALL_USER_PROFILES_BY_GATEWAY_ID, limit, offset, queryParam);
-
- return resultList;
- }
-}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
machristie@apache.org.