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);