Bug 441254: add/remove realm listener in container class
diff --git a/org.eclipse.sisu.plexus/src/org/codehaus/plexus/DefaultPlexusContainer.java b/org.eclipse.sisu.plexus/src/org/codehaus/plexus/DefaultPlexusContainer.java
index 15b5fa7..cf129a5 100644
--- a/org.eclipse.sisu.plexus/src/org/codehaus/plexus/DefaultPlexusContainer.java
+++ b/org.eclipse.sisu.plexus/src/org/codehaus/plexus/DefaultPlexusContainer.java
@@ -179,8 +179,8 @@
variables = new ContextMapAdapter( context );
containerRealm = lookupContainerRealm( configuration );
-
classRealmManager = new ClassRealmManager( this, qualifiedBeanLocator );
+ containerRealm.getWorld().addListener( classRealmManager );
componentVisibility = configuration.getComponentVisibility();
isAutoWiringEnabled = configuration.getAutoWiring();
@@ -592,6 +592,8 @@
qualifiedBeanLocator.clear();
lookupRealm.remove();
+
+ containerRealm.getWorld().removeListener( classRealmManager );
}
// ----------------------------------------------------------------------
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmManager.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmManager.java
index 7281d1c..cfea76f 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmManager.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmManager.java
@@ -81,8 +81,6 @@
{
this.plexusContainer = plexusContainer;
this.beanLocator = beanLocator;
-
- plexusContainer.getClassWorld().addListener( this );
}
// ----------------------------------------------------------------------