You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by jo...@apache.org on 2017/12/01 15:01:01 UTC
deltaspike git commit: DELTASPIKE-940 - Fixed missing third case of
default resolution. Ensure that the entity manager is resolved.
Repository: deltaspike
Updated Branches:
refs/heads/master 042b9cbb4 -> 51eceaec9
DELTASPIKE-940 - Fixed missing third case of default resolution. Ensure that the entity manager is resolved.
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/51eceaec
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/51eceaec
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/51eceaec
Branch: refs/heads/master
Commit: 51eceaec9ccd7993bda8ebb7f92a4ef19417733a
Parents: 042b9cb
Author: John D. Ament <jo...@gmail.com>
Authored: Fri Dec 1 10:00:53 2017 -0500
Committer: John D. Ament <jo...@gmail.com>
Committed: Fri Dec 1 10:00:53 2017 -0500
----------------------------------------------------------------------
.../data/impl/criteria/QueryCriteria.java | 2 +-
.../data/impl/handler/QueryHandler.java | 7 ++++++-
.../meta/RepositoryMetadataInitializer.java | 21 ++++++++++++--------
.../data/impl/handler/EntityManagerTest.java | 3 ---
.../entitymanager/EntityManagerMetadata.java | 3 +--
.../entitymanager/EntityManagerRefLookup.java | 8 +++++---
6 files changed, 26 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
index 48e0318..5a2aec2 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
@@ -93,9 +93,9 @@ public class QueryCriteria<C, R> implements Criteria<C, R>
public QueryCriteria(Class<C> entityClass, Class<R> resultClass, EntityManager entityManager, JoinType joinType)
{
- this.entityManager = entityManager;
this.entityClass = entityClass;
this.resultClass = resultClass;
+ this.entityManager = entityManager;
this.joinType = joinType;
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
index e17ec2e..1c83110 100755
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
@@ -139,7 +139,12 @@ public class QueryHandler implements Serializable, InvocationHandler
try
{
entityManagerRef = entityManagerRefLookup.lookupReference(repositoryMetadata);
- queryContext = createContext(proxy, method, args, entityManagerRef.getEntityManager(),
+ EntityManager entityManager = entityManagerRef.getEntityManager();
+ if (entityManager == null)
+ {
+ throw new IllegalStateException("Unable to look up EntityManager");
+ }
+ queryContext = createContext(proxy, method, args, entityManager,
repositoryMetadata, repositoryMethodMetadata);
QueryBuilder builder = queryBuilderFactory.build(repositoryMethodMetadata, queryContext);
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryMetadataInitializer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryMetadataInitializer.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryMetadataInitializer.java
index 8fc8ff8..dc7ceea 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryMetadataInitializer.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryMetadataInitializer.java
@@ -27,6 +27,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.inject.Default;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
@@ -63,16 +64,20 @@ public class RepositoryMetadataInitializer
Class<? extends Annotation> scope = beanManager.resolve(beans).getScope();
repositoryMetadata.setEntityManagerResolverIsNormalScope(beanManager.isNormalScope(scope));
}
- else if (repositoryMetadata.getQualifiers() != null)
- {
- repositoryMetadata.setUnmanagedResolver(new QualifierBackedEntityManagerResolver(beanManager,
- repositoryMetadata.getQualifiers()));
- repositoryMetadata.setEntityManagerResolverIsNormalScope(false);
- }
else
{
- throw new IllegalStateException("Unable to locate an EntityManagerResolver or Qualifiers for "
- + repositoryClass.getName());
+ EntityManagerResolver resolver;
+ if (repositoryMetadata.getQualifiers() != null)
+ {
+ resolver = new QualifierBackedEntityManagerResolver(beanManager,
+ repositoryMetadata.getQualifiers());
+ }
+ else
+ {
+ resolver = new QualifierBackedEntityManagerResolver(beanManager, Default.class);
+ }
+ repositoryMetadata.setUnmanagedResolver(resolver);
+ repositoryMetadata.setEntityManagerResolverIsNormalScope(false);
}
}
repositoryMetadata.setEntityMetadata(entityMetadataInitializer.init(repositoryMetadata));
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTest.java
index a38c307..558f092 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTest.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTest.java
@@ -58,9 +58,6 @@ public class EntityManagerTest
}
@Inject
- private LegacyRepositoryWithEntityManagerResolver legacyRepository;
-
- @Inject
private SimpleRepositoryWithEntityManager repoWithDefaultEm;
@Inject
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerMetadata.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerMetadata.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerMetadata.java
index fafba1a..d4ae865 100644
--- a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerMetadata.java
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerMetadata.java
@@ -92,8 +92,7 @@ public class EntityManagerMetadata
public boolean readFrom(AnnotatedElement method, BeanManager beanManager)
{
EntityManagerConfig entityManagerConfig = method.getAnnotation(EntityManagerConfig.class);
- boolean processed = false;
- processed = processEntityManagerConfig(beanManager, entityManagerConfig);
+ boolean processed = processEntityManagerConfig(beanManager, entityManagerConfig);
Transactional transactional = method.getAnnotation(Transactional.class);
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/51eceaec/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerRefLookup.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerRefLookup.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerRefLookup.java
index e2e9700..9b1c96e 100644
--- a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerRefLookup.java
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/entitymanager/EntityManagerRefLookup.java
@@ -28,6 +28,7 @@ import javax.persistence.EntityManager;
import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
import org.apache.deltaspike.core.api.provider.BeanProvider;
+import org.apache.deltaspike.jpa.api.entitymanager.EntityManagerResolver;
import org.apache.deltaspike.jpa.spi.entitymanager.ActiveEntityManagerHolder;
@ApplicationScoped
@@ -77,10 +78,11 @@ public class EntityManagerRefLookup
public EntityManagerRef lookupReference(final EntityManagerMetadata entityManagerMetadata)
{
EntityManagerRef ref = new EntityManagerRef();
-
- if (entityManagerMetadata.getUnmanagedResolver() != null)
+ EntityManagerResolver unmanagedResolver = entityManagerMetadata.getUnmanagedResolver();
+ if (unmanagedResolver != null)
{
- ref.setEntityManagerResolver(entityManagerMetadata.getUnmanagedResolver());
+ ref.setEntityManagerResolver(unmanagedResolver);
+ ref.setEntityManager(unmanagedResolver.resolveEntityManager());
}
else if (entityManagerMetadata.getEntityManagerResolverClass() != null)
{