You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/02/22 14:28:48 UTC
svn commit: r630196 - in
/incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client:
Activator.java SlingClientRepository.java
Author: bdelacretaz
Date: Fri Feb 22 05:28:46 2008
New Revision: 630196
URL: http://svn.apache.org/viewvc?rev=630196&view=rev
Log:
SLING-260, use sling.repository.url.override property in jackrabbit-client as well
Modified:
incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/Activator.java
incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java
Modified: incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/Activator.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/Activator.java?rev=630196&r1=630195&r2=630196&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/Activator.java (original)
+++ incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/Activator.java Fri Feb 22 05:28:46 2008
@@ -22,6 +22,8 @@
import javax.naming.Context;
+import org.apache.sling.jcr.base.util.RepositoryAccessor;
+
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -71,14 +73,12 @@
return SlingClientRepository.class.getName();
}
- protected Hashtable<String, Object>getDefaultConfiguration() {
- Hashtable<String, Object> props = new Hashtable<String, Object>();
+ protected void initDefaultConfig(Hashtable<String, String> props) {
props.put(SLING_CONTEXT, slingContext);
props.put(SlingClientRepository.REPOSITORY_NAME, "jackrabbit");
props.put(Context.PROVIDER_URL, "http://incubator.apache.org/sling");
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
- return props;
}
public void start(BundleContext context) {
@@ -152,11 +152,21 @@
}
// we have no configuration, create from default settings
- final Hashtable<String, Object> props = this.getDefaultConfiguration();
+ Hashtable<String, String> defaultConfig = new Hashtable<String, String>();
+ final String overrideUrl = bundleContext.getProperty(RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY);
+ if(overrideUrl != null && overrideUrl.length() > 0) {
+ // Ignore other parameters if override URL (SLING-260) is set
+ defaultConfig.put(RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY, overrideUrl);
+ log.debug(RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY + "=" + overrideUrl +
+ ", using it to create the default configuration");
+
+ } else {
+ initDefaultConfig(defaultConfig);
+ }
// create the factory and set the properties
Configuration config = ca.createFactoryConfiguration(this.getClientRepositoryFactoryPID());
- config.update(props);
+ config.update(defaultConfig);
log.debug("verifyConfiguration: Created configuration {} for {}",
config.getPid(), config.getFactoryPid());
Modified: incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java?rev=630196&r1=630195&r2=630196&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java (original)
+++ incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java Fri Feb 22 05:28:46 2008
@@ -101,16 +101,34 @@
private Repository getRepository() throws RepositoryException {
@SuppressWarnings("unchecked")
Dictionary<String, Object> environment = this.getComponentContext().getProperties();
+ Repository repo = null;
- String repoName = (String) environment.get(REPOSITORY_NAME);
- if (repoName == null) {
- throw new RepositoryException("Missing property 'name'");
- }
-
- final Hashtable<String, Object> jndiContext = this.fromDictionary(environment);
- final Repository repo = new RepositoryAccessor().getRepository(repoName, jndiContext);
- if(repo == null) {
- throw new RepositoryException("Cannot acquire repository '" + repoName + "'");
+ // if the environment provides a repository override URL, other settings are ignored (SLING-260)
+ final String overrideUrl = (String) environment.get(RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY);
+
+ if(overrideUrl != null && overrideUrl.length() > 0) {
+ log.log(LogService.LOG_INFO,
+ "Will not use embedded repository due to property " + RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY
+ + "=" + overrideUrl
+ + ", acquiring repository using that URL"
+ );
+ repo = new RepositoryAccessor().getRepositoryFromURL(overrideUrl);
+
+ } else {
+ log.log(LogService.LOG_INFO,
+ "Repository URL override property (" + RepositoryAccessor.REPOSITORY_URL_OVERRIDE_PROPERTY
+ + ") not set, using name/context settings");
+
+ String repoName = (String) environment.get(REPOSITORY_NAME);
+ if (repoName == null) {
+ throw new RepositoryException("Missing property 'name'");
+ }
+
+ final Hashtable<String, Object> jndiContext = this.fromDictionary(environment);
+ repo = new RepositoryAccessor().getRepository(repoName, jndiContext);
+ if(repo == null) {
+ throw new RepositoryException("Cannot acquire repository '" + repoName + "'");
+ }
}
return repo;
}