You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2015/12/21 14:19:11 UTC

svn commit: r1721147 - in /commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file: FileDiskCache.java FileDiskCacheAttributes.java FileDiskCacheFactory.java FileDiskCacheManager.java

Author: tv
Date: Mon Dec 21 13:19:11 2015
New Revision: 1721147

URL: http://svn.apache.org/viewvc?rev=1721147&view=rev
Log:
Make code compile again

Modified:
    commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCache.java
    commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheAttributes.java
    commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheFactory.java
    commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheManager.java

Modified: commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCache.java?rev=1721147&r1=1721146&r2=1721147&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCache.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCache.java Mon Dec 21 13:19:11 2015
@@ -19,16 +19,6 @@ package org.apache.commons.jcs.auxiliary
  * under the License.
  */
 
-import org.apache.commons.jcs.auxiliary.AuxiliaryCacheAttributes;
-import org.apache.commons.jcs.auxiliary.disk.AbstractDiskCache;
-import org.apache.commons.jcs.engine.behavior.ICacheElement;
-import org.apache.commons.jcs.engine.behavior.IElementSerializer;
-import org.apache.commons.jcs.engine.logging.behavior.ICacheEvent;
-import org.apache.commons.jcs.engine.logging.behavior.ICacheEventLogger;
-import org.apache.commons.jcs.utils.timing.SleepUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -36,10 +26,19 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.Serializable;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.commons.jcs.auxiliary.AuxiliaryCacheAttributes;
+import org.apache.commons.jcs.auxiliary.disk.AbstractDiskCache;
+import org.apache.commons.jcs.engine.behavior.ICacheElement;
+import org.apache.commons.jcs.engine.behavior.IElementSerializer;
+import org.apache.commons.jcs.engine.logging.behavior.ICacheEvent;
+import org.apache.commons.jcs.engine.logging.behavior.ICacheEventLogger;
+import org.apache.commons.jcs.utils.timing.SleepUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * This disk cache writes each item to a separate file. This is for regions with very few items,
  * perhaps big ones.
@@ -47,12 +46,9 @@ import java.util.Set;
  * This is a fairly simple implementation. All the disk writing is handled right here. It's not
  * clear that anything more complicated is needed.
  */
-public class FileDiskCache<K extends Serializable, V extends Serializable>
+public class FileDiskCache<K, V>
     extends AbstractDiskCache<K, V>
 {
-    /** Don't change */
-    private static final long serialVersionUID = 1L;
-
     /** The logger. */
     private static final Log log = LogFactory.getLog( FileDiskCache.class );
 
@@ -88,7 +84,7 @@ public class FileDiskCache<K extends Ser
         setElementSerializer( elementSerializer );
         this.diskFileCacheAttributes = cattr;
         this.logCacheName = "Region [" + getCacheName() + "] ";
-        alive = initializeFileSystem( cattr );
+        setAlive(initializeFileSystem( cattr ));
     }
 
     /**
@@ -126,7 +122,7 @@ public class FileDiskCache<K extends Ser
      * @param key
      * @return the file for the key
      */
