svnno****@sourc*****
svnno****@sourc*****
2008年 12月 10日 (水) 13:45:08 JST
Revision: 1599 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1599 Author: sone Date: 2008-12-10 13:45:08 +0900 (Wed, 10 Dec 2008) Log Message: ----------- patch 'r721906: fix remove listener cache bug' Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/cm/src/java/org/apache/jetspeed/cache/impl/EhCacheImpl.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/file-cache/src/java/org/apache/jetspeed/cache/file/FileCache.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/AbstractPageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/DocumentHandlerFactoryImpl.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/FileSystemFolderHandler.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCreateUserHomePagesFromRoles.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestSecureCastorXmlPageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/document/psml/TestCastorFileSystemDocumentHandler.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandler.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandlerFactory.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/FolderHandler.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/cm/src/java/org/apache/jetspeed/cache/impl/EhCacheImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/cm/src/java/org/apache/jetspeed/cache/impl/EhCacheImpl.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/cm/src/java/org/apache/jetspeed/cache/impl/EhCacheImpl.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -168,6 +168,7 @@ } }; + this.cacheEventListenersMap.put(listener, cacheEventListener); ehcache.getCacheEventNotificationService().registerListener( cacheEventListener); } @@ -176,7 +177,7 @@ boolean local) { CacheEventListener cacheEventListener = this.cacheEventListenersMap - .get(listener); + .remove(listener); if (cacheEventListener != null) ehcache.getCacheEventNotificationService().unregisterListener( Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/file-cache/src/java/org/apache/jetspeed/cache/file/FileCache.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/file-cache/src/java/org/apache/jetspeed/cache/file/FileCache.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/file-cache/src/java/org/apache/jetspeed/cache/file/FileCache.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -20,7 +20,9 @@ import java.io.File; import java.io.FileNotFoundException; import java.util.Date; +import java.util.Hashtable; import java.util.List; +import java.util.Map; import jp.sf.pal.portal.logging.Log; import jp.sf.pal.portal.logging.LogFactory; @@ -48,6 +50,8 @@ private JetspeedCache cache = null; + private Map<FileCacheEventListener, JetspeedCacheEventListener> listeners = new Hashtable<FileCacheEventListener, JetspeedCacheEventListener>(); + private final static Log log = LogFactory.getLog(FileCache.class); /** @@ -231,10 +235,26 @@ } }; + listeners.put(listener, cacheEventListener); this.cache.addEventListener(cacheEventListener, true); } /** + * Remove a File Cache Event Listener + * + * @param listener the event listener + */ + public void removeListener(final FileCacheEventListener listener) + { + JetspeedCacheEventListener cacheEventListener = listeners + .remove(listener); + if (cacheEventListener != null) + { + this.cache.removeEventListener(cacheEventListener, true); + } + } + + /** * Start the file Scanner running at the current scan rate. * */ Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/AbstractPageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/AbstractPageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/AbstractPageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -873,6 +873,14 @@ // nothing to reset by default } + /* (non-Javadoc) + * @see org.apache.jetspeed.page.PageManager#shutdown() + */ + public void shutdown() + { + // nothing to shutdown by default + } + /** * notifyNewNode - notify page manager event listeners of new node event * Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -934,4 +934,13 @@ this.handlerFactory = factory; } + /* (non-Javadoc) + * @see org.apache.jetspeed.page.document.DocumentHandler#shutdown() + */ + public void shutdown() + { + // disconnect cache listener + fileCache.removeListener(this); + } + } Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/DocumentHandlerFactoryImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/DocumentHandlerFactoryImpl.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/DocumentHandlerFactoryImpl.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -205,4 +205,17 @@ { constraintsEnabled = enabled; } + + /* (non-Javadoc) + * @see org.apache.jetspeed.page.document.DocumentHandlerFactory#shutdown() + */ + public void shutdown() + { + // propagate to handlers + Iterator handlersIter = handlers.values().iterator(); + while (handlersIter.hasNext()) + { + ((DocumentHandler) handlersIter.next()).shutdown(); + } + } } Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/FileSystemFolderHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/FileSystemFolderHandler.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/FileSystemFolderHandler.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -701,6 +701,15 @@ } } + /* (non-Javadoc) + * @see org.apache.jetspeed.page.document.FolderHandler#shutdown() + */ + public void shutdown() + { + // disconnect cache listener + fileCache.removeListener(this); + } + /** * <p> * addToCache Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -544,6 +544,15 @@ DatabasePageManagerCache.cacheClear(); } + /* (non-Javadoc) + * @see org.apache.jetspeed.page.PageManager#shutdown() + */ + public void shutdown() + { + // delegate + delegator.shutdown(); + } + /* * (non-Javadoc) * Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -1026,6 +1026,20 @@ fileCache.evictAll(); } + /* (non-Javadoc) + * @see org.apache.jetspeed.page.PageManager#shutdown() + */ + public void shutdown() + { + // propagate to super + super.shutdown(); + // disconnect cache listener + fileCache.removeListener(this); + // propagate to handlers + handlerFactory.shutdown(); + folderHandler.shutdown(); + } + /** * <p> * getNodeFolder - get folder implementation associated with specifed path Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -95,14 +95,16 @@ * @param constraintsEnabled * @return page manager instance */ - static CastorXmlPageManager makeCastorXMLPageManager( + static CastorXmlPageManager makeCastorXMLPageManager(String baseDir, String pagesDirName, boolean permissionsEnabled, boolean constraintsEnabled) throws Exception { Map extensionsToXslt = new HashMap(); - extensionsToXslt.put("psml", "resources/stripIds.xslt"); + extensionsToXslt.put("psml", baseDir + + "src/main/resources/stripIds.xslt"); - File pagesDirFile = new File("target/testdata/" + pagesDirName); + File pagesDirFile = new File(baseDir + "target/testdata/" + + pagesDirName); DirectoryXMLTransform dirHelper = new DirectoryXMLTransform( pagesDirFile, extensionsToXslt); @@ -116,21 +118,23 @@ && !pathname.getName().endsWith("~"); } }; - dirHelper.copyFrom(new File("testdata/" + pagesDirName), - noCVSorSVNorBackups); + dirHelper.copyFrom(new File(baseDir + "src/test/testdata/" + + pagesDirName), noCVSorSVNorBackups); + // copy documents under webapp/pages folder and strip fragment Ids - File webappDestDirFile = new File("target/testdata/" + pagesDirName - + "/webapp-no-ids"); + File webappDestDirFile = new File(baseDir + "target/testdata/" + + pagesDirName + "/webapp-no-ids"); dirHelper.setBaseDirectory(webappDestDirFile); - File webappPagesDirFile = new File("../../src/webapp/WEB-INF/pages"); + File webappPagesDirFile = new File(baseDir + + "src/test/testdata/pages"); dirHelper.copyFromAndTransform(webappPagesDirFile, noCVSorSVNorBackups); // copy documents under webapp/pages folder without transforming // them - webappDestDirFile = new File("target/testdata/" + pagesDirName - + "/webapp-ids"); + webappDestDirFile = new File(baseDir + "target/testdata/" + + pagesDirName + "/webapp-ids"); dirHelper.setBaseDirectory(webappDestDirFile); dirHelper.copyFrom(webappPagesDirFile, noCVSorSVNorBackups); @@ -139,28 +143,28 @@ DocumentHandler psmlHandler = new CastorFileSystemDocumentHandler( "/JETSPEED-INF/castor/page-mapping.xml", - Page.DOCUMENT_TYPE, PageImpl.class, "target/testdata/" - + pagesDirName, cache); + Page.DOCUMENT_TYPE, PageImpl.class, baseDir + + "target/testdata/" + pagesDirName, cache); DocumentHandler linkHandler = new CastorFileSystemDocumentHandler( "/JETSPEED-INF/castor/page-mapping.xml", - Link.DOCUMENT_TYPE, LinkImpl.class, "target/testdata/" - + pagesDirName, cache); + Link.DOCUMENT_TYPE, LinkImpl.class, baseDir + + "target/testdata/" + pagesDirName, cache); DocumentHandler folderMetaDataHandler = new CastorFileSystemDocumentHandler( "/JETSPEED-INF/castor/page-mapping.xml", FolderMetaDataImpl.DOCUMENT_TYPE, FolderMetaDataImpl.class, - "target/testdata/" + pagesDirName, cache); + baseDir + "target/testdata/" + pagesDirName, cache); DocumentHandler pageSecurityHandler = new CastorFileSystemDocumentHandler( "/JETSPEED-INF/castor/page-mapping.xml", - PageSecurityImpl.DOCUMENT_TYPE, PageSecurity.class, - "target/testdata/" + pagesDirName, cache); + PageSecurityImpl.DOCUMENT_TYPE, PageSecurity.class, baseDir + + "target/testdata/" + pagesDirName, cache); DocumentHandlerFactory handlerFactory = new DocumentHandlerFactoryImpl(); handlerFactory.registerDocumentHandler(psmlHandler); handlerFactory.registerDocumentHandler(linkHandler); handlerFactory.registerDocumentHandler(folderMetaDataHandler); handlerFactory.registerDocumentHandler(pageSecurityHandler); - FolderHandler folderHandler = new FileSystemFolderHandler( - "target/testdata/" + pagesDirName, handlerFactory, cache); + FolderHandler folderHandler = new FileSystemFolderHandler(baseDir + + "target/testdata/" + pagesDirName, handlerFactory, cache); return new CastorXmlPageManager(idGen, handlerFactory, folderHandler, cache, permissionsEnabled, @@ -168,6 +172,20 @@ } /** + * shutdownCastorXmlPageManager + * + * shutdown page manager and free cache between test invocations + */ + static void shutdownCastorXMLPageManager( + CastorXmlPageManager pageManager) + { + // reset to clear cache + pageManager.reset(); + // shutdown page manager and handlers + pageManager.shutdown(); + } + + /** * makeListFromCSV * * Create List of String values from CSV String for Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -25,7 +25,6 @@ import java.util.Map; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.commons.collections.CollectionUtils; @@ -47,6 +46,7 @@ import org.apache.jetspeed.om.preference.FragmentPreference; import org.apache.jetspeed.page.document.DocumentNotFoundException; import org.apache.jetspeed.page.psml.CastorXmlPageManager; +import org.apache.jetspeed.test.JetspeedTestCase; /** * TestCastorXmlPageManager @@ -56,7 +56,7 @@ * @version $Id: TestCastorXmlPageManager.java 553584 2007-07-05 18:09:45Z * taylor $ */ -public class TestCastorXmlPageManager extends TestCase implements +public class TestCastorXmlPageManager extends JetspeedTestCase implements PageManagerTestShared { @@ -84,7 +84,8 @@ protected void setUp() throws Exception { super.setUp(); - pageManager = Shared.makeCastorXMLPageManager("pages", false, false); + pageManager = Shared.makeCastorXMLPageManager(getBaseDir(), "pages", + false, false); } /** @@ -98,6 +99,7 @@ protected void tearDown() throws Exception { super.tearDown(); + Shared.shutdownCastorXMLPageManager(pageManager); } /** Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCreateUserHomePagesFromRoles.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCreateUserHomePagesFromRoles.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestCreateUserHomePagesFromRoles.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -23,13 +23,13 @@ import javax.security.auth.Subject; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.jetspeed.om.folder.Folder; import org.apache.jetspeed.page.psml.CastorXmlPageManager; import org.apache.jetspeed.security.impl.RolePrincipalImpl; import org.apache.jetspeed.security.impl.UserPrincipalImpl; +import org.apache.jetspeed.test.JetspeedTestCase; /** * TestSecureCastorXmlPageManager @@ -37,8 +37,8 @@ * @author <a href="rwatl****@apach*****">Randy Watler</a> * @version $Id$ */ -public class TestCreateUserHomePagesFromRoles extends TestCase implements - PageManagerTestShared +public class TestCreateUserHomePagesFromRoles extends JetspeedTestCase + implements PageManagerTestShared { protected CastorXmlPageManager pageManager; @@ -51,8 +51,8 @@ protected void setUp() throws Exception { super.setUp(); - pageManager = Shared.makeCastorXMLPageManager("secure-pages", false, - true); + pageManager = Shared.makeCastorXMLPageManager(getBaseDir(), "pages", + false, false); } /** @@ -66,6 +66,7 @@ protected void tearDown() throws Exception { super.tearDown(); + Shared.shutdownCastorXMLPageManager(pageManager); } /** @@ -131,8 +132,8 @@ public void testCreateUserHomePagesFromRoles() throws Exception { - PageManager pageManager = Shared.makeCastorXMLPageManager("pages", - false, false); + PageManager pageManager = Shared.makeCastorXMLPageManager(getBaseDir(), + "pages", false, false); assertTrue("folder1 failed to create", pageManager .folderExists(FOLDER1)); Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestSecureCastorXmlPageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestSecureCastorXmlPageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/TestSecureCastorXmlPageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -17,10 +17,10 @@ package org.apache.jetspeed.page; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.jetspeed.page.psml.CastorXmlPageManager; +import org.apache.jetspeed.test.JetspeedTestCase; /** * TestSecureCastorXmlPageManager @@ -28,7 +28,7 @@ * @author <a href="rwatl****@apach*****">Randy Watler</a> * @version $Id$ */ -public class TestSecureCastorXmlPageManager extends TestCase implements +public class TestSecureCastorXmlPageManager extends JetspeedTestCase implements PageManagerTestShared { @@ -42,21 +42,19 @@ protected void setUp() throws Exception { super.setUp(); - pageManager = Shared.makeCastorXMLPageManager("secure-pages", false, - true); + pageManager = Shared.makeCastorXMLPageManager(getBaseDir(), + "secure-pages", false, true); } - /** - * <p> - * tearDown - * </p> + /* + * (non-Javadoc) * - * @see junit.framework.TestCase#tearDown() - * @throws java.lang.Exception + * @see junit.framework.TestCase#tearDown */ protected void tearDown() throws Exception { super.tearDown(); + Shared.shutdownCastorXMLPageManager(pageManager); } /** Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/document/psml/TestCastorFileSystemDocumentHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/document/psml/TestCastorFileSystemDocumentHandler.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/page/document/psml/TestCastorFileSystemDocumentHandler.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -22,13 +22,15 @@ import java.util.Map; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; +import net.sf.ehcache.CacheManager; import org.apache.jetspeed.cache.file.FileCache; +import org.apache.jetspeed.cache.impl.EhCacheImpl; import org.apache.jetspeed.om.folder.psml.FolderMetaDataImpl; import org.apache.jetspeed.om.page.Document; import org.apache.jetspeed.page.document.DocumentHandlerFactory; +import org.apache.jetspeed.test.JetspeedTestCase; /** * <p> @@ -42,9 +44,11 @@ * @version $Id$ * */ -public class TestCastorFileSystemDocumentHandler extends TestCase +public class TestCastorFileSystemDocumentHandler extends JetspeedTestCase { + protected FileCache cache; + protected CastorFileSystemDocumentHandler folderMetaDataDocumentHandler; /* @@ -56,6 +60,9 @@ { super.setUp(); + cache = new FileCache(new EhCacheImpl(CacheManager.getInstance() + .getEhcache("pageFileCache")), 10); + folderMetaDataDocumentHandler = new CastorFileSystemDocumentHandler( "/JETSPEED-INF/castor/page-mapping.xml", "folder.metadata", FolderMetaDataImpl.class, "testdata/pages", new FileCache(null)); @@ -67,17 +74,17 @@ folderMetaDataDocumentHandler.setHandlerFactory(handlerFactory); } - /** - * <p> - * tearDown - * </p> + /* + * (non-Javadoc) * - * @see junit.framework.TestCase#tearDown() - * @throws java.lang.Exception + * @see junit.framework.TestCase#tearDown */ protected void tearDown() throws Exception { super.tearDown(); + + cache.evictAll(); + folderMetaDataDocumentHandler.shutdown(); } /** Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -600,6 +600,12 @@ public void reset(); /** + * shutdown - gracefully shutdown page manager and disconnect + * from other singleton components, (e.g. shared caches) + */ + public void shutdown(); + + /** * Copy the source page creating and returning a new copy of the page with * the same portlet and fragment collection as the source All fragments are * created with new fragment ids Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandler.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandler.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -50,4 +50,10 @@ DocumentHandlerFactory getHandlerFactory(); void setHandlerFactory(DocumentHandlerFactory factory); + + /** + * shutdown - gracefully shutdown handler and disconnect + * from other singleton components, (e.g. shared caches) + */ + public void shutdown(); } Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandlerFactory.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandlerFactory.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/DocumentHandlerFactory.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -111,4 +111,10 @@ * indicator */ void setPermissionsEnabled(boolean enabled); + + /** + shutdown - gracefully shutdown handlers and disconnect + * from other singleton components, (e.g. shared caches) + */ + public void shutdown(); } Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/FolderHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/FolderHandler.java 2008-12-09 04:50:34 UTC (rev 1598) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/document/FolderHandler.java 2008-12-10 04:45:08 UTC (rev 1599) @@ -201,4 +201,10 @@ */ boolean isFolder(String path); + /** + * shutdown - gracefully shutdown handler and disconnect + * from other singleton components, (e.g. shared caches) + */ + public void shutdown(); + }