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)
         {