Author: imario
Date: Thu Mar 30 11:16:24 2006
New Revision: 390219

URL: http://svn.apache.org/viewcvs?rev=390219&view=rev
Log:
added cacheStrategy to fileSystemManager

Added:
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
   (with props)
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
   (with props)
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
   (with props)
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
   (with props)
    
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
   (with props)
Modified:
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileObject.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileSystemManager.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/LRUFilesCache.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
    
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractProviderTestCase.java
    
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractTestSuite.java
    
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java

Added: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java?rev=390219&view=auto
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
 Thu Mar 30 11:16:24 2006
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2002-2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs;
+
+/**
+ * An enumerated type to deal with the various cache strategies.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivankovits</a>
+ * @version $Revision$ $Date$
+ */
+public final class CacheStrategy
+{
+    /**
+     * Deal with cached data manually. Call [EMAIL PROTECTED] 
FileObject#refresh()} to refresh the object data.
+     */
+    public static final CacheStrategy MANUAL = new CacheStrategy("manual");
+
+    /**
+     * Refresh the data every time you request a file from [EMAIL PROTECTED] 
FileSystemManager#resolveFile}
+     */
+    public static final CacheStrategy ON_RESOLVE = new 
CacheStrategy("onresolve");
+
+    /**
+     * Refresh the data every time you call a method on the fileObject.
+     * You'll use this only if you really need the latest info as this setting 
is a major performance loss.  
+     */
+    public static final CacheStrategy ON_CALL = new CacheStrategy("oncall");
+
+    private final String name;
+
+    private CacheStrategy(final String name)
+    {
+        this.name = name;
+    }
+
+    /**
+     * Returns the name of the scope.
+     */
+    public String toString()
+    {
+        return name;
+    }
+
+    /**
+     * Returns the name of the scope.
+     */
+    public String getName()
+    {
+        return name;
+    }
+}

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/CacheStrategy.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileObject.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileObject.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileObject.java
 Thu Mar 30 11:16:24 2006
@@ -308,4 +308,19 @@
      * @see FileContent#close
      */
     public void close() throws FileSystemException;
+
+    /**
+     * This will prepare the fileObject to get resynchronized with the 
underlaying filesystem if required 
+     */
+    public void refresh() throws FileSystemException;
+
+    /**
+     * check if the fileObject is attaced
+     */
+       public boolean isAttached();
+
+       /**
+        * check if someone reads/write to this file
+        */
+       public boolean isContentOpen();
 }

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileSystemManager.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileSystemManager.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileSystemManager.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/FileSystemManager.java
 Thu Mar 30 11:16:24 2006
@@ -70,7 +70,7 @@
     /**
      * Returns the base file used to resolve relative paths.
      */
-    FileObject getBaseFile() throws FileSystemException;
+       public FileObject getBaseFile() throws FileSystemException;
 
     /**
      * Locates a file by name.  Equivalent to calling
@@ -80,7 +80,7 @@
      * @return The file.  Never returns null.
      * @throws FileSystemException On error parsing the file name.
      */
-    FileObject resolveFile(String name)
+       public FileObject resolveFile(String name)
         throws FileSystemException;
 
     /**
@@ -92,7 +92,7 @@
      * @return The file.  Never returns null.
      * @throws FileSystemException On error parsing the file name.
      */
-    FileObject resolveFile(String name, FileSystemOptions fileSystemOptions)
+       public FileObject resolveFile(String name, FileSystemOptions 
fileSystemOptions)
         throws FileSystemException;
 
     /**
@@ -109,7 +109,7 @@
      * @return The file.  Never returns null.
      * @throws FileSystemException On error parsing the file name.
      */
-    FileObject resolveFile(FileObject baseFile, String name)
+       public FileObject resolveFile(FileObject baseFile, String name)
         throws FileSystemException;
 
     /**
@@ -122,7 +122,7 @@
      * @return The file.  Never returns null.
      * @throws FileSystemException On error parsing the file name.
      */
-    FileObject resolveFile(File baseFile, String name)
+       public FileObject resolveFile(File baseFile, String name)
         throws FileSystemException;
 
     /**
@@ -134,7 +134,7 @@
      * @return A [EMAIL PROTECTED] FileName} object representing the resolved 
file name.
      * @throws FileSystemException If the name is invalid.
      */
-    FileName resolveName(final FileName root, final String name) throws 
FileSystemException;
+       public FileName resolveName(final FileName root, final String name) 
throws FileSystemException;
 
     /**
      * Resolves a name, relative to the "root" file name.  Refer to [EMAIL 
PROTECTED] NameScope}
@@ -146,7 +146,7 @@
      * @return A [EMAIL PROTECTED] FileName} object representing the resolved 
file name.
      * @throws FileSystemException If the name is invalid.
      */
-    FileName resolveName(final FileName root, String name, NameScope scope)
+       public FileName resolveName(final FileName root, String name, NameScope 
scope)
         throws FileSystemException;
 
     /**
@@ -157,7 +157,7 @@
      *         returns null.
      * @throws FileSystemException On error converting the file.
      */
-    FileObject toFileObject(File file)
+       public FileObject toFileObject(File file)
         throws FileSystemException;
 
     /**
@@ -170,7 +170,7 @@
      * @return The root file of the new file system.
      * @throws FileSystemException On error creating the file system.
      */
-    FileObject createFileSystem(String provider, FileObject file)
+       public FileObject createFileSystem(String provider, FileObject file)
         throws FileSystemException;
 
     /**
@@ -181,7 +181,7 @@
      * @return The root file of the new file system.
      * @throws FileSystemException On error creating the file system.
      */
-    FileObject createFileSystem(FileObject file)
+       public FileObject createFileSystem(FileObject file)
         throws FileSystemException;
 
     /**
@@ -191,7 +191,7 @@
      * @param rootUri The root URI to use for the new file system.  Can be 
null.
      * @return The root file of the new file system.
      */
-    FileObject createVirtualFileSystem(String rootUri)
+       public FileObject createVirtualFileSystem(String rootUri)
         throws FileSystemException;
 
     /**
@@ -201,31 +201,36 @@
      * @param rootFile The root file to backs the file system.
      * @return The root of the new file system.
      */
-    FileObject createVirtualFileSystem(FileObject rootFile)
+       public FileObject createVirtualFileSystem(FileObject rootFile)
         throws FileSystemException;
 
     /**
      * Returns a streamhandler factory to enable URL lookup using this
      * FileSystemManager.
      */
-    URLStreamHandlerFactory getURLStreamHandlerFactory();
+       public URLStreamHandlerFactory getURLStreamHandlerFactory();
 
     /**
      * Determines if a layered file system can be created for a given file.
      *
      * @param file The file to check for.
      */
-    boolean canCreateFileSystem(FileObject file) throws FileSystemException;
+       public boolean canCreateFileSystem(FileObject file) throws 
FileSystemException;
 
     /**
      * Get the cache used to cache fileobjects.
      */
-    FilesCache getFilesCache();
+       public FilesCache getFilesCache();
+    
+    /**
+     * Get the cache strategy used
+     */
+    public CacheStrategy getCacheStrategy();
 
     /**
      * The class to use to determine the content-type (mime-type)
      */
-    FileContentInfoFactory getFileContentInfoFactory();
+    public FileContentInfoFactory getFileContentInfoFactory();
 
     /**
      * Get the schemes currently available.

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
 Thu Mar 30 11:16:24 2006
@@ -40,6 +40,7 @@
 vfs.provider/check-is-writeable.error=Could not determine if file "{0}" is 
writeable.
 vfs.provider/check-is-readable.error=Could not determine if file "{0}" is 
readable.
 vfs.provider/get-url.error=Could not create URL for "{0}".
+vfs.provider/resync.error=Could not resync "{0}".
 vfs.provider/close.error=Could not close "{0}".
 vfs.provider/read.error=Could not read file "{0}".
 vfs.provider/random-access.error=Could not read/write file "{0}".
@@ -245,4 +246,7 @@
 vfs.tasks/mkdir.create-folder.info=Creating directory "{0}".
 
 # Selectors
-vfs.selectors/filefilter.missing.error=Configure a fileFilter or override 
accept();
\ No newline at end of file
+vfs.selectors/filefilter.missing.error=Configure a fileFilter or override 
accept();
+
+# Utils
+vfs.util/find-abstract-file-object.error=Object didnt extend from 
AbstractFileObject. Object "{0}"
\ No newline at end of file

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/LRUFilesCache.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/LRUFilesCache.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/LRUFilesCache.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/LRUFilesCache.java
 Thu Mar 30 11:16:24 2006
@@ -15,6 +15,9 @@
  */
 package org.apache.commons.vfs.cache;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.commons.collections.map.AbstractLinkedMap;
 import org.apache.commons.collections.map.LRUMap;
 import org.apache.commons.logging.Log;
@@ -24,12 +27,8 @@
 import org.apache.commons.vfs.FileSystem;
 import org.apache.commons.vfs.FileSystemException;
 import org.apache.commons.vfs.VfsLog;
-import org.apache.commons.vfs.provider.AbstractFileObject;
 import org.apache.commons.vfs.util.Messages;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * This implementation caches every file using [EMAIL PROTECTED] LRUMap}.<br>
  * The default constructor uses a LRU size of 100 per filesystem.
@@ -61,7 +60,8 @@
         {
             synchronized (LRUFilesCache.this)
             {
-                AbstractFileObject file = (AbstractFileObject) 
linkEntry.getValue();
+               FileObject file = (FileObject) linkEntry.getValue();
+               
                 // System.err.println(">>> " + size() + " check removeLRU:" + 
linkEntry.getKey().toString());
 
                 if (file.isAttached() || file.isContentOpen())

Added: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java?rev=390219&view=auto
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
 Thu Mar 30 11:16:24 2006
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2002-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs.cache;
+
+import java.util.List;
+
+import org.apache.commons.vfs.FileContent;
+import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.FileSelector;
+import org.apache.commons.vfs.FileSystemException;
+import org.apache.commons.vfs.FileType;
+import org.apache.commons.vfs.NameScope;
+import org.apache.commons.vfs.impl.DecoratedFileObject;
+
+/**
+ * This decorator refreshes the fileObject data on every call
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivankovits</a>
+ * @version $Revision$ $Date$
+ */
+public class OnCallRefreshFileObject extends DecoratedFileObject
+{
+       public OnCallRefreshFileObject(FileObject fileObject)
+       {
+               super(fileObject);              
+       }
+
+       public void close() throws FileSystemException
+       {
+               refresh();
+               super.close();
+       }
+
+       public void copyFrom(FileObject srcFile, FileSelector selector) throws 
FileSystemException
+       {
+               refresh();
+               super.copyFrom(srcFile, selector);
+       }
+
+       public void createFile() throws FileSystemException
+       {
+               refresh();
+               super.createFile();
+       }
+
+       public void createFolder() throws FileSystemException
+       {
+               refresh();
+               super.createFolder();
+       }
+
+       public boolean delete() throws FileSystemException
+       {
+               refresh();
+               return super.delete();
+       }
+
+       public int delete(FileSelector selector) throws FileSystemException
+       {
+               refresh();
+               return super.delete(selector);
+       }
+
+       public boolean exists() throws FileSystemException
+       {
+               refresh();
+               return super.exists();
+       }
+
+       public void findFiles(FileSelector selector, boolean depthwise, List 
selected) throws FileSystemException
+       {
+               refresh();
+               super.findFiles(selector, depthwise, selected);
+       }
+
+       public FileObject[] findFiles(FileSelector selector) throws 
FileSystemException
+       {
+               refresh();
+               return super.findFiles(selector);
+       }
+
+       public FileObject getChild(String name) throws FileSystemException
+       {
+               refresh();
+               return super.getChild(name);
+       }
+
+       public FileObject[] getChildren() throws FileSystemException
+       {
+               refresh();
+               return super.getChildren();
+       }
+
+       public FileContent getContent() throws FileSystemException
+       {
+               refresh();
+               return super.getContent();
+       }
+
+       public FileType getType() throws FileSystemException
+       {
+               refresh();
+               return super.getType();
+       }
+
+       public boolean isHidden() throws FileSystemException
+       {
+               refresh();
+               return super.isHidden();
+       }
+
+       public boolean isReadable() throws FileSystemException
+       {
+               refresh();
+               return super.isReadable();
+       }
+
+       public boolean isWriteable() throws FileSystemException
+       {
+               refresh();
+               return super.isWriteable();
+       }
+
+       public void moveTo(FileObject destFile) throws FileSystemException
+       {
+               refresh();
+               super.moveTo(destFile);
+       }
+
+       public FileObject resolveFile(String name, NameScope scope) throws 
FileSystemException
+       {
+               refresh();
+               return super.resolveFile(name, scope);
+       }
+
+       public FileObject resolveFile(String path) throws FileSystemException
+       {
+               refresh();
+               return super.resolveFile(path);
+       }
+}

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/cache/OnCallRefreshFileObject.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java?rev=390219&view=auto
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
 Thu Mar 30 11:16:24 2006
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2002-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs.impl;
+
+import java.net.URL;
+import java.util.List;
+
+import org.apache.commons.vfs.FileContent;
+import org.apache.commons.vfs.FileName;
+import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.FileSelector;
+import org.apache.commons.vfs.FileSystem;
+import org.apache.commons.vfs.FileSystemException;
+import org.apache.commons.vfs.FileType;
+import org.apache.commons.vfs.NameScope;
+
+/**
+ * Base class to build a fileObject decoration
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivankovits</a>
+ * @version $Revision$ $Date$
+ */
+public class DecoratedFileObject implements FileObject
+{
+       final FileObject decoratedFileObject;
+
+       public DecoratedFileObject(FileObject decoratedFileObject)
+       {
+               super();
+               this.decoratedFileObject = decoratedFileObject;
+       }
+
+       public boolean canRenameTo(FileObject newfile)
+       {
+               return decoratedFileObject.canRenameTo(newfile);
+       }
+
+       public void close() throws FileSystemException
+       {
+               decoratedFileObject.close();
+       }
+
+       public void copyFrom(FileObject srcFile, FileSelector selector) throws 
FileSystemException
+       {
+               decoratedFileObject.copyFrom(srcFile, selector);
+       }
+
+       public void createFile() throws FileSystemException
+       {
+               decoratedFileObject.createFile();
+       }
+
+       public void createFolder() throws FileSystemException
+       {
+               decoratedFileObject.createFolder();
+       }
+
+       public boolean delete() throws FileSystemException
+       {
+               return decoratedFileObject.delete();
+       }
+
+       public int delete(FileSelector selector) throws FileSystemException
+       {
+               return decoratedFileObject.delete(selector);
+       }
+
+       public boolean exists() throws FileSystemException
+       {
+               return decoratedFileObject.exists();
+       }
+
+       public void findFiles(FileSelector selector, boolean depthwise, List 
selected) throws FileSystemException
+       {
+               decoratedFileObject.findFiles(selector, depthwise, selected);
+       }
+
+       public FileObject[] findFiles(FileSelector selector) throws 
FileSystemException
+       {
+               return decoratedFileObject.findFiles(selector);
+       }
+
+       public FileObject getChild(String name) throws FileSystemException
+       {
+               return decoratedFileObject.getChild(name);
+       }
+
+       public FileObject[] getChildren() throws FileSystemException
+       {
+               return decoratedFileObject.getChildren();
+       }
+
+       public FileContent getContent() throws FileSystemException
+       {
+               return decoratedFileObject.getContent();
+       }
+
+       public FileSystem getFileSystem()
+       {
+               return decoratedFileObject.getFileSystem();
+       }
+
+       public FileName getName()
+       {
+               return decoratedFileObject.getName();
+       }
+
+       public FileObject getParent() throws FileSystemException
+       {
+               return decoratedFileObject.getParent();
+       }
+
+       public FileType getType() throws FileSystemException
+       {
+               return decoratedFileObject.getType();
+       }
+
+       public URL getURL() throws FileSystemException
+       {
+               return decoratedFileObject.getURL();
+       }
+
+       public boolean isHidden() throws FileSystemException
+       {
+               return decoratedFileObject.isHidden();
+       }
+
+       public boolean isReadable() throws FileSystemException
+       {
+               return decoratedFileObject.isReadable();
+       }
+
+       public boolean isWriteable() throws FileSystemException
+       {
+               return decoratedFileObject.isWriteable();
+       }
+
+       public void moveTo(FileObject destFile) throws FileSystemException
+       {
+               decoratedFileObject.moveTo(destFile);
+       }
+
+       public FileObject resolveFile(String name, NameScope scope) throws 
FileSystemException
+       {
+               return decoratedFileObject.resolveFile(name, scope);
+       }
+
+       public FileObject resolveFile(String path) throws FileSystemException
+       {
+               return decoratedFileObject.resolveFile(path);
+       }
+
+       public void refresh() throws FileSystemException
+       {
+               decoratedFileObject.refresh();
+       }
+
+       public FileObject getDecoratedFileObject()
+       {
+               return decoratedFileObject;
+       }
+
+       public boolean isAttached()
+       {
+               return decoratedFileObject.isAttached();
+       }
+
+       public boolean isContentOpen()
+       {
+               return decoratedFileObject.isContentOpen();
+       }
+
+       public String toString()
+       {
+               return decoratedFileObject.toString();
+       }
+}
\ No newline at end of file

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DecoratedFileObject.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
 Thu Mar 30 11:16:24 2006
@@ -16,6 +16,7 @@
 package org.apache.commons.vfs.impl;
 
 import org.apache.commons.logging.Log;
+import org.apache.commons.vfs.CacheStrategy;
 import org.apache.commons.vfs.FileContentInfoFactory;
 import org.apache.commons.vfs.FileName;
 import org.apache.commons.vfs.FileObject;
@@ -93,6 +94,11 @@
     private FilesCache filesCache;
 
     /**
+     * The cache strategy
+     */
+    private CacheStrategy fileCacheStrategy;    
+
+    /**
      * The class to use to determine the content-type (mime-type)
      */
     private FileContentInfoFactory fileContentInfoFactory;
@@ -225,7 +231,7 @@
     /**
      * Sets the filesCache implementation used to cache files
      */
-    public void setFilesCache(FilesCache filesCache) throws FileSystemException
+    public void setFilesCache(final FilesCache filesCache) throws 
FileSystemException
     {
         if (init)
         {
@@ -236,6 +242,35 @@
     }
 
     /**
+     * <p>
+     * Set the cache strategy to use when dealing with file object data.
+     * You can set it only once before the FileSystemManager is initialized.
+     * <p />
+     * <p>
+     * The default is [EMAIL PROTECTED] CacheStrategy#ON_RESOLVE}
+     * </p>
+     *   
+     * @throws FileSystemException if this is not possible. e.g. it is already 
set.
+     */
+    public void setCacheStrategy(final CacheStrategy fileCacheStrategy) throws 
FileSystemException
+    {
+        if (init)
+        {
+            throw new FileSystemException("vfs.impl/already-inited.error");
+        }
+        
+       this.fileCacheStrategy = fileCacheStrategy;
+    }
+    
+    /**
+     * Get the cache strategy used
+     */
+    public CacheStrategy getCacheStrategy()
+       {
+               return fileCacheStrategy;
+       }
+
+       /**
      * get the fileContentInfoFactory used to determine the infos of a file 
content.
      */
     public FileContentInfoFactory getFileContentInfoFactory()
@@ -364,6 +399,11 @@
         if (fileContentInfoFactory == null)
         {
             fileContentInfoFactory = new FileContentInfoFilenameFactory();
+        }
+        
+        if (fileCacheStrategy == null)
+        {
+               fileCacheStrategy = CacheStrategy.ON_RESOLVE;
         }
 
         setupComponent(filesCache);

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 Thu Mar 30 11:16:24 2006
@@ -28,6 +28,7 @@
 import org.apache.commons.vfs.NameScope;
 import org.apache.commons.vfs.RandomAccessContent;
 import org.apache.commons.vfs.Selectors;
+import org.apache.commons.vfs.util.FileObjectUtils;
 import org.apache.commons.vfs.util.RandomAccessMode;
 
 import java.io.IOException;
@@ -69,7 +70,7 @@
     // Cached info
     private boolean attached;
     private FileType type;
-    private AbstractFileObject parent;
+    private FileObject parent;
 
     // Changed to hold only the name of the children and let the object
     // go into the global files cache
@@ -500,7 +501,7 @@
             // Locate the parent of this file
             if (parent == null)
             {
-                parent = (AbstractFileObject) fs.resolveFile(name.getParent());
+                parent = (FileObject) fs.resolveFile(name.getParent());
             }
         }
         return parent;
@@ -996,6 +997,22 @@
     }
 
     /**
+     * This will prepare the fileObject to get resynchronized with the 
underlaying filesystem if required 
+     */
+    public void refresh() throws FileSystemException
+    {
+        // Detach from the file
+        try
+        {
+            detach();
+        }
+        catch (final Exception e)
+        {
+            throw new FileSystemException("vfs.provider/resync.error", name, 
e);
+        }
+    }
+    
+    /**
      * Closes this file, and its content.
      */
     public void close() throws FileSystemException
