Repository: camel
Updated Branches:
  refs/heads/master d431cfe86 -> d4757bc95


CAMEL-7999: More components include documentation


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d4757bc9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d4757bc9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d4757bc9

Branch: refs/heads/master
Commit: d4757bc957e167f7458048da648863d76eb2f18e
Parents: d431cfe
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Jan 6 14:34:28 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Jan 6 14:34:28 2015 +0100

----------------------------------------------------------------------
 .../component/context/ContextEndpoint.java      | 79 ++++++++++++++++++++
 .../context/QualifiedContextComponent.java      | 15 +++-
 2 files changed, 90 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d4757bc9/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
 
b/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
new file mode 100644
index 0000000..d116bf2
--- /dev/null
+++ 
b/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.context;
+
+import org.apache.camel.Component;
+import org.apache.camel.Consumer;
+import org.apache.camel.DelegateEndpoint;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriPath;
+
+@UriEndpoint(scheme = "context", label = "endpoint")
+public class ContextEndpoint extends DefaultEndpoint implements 
DelegateEndpoint {
+
+    @UriPath
+    private String contextId;
+    @UriPath
+    private String localEndpointUrl;
+
+    private final Endpoint delegate;
+
+    public ContextEndpoint(String endpointUri, Component component, Endpoint 
delegate) {
+        super(endpointUri, component);
+        this.delegate = delegate;
+    }
+
+    @Override
+    public Endpoint getEndpoint() {
+        return delegate;
+    }
+
+    public String getContextId() {
+        return contextId;
+    }
+
+    public void setContextId(String contextId) {
+        this.contextId = contextId;
+    }
+
+    public String getLocalEndpointUrl() {
+        return localEndpointUrl;
+    }
+
+    public void setLocalEndpointUrl(String localEndpointUrl) {
+        this.localEndpointUrl = localEndpointUrl;
+    }
+
+    @Override
+    public Producer createProducer() throws Exception {
+        return delegate.createProducer();
+    }
+
+    @Override
+    public Consumer createConsumer(Processor processor) throws Exception {
+        return delegate.createConsumer(processor);
+    }
+
+    @Override
+    public boolean isSingleton() {
+        return delegate.isSingleton();
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/d4757bc9/components/camel-context/src/main/java/org/apache/camel/component/context/QualifiedContextComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-context/src/main/java/org/apache/camel/component/context/QualifiedContextComponent.java
 
b/components/camel-context/src/main/java/org/apache/camel/component/context/QualifiedContextComponent.java
index aa8b7a2..1d91926 100644
--- 
a/components/camel-context/src/main/java/org/apache/camel/component/context/QualifiedContextComponent.java
+++ 
b/components/camel-context/src/main/java/org/apache/camel/component/context/QualifiedContextComponent.java
@@ -21,7 +21,7 @@ import java.util.Map;
 import org.apache.camel.Component;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ResolveEndpointFailedException;
-import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,9 +32,13 @@ import org.slf4j.LoggerFactory;
  * <p/>
  * Typically there's no need to use this level of verbosity, you can just use 
<tt>camelContextId:someEndpoint</tt>
  */
-public class QualifiedContextComponent extends DefaultComponent {
+public class QualifiedContextComponent extends UriEndpointComponent {
     private static final Logger LOG = 
LoggerFactory.getLogger(QualifiedContextComponent.class);
 
+    public QualifiedContextComponent() {
+        super(ContextEndpoint.class);
+    }
+
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> parameters) throws Exception {
         String splitURI[] = ObjectHelper.splitOnCharacter(remaining, ":", 2);
@@ -44,12 +48,15 @@ public class QualifiedContextComponent extends 
DefaultComponent {
             Component component = getCamelContext().getComponent(contextId);
             if (component != null) {
                 LOG.debug("Attempting to create local endpoint: {} inside the 
component: {}", localEndpoint, component);
-                Endpoint endpoint =  component.createEndpoint(localEndpoint);
+                Endpoint endpoint = component.createEndpoint(localEndpoint);
                 if (endpoint == null) {
                     // throw the exception tell we cannot find an then 
endpoint from the given context
                     throw new ResolveEndpointFailedException("Cannot create a 
endpoint with uri" + localEndpoint + " for the CamelContext Component " + 
contextId);
                 } else {
-                    return endpoint;
+                    ContextEndpoint answer = new ContextEndpoint(uri, this, 
endpoint);
+                    answer.setContextId(contextId);
+                    answer.setLocalEndpointUrl(localEndpoint);
+                    return answer;
                 }
             } else {
                 throw new ResolveEndpointFailedException("Cannot create the 
camel context component for context " + contextId);

Reply via email to