You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/03/16 12:05:50 UTC
svn commit: r923693 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
Author: jukka
Date: Tue Mar 16 11:05:50 2010
New Revision: 923693
URL: http://svn.apache.org/viewvc?rev=923693&view=rev
Log:
JCR-2555: Improved reusability of the JCA package
More robust handling of default configuration
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java?rev=923693&r1=923692&r2=923693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfig.java Tue Mar 16 11:05:50 2010
@@ -61,6 +61,7 @@ import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.URI;
+import java.net.URL;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -139,18 +140,20 @@ public class RepositoryConfig
conf = copy.getProperty(RepositoryFactoryImpl.REPOSITORY_CONF);
}
- ClassLoader loader = RepositoryImpl.class.getClassLoader();
- String resource = REPOSITORY_XML;
+ URL resource = RepositoryImpl.class.getResource(REPOSITORY_XML);
if (conf == null) {
conf = new File(dir, REPOSITORY_XML).getPath();
} else if (conf.startsWith("classpath:")) {
- loader = Thread.currentThread().getContextClassLoader();
- resource = conf.substring("classpath:".length());
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ if (loader == null) {
+ loader = RepositoryImpl.class.getClassLoader();
+ }
+ resource = loader.getResource(conf.substring("classpath:".length()));
conf = new File(dir, REPOSITORY_XML).getPath();
}
File xml = new File(conf);
- installRepositorySkeleton(dir, xml, loader, resource);
+ installRepositorySkeleton(dir, xml, resource);
return create(new InputSource(xml.toURI().toString()), copy);
}
@@ -170,14 +173,12 @@ public class RepositoryConfig
public static RepositoryConfig install(File xml, File dir)
throws IOException, ConfigurationException {
installRepositorySkeleton(
- dir, xml,
- RepositoryImpl.class.getClassLoader(),
- "org/apache/jackrabbit/core/" + REPOSITORY_XML);
+ dir, xml, RepositoryImpl.class.getResource(REPOSITORY_XML));
return create(xml, dir);
}
private static void installRepositorySkeleton(
- File dir, File xml, ClassLoader loader, String resource)
+ File dir, File xml, URL resource)
throws IOException {
if (!dir.exists()) {
log.info("Creating repository directory {}", dir);
@@ -185,10 +186,10 @@ public class RepositoryConfig
}
if (!xml.exists()) {
- log.info("Installing default repository configuration to {}", xml);
+ log.info("Copying configuration from {} to {}", resource, xml);
OutputStream output = new FileOutputStream(xml);
try {
- InputStream input = loader.getResourceAsStream(resource);
+ InputStream input = resource.openStream();
try {
IOUtils.copy(input, output);
} finally {