@@ -1383,7 +1400,7 @@
 
         if (parent != null)
         {
-            parent.childrenChanged(childName, newType);
+            
FileObjectUtils.getAbstractFileObject(parent).childrenChanged(childName, 
newType);
         }
     }
 

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
 Thu Mar 30 11:16:24 2006
@@ -17,6 +17,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.commons.vfs.CacheStrategy;
 import org.apache.commons.vfs.Capability;
 import org.apache.commons.vfs.FileListener;
 import org.apache.commons.vfs.FileName;
@@ -28,6 +29,7 @@
 import org.apache.commons.vfs.FileSystemOptions;
 import org.apache.commons.vfs.FilesCache;
 import org.apache.commons.vfs.VfsLog;
+import org.apache.commons.vfs.cache.OnCallRefreshFileObject;
 import org.apache.commons.vfs.events.AbstractFileChangeEvent;
 import org.apache.commons.vfs.events.ChangedEvent;
 import org.apache.commons.vfs.events.CreateEvent;
@@ -295,6 +297,8 @@
             {
                 throw new 
FileSystemException("vfs.provider/resolve-file.error", name, e);
             }
+            
+            file = decorateFileObject(file);
 
             // [EMAIL PROTECTED] ==> use putFileToCache
             if (useCache)
@@ -303,10 +307,28 @@
             }
             // files.put(name, file);
         }
