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]