Repository: camel Updated Branches: refs/heads/master 9d0a01ede -> d00010c68
CAMEL-8852: Camel JCR doesnt include Connection to a repository workspace except the default one Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/05210609 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/05210609 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/05210609 Branch: refs/heads/master Commit: 05210609ffd408a9936c9add86c3359d07563dd2 Parents: 9d0a01e Author: Andrea Cosentino <anco...@gmail.com> Authored: Fri Jun 26 14:01:58 2015 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Fri Jun 26 14:01:58 2015 +0200 ---------------------------------------------------------------------- .../org/apache/camel/component/jcr/JcrComponent.java | 4 +++- .../org/apache/camel/component/jcr/JcrConsumer.java | 7 ++++++- .../org/apache/camel/component/jcr/JcrEndpoint.java | 13 +++++++++++++ .../org/apache/camel/component/jcr/JcrProducer.java | 7 ++++++- 4 files changed, 28 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/05210609/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrComponent.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrComponent.java index 7804b65..71da0ff 100644 --- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrComponent.java +++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrComponent.java @@ -37,6 +37,8 @@ public class JcrComponent extends UriEndpointComponent { @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> properties) throws Exception { - return new JcrEndpoint(uri, this); + JcrEndpoint endpoint = new JcrEndpoint(uri, this); + setProperties(endpoint, properties); + return endpoint; } } http://git-wip-us.apache.org/repos/asf/camel/blob/05210609/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java index 1c7d4e8..fe53fff 100644 --- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java +++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrConsumer.java @@ -28,6 +28,7 @@ import javax.jcr.observation.EventListener; import org.apache.camel.Processor; import org.apache.camel.SuspendableService; import org.apache.camel.impl.DefaultConsumer; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,7 +83,11 @@ public class JcrConsumer extends DefaultConsumer implements SuspendableService { private synchronized void createSessionAndRegisterListener() throws RepositoryException { LOG.trace("createSessionAndRegisterListener START"); - session = getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials()); + if (ObjectHelper.isEmpty(getJcrEndpoint().getWorkspaceName())) { + session = getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials()); + } else { + session = getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials(), getJcrEndpoint().getWorkspaceName()); + } int eventTypes = getJcrEndpoint().getEventTypes(); String absPath = getJcrEndpoint().getBase(); http://git-wip-us.apache.org/repos/asf/camel/blob/05210609/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java index ab9e955..b736726 100644 --- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java +++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java @@ -64,6 +64,8 @@ public class JcrEndpoint extends DefaultEndpoint { private long sessionLiveCheckIntervalOnStart = 3000L; @UriParam(defaultValue = "60000") private long sessionLiveCheckInterval = 60000L; + @UriParam + private String workspaceName; protected JcrEndpoint(String endpointUri, JcrComponent component) { super(endpointUri, component); @@ -275,6 +277,17 @@ public class JcrEndpoint extends DefaultEndpoint { this.sessionLiveCheckInterval = sessionLiveCheckInterval; } + + /** + * The workspace to access. If it's not specified then the default one will be used + */ + public String getWorkspaceName() { + return workspaceName; + } + + public void setWorkspaceName(String workspaceName) { + this.workspaceName = workspaceName; + } /** * Gets the destination name which was configured from the endpoint uri. http://git-wip-us.apache.org/repos/asf/camel/blob/05210609/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java index 7c2f141..aca67b6 100644 --- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java +++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrProducer.java @@ -34,6 +34,7 @@ import org.apache.camel.Exchange; import org.apache.camel.Message; import org.apache.camel.TypeConverter; import org.apache.camel.impl.DefaultProducer; +import org.apache.camel.util.ObjectHelper; import org.apache.jackrabbit.util.Text; public class JcrProducer extends DefaultProducer { @@ -160,7 +161,11 @@ public class JcrProducer extends DefaultProducer { } protected Session openSession() throws RepositoryException { - return getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials()); + if (ObjectHelper.isEmpty(getJcrEndpoint().getWorkspaceName())) { + return getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials()); + } else { + return getJcrEndpoint().getRepository().login(getJcrEndpoint().getCredentials(), getJcrEndpoint().getWorkspaceName()); + } } private JcrEndpoint getJcrEndpoint() {