[pal-cvs 3864] [1599] patch 'r721906: fix remove listener cache bug'

Back to archive index

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();
+
 }


pal-cvs メーリングリストの案内
Back to archive index