You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by th...@apache.org on 2013/10/02 14:45:52 UTC

[1/6] git commit: DELTASPIKE-391 Cleanup of dependent beans.

Updated Branches:
  refs/heads/master f8936831e -> e9038460f


DELTASPIKE-391 Cleanup of dependent beans.


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/92c0e773
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/92c0e773
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/92c0e773

Branch: refs/heads/master
Commit: 92c0e773d344c78808bce5ce923e3000368c68fe
Parents: f893683
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 10:54:25 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 11:10:39 2013 +0200

----------------------------------------------------------------------
 .../data/impl/builder/DelegateQueryBuilder.java | 41 +++++++++++-------
 .../data/impl/builder/QueryBuilderFactory.java  | 39 +++++++++++------
 .../impl/handler/CdiQueryContextHolder.java     |  1 +
 .../impl/handler/CdiQueryInvocationContext.java | 17 ++++++++
 .../data/impl/handler/EntityManagerLookup.java  | 17 ++++----
 .../data/impl/handler/QueryHandler.java         |  2 +-
 .../data/impl/util/bean/BeanDestroyable.java    | 44 ++++++++++++++++++++
 .../util/bean/DependentProviderDestroyable.java | 39 +++++++++++++++++
 .../data/impl/util/bean/Destroyable.java        | 24 +++++++++++
 9 files changed, 189 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
index 65cbf05..8ed2361 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
@@ -20,31 +20,34 @@ package org.apache.deltaspike.data.impl.builder;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Set;
 
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Instance;
+import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
 import javax.inject.Inject;
 
+import org.apache.deltaspike.core.api.provider.BeanProvider;
 import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
 import org.apache.deltaspike.data.impl.handler.QueryInvocationException;
 import org.apache.deltaspike.data.impl.meta.MethodType;
 import org.apache.deltaspike.data.impl.meta.QueryInvocation;
