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();
}
-
}