Author: imario
Date: Fri Nov 10 10:54:59 2006
New Revision: 473421

URL: http://svn.apache.org/viewvc?view=rev&rev=473421
Log:
use class-loader to lookup plugin configuration, moved around tests to
be m2 compliant (part 1)

Added:
    jakarta/commons/proper/vfs/trunk/core/src/test/
      - copied from r472274, 
jakarta/commons/proper/vfs/trunk/core/src/main/test/
    jakarta/commons/proper/vfs/trunk/core/src/test-data/
      - copied from r472274, 
jakarta/commons/proper/vfs/trunk/core/src/main/test-data/
    jakarta/commons/proper/vfs/trunk/core/src/test/java/
    
jakarta/commons/proper/vfs/trunk/sandbox/src/main/java/org/apache/commons/vfs/provider/mime/
    jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/
    jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/
    
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
   (with props)
    jakarta/commons/proper/vfs/trunk/sandbox/src/test/
      - copied from r472274, 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/test/
Removed:
    jakarta/commons/proper/vfs/trunk/core/src/main/test/
    jakarta/commons/proper/vfs/trunk/core/src/main/test-data/
    jakarta/commons/proper/vfs/trunk/sandbox/src/main/test/
Modified:
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/StandardFileSystemManager.java
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/providers.xml
    jakarta/commons/proper/vfs/trunk/sandbox/pom.xml

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/StandardFileSystemManager.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/StandardFileSystemManager.java?view=diff&rev=473421&r1=473420&r2=473421
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/StandardFileSystemManager.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/StandardFileSystemManager.java
 Fri Nov 10 10:54:59 2006
@@ -35,6 +35,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.StringTokenizer;
+import java.util.Enumeration;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 
@@ -133,72 +134,37 @@
      */
     protected void configurePlugins() throws FileSystemException
     {
-        String classpath = System.getProperty("java.class.path");
-        if (classpath == null)
-        {
-            // huh? why should that be?
-            return;
-        }
+               ClassLoader cl = findClassLoader();
 
-        StringTokenizer st = new StringTokenizer(classpath, 
File.pathSeparator, false);
-        while (st.hasMoreTokens())
-        {
-            String path = st.nextToken();
+               Enumeration enumResources = null;
+               try
+               {
+                       enumResources = cl.getResources(PLUGIN_CONFIG_RESOURCE);
+               }
+               catch (IOException e)
+               {
+                       throw new FileSystemException(e);
+               }
+               
+               while (enumResources.hasMoreElements())
+               {
+                       URL url = (URL) enumResources.nextElement();
+                       configure(url);
+               }
+       }
+
+       private ClassLoader findClassLoader()
+       {
+               ClassLoader cl = Thread.currentThread().getContextClassLoader();
+               if (cl == null)
+               {
+                       cl = getClass().getClassLoader();
+               }
 
-            if (path.length() > 4 && 
path.substring(path.length()-4).toLowerCase().equals(".jar"))
-            {
-                try
-                {
-                    JarFile jarFile = new JarFile(path);
-                    JarEntry jarEntry = 
jarFile.getJarEntry(PLUGIN_CONFIG_RESOURCE);
-                    if (jarEntry != null)
-                    {
-                        InputStream configStream = null;
-                        try
-                        {
-                            configStream = jarFile.getInputStream(jarEntry);
-                            configure(jarEntry.getName(), configStream);
-                        }
-                        finally
-                        {
-                            if (configStream != null)
-                            {
-                                configStream.close();
-                            }
-                        }
-                    }
-                }
-                catch (FileSystemException e)
-                {
-                    // VFS exception - rethrow
-                    // Need to do this as FileSystemException extends 
IOException
-                    throw e;
-                }
-                catch (IOException e)
-                {
-                    // Maybe a damaged jar? Complain about but continue ...
-                    log.warn(e.getLocalizedMessage() + " " + path, e);
-                }
-            }
-            else
-            {
-                File config = new File(path, PLUGIN_CONFIG_RESOURCE);
-                if (config.exists() && config.canRead())
-                {
-                    try
-                    {
-                      configure(config.toURL());
-                    }
-                    catch (MalformedURLException e)
-                    {
-                      log.warn(e.getLocalizedMessage(), e);
-                    }
-                }
-            }
-        }
-    }
+               return cl;
+       }
 
-    protected DefaultFileReplicator createDefaultFileReplicator()
+       protected DefaultFileReplicator createDefaultFileReplicator()
     {
         return new DefaultFileReplicator();
     }

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/providers.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/providers.xml?view=diff&rev=473421&r1=473420&r2=473421
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/providers.xml
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/providers.xml
 Fri Nov 10 10:54:59 2006
@@ -35,21 +35,12 @@
         <scheme name="ftp"/>
         <if-available class-name="org.apache.commons.net.ftp.FTPFile"/>
     </provider>
-    <provider class-name="org.apache.commons.vfs.provider.smb.SmbFileProvider">
-        <scheme name="smb"/>
-        <if-available class-name="jcifs.smb.SmbFile"/>
-    </provider>
     <provider 
class-name="org.apache.commons.vfs.provider.http.HttpFileProvider">
         <scheme name="http"/>
         <if-available class-name="org.apache.commons.httpclient.HttpClient"/>
     </provider>
     <provider 
class-name="org.apache.commons.vfs.provider.https.HttpsFileProvider">
         <scheme name="https"/>
-        <if-available class-name="org.apache.commons.httpclient.HttpClient"/>
-    </provider>
-    <provider 
class-name="org.apache.commons.vfs.provider.webdav.WebdavFileProvider">
-        <scheme name="webdav"/>
-        <if-available class-name="org.apache.webdav.lib.WebdavResource"/>
         <if-available class-name="org.apache.commons.httpclient.HttpClient"/>
     </provider>
     <provider 
class-name="org.apache.commons.vfs.provider.sftp.SftpFileProvider">

Modified: jakarta/commons/proper/vfs/trunk/sandbox/pom.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/sandbox/pom.xml?view=diff&rev=473421&r1=473420&r2=473421
==============================================================================
--- jakarta/commons/proper/vfs/trunk/sandbox/pom.xml (original)
+++ jakarta/commons/proper/vfs/trunk/sandbox/pom.xml Fri Nov 10 10:54:59 2006
@@ -71,6 +71,12 @@
       <version>2.0.2</version>
       <optional>true</optional>
     </dependency>
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
+      <version>1.4</version>
+      <optional>true</optional>
+    </dependency>
 
   </dependencies>
 

Added: 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml?view=auto&rev=473421
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
 Fri Nov 10 10:54:59 2006
@@ -0,0 +1,14 @@
+<providers>
+
+       <provider 
class-name="org.apache.commons.vfs.provider.smb.SmbFileProvider">
+               <scheme name="smb"/>
+               <if-available class-name="jcifs.smb.SmbFile"/>
+       </provider>
+
+       <provider 
class-name="org.apache.commons.vfs.provider.webdav.WebdavFileProvider">
+               <scheme name="webdav"/>
+               <if-available 
class-name="org.apache.webdav.lib.WebdavResource"/>
+               <if-available 
class-name="org.apache.commons.httpclient.HttpClient"/>
+       </provider>
+       
+</providers>

Propchange: 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/sandbox/src/main/resources/META-INF/vfs-providers.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml



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

Reply via email to