+import org.apache.deltaspike.data.impl.util.bean.BeanDestroyable;
 import org.apache.deltaspike.data.spi.DelegateQueryHandler;
 
 @QueryInvocation(MethodType.DELEGATE)
 public class DelegateQueryBuilder extends QueryBuilder
 {
-
     @Inject
-    @Any
-    private Instance<DelegateQueryHandler> delegates;
+    private BeanManager beanManager;
 
     @Override
     public Object execute(CdiQueryInvocationContext context)
     {
         try
         {
-            DelegateQueryHandler delegate = selectDelegate(context.getMethod());
+            DelegateQueryHandler delegate = selectDelegate(context);
             if (delegate != null)
             {
                 return invoke(delegate, context);
@@ -57,29 +60,39 @@ public class DelegateQueryBuilder extends QueryBuilder
         throw new QueryInvocationException("No DelegateQueryHandler found", context);
     }
 
-    private DelegateQueryHandler selectDelegate(Method method)
+    private DelegateQueryHandler selectDelegate(CdiQueryInvocationContext context)
     {
-        for (DelegateQueryHandler delegate : delegates)
+        Set<Bean<DelegateQueryHandler>> beans = BeanProvider
+                .getBeanDefinitions(DelegateQueryHandler.class, true, true);
+        for (Bean<DelegateQueryHandler> bean : beans)
         {
-            if (contains(delegate, method))
+            if (contains(bean.getBeanClass(), context.getMethod()))
             {
-                return delegate;
+                if (bean.getScope().equals(Dependent.class))
+                {
+                    CreationalContext<DelegateQueryHandler> cc = beanManager.createCreationalContext(bean);
+                    DelegateQueryHandler instance = (DelegateQueryHandler) beanManager.getReference(
+                            bean, DelegateQueryHandler.class, cc);
+                    context.addDestroyable(new BeanDestroyable<DelegateQueryHandler>(bean, instance, cc));
+                    return instance;
+                }
+                return (DelegateQueryHandler) BeanProvider.getContextualReference(bean.getBeanClass());
             }
         }
         return null;
     }
 
-    private boolean contains(Object obj, Method method)
+    private boolean contains(Class<?> obj, Method method)
     {
         return extract(obj, method) != null;
     }
 
-    private Method extract(Object obj, Method method)
+    private Method extract(Class<?> obj, Method method)
     {
         try
         {
             String name = method.getName();
-            return obj != null ? obj.getClass().getMethod(name, method.getParameterTypes()) : null;
+            return obj != null ? obj.getMethod(name, method.getParameterTypes()) : null;
         }
         catch (NoSuchMethodException e)
         {
@@ -106,7 +119,7 @@ public class DelegateQueryBuilder extends QueryBuilder
     protected Object invoke(Object target, Method method, Object[] args) throws InvocationTargetException,
             IllegalAccessException
     {
-        Method extract = extract(target, method);
+        Method extract = extract(target.getClass(), method);
         return extract.invoke(target, args);
     }
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
index b37c9b8..56ecbeb 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
@@ -18,33 +18,48 @@
  */
 package org.apache.deltaspike.data.impl.builder;
 
-import java.io.Serializable;
+import static org.apache.deltaspike.data.impl.meta.MethodType.ANNOTATED;
+import static org.apache.deltaspike.data.impl.meta.MethodType.DELEGATE;
+import static org.apache.deltaspike.data.impl.meta.MethodType.PARSE;
 
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
 
+import org.apache.deltaspike.core.api.provider.BeanProvider;
+import org.apache.deltaspike.core.api.provider.DependentProvider;
 import org.apache.deltaspike.data.api.QueryResult;
-import org.apache.deltaspike.data.impl.meta.RepositoryMethod;
+import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
+import org.apache.deltaspike.data.impl.meta.MethodType;
 import org.apache.deltaspike.data.impl.meta.QueryInvocationLiteral;
+import org.apache.deltaspike.data.impl.meta.RepositoryMethod;
+import org.apache.deltaspike.data.impl.util.bean.DependentProviderDestroyable;
 
 public class QueryBuilderFactory implements Serializable
 {
 
     private static final long serialVersionUID = 1L;
 
-    @Inject
-    @Any
-    private Instance<QueryBuilder> queryBuilder;
+    private static final Map<MethodType, QueryInvocationLiteral> LITERALS =
+            new HashMap<MethodType, QueryInvocationLiteral>()
+            {
+                {
+                    put(ANNOTATED, new QueryInvocationLiteral(ANNOTATED));
+                    put(DELEGATE, new QueryInvocationLiteral(DELEGATE));
+                    put(PARSE, new QueryInvocationLiteral(PARSE));
+                }
+            };
 
-    public QueryBuilder build(RepositoryMethod method)
+    public QueryBuilder build(RepositoryMethod method, CdiQueryInvocationContext context)
     {
-        QueryBuilder builder = queryBuilder.select(new QueryInvocationLiteral(method.getMethodType())).get();
+        DependentProvider<QueryBuilder> builder = BeanProvider.getDependent(
+                QueryBuilder.class, LITERALS.get(method.getMethodType()));
+        context.addDestroyable(new DependentProviderDestroyable(builder));
         if (method.returns(QueryResult.class))
         {
-            return new WrappedQueryBuilder(builder);
+            return new WrappedQueryBuilder(builder.get());
         }
-        return builder;
+        return builder.get();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
index c17e4f9..a3eab9e 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
@@ -40,6 +40,7 @@ public class CdiQueryContextHolder
 
     public void dispose()
     {
+        context.get().cleanup();
         context.remove();
     }
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java
index ac1bdf0..ac130f3 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryInvocationContext.java
@@ -27,6 +27,7 @@ import javax.persistence.Query;
 
 import org.apache.deltaspike.data.impl.meta.RepositoryMethod;
 import org.apache.deltaspike.data.impl.param.Parameters;
+import org.apache.deltaspike.data.impl.util.bean.Destroyable;
 import org.apache.deltaspike.data.spi.QueryInvocationContext;
 
 public class CdiQueryInvocationContext implements QueryInvocationContext
@@ -41,6 +42,7 @@ public class CdiQueryInvocationContext implements QueryInvocationContext
     private final RepositoryMethod repoMethod;
     private final List<QueryStringPostProcessor> queryPostProcessors;
     private final List<JpaQueryPostProcessor> jpaPostProcessors;
+    private final List<Destroyable> cleanup;
 
     private String queryString;
 
@@ -56,6 +58,7 @@ public class CdiQueryInvocationContext implements QueryInvocationContext
         this.entityClass = repoMethod.getRepository().getEntityClass();
         this.queryPostProcessors = new LinkedList<QueryStringPostProcessor>();
         this.jpaPostProcessors = new LinkedList<JpaQueryPostProcessor>();
+        this.cleanup = new LinkedList<Destroyable>();
     }
 
     @Override
@@ -139,6 +142,20 @@ public class CdiQueryInvocationContext implements QueryInvocationContext
         return result;
     }
 
+    public void addDestroyable(Destroyable destroyable)
+    {
+        cleanup.add(destroyable);
+    }
+
+    public void cleanup()
+    {
+        for (Destroyable destroy : cleanup)
+        {
+            destroy.destroy();
+        }
+        cleanup.clear();
+    }
+
     public Object executeQuery(Query jpaQuery)
     {
         return repoMethod.getQueryProcessor().executeQuery(jpaQuery);

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
index 6d866ca..25885aa 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
@@ -23,6 +23,8 @@ import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 
+import org.apache.deltaspike.core.api.provider.BeanProvider;
+import org.apache.deltaspike.core.api.provider.DependentProvider;
 import org.apache.deltaspike.data.api.EntityManagerResolver;
 import org.apache.deltaspike.data.impl.meta.RepositoryComponent;
 
@@ -33,27 +35,26 @@ public class EntityManagerLookup
     @Any
     private Instance<EntityManager> entityManager;
 
-    @Inject
-    @Any
-    private Instance<EntityManagerResolver> entityManagerResolver;
-
     public EntityManager lookupFor(RepositoryComponent repository)
     {
         if (repository.hasEntityManagerResolver())
         {
-            EntityManagerResolver resolver = lookupResolver(repository.getEntityManagerResolverClass());
-            EntityManager result = resolver.resolveEntityManager();
+            DependentProvider<? extends EntityManagerResolver> resolver =
+                    lookupResolver(repository.getEntityManagerResolverClass());
+            EntityManager result = resolver.get().resolveEntityManager();
             if (repository.getEntityManagerFlushMode() != null)
             {
                 result.setFlushMode(repository.getEntityManagerFlushMode());
             }
+            resolver.destroy();
         }
         return entityManager.get();
     }
 
-    private EntityManagerResolver lookupResolver(
+    private DependentProvider<? extends EntityManagerResolver> lookupResolver(
             Class<? extends EntityManagerResolver> resolverClass)
     {
-        return entityManagerResolver.select(resolverClass).get();
+        DependentProvider<? extends EntityManagerResolver> resolver = BeanProvider.getDependent(resolverClass);
+        return resolver;
     }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/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 fc23a77..8b4e522 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
@@ -72,7 +72,7 @@ public class QueryHandler implements Serializable, InvocationHandler
             RepositoryComponent repo = components.lookupComponent(candidates);
             RepositoryMethod repoMethod = components.lookupMethod(repo.getRepositoryClass(), method);
             queryContext = createContext(proxy, method, args, repo, repoMethod);
-            QueryBuilder builder = queryBuilder.build(repoMethod);
+            QueryBuilder builder = queryBuilder.build(repoMethod, queryContext);
             Object result = builder.execute(queryContext);
             return result;
         }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/BeanDestroyable.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/BeanDestroyable.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/BeanDestroyable.java
new file mode 100644
index 0000000..9e6c88b
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/BeanDestroyable.java
@@ -0,0 +1,44 @@
+/*
+ * 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.deltaspike.data.impl.util.bean;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+
+public class BeanDestroyable<T> implements Destroyable
+{
+
+    private final Bean<T> bean;
+    private final T instance;
+    private final CreationalContext<T> creationalContext;
+
+    public BeanDestroyable(Bean<T> bean, T instance, CreationalContext<T> creationalContext)
+    {
+        this.bean = bean;
+        this.instance = instance;
+        this.creationalContext = creationalContext;
+    }
+
+    @Override
+    public void destroy()
+    {
+        bean.destroy(instance, creationalContext);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/DependentProviderDestroyable.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/DependentProviderDestroyable.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/DependentProviderDestroyable.java
new file mode 100644
index 0000000..b2610e1
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/DependentProviderDestroyable.java
@@ -0,0 +1,39 @@
+/*
+ * 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.deltaspike.data.impl.util.bean;
+
+import org.apache.deltaspike.core.api.provider.DependentProvider;
+
+public class DependentProviderDestroyable implements Destroyable
+{
+
+    private final DependentProvider<?> dependent;
+
+    public DependentProviderDestroyable(DependentProvider<?> dependent)
+    {
+        this.dependent = dependent;
+    }
+
+    @Override
+    public void destroy()
+    {
+        dependent.destroy();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/92c0e773/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/Destroyable.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/Destroyable.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/Destroyable.java
new file mode 100644
index 0000000..6f1c931
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/util/bean/Destroyable.java
@@ -0,0 +1,24 @@
+/*
+ * 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.deltaspike.data.impl.util.bean;
+
+public interface Destroyable
+{
+    void destroy();
+}


[4/6] git commit: DELTASPIKE-417 Improved tests, allow default EM producer.

Posted by th...@apache.org.
DELTASPIKE-417 Improved tests, allow default EM producer.


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/dec5d7e7
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/dec5d7e7
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/dec5d7e7

Branch: refs/heads/master
Commit: dec5d7e7e7f80e4c7d22c4e56b42d0f568f730b4
Parents: af0270f
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 13:59:54 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 14:36:54 2013 +0200

----------------------------------------------------------------------
 .../impl/handler/CdiQueryContextHolder.java     |   6 +-
 .../data/impl/handler/EntityManagerLookup.java  |   3 +-
 .../data/impl/handler/EntityManagerTest.java    |  40 ++-
 .../impl/handler/EntityManagerTestProducer.java |  35 ---
 .../NonQualifiedEntityManagerTestProducer.java  |  32 +++
 .../QualifiedEntityManagerTestProducer.java     | 286 +++++++++++++++++++
 .../SimpleRepositoryWithEntityManager.java      |   2 -
 ...mpleRepositoryWithEntityManagerResolver.java |  35 +++
 ...leRepositoryWithOverriddenEntityManager.java |  42 ---
 9 files changed, 377 insertions(+), 104 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
index a3eab9e..bda1e42 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/CdiQueryContextHolder.java
@@ -40,7 +40,11 @@ public class CdiQueryContextHolder
 
     public void dispose()
     {
-        context.get().cleanup();
+        CdiQueryInvocationContext ctx = context.get();
+        if (ctx != null)
+        {
+            ctx.cleanup();
+        }
         context.remove();
     }
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
index 976ba70..5548f16 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
@@ -23,6 +23,7 @@ import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 
+import org.apache.deltaspike.core.api.literal.DefaultLiteral;
 import org.apache.deltaspike.core.api.provider.BeanProvider;
 import org.apache.deltaspike.core.api.provider.DependentProvider;
 import org.apache.deltaspike.data.api.EntityManagerResolver;
@@ -47,7 +48,7 @@ public class EntityManagerLookup
         }
         else
         {
-            result = entityManager.get();
+            result = entityManager.select(new DefaultLiteral()).get();
         }
         if (repository.hasEntityManagerFlushMode())
         {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/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 e812c8a..18f2399 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
@@ -20,6 +20,7 @@ package org.apache.deltaspike.data.impl.handler;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.util.List;
 
@@ -27,7 +28,7 @@ import javax.inject.Inject;
 
 import org.apache.deltaspike.data.test.domain.Simple;
 import org.apache.deltaspike.data.test.service.SimpleRepositoryWithEntityManager;
-import org.apache.deltaspike.data.test.service.SimpleRepositoryWithOverriddenEntityManager;
+import org.apache.deltaspike.data.test.service.SimpleRepositoryWithEntityManagerResolver;
 import org.apache.deltaspike.data.test.service.Simplistic;
 import org.apache.deltaspike.data.test.service.SimplisticEntityManagerResolver;
 import org.apache.deltaspike.data.test.util.TestDeployments;
@@ -49,48 +50,41 @@ public class EntityManagerTest
     {
         return TestDeployments.initDeployment()
                 .addClasses(SimpleRepositoryWithEntityManager.class,
-                        SimpleRepositoryWithOverriddenEntityManager.class,
-                        EntityManagerTestProducer.class,
+                        SimpleRepositoryWithEntityManagerResolver.class,
+                        QualifiedEntityManagerTestProducer.class,
+                        NonQualifiedEntityManagerTestProducer.class,
                         Simplistic.class, SimplisticEntityManagerResolver.class);
     }
 
     @Inject
-    private SimpleRepositoryWithEntityManager repoWithAnnotation;
+    private SimpleRepositoryWithEntityManager repoWithDefaultEm;
 
     @Inject
-    private SimpleRepositoryWithOverriddenEntityManager repoWithInjection;
+    private SimpleRepositoryWithEntityManagerResolver repoWithInjection;
 
     @Test
-    public void should_use_qualified_entity_manager()
+    public void should_use_default_entity_manager()
     {
         // when
-        List<Simple> result = repoWithAnnotation.findByName("testUseQualifiedEntityManager");
+        List<Simple> result = repoWithDefaultEm.findByName("testUseQualifiedEntityManager");
 
         // then
         assertNotNull(result);
         assertEquals(0, result.size());
     }
 
-    @Test
-    public void should_use_injected_entity_manager()
-    {
-        // when
-        List<Simple> result = repoWithInjection.findByName("testUseInjectedEntityManager");
-
-        // then
-        assertNotNull(result);
-        assertEquals(0, result.size());
-    }
-
-    @Test
-    public void should_inject_entity_manager()
+    /*
+     * Injected EM throws UnsupportedOperationException on all methods.
+     * Shortcutting the creation of multiple PUs (lazy guy...)
+     */
+    @Test(expected = QueryInvocationException.class)
+    public void should_use_entity_manager_from_resolver()
     {
         // when
-        List<Simple> result = repoWithInjection.findWithEm("testInjectEntityManager");
+        repoWithInjection.findByName("testUseQualifiedEntityManager");
 
         // then
-        assertNotNull(result);
-        assertEquals(0, result.size());
+        fail("Fake EM should have thrown Exception");
     }
 
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTestProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTestProducer.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTestProducer.java
deleted file mode 100644
index 87aeda4..0000000
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerTestProducer.java
+++ /dev/null
@@ -1,35 +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.deltaspike.data.impl.handler;
-
-import javax.enterprise.inject.Produces;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.apache.deltaspike.data.test.service.Simplistic;
-
-public class EntityManagerTestProducer
-{
-
-    @Produces
-    @Simplistic
-    @PersistenceContext
-    private EntityManager entityManager;
-
-}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
new file mode 100644
index 0000000..eac7620
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
@@ -0,0 +1,32 @@
+/*
+ * 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.deltaspike.data.impl.handler;
+
+import javax.enterprise.inject.Produces;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+public class NonQualifiedEntityManagerTestProducer
+{
+
+    @Produces
+    @PersistenceContext
+    private EntityManager entityManager;
+
+}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QualifiedEntityManagerTestProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QualifiedEntityManagerTestProducer.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QualifiedEntityManagerTestProducer.java
new file mode 100644
index 0000000..4a80299
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QualifiedEntityManagerTestProducer.java
@@ -0,0 +1,286 @@
+/*
+ * 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.deltaspike.data.impl.handler;
+
+import java.util.Map;
+
+import javax.enterprise.inject.Produces;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.FlushModeType;
+import javax.persistence.LockModeType;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.metamodel.Metamodel;
+
+import org.apache.deltaspike.data.test.service.Simplistic;
+
+public class QualifiedEntityManagerTestProducer
+{
+
+    @Produces
+    @Simplistic
+    private final EntityManager entityManager = new EntityManager()
+    {
+
+        @Override
+        public <T> T unwrap(Class<T> arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void setProperty(String arg0, Object arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void setFlushMode(FlushModeType arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void remove(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void refresh(Object arg0, LockModeType arg1, Map<String, Object> arg2)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void refresh(Object arg0, LockModeType arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void refresh(Object arg0, Map<String, Object> arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void refresh(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void persist(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T merge(T arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void lock(Object arg0, LockModeType arg1, Map<String, Object> arg2)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void lock(Object arg0, LockModeType arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void joinTransaction()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean isOpen()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public EntityTransaction getTransaction()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T getReference(Class<T> arg0, Object arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Map<String, Object> getProperties()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Metamodel getMetamodel()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public LockModeType getLockMode(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public FlushModeType getFlushMode()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public EntityManagerFactory getEntityManagerFactory()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Object getDelegate()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public CriteriaBuilder getCriteriaBuilder()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void flush()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2, Map<String, Object> arg3)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T find(Class<T> arg0, Object arg1, Map<String, Object> arg2)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> T find(Class<T> arg0, Object arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void detach(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> TypedQuery<T> createQuery(String arg0, Class<T> arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> TypedQuery<T> createQuery(CriteriaQuery<T> arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Query createQuery(String arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Query createNativeQuery(String arg0, String arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Query createNativeQuery(String arg0, Class arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Query createNativeQuery(String arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public <T> TypedQuery<T> createNamedQuery(String arg0, Class<T> arg1)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Query createNamedQuery(String arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean contains(Object arg0)
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void close()
+        {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void clear()
+        {
+            throw new UnsupportedOperationException();
+        }
+    };
+
+}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManager.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManager.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManager.java
index d6f8ca7..6c890c5 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManager.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManager.java
@@ -20,13 +20,11 @@ package org.apache.deltaspike.data.test.service;
 
 import java.util.List;
 
-import org.apache.deltaspike.data.api.EntityManagerConfig;
 import org.apache.deltaspike.data.api.EntityRepository;
 import org.apache.deltaspike.data.api.Repository;
 import org.apache.deltaspike.data.test.domain.Simple;
 
 @Repository
-@EntityManagerConfig(entityManagerResolver = SimplisticEntityManagerResolver.class)
 public interface SimpleRepositoryWithEntityManager extends EntityRepository<Simple, Long>
 {
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManagerResolver.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManagerResolver.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManagerResolver.java
new file mode 100644
index 0000000..dc82e2d
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithEntityManagerResolver.java
@@ -0,0 +1,35 @@
+/*
+ * 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.deltaspike.data.test.service;
+
+import java.util.List;
+
+import org.apache.deltaspike.data.api.AbstractEntityRepository;
+import org.apache.deltaspike.data.api.EntityManagerConfig;
+import org.apache.deltaspike.data.api.Repository;
+import org.apache.deltaspike.data.test.domain.Simple;
+
+@Repository
+@EntityManagerConfig(entityManagerResolver = SimplisticEntityManagerResolver.class)
+public abstract class SimpleRepositoryWithEntityManagerResolver extends AbstractEntityRepository<Simple, Long>
+{
+
+    public abstract List<Simple> findByName(String name);
+
+}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/dec5d7e7/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithOverriddenEntityManager.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithOverriddenEntityManager.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithOverriddenEntityManager.java
deleted file mode 100644
index 6111a8d..0000000
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepositoryWithOverriddenEntityManager.java
+++ /dev/null
@@ -1,42 +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.deltaspike.data.test.service;
-
-import java.util.List;
-
-import org.apache.deltaspike.data.api.AbstractEntityRepository;
-import org.apache.deltaspike.data.api.EntityManagerConfig;
-import org.apache.deltaspike.data.api.Repository;
-import org.apache.deltaspike.data.test.domain.Simple;
-
-@EntityManagerConfig(entityManagerResolver = SimplisticEntityManagerResolver.class)
-@Repository
-public abstract class SimpleRepositoryWithOverriddenEntityManager extends AbstractEntityRepository<Simple, Long>
-{
-
-    public abstract List<Simple> findByName(String name);
-
-    public List<Simple> findWithEm(String name)
-    {
-        return entityManager().createQuery("select s from Simple s where s.name = ?1", Simple.class)
-                .setParameter(1, name)
-                .getResultList();
-    }
-
-}


[6/6] git commit: DELTASPIKE-412 Wildfly profiles

Posted by th...@apache.org.
DELTASPIKE-412 Wildfly profiles


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/e9038460
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/e9038460
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/e9038460

Branch: refs/heads/master
Commit: e9038460f6b49a1a69d261d9c2d3a269faed7bb5
Parents: 2603727
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 14:39:02 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 14:39:02 2013 +0200

----------------------------------------------------------------------
 deltaspike/modules/data/impl/pom.xml | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e9038460/deltaspike/modules/data/impl/pom.xml
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/pom.xml b/deltaspike/modules/data/impl/pom.xml
index 3538bb7..0eebd04 100755
--- a/deltaspike/modules/data/impl/pom.xml
+++ b/deltaspike/modules/data/impl/pom.xml
@@ -165,6 +165,32 @@
             </build>
         </profile>
         <profile>
+            <id>wildfly-managed</id>
+            <build>
+                <testResources>
+                    <testResource>
+                        <directory>src/test/resources</directory>
+                    </testResource>
+                    <testResource>
+                        <directory>src/test/resources-jbossas7</directory>
+                    </testResource>
+                </testResources>
+            </build>
+        </profile>
+        <profile>
+            <id>wildfly-remote</id>
+            <build>
+                <testResources>
+                    <testResource>
+                        <directory>src/test/resources</directory>
+                    </testResource>
+                    <testResource>
+                        <directory>src/test/resources-jbossas7</directory>
+                    </testResource>
+                </testResources>
+            </build>
+        </profile>
+        <profile>
             <id>glassfish-remote-3.1</id>
             <build>
                 <testResources>


[3/6] git commit: DELTASPIKE-417 Use EntityManagerResolver result, set EM flush mode.

Posted by th...@apache.org.
DELTASPIKE-417 Use EntityManagerResolver result, set EM flush mode.


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/e0132b6f
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/e0132b6f
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/e0132b6f

Branch: refs/heads/master
Commit: e0132b6fe804291f8950fa2d107aa7d25cabb3a1
Parents: 92c0e77
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 10:57:10 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 11:10:47 2013 +0200

----------------------------------------------------------------------
 .../data/impl/handler/EntityManagerLookup.java     | 17 +++++++++++------
 .../data/impl/meta/RepositoryComponent.java        |  5 +++++
 2 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e0132b6f/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
index 25885aa..976ba70 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
@@ -37,18 +37,23 @@ public class EntityManagerLookup
 
     public EntityManager lookupFor(RepositoryComponent repository)
     {
+        EntityManager result = null;
         if (repository.hasEntityManagerResolver())
         {
             DependentProvider<? extends EntityManagerResolver> resolver =
                     lookupResolver(repository.getEntityManagerResolverClass());
-            EntityManager result = resolver.get().resolveEntityManager();
-            if (repository.getEntityManagerFlushMode() != null)
-            {
-                result.setFlushMode(repository.getEntityManagerFlushMode());
-            }
+            result = resolver.get().resolveEntityManager();
             resolver.destroy();
         }
-        return entityManager.get();
+        else
+        {
+            result = entityManager.get();
+        }
+        if (repository.hasEntityManagerFlushMode())
+        {
+            result.setFlushMode(repository.getEntityManagerFlushMode());
+        }
+        return result;
     }
 
     private DependentProvider<? extends EntityManagerResolver> lookupResolver(

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e0132b6f/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponent.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponent.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponent.java
index 4d9e30d..c2dc466 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponent.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponent.java
@@ -142,6 +142,11 @@ public class RepositoryComponent
         return entityManagerResolver;
     }
 
+    public boolean hasEntityManagerFlushMode()
+    {
+        return entityManagerFlushMode != null;
+    }
+
     public FlushModeType getEntityManagerFlushMode()
     {
         return entityManagerFlushMode;


[5/6] git commit: DELTASPIKE-411 Remove port offset for Wildfly tests

Posted by th...@apache.org.
DELTASPIKE-411 Remove port offset for Wildfly tests


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/2603727a
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/2603727a
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/2603727a

Branch: refs/heads/master
Commit: 2603727a923d45037a51b51f58717f4c1ed08192
Parents: dec5d7e
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 14:38:09 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 14:38:09 2013 +0200

----------------------------------------------------------------------
 deltaspike/modules/data/impl/src/test/resources/arquillian.xml | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/2603727a/deltaspike/modules/data/impl/src/test/resources/arquillian.xml
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/resources/arquillian.xml b/deltaspike/modules/data/impl/src/test/resources/arquillian.xml
index af1845a..b33c5a1 100644
--- a/deltaspike/modules/data/impl/src/test/resources/arquillian.xml
+++ b/deltaspike/modules/data/impl/src/test/resources/arquillian.xml
@@ -31,8 +31,7 @@
 
     <container qualifier="jbossas-managed-7">
         <configuration>
-            <property name="javaVmArguments">-client -noverify -Xms64m -Xmx1024m -XX:MaxPermSize=512m -Djboss.socket.binding.port-offset=10000</property>
-            <property name="managementPort">19999</property>
+            <property name="javaVmArguments">-client -noverify -Xms64m -Xmx1024m -XX:MaxPermSize=512m</property>
             <property name="outputToConsole">false</property>
             <property name="allowConnectingToRunningServer">true</property>
         </configuration>
@@ -41,8 +40,7 @@
     <container qualifier="jbossas-build-managed-7">
         <configuration>
             <property name="jbossHome">target/jboss-as-7.1.1.Final</property>
-            <property name="managementPort">19999</property>
-            <property name="javaVmArguments">-client -noverify -Xms64m -Xmx1024m -XX:MaxPermSize=512m -Djboss.socket.binding.port-offset=10000</property>
+            <property name="javaVmArguments">-client -noverify -Xms64m -Xmx1024m -XX:MaxPermSize=512m</property>
             <property name="outputToConsole">false</property>
             <property name="allowConnectingToRunningServer">true</property>
         </configuration>


[2/6] git commit: DELTASPIKE-406 Warning for EAR deployments.

Posted by th...@apache.org.
DELTASPIKE-406 Warning for EAR deployments.


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/af0270f9
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/af0270f9
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/af0270f9

Branch: refs/heads/master
Commit: af0270f9fe0f92ac55f482c72588a02566f4db45
Parents: e0132b6
Author: Thomas Hug <Th...@ctp-consulting.com>
Authored: Wed Oct 2 11:09:36 2013 +0200
Committer: Thomas Hug <Th...@ctp-consulting.com>
Committed: Wed Oct 2 11:10:47 2013 +0200

----------------------------------------------------------------------
 deltaspike/modules/data/README.adoc | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/af0270f9/deltaspike/modules/data/README.adoc
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/README.adoc b/deltaspike/modules/data/README.adoc
index 8db3333..c6c6cc0 100644
--- a/deltaspike/modules/data/README.adoc
+++ b/deltaspike/modules/data/README.adoc
@@ -77,6 +77,11 @@ to your application manually.
 Also note that in order to use abstract classes as repositories, this currently requires the presence
 of the http://www.javassist.org[javassist] library in your classpath.
 
+[CAUTION]
+===============================
+Using DeltaSpike data in an EAR deployment is currently restricted to annotation-based entities.
+===============================
+
 ==== Maven Dependency Configuration
 
 If you are using Maven as your build tool, you can add the following dependencies to your +pom.xml+