+
+        /**
+         * resync the file information if requested
+         */
+        if 
(getFileSystemManager().getCacheStrategy().equals(CacheStrategy.ON_RESOLVE))
+        {
+               file.refresh();
+        }
         return file;
     }
 
-    /**
+    protected FileObject decorateFileObject(FileObject file)
+       {
+        if 
(getFileSystemManager().getCacheStrategy().equals(CacheStrategy.ON_CALL))
+        {
+               return new OnCallRefreshFileObject(file);
+        }
+        
+        return file;
+       }
+
+       /**
      * Creates a temporary local copy of a file and its descendents.
      */
     public File replicateFile(final FileObject file,

Added: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java?rev=390219&view=auto
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
 Thu Mar 30 11:16:24 2006
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2002-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs.util;
+
+import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.FileSystemException;
+import org.apache.commons.vfs.impl.DecoratedFileObject;
+import org.apache.commons.vfs.provider.AbstractFileObject;
+
+/**
+ * Stuff to get some strange things from an FileObject
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivankovits</a>
+ * @version $Revision$ $Date$
+ */
+public class FileObjectUtils
+{
+       private FileObjectUtils()
+       {
+       }
+
+       /**
+        * get access to the base object even if decorated
+        */
+       public static AbstractFileObject getAbstractFileObject(final FileObject 
fileObject) throws FileSystemException
+       {
+               Object searchObject = fileObject;
+               while (searchObject instanceof DecoratedFileObject)
+               {
+                       searchObject = ((DecoratedFileObject) 
searchObject).getDecoratedFileObject();
+               }
+               if (searchObject instanceof AbstractFileObject)
+               {
+                       return (AbstractFileObject) searchObject;
+               }
+               
+        throw new 
FileSystemException("vfs.util/find-abstract-file-object.error");
+       }
+
+       /**
+        * check if the given FileObject is instance of given class argument 
+        */
+       public static boolean isInstanceOf(final FileObject fileObject, final 
Class wantedClass) throws FileSystemException
+       {
+               Object searchObject = fileObject;
+               while (searchObject instanceof DecoratedFileObject)
+               {
+                       if (wantedClass.isInstance(searchObject))
+                       {
+                               return true;
+                       }
+                       
+                       searchObject = ((DecoratedFileObject) 
searchObject).getDecoratedFileObject();
+               }
+               
+               if (wantedClass.isInstance(searchObject))
+               {
+                       return true;
+               }
+               
+               return false;
+       }
+}

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/util/FileObjectUtils.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractProviderTestCase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractProviderTestCase.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractProviderTestCase.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractProviderTestCase.java
 Thu Mar 30 11:16:24 2006
@@ -16,6 +16,7 @@
 package org.apache.commons.vfs.test;
 
 import org.apache.commons.AbstractVfsTestCase;
+import org.apache.commons.vfs.CacheStrategy;
 import org.apache.commons.vfs.Capability;
 import org.apache.commons.vfs.FileContent;
 import org.apache.commons.vfs.FileObject;
@@ -23,6 +24,7 @@
 import org.apache.commons.vfs.FileType;
 import org.apache.commons.vfs.impl.DefaultFileSystemManager;
 import org.apache.commons.vfs.provider.AbstractFileSystem;
+import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider;
 
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
@@ -48,6 +50,7 @@
     private FileObject readFolder;
     private FileObject writeFolder;
     private DefaultFileSystemManager manager;
+    private ProviderTestConfig providerConfig;
     private Method method;
 
     // Expected contents of "file1.txt"
@@ -68,11 +71,13 @@
      * Configures this test.
      */
     public void setConfig(final DefaultFileSystemManager manager,
+                                         final ProviderTestConfig 
providerConfig,
                           final FileObject baseFolder,
                           final FileObject readFolder,
                           final FileObject writeFolder)
     {
         this.manager = manager;
+        this.providerConfig = providerConfig;
         this.baseFolder = baseFolder;
         this.readFolder = readFolder;
         this.writeFolder = writeFolder;
@@ -87,6 +92,22 @@
     }
 
     /**
+     * creates a new uninitialized file system manager
+     * @throws Exception 
+     */
+    protected DefaultFileSystemManager createManager() throws Exception
+    {
+           DefaultFileSystemManager fs = new DefaultFileSystemManager();
+           fs.setFilesCache(getProviderConfig().getFilesCache());
+           getProviderConfig().prepare(fs);
+           if (!fs.hasProvider("file"))
+           {
+               fs.addProvider("file", new DefaultLocalFileProvider());
+           }
+           return fs;
+    }
+    
+    /**
      * Returns the base test folder.  This is the parent of both the read
      * test and write test folders.
      */
@@ -94,8 +115,16 @@
     {
         return baseFolder;
     }
-
+    
     /**
+     * get the provider configuration 
+     */
+    public ProviderTestConfig getProviderConfig()
+       {
+               return providerConfig;
+       }
+
+       /**
      * Returns the read test folder.
      */
     protected FileObject getReadFolder()

Modified: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractTestSuite.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractTestSuite.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractTestSuite.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/AbstractTestSuite.java
 Thu Mar 30 11:16:24 2006
@@ -168,7 +168,7 @@
             if (test instanceof AbstractProviderTestCase)
             {
                 final AbstractProviderTestCase providerTestCase = 
(AbstractProviderTestCase) test;
-                providerTestCase.setConfig(manager, baseFolder, readFolder, 
writeFolder);
+                providerTestCase.setConfig(manager, providerConfig, 
baseFolder, readFolder, writeFolder);
             }
         }
     }

