Author: tolusha
Date: 2011-07-07 05:19:32 -0400 (Thu, 07 Jul 2011)
New Revision: 4610
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
Log:
EXOJCR-1396: unregister all components from Repository/Workspace container after stop
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
===================================================================
---
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2011-07-07
09:08:13 UTC (rev 4609)
+++
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2011-07-07
09:19:32 UTC (rev 4610)
@@ -29,12 +29,14 @@
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import org.picocontainer.ComponentAdapter;
import org.picocontainer.PicoContainer;
import org.picocontainer.defaults.ComponentAdapterFactory;
import java.lang.reflect.Constructor;
import java.security.PrivilegedAction;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -426,4 +428,16 @@
ConfigurationManager cm =
(ConfigurationManager)getComponentInstanceOfType(ConfigurationManager.class);
return cm == null ? null : cm.getConfiguration();
}
+
+ /**
+ * Unregister all components from container to avoid keeping instances in memory.
+ */
+ protected void unregisterAllComponents()
+ {
+ Collection<ComponentAdapter> adapters = getComponentAdapters();
+ for (ComponentAdapter adapter : adapters)
+ {
+ unregisterComponent(adapter.getComponentKey());
+ }
+ }
}
Show replies by date