You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by da...@apache.org on 2015/06/10 00:11:15 UTC

deltaspike git commit: DELTASPIKE-594 removed static singleton RepositoryComponents

Repository: deltaspike
Updated Branches:
  refs/heads/master 04d406f32 -> 75fba93ee


DELTASPIKE-594 removed static singleton RepositoryComponents

This is now an application-scoped bean, thus fixing a potential
classloader leak when application is undeployed.


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

Branch: refs/heads/master
Commit: 75fba93ee4e5a473b82d3fbb6a9eba81c37ab409
Parents: 04d406f
Author: Harald Wellmann <ha...@gmx.de>
Authored: Tue Jun 9 18:52:38 2015 +0200
Committer: Daniel Cunha (soro) <da...@apache.org>
Committed: Tue Jun 9 18:59:32 2015 -0300

----------------------------------------------------------------------
 .../data/impl/RepositoryExtension.java          | 12 +++++++++--
 .../impl/meta/RepositoryComponentsFactory.java  | 22 ++++++++------------
 2 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/75fba93e/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/RepositoryExtension.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/RepositoryExtension.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/RepositoryExtension.java
index 6e2e447..a083681 100755
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/RepositoryExtension.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/RepositoryExtension.java
@@ -36,7 +36,7 @@ import org.apache.deltaspike.core.spi.activation.Deactivatable;
 import org.apache.deltaspike.core.util.ClassDeactivationUtils;
 import org.apache.deltaspike.data.api.AbstractEntityRepository;
 import org.apache.deltaspike.data.api.Repository;
-import org.apache.deltaspike.data.impl.meta.RepositoryComponentsFactory;
+import org.apache.deltaspike.data.impl.meta.RepositoryComponents;
 import org.apache.deltaspike.data.impl.meta.unit.PersistenceUnits;
 
 /**
@@ -63,6 +63,9 @@ public class RepositoryExtension implements Extension, Deactivatable
 
     private Boolean isActivated = true;
 
+    private RepositoryComponents components = new RepositoryComponents();
+
+
     void beforeBeanDiscovery(@Observes BeforeBeanDiscovery before)
     {
         isActivated = ClassDeactivationUtils.isActivated(getClass());
@@ -100,7 +103,7 @@ public class RepositoryExtension implements Extension, Deactivatable
                     log.log(Level.FINER, "Class {0} is Deactivated", repoClass);
                     return;
                 }
-                RepositoryComponentsFactory.instance().add(repoClass);
+                components.add(repoClass);
             }
             catch (RepositoryDefinitionException e)
             {
@@ -137,5 +140,10 @@ public class RepositoryExtension implements Extension, Deactivatable
     {
         return annotated.getJavaClass().equals(AbstractEntityRepository.class);
     }
+    
+    public RepositoryComponents getComponents()
+    {
+        return components;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/75fba93e/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponentsFactory.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponentsFactory.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponentsFactory.java
index 76af024..8eac1a5 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponentsFactory.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/RepositoryComponentsFactory.java
@@ -18,29 +18,25 @@
  */
 package org.apache.deltaspike.data.impl.meta;
 
-import org.apache.deltaspike.core.api.lifecycle.Initialized;
-
 import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import org.apache.deltaspike.core.api.lifecycle.Initialized;
+import org.apache.deltaspike.data.impl.RepositoryExtension;
 
 /**
- * Repository components producer. Exposes a singleton both programmatically as well
- * as over a CDI producer.
+ * Repository components producer.
  */
 public class RepositoryComponentsFactory
 {
 
-    private static RepositoryComponents components = new RepositoryComponents();
-
-    public static RepositoryComponents instance()
-    {
-        return components;
-    }
-
+    @Inject
+    private RepositoryExtension extension;
+    
     @Produces
     @Initialized
     public RepositoryComponents producer()
     {
-        return instance();
+        return extension.getComponents();
     }
-
 }