This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 4f081d08b3da979dd8898a8fa47f2cde96f25284
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Fri Jun 14 10:38:33 2019 +0200

    Use the CamelContext instead of the RouteContext
---
 .../java/org/apache/camel/spi/RouteContext.java    |  9 -------
 .../camel/impl/engine/DefaultRouteContext.java     | 15 -----------
 .../camel/builder/EndpointConsumerBuilder.java     |  4 +--
 .../camel/builder/EndpointProducerBuilder.java     |  4 +--
 .../org/apache/camel/reifier/RouteReifier.java     |  2 +-
 .../java/org/apache/camel/reifier/SendReifier.java |  2 +-
 .../builder/endpoint/AbstractEndpointBuilder.java  |  9 +++++--
 .../builder/endpoint/EndpointRouteBuilder.java     | 30 ++++++++++++++++++++++
 8 files changed, 43 insertions(+), 32 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java
index a7c194a..48c8967 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java
@@ -72,15 +72,6 @@ public interface RouteContext extends RuntimeConfiguration, 
EndpointAware {
     Endpoint resolveEndpoint(String uri, String ref);
 
     /**
-     * Resolves an endpoint from the scheme, path and properties
-     *
-     * @param uri        the URI scheme
-     * @param properties the endpoint properties
-     * @return the resolved endpoint
-     */
-    Endpoint resolveEndpoint(String uri, Map<String, Object> properties);
-
-    /**
      * lookup an object by name and type
      *
      * @param name  the name to lookup
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
index 1f52ff3..ebbc5a4 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
@@ -24,13 +24,11 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.NamedNode;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.Processor;
-import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.Route;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.ShutdownRoute;
@@ -46,8 +44,6 @@ import org.apache.camel.spi.RouteError;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
-import org.apache.camel.util.URISupport;
 
 /**
  * The context used to activate new routing rules
@@ -149,17 +145,6 @@ public class DefaultRouteContext implements RouteContext {
         }
     }
 
-    public Endpoint resolveEndpoint(String uri, Map<String, Object> 
properties) {
-        Endpoint endpoint = camelContext.hasEndpoint(uri);
-        if (endpoint == null) {
-            endpoint = camelContext.getEndpoint(uri, properties);
-        }
-        if (endpoint != null) {
-            return endpoint;
-        }
-        throw new NoSuchEndpointException(uri);
-    }
-
     public <T> T lookup(String name, Class<T> type) {
         return getCamelContext().getRegistry().lookupByNameAndType(name, type);
     }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java
 
b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java
index 77257bd..7d5b9ce 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.builder;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.NoSuchEndpointException;
-import org.apache.camel.spi.RouteContext;
 
 public interface EndpointConsumerBuilder {
 
-    Endpoint resolve(RouteContext context) throws NoSuchEndpointException;
+    Endpoint resolve(CamelContext context) throws NoSuchEndpointException;
 
     String getUri();
 
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointProducerBuilder.java
 
b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointProducerBuilder.java
index 2ced548..d003692 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointProducerBuilder.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointProducerBuilder.java
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.builder;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.NoSuchEndpointException;
-import org.apache.camel.spi.RouteContext;
 
 public interface EndpointProducerBuilder {
 
-    Endpoint resolve(RouteContext context) throws NoSuchEndpointException;
+    Endpoint resolve(CamelContext context) throws NoSuchEndpointException;
 
     String getUri();
 
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java 
b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java
index ce36e23..1675c38 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java
@@ -329,7 +329,7 @@ public class RouteReifier extends 
ProcessorReifier<RouteDefinition> {
         if (endpoint == null) {
             EndpointConsumerBuilder def = 
definition.getInput().getEndpointConsumerBuilder();
             if (def != null) {
-                endpoint = def.resolve(routeContext);
+                endpoint = def.resolve(routeContext.getCamelContext());
             } else {
                 endpoint = 
routeContext.resolveEndpoint(definition.getInput().getEndpointUri());
             }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/reifier/SendReifier.java 
b/core/camel-core/src/main/java/org/apache/camel/reifier/SendReifier.java
index e541143..9f2397a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/SendReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/SendReifier.java
@@ -40,7 +40,7 @@ class SendReifier extends ProcessorReifier<SendDefinition<?>> 
{
             if (definition.getEndpointProducerBuilder() == null) {
                 return context.resolveEndpoint(definition.getEndpointUri(), 
(String) null);
             } else {
-                return 
definition.getEndpointProducerBuilder().resolve(context);
+                return 
definition.getEndpointProducerBuilder().resolve(context.getCamelContext());
             }
         } else {
             return definition.getEndpoint();
diff --git 
a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/AbstractEndpointBuilder.java
 
b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/AbstractEndpointBuilder.java
index fde528e..518c756 100644
--- 
a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/AbstractEndpointBuilder.java
+++ 
b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/AbstractEndpointBuilder.java
@@ -23,6 +23,7 @@ import java.util.TreeMap;
 
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.RuntimeCamelException;
@@ -41,10 +42,14 @@ public class AbstractEndpointBuilder {
         this.path = path;
     }
 
-    public Endpoint resolve(RouteContext context) throws 
NoSuchEndpointException {
+    public Endpoint resolve(CamelContext context) throws 
NoSuchEndpointException {
         Map<String, Object> remaining = new HashMap<>();
         String uri = computeUri(remaining);
-        return context.resolveEndpoint(uri, remaining);
+        Endpoint endpoint = context.getEndpoint(uri, properties);
+        if (endpoint == null) {
+            throw new NoSuchEndpointException(uri);
+        }
+        return null;
     }
 
     public String getUri() {
diff --git 
a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointRouteBuilder.java
 
b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointRouteBuilder.java
index 172c4d0..d6f30e1 100644
--- 
a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointRouteBuilder.java
+++ 
b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointRouteBuilder.java
@@ -16,11 +16,41 @@
  */
 package org.apache.camel.builder.endpoint;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.util.function.ThrowingConsumer;
 
 /**
  * A route builder which gives access to the endpoint DSL
  */
 public abstract class EndpointRouteBuilder extends RouteBuilder implements 
EndpointBuilderFactory {
 
+    public EndpointRouteBuilder() {
+    }
+
+    public EndpointRouteBuilder(CamelContext context) {
+        super(context);
+    }
+
+    /**
+     * Add routes to a context using a lambda expression.
+     * It can be used as following:
+     * <pre>
+     * RouteBuilder.addRoutes(context, rb ->
+     *     rb.from("direct:inbound").bean(ProduceTemplateBean.class)));
+     * </pre>
+     *
+     * @param context the camel context to add routes
+     * @param rbc a lambda expression receiving the {@code RouteBuilder} to 
use to create routes
+     * @throws Exception if an error occurs
+     */
+    public static void addEndpointRoutes(CamelContext context, 
ThrowingConsumer<EndpointRouteBuilder, Exception> rbc) throws Exception {
+        context.addRoutes(new EndpointRouteBuilder(context) {
+            @Override
+            public void configure() throws Exception {
+                rbc.accept(this);
+            }
+        });
+    }
+
 }

Reply via email to