You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2009/09/30 22:32:14 UTC
svn commit: r820435 - in
/commons/proper/configuration/branches/configuration2_experimental/src:
main/java/org/apache/commons/configuration2/
main/java/org/apache/commons/configuration2/fs/
main/java/org/apache/commons/configuration2/reloading/ main/ja...
Author: oheger
Date: Wed Sep 30 20:32:13 2009
New Revision: 820435
URL: http://svn.apache.org/viewvc?rev=820435&view=rev
Log:
Moved FileSystem classes into a new package in order to integrate them with the ConfigurationSource classes.
Added:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java (contents, props changed)
- copied, changed from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultFileSystem.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java (contents, props changed)
- copied, changed from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileOptionsProvider.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java (contents, props changed)
- copied, changed from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystem.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java (contents, props changed)
- copied, changed from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystemBased.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java (contents, props changed)
- copied, changed from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/VFSFileSystem.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java (with props)
Removed:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultFileSystem.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileOptionsProvider.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystem.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystemBased.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/VFSFileSystem.java
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalFileConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/ConfigurationUtils.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/reloading/VFSFileMonitorReloadingStrategy.java
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestConfigurationUtils.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestVFSConfigurationBuilder.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestWebdavConfigurationBuilder.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/reloading/TestVFSFileMonitorReloadingStrategy.java
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder.xml
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder2.xml
commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileSystem.xml
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalFileConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalFileConfiguration.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalFileConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalFileConfiguration.java Wed Sep 30 20:32:13 2009
@@ -34,6 +34,9 @@
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.ConfigurationListener;
import org.apache.commons.configuration2.expr.NodeList;
+import org.apache.commons.configuration2.fs.DefaultFileSystem;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.FileSystemBased;
import org.apache.commons.configuration2.reloading.InvariantReloadingStrategy;
import org.apache.commons.configuration2.reloading.ReloadingStrategy;
import org.apache.commons.configuration2.tree.ConfigurationNode;
@@ -82,7 +85,7 @@
*/
public abstract class AbstractHierarchicalFileConfiguration
extends InMemoryConfiguration
-implements FileConfiguration, ConfigurationListener, FileSystemBased
+implements FileConfiguration, ConfigurationListener, FileSystemBased
{
/** Constant for the configuration reload event.*/
public static final int EVENT_RELOAD = 20;
@@ -91,7 +94,7 @@
public static final int EVENT_CONFIG_CHANGED = 21;
/** The root of the file scheme */
- private static final String FILE_SCHEME = "file:";
+ private static final String FILE_SCHEME = "file:";
/** Stores the file name.*/
protected String fileName;
@@ -715,8 +718,8 @@
*/
public void setURL(URL url)
{
- setBasePath(ConfigurationUtils.getBasePath(url));
- setFileName(ConfigurationUtils.getFileName(url));
+ setBasePath(DefaultFileSystem.getBasePath(url));
+ setFileName(DefaultFileSystem.getFileName(url));
sourceURL = url;
}
@@ -756,6 +759,7 @@
* @param key the key of the new property
* @param value the value
*/
+ @Override
public void addProperty(String key, Object value)
{
super.addProperty(key, value);
@@ -770,12 +774,14 @@
* @param key the key of the affected property
* @param value the value
*/
+ @Override
public void setProperty(String key, Object value)
{
super.setProperty(key, value);
possiblySave();
}
+ @Override
public void clearProperty(String key)
{
super.clearProperty(key);
@@ -898,6 +904,7 @@
* @param propValue the value of the property
* @param before the before update flag
*/
+ @Override
protected void fireEvent(int type, String propName, Object propValue, boolean before)
{
enterNoReload();
@@ -911,12 +918,14 @@
}
}
+ @Override
public boolean isEmpty()
{
reload();
return super.isEmpty();
}
+ @Override
public Iterator<String> getKeys()
{
reload();
@@ -1002,6 +1011,7 @@
* @return the copy
* @since 1.3
*/
+ @Override
public Object clone()
{
AbstractHierarchicalFileConfiguration copy = (AbstractHierarchicalFileConfiguration) super.clone();
@@ -1026,7 +1036,7 @@
{
fireEvent(EVENT_CONFIG_CHANGED, null, getURL(), true);
}
-
+
/**
* Reacts on configuration change events triggered by the delegate. These
* events are passed to the registered configuration listeners.
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/ConfigurationUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/ConfigurationUtils.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/ConfigurationUtils.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/ConfigurationUtils.java Wed Sep 30 20:32:13 2009
@@ -34,7 +34,8 @@
import org.apache.commons.configuration2.event.ConfigurationErrorListener;
import org.apache.commons.configuration2.event.EventSource;
import org.apache.commons.configuration2.expr.ExpressionEngine;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.configuration2.fs.DefaultFileSystem;
+import org.apache.commons.configuration2.fs.FileSystem;
/**
* Miscellaneous utility methods for configurations.
@@ -54,9 +55,6 @@
/** Constant for the resource path separator.*/
static final String RESOURCE_PATH_SEPARATOR = "/";
- /** Constanct for the file URL protocol */
- private static final String FILE_SCHEME = "file:";
-
/** Constant for the name of the clone() method.*/
private static final String METHOD_CLONE = "clone";
@@ -183,7 +181,7 @@
public static HierarchicalConfiguration convertToHierarchical(Configuration conf)
{
// todo to be changed into convertToHierarchical(conf, null) when HierarchicalConfiguration is removed
-
+
if (conf == null)
{
return null;
@@ -352,61 +350,6 @@
}
/**
- * Helper method for constructing a file object from a base path and a
- * file name. This method is called if the base path passed to
- * <code>getURL()</code> does not seem to be a valid URL.
- *
- * @param basePath the base path
- * @param fileName the file name
- * @return the resulting file
- */
- static File constructFile(String basePath, String fileName)
- {
- File file;
-
- File absolute = null;
- if (fileName != null)
- {
- absolute = new File(fileName);
- }
-
- if (StringUtils.isEmpty(basePath) || (absolute != null && absolute.isAbsolute()))
- {
- file = new File(fileName);
- }
- else
- {
- StringBuilder fName = new StringBuilder();
- fName.append(basePath);
-
- // My best friend. Paranoia.
- if (!basePath.endsWith(File.separator))
- {
- fName.append(File.separator);
- }
-
- //
- // We have a relative path, and we have
- // two possible forms here. If we have the
- // "./" form then just strip that off first
- // before continuing.
- //
- if (fileName.startsWith("." + File.separator))
- {
- fName.append(fileName.substring(2));
- }
- else
- {
- fName.append(fileName);
- }
-
- file = new File(fName.toString());
- }
-
- return file;
- }
-
- /**
* Return the location of the specified resource by searching the user home
* directory, the current classpath and the system classpath.
*
@@ -486,7 +429,7 @@
{
try
{
- File file = constructFile(base, name);
+ File file = DefaultFileSystem.constructFile(base, name);
if (file != null && file.exists())
{
url = file.toURI().toURL();
@@ -508,7 +451,7 @@
{
try
{
- File file = constructFile(System.getProperty("user.home"), name);
+ File file = DefaultFileSystem.constructFile(System.getProperty("user.home"), name);
if (file != null && file.exists())
{
url = file.toURI().toURL();
@@ -569,61 +512,6 @@
}
/**
- * Return the path without the file name, for example http://xyz.net/foo/bar.xml
- * results in http://xyz.net/foo/
- *
- * @param url the URL from which to extract the path
- * @return the path component of the passed in URL
- */
- static String getBasePath(URL url)
- {
- if (url == null)
- {
- return null;
- }
-
- String s = url.toString();
- if (s.startsWith(FILE_SCHEME) && !s.startsWith("file://"))
- {
- s = "file://" + s.substring(FILE_SCHEME.length());
- }
-
- if (s.endsWith("/") || StringUtils.isEmpty(url.getPath()))
- {
- return s;
- }
- else
- {
- return s.substring(0, s.lastIndexOf("/") + 1);
- }
- }
-
- /**
- * Extract the file name from the specified URL.
- *
- * @param url the URL from which to extract the file name
- * @return the extracted file name
- */
- static String getFileName(URL url)
- {
- if (url == null)
- {
- return null;
- }
-
- String path = url.getPath();
-
- if (path.endsWith("/") || StringUtils.isEmpty(path))
- {
- return null;
- }
- else
- {
- return path.substring(path.lastIndexOf("/") + 1);
- }
- }
-
- /**
* Tries to convert the specified base path and file name into a file object.
* This method is called e.g. by the save() methods of file based
* configurations. The parameter strings can be relative files, absolute
@@ -680,7 +568,7 @@
return fileFromURL(url);
}
- return constructFile(basePath, fileName);
+ return DefaultFileSystem.constructFile(basePath, fileName);
}
/**
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultConfigurationBuilder.java Wed Sep 30 20:32:13 2009
@@ -36,6 +36,8 @@
import org.apache.commons.configuration2.beanutils.DefaultBeanFactory;
import org.apache.commons.configuration2.beanutils.XMLBeanDeclaration;
import org.apache.commons.configuration2.expr.NodeList;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.FileSystemBased;
import org.apache.commons.configuration2.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration2.tree.ConfigurationNode;
import org.apache.commons.configuration2.tree.DefaultExpressionEngine;
Copied: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java (from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultFileSystem.java)
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java?p2=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java&p1=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultFileSystem.java&r1=799887&r2=820435&rev=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/DefaultFileSystem.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java Wed Sep 30 20:32:13 2009
@@ -14,18 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.configuration2;
+package org.apache.commons.configuration2.fs;
-import java.io.InputStream;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
-import java.io.FileOutputStream;
-import java.io.FileNotFoundException;
-import java.net.URL;
-import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+
+import org.apache.commons.configuration2.ConfigurationException;
+import org.apache.commons.configuration2.ConfigurationUtils;
+import org.apache.commons.configuration2.VerifiableOutputStream;
+import org.apache.commons.lang.StringUtils;
/**
* FileSystem that uses java.io.File or HttpClient
@@ -35,6 +40,10 @@
*/
public class DefaultFileSystem extends FileSystem
{
+ /** Constant for the file URL protocol */
+ private static final String FILE_SCHEME = "file:";
+
+ @Override
public InputStream getInputStream(String basePath, String fileName)
throws ConfigurationException
{
@@ -58,6 +67,7 @@
}
}
+ @Override
public InputStream getInputStream(URL url) throws ConfigurationException
{
// throw an exception if the target URL is a directory
@@ -77,6 +87,7 @@
}
}
+ @Override
public OutputStream getOutputStream(URL url) throws ConfigurationException
{
// file URLs have to be converted to Files since FileURLConnection is
@@ -118,6 +129,7 @@
}
}
+ @Override
public OutputStream getOutputStream(File file) throws ConfigurationException
{
try
@@ -132,6 +144,7 @@
}
}
+ @Override
public String getPath(File file, URL url, String basePath, String fileName)
{
String path = null;
@@ -165,13 +178,14 @@
return path;
}
+ @Override
public String getBasePath(String path)
{
URL url;
try
{
url = getURL(null, path);
- return ConfigurationUtils.getBasePath(url);
+ return getBasePath(url);
}
catch (Exception e)
{
@@ -179,13 +193,14 @@
}
}
+ @Override
public String getFileName(String path)
{
URL url;
try
{
url = getURL(null, path);
- return ConfigurationUtils.getFileName(url);
+ return getFileName(url);
}
catch (Exception e)
{
@@ -194,6 +209,7 @@
}
+ @Override
public URL getURL(String basePath, String file) throws MalformedURLException
{
File f = new File(file);
@@ -216,11 +232,12 @@
}
catch (MalformedURLException uex)
{
- return ConfigurationUtils.constructFile(basePath, file).toURI().toURL();
+ return constructFile(basePath, file).toURI().toURL();
}
}
+ @Override
public URL locateFromURL(String basePath, String fileName)
{
try
@@ -259,6 +276,116 @@
}
/**
+ * Helper method for constructing a {@code File} object from a base path and
+ * a file name.
+ *
+ * @param basePath the base path
+ * @param fileName the file name
+ * @return the resulting file
+ */
+ public static File constructFile(String basePath, String fileName)
+ {
+ File file;
+
+ File absolute = null;
+ if (fileName != null)
+ {
+ absolute = new File(fileName);
+ }
+
+ if (StringUtils.isEmpty(basePath)
+ || (absolute != null && absolute.isAbsolute()))
+ {
+ file = new File(fileName);
+ }
+ else
+ {
+ StringBuilder fName = new StringBuilder();
+ fName.append(basePath);
+
+ // My best friend. Paranoia.
+ if (!basePath.endsWith(File.separator))
+ {
+ fName.append(File.separator);
+ }
+
+ //
+ // We have a relative path, and we have
+ // two possible forms here. If we have the
+ // "./" form then just strip that off first
+ // before continuing.
+ //
+ if (fileName.startsWith("." + File.separator))
+ {
+ fName.append(fileName.substring(2));
+ }
+ else
+ {
+ fName.append(fileName);
+ }
+
+ file = new File(fName.toString());
+ }
+
+ return file;
+ }
+
+ /**
+ * Extracts the file name from the specified URL.
+ *
+ * @param url the URL from which to extract the file name
+ * @return the extracted file name
+ */
+ public static String getFileName(URL url)
+ {
+ if (url == null)
+ {
+ return null;
+ }
+
+ String path = url.getPath();
+
+ if (path.endsWith("/") || StringUtils.isEmpty(path))
+ {
+ return null;
+ }
+ else
+ {
+ return path.substring(path.lastIndexOf("/") + 1);
+ }
+ }
+
+ /**
+ * Return the path without the file name, for example http://xyz.net/foo/bar.xml
+ * results in http://xyz.net/foo/
+ *
+ * @param url the URL from which to extract the path
+ * @return the path component of the passed in URL
+ */
+ public static String getBasePath(URL url)
+ {
+ if (url == null)
+ {
+ return null;
+ }
+
+ String s = url.toString();
+ if (s.startsWith(FILE_SCHEME) && !s.startsWith("file://"))
+ {
+ s = "file://" + s.substring(FILE_SCHEME.length());
+ }
+
+ if (s.endsWith("/") || StringUtils.isEmpty(url.getPath()))
+ {
+ return s;
+ }
+ else
+ {
+ return s.substring(0, s.lastIndexOf("/") + 1);
+ }
+ }
+
+ /**
* Create the path to the specified file.
*
* @param file the target file
@@ -304,36 +431,43 @@
this.connection = connection;
}
+ @Override
public void write(byte[] bytes) throws IOException
{
stream.write(bytes);
}
+ @Override
public void write(byte[] bytes, int i, int i1) throws IOException
{
stream.write(bytes, i, i1);
}
+ @Override
public void flush() throws IOException
{
stream.flush();
}
+ @Override
public void close() throws IOException
{
stream.close();
}
+ @Override
public void write(int i) throws IOException
{
stream.write(i);
}
+ @Override
public String toString()
{
return stream.toString();
}
+ @Override
public void verify() throws IOException
{
if (connection.getResponseCode() >= HttpURLConnection.HTTP_BAD_REQUEST)
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/DefaultFileSystem.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java (from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileOptionsProvider.java)
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java?p2=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java&p1=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileOptionsProvider.java&r1=799887&r2=820435&rev=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileOptionsProvider.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java Wed Sep 30 20:32:13 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.configuration2;
+package org.apache.commons.configuration2.fs;
import java.util.Map;
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileOptionsProvider.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java (from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystem.java)
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java?p2=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java&p1=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystem.java&r1=799887&r2=820435&rev=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystem.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java Wed Sep 30 20:32:13 2009
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.commons.configuration2;
+package org.apache.commons.configuration2.fs;
import java.io.File;
import java.io.InputStream;
@@ -25,6 +25,8 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.apache.commons.configuration2.ConfigurationException;
+
/**
* Abstract layer to allow various types of file systems.
*
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystem.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java (from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystemBased.java)
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java?p2=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java&p1=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystemBased.java&r1=799887&r2=820435&rev=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/FileSystemBased.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java Wed Sep 30 20:32:13 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.configuration2;
+package org.apache.commons.configuration2.fs;
/**
* @since 1.7
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/FileSystemBased.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java (from r799887, commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/VFSFileSystem.java)
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java?p2=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java&p1=commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/VFSFileSystem.java&r1=799887&r2=820435&rev=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/VFSFileSystem.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java Wed Sep 30 20:32:13 2009
@@ -14,8 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.configuration2;
+package org.apache.commons.configuration2.fs;
+import org.apache.commons.configuration2.ConfigurationException;
+import org.apache.commons.configuration2.ConfigurationRuntimeException;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.VFS;
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/fs/VFSFileSystem.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/reloading/VFSFileMonitorReloadingStrategy.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/reloading/VFSFileMonitorReloadingStrategy.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/reloading/VFSFileMonitorReloadingStrategy.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/reloading/VFSFileMonitorReloadingStrategy.java Wed Sep 30 20:32:13 2009
@@ -22,8 +22,8 @@
import org.apache.commons.configuration2.AbstractHierarchicalFileConfiguration;
import org.apache.commons.configuration2.ConfigurationRuntimeException;
import org.apache.commons.configuration2.FileConfiguration;
-import org.apache.commons.configuration2.FileSystem;
-import org.apache.commons.configuration2.FileSystemBased;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.FileSystemBased;
import org.apache.commons.vfs.FileChangeEvent;
import org.apache.commons.vfs.FileListener;
import org.apache.commons.vfs.FileObject;
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java Wed Sep 30 20:32:13 2009
@@ -28,7 +28,7 @@
import org.apache.commons.configuration2.ConfigurationException;
import org.apache.commons.configuration2.ConfigurationUtils;
-import org.apache.commons.configuration2.FileSystem;
+import org.apache.commons.configuration2.fs.FileSystem;
import org.apache.commons.lang.text.StrSubstitutor;
import org.apache.xml.resolver.CatalogException;
import org.apache.xml.resolver.readers.CatalogReader;
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestConfigurationUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestConfigurationUtils.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestConfigurationUtils.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestConfigurationUtils.java Wed Sep 30 20:32:13 2009
@@ -23,13 +23,14 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.configuration2.flat.BaseConfiguration;
-import org.apache.commons.configuration2.expr.def.DefaultExpressionEngine;
+import junit.framework.TestCase;
+import junitx.framework.ListAssert;
+
import org.apache.commons.configuration2.expr.ExpressionEngine;
+import org.apache.commons.configuration2.expr.def.DefaultExpressionEngine;
+import org.apache.commons.configuration2.flat.BaseConfiguration;
import com.mockobjects.dynamic.Mock;
-import junit.framework.TestCase;
-import junitx.framework.ListAssert;
/**
* Tests the ConfigurationUtils class
@@ -105,35 +106,6 @@
ConfigurationUtils.getURL(absFile.getParent(), "config.xml"));
}
- public void testGetBasePath() throws Exception
- {
- URL url = new URL("http://xyz.net/foo/bar.xml");
- assertEquals("base path of " + url, "http://xyz.net/foo/", ConfigurationUtils.getBasePath(url));
-
- url = new URL("http://xyz.net/foo/");
- assertEquals("base path of " + url, "http://xyz.net/foo/", ConfigurationUtils.getBasePath(url));
-
- url = new URL("http://xyz.net/foo");
- assertEquals("base path of " + url, "http://xyz.net/", ConfigurationUtils.getBasePath(url));
-
- url = new URL("http://xyz.net/");
- assertEquals("base path of " + url, "http://xyz.net/", ConfigurationUtils.getBasePath(url));
-
- url = new URL("http://xyz.net");
- assertEquals("base path of " + url, "http://xyz.net", ConfigurationUtils.getBasePath(url));
- }
-
- public void testGetFileName() throws Exception
- {
- assertEquals("file name for a null URL", null, ConfigurationUtils.getFileName(null));
-
- URL url = new URL("http://xyz.net/foo/");
- assertEquals("file for a directory URL " + url, null, ConfigurationUtils.getFileName(url));
-
- url = new URL("http://xyz.net/foo/bar.xml");
- assertEquals("file name for a valid URL " + url, "bar.xml", ConfigurationUtils.getFileName(url));
- }
-
public void testCopy()
{
// create the source configuration
@@ -326,7 +298,7 @@
assertEquals("Wrong value 2", 2, hc.getInt("test(1)"));
assertEquals("Wrong value 3", 3, hc.getInt("test(2)"));
}
-
+
/**
* Tests cloning a configuration that supports this operation.
*/
@@ -374,6 +346,7 @@
{
PropertiesConfiguration config = new PropertiesConfiguration()
{
+ @Override
protected void addPropertyDirect(String key, Object value)
{
// always simulate an exception
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestVFSConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestVFSConfigurationBuilder.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestVFSConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestVFSConfigurationBuilder.java Wed Sep 30 20:32:13 2009
@@ -31,6 +31,9 @@
import org.apache.commons.configuration2.beanutils.BeanHelper;
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.ConfigurationListener;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.FileSystemBased;
+import org.apache.commons.configuration2.fs.VFSFileSystem;
import org.apache.commons.configuration2.reloading.FileChangedReloadingStrategy;
import org.apache.commons.configuration2.reloading.VFSFileMonitorReloadingStrategy;
import org.apache.commons.configuration2.tree.DefaultConfigurationNode;
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestWebdavConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestWebdavConfigurationBuilder.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestWebdavConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestWebdavConfigurationBuilder.java Wed Sep 30 20:32:13 2009
@@ -36,6 +36,9 @@
import org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine;
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.ConfigurationListener;
+import org.apache.commons.configuration2.fs.FileOptionsProvider;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.VFSFileSystem;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.VFS;
Added: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java?rev=820435&view=auto
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java (added)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java Wed Sep 30 20:32:13 2009
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.configuration2.fs;
+
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+/**
+ * Test class for DefaultFileSystem.
+ *
+ * @author <a
+ * href="http://commons.apache.org/configuration/team-list.html">Commons
+ * Configuration team</a>
+ * @version $Id$
+ */
+public class TestDefaultFileSystem extends TestCase
+{
+ public void testGetBasePath() throws Exception
+ {
+ URL url = new URL("http://xyz.net/foo/bar.xml");
+ assertEquals("base path of " + url, "http://xyz.net/foo/",
+ DefaultFileSystem.getBasePath(url));
+
+ url = new URL("http://xyz.net/foo/");
+ assertEquals("base path of " + url, "http://xyz.net/foo/",
+ DefaultFileSystem.getBasePath(url));
+
+ url = new URL("http://xyz.net/foo");
+ assertEquals("base path of " + url, "http://xyz.net/",
+ DefaultFileSystem.getBasePath(url));
+
+ url = new URL("http://xyz.net/");
+ assertEquals("base path of " + url, "http://xyz.net/",
+ DefaultFileSystem.getBasePath(url));
+
+ url = new URL("http://xyz.net");
+ assertEquals("base path of " + url, "http://xyz.net", DefaultFileSystem
+ .getBasePath(url));
+ }
+
+ public void testGetFileName() throws Exception
+ {
+ assertEquals("file name for a null URL", null, DefaultFileSystem
+ .getFileName((URL) null));
+
+ URL url = new URL("http://xyz.net/foo/");
+ assertEquals("file for a directory URL " + url, null, DefaultFileSystem
+ .getFileName(url));
+
+ url = new URL("http://xyz.net/foo/bar.xml");
+ assertEquals("file name for a valid URL " + url, "bar.xml",
+ DefaultFileSystem.getFileName(url));
+ }
+}
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/fs/TestDefaultFileSystem.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/reloading/TestVFSFileMonitorReloadingStrategy.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/reloading/TestVFSFileMonitorReloadingStrategy.java?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/reloading/TestVFSFileMonitorReloadingStrategy.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/reloading/TestVFSFileMonitorReloadingStrategy.java Wed Sep 30 20:32:13 2009
@@ -22,11 +22,11 @@
import junit.framework.TestCase;
import org.apache.commons.configuration2.AbstractHierarchicalFileConfiguration;
-import org.apache.commons.configuration2.FileSystem;
import org.apache.commons.configuration2.PropertiesConfiguration;
-import org.apache.commons.configuration2.VFSFileSystem;
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.ConfigurationListener;
+import org.apache.commons.configuration2.fs.FileSystem;
+import org.apache.commons.configuration2.fs.VFSFileSystem;
/**
* Test case for the VFSFileMonitorReloadingStrategy class.
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder.xml?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder.xml (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder.xml Wed Sep 30 20:32:13 2009
@@ -9,7 +9,7 @@
<expressionEngine
config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
</result>
- <fileSystem config-class="org.apache.commons.configuration2.VFSFileSystem"/>
+ <fileSystem config-class="org.apache.commons.configuration2.fs.VFSFileSystem"/>
<providers>
<provider config-tag="multifile"
config-class="org.apache.commons.configuration2.DefaultConfigurationBuilder$FileConfigurationProvider"
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder2.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder2.xml?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder2.xml (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileMonitorConfigurationBuilder2.xml Wed Sep 30 20:32:13 2009
@@ -9,7 +9,7 @@
<expressionEngine
config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
</result>
- <fileSystem config-class="org.apache.commons.configuration2.VFSFileSystem"/>
+ <fileSystem config-class="org.apache.commons.configuration2.fs.VFSFileSystem"/>
<providers>
<provider config-tag="multifile"
config-class="org.apache.commons.configuration2.DefaultConfigurationBuilder$FileConfigurationProvider"
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileSystem.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileSystem.xml?rev=820435&r1=820434&r2=820435&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileSystem.xml (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/resources/testFileSystem.xml Wed Sep 30 20:32:13 2009
@@ -6,7 +6,7 @@
<nodeCombiner config-class="org.apache.commons.configuration2.tree.OverrideCombiner"/>
<expressionEngine config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
</result>
- <fileSystem config-class="org.apache.commons.configuration2.VFSFileSystem"/>
+ <fileSystem config-class="org.apache.commons.configuration2.fs.VFSFileSystem"/>
<providers>
<provider config-tag="test"
config-class="org.apache.commons.configuration2.DefaultConfigurationBuilder$FileConfigurationProvider"/>