-    protected <KK extends Serializable> File file( KK key )
+    protected <KK> File file( KK key )
     {
         StringBuilder fileNameBuffer = new StringBuilder();
 
@@ -203,17 +199,17 @@ public class FileDiskCache<K extends Ser
     protected synchronized void processDispose()
         throws IOException
     {
-        ICacheEvent<String> cacheEvent = createICacheEvent( cacheName, "none", ICacheEventLogger.DISPOSE_EVENT );
+        ICacheEvent<String> cacheEvent = createICacheEvent( getCacheName(), "none", ICacheEventLogger.DISPOSE_EVENT );
         try
         {
-            if ( !alive )
+            if ( !isAlive() )
             {
                 log.error( logCacheName + "Not alive and dispose was called, directgory: " + getDirectory() );
                 return;
             }
 
             // Prevents any interaction with the cache while we're shutting down.
-            alive = false;
+            setAlive(false);
 
             // TODO consider giving up the handle on the directory.
             if ( log.isInfoEnabled() )
@@ -273,7 +269,7 @@ public class FileDiskCache<K extends Ser
                 throw new IOException( "Could not completely read file " + file.getName() );
             }
 
-            element = getElementSerializer().deSerialize( bytes );
+            element = getElementSerializer().deSerialize( bytes, null );
 
             // test that the retrieved object has equal key
             if ( element != null && !key.equals( element.getKey() ) )
@@ -342,7 +338,7 @@ public class FileDiskCache<K extends Ser
      * @return true if the item was removed
      * @throws IOException
      */
-    private <T extends Serializable> boolean _processRemove( T key )
+    private <T> boolean _processRemove( T key )
         throws IOException
     {
         File file = file( key );

Modified: commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheAttributes.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheAttributes.java?rev=1721147&r1=1721146&r2=1721147&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheAttributes.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheAttributes.java Mon Dec 21 13:19:11 2015
@@ -19,7 +19,6 @@ package org.apache.commons.jcs.auxiliary
  * under the License.
  */
 
-import org.apache.commons.jcs.auxiliary.AuxiliaryCacheAttributes;
 import org.apache.commons.jcs.auxiliary.disk.AbstractDiskCacheAttributes;
 
 /**
@@ -60,25 +59,6 @@ public class FileDiskCacheAttributes
     private boolean touchOnGet = DEFAULT_TOUCH_ON_GET;
 
     /**
-     * Returns a copy of the attributes.
-     * <p>
-     * @return AuxiliaryCacheAttributes
-     */
-    @Override
-    public AuxiliaryCacheAttributes copy()
-    {
-        try
-        {
-            return (AuxiliaryCacheAttributes) this.clone();
-        }
-        catch ( Exception e )
-        {
-            // swallow
-        }
-        return this;
-    }
-
-    /**
      * @param maxNumberOfFiles the maxNumberOfFiles to set
      */
     public void setMaxNumberOfFiles( int maxNumberOfFiles )

Modified: commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheFactory.java?rev=1721147&r1=1721146&r2=1721147&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheFactory.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheFactory.java Mon Dec 21 13:19:11 2015
@@ -27,8 +27,6 @@ import org.apache.commons.jcs.engine.log
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.io.Serializable;
-
 /** Create Disk File Caches */
 public class FileDiskCacheFactory
     implements AuxiliaryCacheFactory
@@ -54,7 +52,7 @@ public class FileDiskCacheFactory
      * @return AuxiliaryCache
      */
     @Override
-    public <K extends Serializable, V extends Serializable> FileDiskCache<K, V> createCache(
+    public <K, V> FileDiskCache<K, V> createCache(
             AuxiliaryCacheAttributes attr, ICompositeCacheManager cacheMgr,
            ICacheEventLogger cacheEventLogger, IElementSerializer elementSerializer )
     {
@@ -98,4 +96,24 @@ public class FileDiskCacheFactory
     {
         this.name = name;
     }
+
+    /**
+     * @see org.apache.commons.jcs.auxiliary.AuxiliaryCacheFactory#initialize()
+     */
+    @Override
+    public void initialize()
+    {
+        // TODO Auto-generated method stub
+
+    }
+
+    /**
+     * @see org.apache.commons.jcs.auxiliary.AuxiliaryCacheFactory#dispose()
+     */
+    @Override
+    public void dispose()
+    {
+        // TODO Auto-generated method stub
+
+    }
 }

Modified: commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheManager.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheManager.java?rev=1721147&r1=1721146&r2=1721147&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheManager.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-sandbox/filecache/src/main/java/org/apache/commons/jcs/auxiliary/disk/file/FileDiskCacheManager.java Mon Dec 21 13:19:11 2015
@@ -19,35 +19,40 @@ package org.apache.commons.jcs.auxiliary
  * under the License.
  */
 
-import org.apache.commons.jcs.auxiliary.disk.AbstractDiskCacheManager;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 import org.apache.commons.jcs.engine.behavior.IElementSerializer;
 import org.apache.commons.jcs.engine.logging.behavior.ICacheEventLogger;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.io.Serializable;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * This is a non singleton. It creates caches on a per region basis.
  */
 public class FileDiskCacheManager
-    extends AbstractDiskCacheManager
 {
-    /** Don't change */
-    private static final long serialVersionUID = -4153287154512264626L;
-
     /** The logger */
     private static final Log log = LogFactory.getLog( FileDiskCacheManager.class );
 
     /** Each region has an entry here. */
-    private final Map<String, FileDiskCache<? extends Serializable, ? extends Serializable>> caches =
-        new ConcurrentHashMap<String, FileDiskCache<? extends Serializable, ? extends Serializable>>();
+    private final ConcurrentMap<String, FileDiskCache<?, ?>> caches =
+        new ConcurrentHashMap<String, FileDiskCache<?, ?>>();
+
+    /** Lock cache initialization */
+    private final Lock lock = new ReentrantLock();
 
     /** User configurable attributes */
     private final FileDiskCacheAttributes defaultCacheAttributes;
 
+    /** Event logger */
+    private final ICacheEventLogger eventLogger;
+
+    /** Custom serializer */
+    private final IElementSerializer elementSerializer;
+
     /**
      * Constructor for the DiskFileCacheManager object
      * <p>
@@ -59,8 +64,8 @@ public class FileDiskCacheManager
                                   IElementSerializer elementSerializer )
     {
         this.defaultCacheAttributes = defaultCacheAttributes;
-        setElementSerializer( elementSerializer );
-        setCacheEventLogger( cacheEventLogger );
+        this.elementSerializer = elementSerializer;
+        this.eventLogger = cacheEventLogger;
     }
 
     /**
@@ -69,10 +74,9 @@ public class FileDiskCacheManager
      * @param cacheName Name that will be used when creating attributes.
      * @return A cache.
      */
-    @Override
-    public <K extends Serializable, V extends Serializable> FileDiskCache<K, V> getCache( String cacheName )
+    public <K, V> FileDiskCache<K, V> getCache( String cacheName )
     {
-        FileDiskCacheAttributes cacheAttributes = (FileDiskCacheAttributes) defaultCacheAttributes.copy();
+        FileDiskCacheAttributes cacheAttributes = (FileDiskCacheAttributes) defaultCacheAttributes.clone();
 
         cacheAttributes.setCacheName( cacheName );
 
@@ -86,7 +90,8 @@ public class FileDiskCacheManager
      * @param cacheAttributes Attributes the cache should have.
      * @return A cache, either from the existing set or newly created.
      */
-    public <K extends Serializable, V extends Serializable> FileDiskCache<K, V> getCache( FileDiskCacheAttributes cacheAttributes )
+    @SuppressWarnings("unchecked") // Need to cast because of common map for all caches
+    public <K, V> FileDiskCache<K, V> getCache( FileDiskCacheAttributes cacheAttributes )
     {
         FileDiskCache<K, V> cache = null;
 
@@ -94,23 +99,30 @@ public class FileDiskCacheManager
 
         log.debug( "Getting cache named: " + cacheName );
 
-        synchronized ( caches )
-        {
-            // Try to load the cache from the set that have already been
-            // created. This only looks at the name attribute.
+        // Try to load the cache from the set that have already been
+        // created. This only looks at the name attribute.
+        cache = (FileDiskCache<K, V>) caches.get( cacheName );
 
-            @SuppressWarnings("unchecked") // Need to cast because of common map for all caches
-            FileDiskCache<K, V> fileDiskCache = (FileDiskCache<K, V>) caches.get( cacheName );
-            cache = fileDiskCache;
+        if (cache == null)
+        {
+            lock.lock();
 
-            // If it was not found, create a new one using the supplied
-            // attributes
+            try
+            {
+                cache = (FileDiskCache<K, V>) caches.get( cacheName );
 
-            if ( cache == null )
+                // If it was not found, create a new one using the supplied
+                // attributes
+                if ( cache == null )
+                {
+                    cache = new FileDiskCache<K, V>( cacheAttributes, elementSerializer );
+                    cache.setCacheEventLogger( eventLogger );
+                    caches.put( cacheName, cache );
+                }
+            }
+            finally
             {
-                cache = new FileDiskCache<K, V>( cacheAttributes, getElementSerializer() );
-                cache.setCacheEventLogger( getCacheEventLogger() );
-                caches.put( cacheName, cache );
+                lock.unlock();
             }
         }