Added: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java?rev=390219&view=auto
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
 Thu Mar 30 11:16:24 2006
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2002-20056 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs.test;
+
+import org.apache.commons.vfs.CacheStrategy;
+import org.apache.commons.vfs.Capability;
+import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.Selectors;
+import org.apache.commons.vfs.impl.DefaultFileSystemManager;
+
+/**
+ * Test the cache stragey
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivankovits</a>
+ */
+public class ProviderCacheStrategyTests
+    extends AbstractProviderTestCase
+{
+    /**
+     * Returns the capabilities required by the tests of this test case.
+     */
+    protected Capability[] getRequiredCaps()
+    {
+        return new Capability[]
+        {
+            Capability.CREATE,
+            Capability.GET_TYPE,
+            Capability.LIST_CHILDREN,
+        };
+    }
+
+    /**
+     * Test the manual cache strategy
+     */
+    public void testManualCache() throws Exception
+    {
+        FileObject scratchFolder = getWriteFolder();
+        scratchFolder.delete(Selectors.EXCLUDE_SELF);
+        
+        DefaultFileSystemManager fs = createManager();
+           fs.setCacheStrategy(CacheStrategy.MANUAL);
+        fs.init();
+        
+        FileObject cachedFolder = 
fs.resolveFile(scratchFolder.getName().getURI());
+        
+        FileObject[] fos = cachedFolder.getChildren();
+        assertContainsNot(fos, "file1.txt");
+        
+        scratchFolder.resolveFile("file1.txt").createFile();
+        
+        fos = cachedFolder.getChildren();
+        assertContainsNot(fos, "file1.txt");
+        
+        cachedFolder.refresh();
+        fos = cachedFolder.getChildren();
+        assertContains(fos, "file1.txt");
+    }
+
+    /**
+     * Test the on_resolve strategy
+     */
+    public void testOnResolveCache() throws Exception
+    {
+        FileObject scratchFolder = getWriteFolder();
+        scratchFolder.delete(Selectors.EXCLUDE_SELF);
+        
+        DefaultFileSystemManager fs = createManager();
+           fs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
+        fs.init();
+        
+        FileObject cachedFolder = 
fs.resolveFile(scratchFolder.getName().getURI());
+        
+        FileObject[] fos = cachedFolder.getChildren();
+        assertContainsNot(fos, "file1.txt");
+        
+        scratchFolder.resolveFile("file1.txt").createFile();
+        
+        fos = cachedFolder.getChildren();
+        assertContainsNot(fos, "file1.txt");
+        
+        cachedFolder = fs.resolveFile(scratchFolder.getName().getURI());
+        fos = cachedFolder.getChildren();
+        assertContains(fos, "file1.txt");
+    }
+    
+    /**
+     * Test the on_call strategy
+     */
+    public void testOnCallCache() throws Exception
+    {
+        FileObject scratchFolder = getWriteFolder();
+        scratchFolder.delete(Selectors.EXCLUDE_SELF);
+        
+        DefaultFileSystemManager fs = createManager();
+           fs.setCacheStrategy(CacheStrategy.ON_CALL);
+        fs.init();
+        
+        FileObject cachedFolder = 
fs.resolveFile(scratchFolder.getName().getURI());
+        
+        FileObject[] fos = cachedFolder.getChildren();
+        assertContainsNot(fos, "file1.txt");
+        
+        scratchFolder.resolveFile("file1.txt").createFile();
+        
+        fos = cachedFolder.getChildren();
+        assertContains(fos, "file1.txt");
+    }
+    
+       public void assertContainsNot(FileObject[] fos, String string)
+       {
+               for (int i = 0; i<fos.length; i++)
+               {
+                       if (string.equals(fos[i].getName().getBaseName()))
+                       {
+                               fail(string + " should not be seen");
+                       }
+               }
+       }
+       
+       public void assertContains(FileObject[] fos, String string)
+       {
+               for (int i = 0; i<fos.length; i++)
+               {
+                       if (string.equals(fos[i].getName().getBaseName()))
+                       {
+                               return;
+                       }
+               }
+               
+               fail(string + " should be seen");
+       }
+}

Propchange: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderCacheStrategyTests.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java?rev=390219&r1=390218&r2=390219&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java
 Thu Mar 30 11:16:24 2006
@@ -48,6 +48,7 @@
      */
     protected void addBaseTests() throws Exception
     {
+        addTests(ProviderCacheStrategyTests.class);
         addTests(UriTests.class);
         addTests(NamingTests.class);
         addTests(ContentTests.class);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to