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() {

Reply via email to