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