From: <fg...@us...> - 2013-10-20 19:03:19
|
Revision: 4416 http://openutils.svn.sourceforge.net/openutils/?rev=4416&view=rev Author: fgiust Date: 2013-10-20 19:03:16 +0000 (Sun, 20 Oct 2013) Log Message: ----------- cleanup listeners in any repository Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java Modified: magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java =================================================================== --- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-10-20 19:02:14 UTC (rev 4415) +++ magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-10-20 19:03:16 UTC (rev 4416) @@ -70,6 +70,7 @@ import java.io.InputStream; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -188,20 +189,29 @@ MgnlContext.release(); SystemContext systemContext = Components.getComponent(SystemContext.class); - - final ObservationManager observationManager = systemContext - .getJCRSession(RepositoryConstants.CONFIG) - .getWorkspace() - .getObservationManager(); - final EventListenerIterator listeners = observationManager.getRegisteredEventListeners(); - while (listeners.hasNext()) + + RepositoryManager repositoryManager = Components.getComponent(RepositoryManager.class); + + Collection<String> workspaceNames = repositoryManager.getWorkspaceNames(); + + for (String workspace : workspaceNames) { - observationManager.removeEventListener(listeners.nextEventListener()); + final ObservationManager observationManager = systemContext + .getJCRSession(workspace) + .getWorkspace() + .getObservationManager(); + final EventListenerIterator listeners = observationManager.getRegisteredEventListeners(); + while (listeners.hasNext()) + { + observationManager.removeEventListener(listeners.nextEventListener()); + } } + + systemContext.release(); - Components.getComponent(RepositoryManager.class).shutdown(); + repositoryManager.shutdown(); if (true) { cleanUp(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-10-21 09:32:16
|
Revision: 4421 http://openutils.svn.sourceforge.net/openutils/?rev=4421&view=rev Author: fgiust Date: 2013-10-21 09:32:12 +0000 (Mon, 21 Oct 2013) Log Message: ----------- cleanup sessions in order to avoid annoying logs Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java Modified: magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java =================================================================== --- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-10-21 08:10:04 UTC (rev 4420) +++ magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-10-21 09:32:12 UTC (rev 4421) @@ -46,6 +46,7 @@ import info.magnolia.init.properties.InitPathsPropertySource; import info.magnolia.init.properties.ModulePropertiesSource; import info.magnolia.jcr.wrapper.DelegateSessionWrapper; +import info.magnolia.jcr.wrapper.DelegateWorkspaceWrapper; import info.magnolia.module.ModuleLifecycle; import info.magnolia.module.ModuleManagementException; import info.magnolia.module.ModuleManager; @@ -80,6 +81,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -88,6 +90,7 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; +import javax.jcr.Workspace; import javax.jcr.observation.EventListenerIterator; import javax.jcr.observation.ObservationManager; @@ -96,6 +99,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.jackrabbit.core.RepositoryImpl; import org.apache.jackrabbit.core.SessionImpl; +import org.apache.jackrabbit.core.WorkspaceImpl; import org.apache.jackrabbit.core.jndi.BindableRepository; import org.apache.log4j.Level; import org.slf4j.Logger; @@ -226,9 +230,10 @@ Collection<String> workspaceNames = repositoryManager.getWorkspaceNames(); - for (String workspace : workspaceNames) + // manually cleanup active sessions to avoid duplicate closures() + for (String workspaceName : workspaceNames) { - Session session = systemContext.getJCRSession(workspace); + Session session = systemContext.getJCRSession(workspaceName); final ObservationManager observationManager = session.getWorkspace().getObservationManager(); final EventListenerIterator listeners = observationManager.getRegisteredEventListeners(); @@ -237,21 +242,29 @@ observationManager.removeEventListener(listeners.nextEventListener()); } - // BindableRepository br = ((BindableRepository) repositoryManager.getRepository(repositoryManager - // .getWorkspaceMapping(workspace) - // .getRepositoryName())); - // - // final Field repoField = BindableRepository.class.getDeclaredField("repository"); - // repoField.setAccessible(true); - // Repository repository = (Repository) repoField.get(br); - // - // while (session instanceof DelegateSessionWrapper) - // { - // session = ((DelegateSessionWrapper) session).getWrappedSession(); - // } - // - // ((RepositoryImpl) repository).loggedOut((SessionImpl) session); + BindableRepository br = ((BindableRepository) repositoryManager.getRepository(repositoryManager + .getWorkspaceMapping(workspaceName) + .getRepositoryName())); + final Field repoField = BindableRepository.class.getDeclaredField("repository"); + repoField.setAccessible(true); + Repository repository = (Repository) repoField.get(br); + + while (session instanceof DelegateSessionWrapper) + { + session = ((DelegateSessionWrapper) session).getWrappedSession(); + } + + final Field asclass = RepositoryImpl.class.getDeclaredField("activeSessions"); + asclass.setAccessible(true); + Map<Session, Session> activesessions = (Map<Session, Session>) asclass.get(repository); + + for (Session as : new HashSet<Session>(activesessions.keySet())) + { + ((RepositoryImpl) repository).loggedOut((SessionImpl) as); + // as.logout(); + } + } systemContext.release(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-11-02 09:10:59
|
Revision: 4444 http://openutils.svn.sourceforge.net/openutils/?rev=4444&view=rev Author: fgiust Date: 2013-11-02 09:10:55 +0000 (Sat, 02 Nov 2013) Log Message: ----------- handles modules without config Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java Modified: magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java =================================================================== --- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-11-01 21:49:04 UTC (rev 4443) +++ magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-11-02 09:10:55 UTC (rev 4444) @@ -64,6 +64,7 @@ import info.magnolia.objectfactory.configuration.InstanceConfiguration; import info.magnolia.objectfactory.configuration.ProviderConfiguration; import info.magnolia.repository.DefaultRepositoryManager; +import info.magnolia.repository.RepositoryConstants; import info.magnolia.repository.RepositoryManager; import info.magnolia.test.ComponentsTestUtil; import info.magnolia.test.FixedModuleDefinitionReader; @@ -93,7 +94,6 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.jackrabbit.core.RepositoryImpl; import org.apache.jackrabbit.core.SessionImpl; @@ -482,12 +482,21 @@ throws Content2BeanException, RepositoryException { // register and start module - Node node = MgnlContext.getJCRSession("config").getNode("/modules/" + modulename + "/config"); - ModuleLifecycle module = (ModuleLifecycle) Content2BeanUtil.toBean( - ContentUtil.asContent(node), - true, - moduleClass); - module.start(null); + String nodemoconfig = "/modules/" + modulename + "/config"; + ModuleLifecycle module = null; + + if (MgnlContext.getJCRSession(RepositoryConstants.CONFIG).nodeExists(nodemoconfig)) + { + Node node = MgnlContext.getJCRSession(RepositoryConstants.CONFIG).getNode( + "/modules/" + modulename + "/config"); + module = (ModuleLifecycle) Content2BeanUtil.toBean(ContentUtil.asContent(node), true, moduleClass); + module.start(null); + } + else + { + module = Components.getComponent(moduleClass); + } + Components.getComponent(ModuleRegistry.class).registerModuleInstance(modulename, module); return module; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2013-11-02 10:05:47
|
Revision: 4445 http://openutils.svn.sourceforge.net/openutils/?rev=4445&view=rev Author: fgiust Date: 2013-11-02 10:05:43 +0000 (Sat, 02 Nov 2013) Log Message: ----------- properly start modules Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java Modified: magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java =================================================================== --- magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-11-02 09:10:55 UTC (rev 4444) +++ magnoliamodules/trunk/openutils-mgnltests/src/main/java/it/openutils/mgnlutils/test/AbstractRepositoryTestcase.java 2013-11-02 10:05:43 UTC (rev 4445) @@ -47,6 +47,7 @@ import info.magnolia.init.properties.ModulePropertiesSource; import info.magnolia.jcr.wrapper.DelegateSessionWrapper; import info.magnolia.module.ModuleLifecycle; +import info.magnolia.module.ModuleLifecycleContextImpl; import info.magnolia.module.ModuleManagementException; import info.magnolia.module.ModuleManager; import info.magnolia.module.ModuleManagerImpl; @@ -490,7 +491,6 @@ Node node = MgnlContext.getJCRSession(RepositoryConstants.CONFIG).getNode( "/modules/" + modulename + "/config"); module = (ModuleLifecycle) Content2BeanUtil.toBean(ContentUtil.asContent(node), true, moduleClass); - module.start(null); } else { @@ -498,6 +498,8 @@ } Components.getComponent(ModuleRegistry.class).registerModuleInstance(modulename, module); + ModuleLifecycleContextImpl lifecycleCtx = new ModuleLifecycleContextImpl(); + module.start(lifecycleCtx); return module; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |