Author: justin
Date: Mon Mar 1 20:12:49 2010
New Revision: 917690
URL: http://svn.apache.org/viewvc?rev=917690&view=rev
Log:
SLING-1417 - allowing non-file urls in the value of
sling.repository.config.file.url
Modified:
sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/Activator.java
Modified:
sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/Activator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/Activator.java?rev=917690&r1=917689&r2=917690&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/Activator.java
(original)
+++
sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/Activator.java
Mon Mar 1 20:12:49 2010
@@ -264,12 +264,12 @@
if (homeDir == null)
return;
- File configFile = getConfigFile(bundleContext, homeDir);
+ String configFileUrl = getConfigFileUrl(bundleContext, homeDir);
// default config values
props.put(SLING_CONTEXT, slingContext);
props.put(SlingServerRepository.REPOSITORY_CONFIG_URL,
- configFile.getPath());
+ configFileUrl);
props.put(SlingServerRepository.REPOSITORY_HOME_DIR,
homeDir.getPath());
props.put(SlingServerRepository.REPOSITORY_REGISTRATION_NAME,
@@ -307,30 +307,29 @@
return homeDir;
}
- private File getConfigFile(BundleContext bundleContext, File homeDir)
throws IOException {
- File configFile;
-
+ private String getConfigFileUrl(BundleContext bundleContext, File homeDir)
throws IOException {
String repoConfigFileUrl =
bundleContext.getProperty("sling.repository.config.file.url");
if (repoConfigFileUrl != null) {
// the repository config file is set
URL configFileUrl = null;
try {
+ // verify it is a good url
configFileUrl = new URL(repoConfigFileUrl);
+ return repoConfigFileUrl;
} catch (MalformedURLException e) {
// this not an url, trying with "file:"
configFileUrl = new URL("file:///" +
repoConfigFileUrl);
+ File configFile = new
File(configFileUrl.getFile());
+ if (configFile.canRead()) {
+ return configFileUrl.toString();
+ }
}
-
- // local support only
- configFile = new File(configFileUrl.getFile());
- if (configFile.canRead())
- return configFile;
}
// ensure the configuration file (inside the home Dir !)
- configFile = new File(homeDir, "repository.xml");
+ File configFile = new File(homeDir, "repository.xml");
SlingServerRepository.copyFile(bundleContext.getBundle(),
"repository.xml", configFile);
- return configFile;
+ return configFile.toURI().toURL().toString();
}
}