Author: jstrachan Date: Wed Sep 5 15:17:52 2012 New Revision: 1381222 URL: http://svn.apache.org/viewvc?rev=1381222&view=rev Log: renamed @CamelStartup to @ContextName which seems a bit more general; and means we can use the same annotation to also do injection of CamelContexts too for CAMEL-5566
Added: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java (contents, props changed) - copied, changed from r1381215, camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelStartup.java Removed: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelStartup.java Modified: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/BeanAdapter.java camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelExtension.java camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java camel/trunk/examples/camel-example-cdi/src/main/java/org/apache/camel/example/cdi/MyRoutes.java camel/trunk/examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/IntegrationTest.java camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/MyConfig.java camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextA.java camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextB.java camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextC.java camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextD.java camel/trunk/tests/camel-itest-cdi/src/test/java/org/apache/camel/itest/cdi/IntegrationTest.java Copied: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java (from r1381215, camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelStartup.java) URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java?p2=camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java&p1=camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelStartup.java&r1=1381215&r2=1381222&rev=1381222&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/CamelStartup.java (original) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java Wed Sep 5 15:17:52 2012 @@ -25,12 +25,12 @@ import org.apache.camel.CamelContext; import org.apache.camel.builder.RouteBuilder; /** - * Used to annotate a {@link RouteBuilder} class to bind it to a - * {@link CamelContext} instance on startup so that it can startup automatically + * Used to bind objects to a named {@link CamelContext} instance + * such as {@link RouteBuilder} instances. */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) -public @interface CamelStartup { +public @interface ContextName { /** * Returns the name of the CamelContext to add the routes to. Propchange: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ContextName.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/BeanAdapter.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/BeanAdapter.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/BeanAdapter.java (original) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/BeanAdapter.java Wed Sep 5 15:17:52 2012 @@ -24,7 +24,7 @@ import java.util.List; import org.apache.camel.Consume; import org.apache.camel.EndpointInject; import org.apache.camel.Produce; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.impl.DefaultCamelBeanPostProcessor; /** @@ -36,9 +36,9 @@ public class BeanAdapter { private final List<Method> endpointMethods = new ArrayList<Method>(); private final List<Field> produceFields = new ArrayList<Field>(); private final List<Field> endpointFields = new ArrayList<Field>(); - private final CamelStartup startup; + private final ContextName startup; - public BeanAdapter(CamelStartup startup) { + public BeanAdapter(ContextName startup) { this.startup = startup; } Modified: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelExtension.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelExtension.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelExtension.java (original) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelExtension.java Wed Sep 5 15:17:52 2012 @@ -46,7 +46,7 @@ import org.apache.camel.Consume; import org.apache.camel.EndpointInject; import org.apache.camel.Produce; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.component.cdi.CdiCamelContext; import org.apache.camel.impl.DefaultCamelBeanPostProcessor; import org.apache.camel.util.ObjectHelper; @@ -69,9 +69,9 @@ public class CamelExtension implements E } /** - * If no context name is specified then default it to the value from the {@link org.apache.camel.cdi.CamelStartup} annotation + * If no context name is specified then default it to the value from the {@link org.apache.camel.cdi.ContextName} annotation */ - public static String getCamelContextName(String context, CamelStartup annotation) { + public static String getCamelContextName(String context, ContextName annotation) { if (ObjectHelper.isEmpty(context) && annotation != null) { return annotation.contextName(); } @@ -132,7 +132,7 @@ public class CamelExtension implements E /** * Lets detect all beans annotated with @Consume and - * beans of type {@link RouteBuilder} which are annotated with {@link org.apache.camel.cdi.CamelStartup} + * beans of type {@link RouteBuilder} which are annotated with {@link org.apache.camel.cdi.ContextName} * so they can be auto-registered */ public void detectConsumeBeans(@Observes ProcessBean<?> event) { @@ -151,18 +151,18 @@ public class CamelExtension implements E /** * Lets detect all beans annotated of type {@link RouteBuilder} - * which are annotated with {@link org.apache.camel.cdi.CamelStartup} + * which are annotated with {@link org.apache.camel.cdi.ContextName} * so they can be auto-registered */ public void detectRouteBuilderBeans(@Observes ProcessBean<?> event) { final Bean<?> bean = event.getBean(); Class<?> beanClass = bean.getBeanClass(); if (RouteBuilder.class.isAssignableFrom(beanClass)) { - addRouteBuilderBean(bean, beanClass.getAnnotation(CamelStartup.class)); + addRouteBuilderBean(bean, beanClass.getAnnotation(ContextName.class)); } } - private void addRouteBuilderBean(Bean<?> bean, CamelStartup annotation) { + private void addRouteBuilderBean(Bean<?> bean, ContextName annotation) { if (annotation != null) { String contextName = annotation.contextName(); CamelContextConfig config = camelContextConfigMap.get(contextName); @@ -175,12 +175,12 @@ public class CamelExtension implements E } /** - * Lets detect all producer methods createing instances of {@link RouteBuilder} which are annotated with {@link org.apache.camel.cdi.CamelStartup} + * Lets detect all producer methods createing instances of {@link RouteBuilder} which are annotated with {@link org.apache.camel.cdi.ContextName} * so they can be auto-registered */ public void detectProducerRoutes(@Observes ProcessProducerMethod<?, ?> event) { Annotated annotated = event.getAnnotated(); - CamelStartup annotation = annotated.getAnnotation(CamelStartup.class); + ContextName annotation = annotated.getAnnotation(ContextName.class); Class<?> returnType = event.getAnnotatedProducerMethod().getJavaMember().getReturnType(); if (RouteBuilder.class.isAssignableFrom(returnType)) { addRouteBuilderBean(event.getBean(), annotation); @@ -220,8 +220,8 @@ public class CamelExtension implements E final Class beanClass = annotatedType.getJavaClass(); // TODO this is a bit of a hack - what should the bean name be? final String beanName = injectionTarget.toString(); - CamelStartup camelStartup = annotatedType.getAnnotation(CamelStartup.class); - final BeanAdapter adapter = createBeanAdapter(beanClass, camelStartup); + ContextName contextName = annotatedType.getAnnotation(ContextName.class); + final BeanAdapter adapter = createBeanAdapter(beanClass, contextName); if (!adapter.isEmpty()) { DelegateInjectionTarget newTarget = new DelegateInjectionTarget(injectionTarget) { @@ -245,8 +245,8 @@ public class CamelExtension implements E */ public void inject(Object bean) { Class<?> beanClass = bean.getClass(); - CamelStartup camelStartup = beanClass.getAnnotation(CamelStartup.class); - final BeanAdapter adapter = createBeanAdapter(beanClass, camelStartup); + ContextName contextName = beanClass.getAnnotation(ContextName.class); + final BeanAdapter adapter = createBeanAdapter(beanClass, contextName); if (!adapter.isEmpty()) { // TODO this is a bit of a hack - what should the bean name be? final String beanName = bean.toString(); @@ -254,8 +254,8 @@ public class CamelExtension implements E } } - private BeanAdapter createBeanAdapter(Class beanClass, CamelStartup camelStartup) { - final BeanAdapter adapter = new BeanAdapter(camelStartup); + private BeanAdapter createBeanAdapter(Class beanClass, ContextName contextName) { + final BeanAdapter adapter = new BeanAdapter(contextName); ReflectionHelper.doWithFields(beanClass, new ReflectionHelper.FieldCallback() { @Override public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { Modified: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java (original) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java Wed Sep 5 15:17:52 2012 @@ -25,7 +25,7 @@ import javax.inject.Inject; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.ProducerTemplate; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Mock; import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; @@ -73,11 +73,11 @@ public class CamelFactory { } protected CamelContext getCamelContext(InjectionPoint point, String contextName) { - CamelStartup startup = point.getAnnotated().getAnnotation(CamelStartup.class); + ContextName startup = point.getAnnotated().getAnnotation(ContextName.class); if (startup == null) { Bean<?> bean = point.getBean(); if (bean != null) { - startup = bean.getBeanClass().getAnnotation(CamelStartup.class); + startup = bean.getBeanClass().getAnnotation(ContextName.class); } } String name = CamelExtension.getCamelContextName(contextName, startup); Modified: camel/trunk/examples/camel-example-cdi/src/main/java/org/apache/camel/example/cdi/MyRoutes.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cdi/src/main/java/org/apache/camel/example/cdi/MyRoutes.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/examples/camel-example-cdi/src/main/java/org/apache/camel/example/cdi/MyRoutes.java (original) +++ camel/trunk/examples/camel-example-cdi/src/main/java/org/apache/camel/example/cdi/MyRoutes.java Wed Sep 5 15:17:52 2012 @@ -17,21 +17,19 @@ */ package org.apache.camel.example.cdi; -import javax.annotation.PostConstruct; import javax.inject.Inject; import javax.inject.Named; import org.apache.activemq.camel.component.ActiveMQComponent; -import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Uri; /** * Configures all our Camel routes, components, endpoints and beans */ -@CamelStartup +@ContextName public class MyRoutes extends RouteBuilder { @Inject Modified: camel/trunk/examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/IntegrationTest.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/IntegrationTest.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/IntegrationTest.java (original) +++ camel/trunk/examples/camel-example-cdi/src/test/java/org/apache/camel/example/cdi/IntegrationTest.java Wed Sep 5 15:17:52 2012 @@ -19,9 +19,8 @@ package org.apache.camel.example.cdi; import javax.enterprise.inject.Produces; import javax.inject.Inject; -import org.apache.camel.CamelContext; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Mock; import org.apache.camel.component.cdi.internal.CamelExtension; import org.apache.camel.component.mock.MockEndpoint; @@ -49,7 +48,7 @@ public class IntegrationTest { MockEndpoint result; @Produces - @CamelStartup + @ContextName public RouteBuilder createRoutes() { return new RouteBuilder() { public void configure() { Modified: camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/MyConfig.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/MyConfig.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/MyConfig.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/MyConfig.java Wed Sep 5 15:17:52 2012 @@ -20,7 +20,7 @@ package org.apache.camel.itest.cdi; import javax.enterprise.inject.Produces; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; /** * Instantiate a number of route builders using @@ -28,13 +28,13 @@ import org.apache.camel.cdi.CamelStartup public class MyConfig { @Produces - @CamelStartup(contextName = "contextE") + @ContextName(contextName = "contextE") public RouteBuilder createRouteA() { return new MyRouteBuilder("seda:E.a", "mock:E.b"); } @Produces - @CamelStartup(contextName = "contextE") + @ContextName(contextName = "contextE") public RouteBuilder createRouteB() { return new MyRouteBuilder("seda:E.c", "mock:E.d"); } Modified: camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextA.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextA.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextA.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextA.java Wed Sep 5 15:17:52 2012 @@ -23,7 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; import org.slf4j.Logger; @@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory; /** * Uses contextA with explicit context names on all Camel annotations */ -@CamelStartup(contextName = "contextA") +@ContextName(contextName = "contextA") public class RoutesContextA extends RouteBuilder { private static final transient Logger LOG = LoggerFactory.getLogger(RoutesContextA.class); Modified: camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextB.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextB.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextB.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextB.java Wed Sep 5 15:17:52 2012 @@ -23,7 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; import org.slf4j.Logger; @@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory; /** * Uses contextB with explicit context names on all Camel annotations */ -@CamelStartup(contextName = "contextB") +@ContextName(contextName = "contextB") public class RoutesContextB extends RouteBuilder { private static final transient Logger LOG = LoggerFactory.getLogger(RoutesContextB.class); Modified: camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextC.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextC.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextC.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextC.java Wed Sep 5 15:17:52 2012 @@ -23,7 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; import org.slf4j.Logger; @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; * Uses contextC implicitly using that context for all injection points without * having to mention them on each camel annotation */ -@CamelStartup(contextName = "contextC") +@ContextName(contextName = "contextC") public class RoutesContextC extends RouteBuilder { private static final transient Logger LOG = LoggerFactory.getLogger(RoutesContextC.class); Modified: camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextD.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextD.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextD.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/main/java/org/apache/camel/itest/cdi/RoutesContextD.java Wed Sep 5 15:17:52 2012 @@ -23,7 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.cdi.CamelStartup; +import org.apache.camel.cdi.ContextName; import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; import org.slf4j.Logger; @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; * Uses contextD implicitly using that context for all injection points without * having to mention them on each camel annotation */ -@CamelStartup(contextName = "contextD") +@ContextName(contextName = "contextD") public class RoutesContextD extends RouteBuilder { private static final transient Logger LOG = LoggerFactory.getLogger(RoutesContextD.class); Modified: camel/trunk/tests/camel-itest-cdi/src/test/java/org/apache/camel/itest/cdi/IntegrationTest.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-cdi/src/test/java/org/apache/camel/itest/cdi/IntegrationTest.java?rev=1381222&r1=1381221&r2=1381222&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-cdi/src/test/java/org/apache/camel/itest/cdi/IntegrationTest.java (original) +++ camel/trunk/tests/camel-itest-cdi/src/test/java/org/apache/camel/itest/cdi/IntegrationTest.java Wed Sep 5 15:17:52 2012 @@ -83,7 +83,7 @@ public class IntegrationTest { routesB.sendMessages(); mockEndpointB.assertIsSatisfied(); - // lets check the routes where we default the context from the @CamelStartup + // lets check the routes where we default the context from the @ContextName CamelContext contextC = assertCamelContext("contextC"); assertHasEndpoints(contextC, "seda://C.a", "mock://C.b"); @@ -100,7 +100,7 @@ public class IntegrationTest { routesD.sendMessages(); mockEndpointD.assertIsSatisfied(); - // lets check the 2 routes created using @CamelStartup on a @Produces method + // lets check the 2 routes created using @ContextName on a @Produces method CamelContext contextE = assertCamelContext("contextE"); assertHasEndpoints(contextE, "seda://E.a", "mock://E.b", "seda://E.c", "mock://E.d");