adammurdoch    2003/02/20 21:13:59

  Modified:    vfs/src/java/org/apache/commons/vfs/impl
                        DefaultFileSystemManager.java
               vfs/src/java/org/apache/commons/vfs Resources.properties
               vfs/src/test/org/apache/commons/vfs/test
                        ProviderTestSuite.java
  Log:
  Throw an exception when trying to add a provider for a scheme that already has
  a provider registered.
  
  Revision  Changes    Path
  1.20      +10 -20    
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
  
  Index: DefaultFileSystemManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- DefaultFileSystemManager.java     12 Feb 2003 07:56:10 -0000      1.19
  +++ DefaultFileSystemManager.java     21 Feb 2003 05:13:58 -0000      1.20
  @@ -67,7 +67,6 @@
   import org.apache.commons.vfs.FileObject;
   import org.apache.commons.vfs.FileSystemException;
   import org.apache.commons.vfs.FileSystemManager;
  -import org.apache.commons.vfs.util.Messages;
   import org.apache.commons.vfs.provider.DefaultURLStreamHandler;
   import org.apache.commons.vfs.provider.FileProvider;
   import org.apache.commons.vfs.provider.FileReplicator;
  @@ -77,23 +76,7 @@
   import org.apache.commons.vfs.provider.VfsComponent;
   
   /**
  - * A default file system manager implementation.  To use this class:
  - * <ul>
  - * <li>Create an instance of this class.
  - * <li>Call {@link #setLogger} to set the logger that the manager, and its
  - * components, should use (optional).
  - * <li>Add one or more file providers using {@link #addProvider}.
  - * <li>Set the default provider using {@link #setDefaultProvider} (optional).
  - * <li>Set the file replicator using {@link #setReplicator} (optional).
  - * <li>Set the temporary file store using {@link #setTemporaryFileStore} (optional).
  - * <li>Set the base file using {@link #setBaseFile} (optional).
  - * <li>Initialise the manager using {@link #init}.
  - * </ul>
  - *
  - * <p>When finished with the manager, call its {@link #close} method to clean
  - * up any resources it is using.
  - *
  - * @todo - Extract an AbstractFileSystemManager super-class from this class.
  + * A default file system manager implementation.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Adam Murdoch</a>
    * @version $Revision$ $Date$
  @@ -176,8 +159,7 @@
               final String scheme = urlSchemes[ i ];
               if ( providers.containsKey( scheme ) )
               {
  -                final String message = Messages.getString( 
"vfs.impl/multiple-providers-for-scheme.warning", scheme );
  -                getLog().warn( message );
  +                throw new FileSystemException( 
"vfs.impl/multiple-providers-for-scheme.error", scheme );
               }
           }
   
  @@ -195,6 +177,14 @@
           {
               localFileProvider = (LocalFileProvider)provider;
           }
  +    }
  +
  +    /**
  +     * Returns true if this manager has a provider for a particular scheme.
  +     */
  +    public boolean hasProvider( final String scheme )
  +    {
  +        return providers.containsKey( scheme );
       }
   
       /**
  
  
  
  1.19      +7 -3      
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/Resources.properties
  
  Index: Resources.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/Resources.properties,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- Resources.properties      20 Feb 2003 07:30:36 -0000      1.18
  +++ Resources.properties      21 Feb 2003 05:13:59 -0000      1.19
  @@ -76,7 +76,7 @@
   # DefaultFileSystemManager
   vfs.impl/unknown-scheme.error=Unknown scheme "{0}" in URI "{1}".
   vfs.impl/find-rel-file.error=Could not find file with URI "{0}" because it is a 
relative path, and no base URI was provided.
  -vfs.impl/multiple-providers-for-scheme.warning=Multiple providers registered for 
URL scheme "{0}".
  +vfs.impl/multiple-providers-for-scheme.error=Multiple providers registered for URL 
scheme "{0}".
   vfs.impl/unknown-provider.error=No file system provider is registered for URI 
scheme "{0}".
   vfs.impl/no-local-file-provider.error=Could not find a file system provider which 
can handle local files.
   vfs.impl/no-replicator.error=No file replicator configured.
  @@ -84,8 +84,12 @@
   vfs.impl/replicate-file.error=Could not replicate "{0}".
   vfs.impl/delete-temp.warn=Could not clean up temporary file "{0}".
   vfs.impl/init-replicator.error=Could not initialise file replicator.
  -vfs.impl/create-provider.warn=Could not create file provider of class "{0}".
  +
  +# StandardFileSystemManager
  +vfs.impl/find-config-file.error=Could not find VFS configuration resource "{0}".
  +vfs.impl/load-config.error=Could not load VFS configuration from "{0}".
   vfs.impl/create-provider.error=Could not create file provider of class "{0}".
  +vfs.impl/skipping-provider.warn=Skipping provider "{0}" because required class 
"{0}" is not available.
   
   # VFSClassLoader
   vfs.impl/pkg-sealing-unsealed=Trying to seal package "{0}" that exists as unsealed.
  @@ -94,7 +98,7 @@
   # VirtualFileSystem
   vfs.impl/nested-junction.error=Attempting to create a nested junction at "{0}".  
Nested junctions are not supported.
   vfs.impl/create-junction.error=Could not create a junction at "{0}".
  -r
  +
   # Local Provider
   vfs.provider.local/get-type.error=Could not determine the type of "{0}".
   vfs.provider.local/delete-file.error=Could not delete "{0}".
  
  
  
  1.9       +6 -2      
jakarta-commons-sandbox/vfs/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java
  
  Index: ProviderTestSuite.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/vfs/src/test/org/apache/commons/vfs/test/ProviderTestSuite.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ProviderTestSuite.java    20 Feb 2003 09:22:13 -0000      1.8
  +++ ProviderTestSuite.java    21 Feb 2003 05:13:59 -0000      1.9
  @@ -173,13 +173,17 @@
   
           // Create the file system manager
           manager = new DefaultFileSystemManager();
  -        manager.addProvider( "file", new DefaultLocalFileProvider() );
   
           final DefaultFileReplicator replicator = new DefaultFileReplicator( tempDir 
);
           manager.setReplicator( new PrivilegedFileReplicator( replicator ) );
           manager.setTemporaryFileStore( replicator );
   
           providerConfig.prepare( manager );
  +
  +        if ( !manager.hasProvider( "file" ) )
  +        {
  +            manager.addProvider( "file", new DefaultLocalFileProvider() );
  +        }
   
           manager.init();
   
  
  
  

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

Reply via email to