camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject [1/3] camel git commit: Add CDI example on how to configure endpoints
Date Thu, 25 Feb 2016 07:20:43 GMT
Repository: camel
Updated Branches:
  refs/heads/master e26e8be21 -> 330abef80


Add CDI example on how to configure endpoints


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

Branch: refs/heads/master
Commit: 330abef8095e36fd51fb3e803bb87a24c93132bd
Parents: 0acecac
Author: Antonin Stefanutti <antonin@stefanutti.fr>
Authored: Wed Feb 24 20:13:24 2016 +0100
Committer: Claus Ibsen <davsclaus@apache.org>
Committed: Thu Feb 25 08:20:35 2016 +0100

----------------------------------------------------------------------
 .../en/how-do-i-configure-endpoints.adoc        | 58 ++++++++++++++++++++
 1 file changed, 58 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/330abef8/docs/user-manual/en/how-do-i-configure-endpoints.adoc
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/how-do-i-configure-endpoints.adoc b/docs/user-manual/en/how-do-i-configure-endpoints.adoc
index 70639d0..014761c 100644
--- a/docs/user-manual/en/how-do-i-configure-endpoints.adoc
+++ b/docs/user-manual/en/how-do-i-configure-endpoints.adoc
@@ -22,6 +22,63 @@ SomeEndpoint endpoint = camelContext.getEndpoint("someURI", SomeEndpoint.class);
 endpoint.setSomething("aValue");
 ----
 
+[[HowdoIconfigureendpoints-UsingCDI]]
+Using CDI
+^^^^^^^^^
+
+You can use link:cdi.html[CDI] as dependency injection framework to configure
+your link:component.html[Component] or link:endpoint.html[Endpoint] instances.
+
+For example, to configure the SJMS component, you can declare a producer method
+in a CDI bean:
+
+[source,java]
+----
+class MyCdiComponent {
+
+  @PropertyInject("jms.maxConnections")
+  int maxConnections;
+
+  @Produces
+  @Named("sjms")
+  @ApplicationScoped
+    SjmsComponent sjms() {
+        SjmsComponent component = new SjmsComponent();
+        component.setConnectionFactory(new ActiveMQConnectionFactory("vm://broker?broker.persistent=false"));
+        component.setConnectionCount(maxConnections);
+        return component;
+    }
+}
+----
+
+Then, the component is lazily looked-up by Camel CDI whenever it is referenced,
+e.g. from the Camel Java DSL:
+
+[source,java]
+----
+class MyCdiRoute extends RouteBuilder {
+
+    @Override
+    public void configure() {
+        from("sjms:sample.queue")
+            .log("Received message [${body}]");
+    }
+}
+----
+
+Besides, endpoints of that component can be injected in any CDI beans, e.g.:
+
+[source,java]
+----
+class MyCdiBean {
+
+    @Inject
+    @Uri("sjms:sample.queue")
+    Endpoint endpoint;
+}
+----
+
+
 [[HowdoIconfigureendpoints-UsingGuice]]
 Using Guice
 ^^^^^^^^^^^
@@ -267,6 +324,7 @@ See Also
 ~~~~~~~~
 
 * link:how-do-i-add-a-component.html[How do I add a component]
+* link:cdi.html[CDI]
 * link:spring.html[Spring]
 * link:uris.html[URIs]
 * link:using-propertyplaceholder.html[Using `PropertyPlaceholder`]


Mime
View raw message