Author: jstrachan Date: Mon Sep 3 14:39:42 2012 New Revision: 1380252 URL: http://svn.apache.org/viewvc?rev=1380252&view=rev Log: simplified the code to reuse more existing camel code & ensure more consistent error messages and allowed injection via @Inject @Uri("someURI") on Endpoint / ProducerTemplate injections for more CDI-like injection. also moved the Uri and Mock annotations into org.apache.camel.cdi as they are the (optional) public programming API for working with CDI
Added: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java (with props) camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java (with props) camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java (with props) camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java (with props) camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java (with props) camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java (with props) Removed: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/Mock.java camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/util/ Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java camel/trunk/components/camel-cdi/pom.xml camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/component/cdi/internal/CamelFactory.java camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ConsumeTest.java camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ProduceInjectTest.java camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/MockEndpointInjectedBean.java camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/ProduceInjectedBean.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java Mon Sep 3 14:39:42 2012 @@ -132,7 +132,7 @@ public class CamelPostProcessorHelper im return new UnitOfWorkProcessor(answer); } - protected Endpoint getEndpointInjection(Object bean, String uri, String name, String propertyName, + public Endpoint getEndpointInjection(Object bean, String uri, String name, String propertyName, String injectionPointName, boolean mandatory) { if (ObjectHelper.isEmpty(uri) && ObjectHelper.isEmpty(name)) { // if no uri or ref, then fallback and try the endpoint property Modified: camel/trunk/components/camel-cdi/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/pom.xml?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/pom.xml (original) +++ camel/trunk/components/camel-cdi/pom.xml Mon Sep 3 14:39:42 2012 @@ -43,6 +43,7 @@ * </camel.osgi.import> <camel.osgi.export.pkg> + org.apache.camel.cdi.*;${camel.osgi.version}, org.apache.camel.component.cdi.*;${camel.osgi.version} </camel.osgi.export.pkg> </properties> Added: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java (added) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,32 @@ +/** + * 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.cdi; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.inject.Qualifier; + +/** + * A qualifier for injecting instances of {@link org.apache.camel.component.mock.MockEndpoint} into a bean. + */ +@Qualifier +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) +public @interface Mock { +} Propchange: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Mock.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java (added) +++ camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,36 @@ +/** + * 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.cdi; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * An injection annotation to define the <a href="http://camel.apache.org/uris.html">Camel URI</a> used + * to reference the underlying <a href="http://camel.apache.org/endpoint.html">Camel Endpoint</a> + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) +public @interface Uri { + + /** + * Returns the <a href="http://camel.apache.org/uris.html">Camel URI</a> of the endpoint + */ + String value(); +} Propchange: camel/trunk/components/camel-cdi/src/main/java/org/apache/camel/cdi/Uri.java ------------------------------------------------------------------------------ svn:eol-style = native 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=1380252&r1=1380251&r2=1380252&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 Mon Sep 3 14:39:42 2012 @@ -16,8 +16,10 @@ */ package org.apache.camel.component.cdi.internal; -import java.lang.reflect.Type; import javax.enterprise.inject.Produces; +import javax.enterprise.inject.spi.Annotated; +import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.InjectionPoint; import javax.inject.Inject; @@ -26,9 +28,13 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.cdi.Mock; +import org.apache.camel.cdi.Mock; +import org.apache.camel.cdi.Uri; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.impl.CamelPostProcessorHelper; +import org.apache.camel.util.CamelContextHelper; import org.apache.camel.util.ObjectHelper; +import org.apache.deltaspike.core.api.provider.BeanProvider; /** * produces {@link Endpoint} and {@link org.apache.camel.ProducerTemplate} instances for injection into beans @@ -40,66 +46,80 @@ public class CamelFactory { @Produces @Mock public MockEndpoint createMockEndpoint(InjectionPoint point) { - String url = ""; - String name = ""; + String uri = ""; + String ref = ""; EndpointInject annotation = point.getAnnotated().getAnnotation(EndpointInject.class); if (annotation != null) { - url = annotation.uri(); - name = annotation.ref(); + uri = annotation.uri(); + ref = annotation.ref(); } - if (ObjectHelper.isEmpty(name)) { - name = point.getMember().getName(); + if (ObjectHelper.isEmpty(ref)) { + ref = point.getMember().getName(); } - if (ObjectHelper.isEmpty(url)) { - url = "mock:" + name; + if (ObjectHelper.isEmpty(uri)) { + uri = "mock:" + ref; } - return camelContext.getEndpoint(url, MockEndpoint.class); + return CamelContextHelper.getMandatoryEndpoint(camelContext, uri, MockEndpoint.class); } @SuppressWarnings("unchecked") @Produces - public Endpoint createEndpoint(InjectionPoint point) { - Class<? extends Endpoint> endpointType = Endpoint.class; - Type pointType = point.getType(); - if (pointType instanceof Class<?>) { - endpointType = (Class<? extends Endpoint>)pointType; - } - EndpointInject annotation = point.getAnnotated().getAnnotation(EndpointInject.class); - if (annotation != null) { - String uri = annotation.uri(); - if (ObjectHelper.isEmpty(uri)) { - String ref = annotation.ref(); - if (ObjectHelper.isNotEmpty(ref)) { - uri = "ref:" + ref; - } else { - - } - } - return camelContext.getEndpoint(uri, endpointType); - } - throw new IllegalArgumentException( - "Could not create instance of Endpoint for the given injection point " + point); + public Endpoint createEndpoint(InjectionPoint point, BeanManager beanManager) { + Annotated annotated = point.getAnnotated(); + Uri uri = annotated.getAnnotation(Uri.class); + if (uri != null) { + return CamelContextHelper.getMandatoryEndpoint(camelContext, uri.value()); + } + EndpointInject annotation = annotated.getAnnotation(EndpointInject.class); + ObjectHelper.notNull(annotation, "Must be annotated with @EndpointInject"); + return getEndpoint(point, annotation.uri(), annotation.ref(), annotation.property()); } @Produces public ProducerTemplate createProducerTemplate(InjectionPoint point) { ProducerTemplate producerTemplate = camelContext.createProducerTemplate(); - Produce annotation = point.getAnnotated().getAnnotation(Produce.class); - if (annotation != null) { - String uri = annotation.uri(); - String ref = annotation.ref(); - String property = annotation.property(); - if (ObjectHelper.isEmpty(uri)) { - if (ObjectHelper.isNotEmpty(ref)) { - uri = "ref:" + ref; - } else { - ObjectHelper.notEmpty(property, "uri, ref or property", annotation); - // now lets get the property value - throw new UnsupportedOperationException("property not yet supported"); - } + Annotated annotated = point.getAnnotated(); + Uri uri = annotated.getAnnotation(Uri.class); + Endpoint endpoint = null; + if (uri != null) { + endpoint = CamelContextHelper.getMandatoryEndpoint(camelContext, uri.value()); + } else { + Produce annotation = annotated.getAnnotation(Produce.class); + if (annotation != null) { + endpoint = getEndpoint(point, annotation.uri(), annotation.ref(), annotation.property()); } - producerTemplate.setDefaultEndpointUri(uri); + } + if (endpoint != null) { + producerTemplate.setDefaultEndpoint(endpoint); } return producerTemplate; } + + protected Endpoint getEndpoint(InjectionPoint point, String uri, String ref, String property) { + String injectName = getInjectionPointName(point); + if (ObjectHelper.isEmpty(property)) { + return resolveEndpoint(uri, ref, injectName); + } else { + throw new UnsupportedOperationException(); +/* + TODO this code won't work in CDI as we've not yet created the bean being injected yet + so cannot evaluate the property yet! + + CamelPostProcessorHelper helper = new CamelPostProcessorHelper(camelContext); + Bean<?> bean = point.getBean(); + Class<?> beanClass = bean.getBeanClass(); + Object instance = BeanProvider.getContextualReference((Class)beanClass, bean); + return helper.getEndpointInjection(instance, uri, ref, property, injectName, true); +*/ + } + } + + private Endpoint resolveEndpoint(String uri, String ref, String injectionName) { + return CamelContextHelper.getEndpointInjection(camelContext, uri, ref, injectionName, true); + } + + private String getInjectionPointName(InjectionPoint point) { + // TODO is there a better name? + return point.toString(); + } } Modified: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ConsumeTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ConsumeTest.java?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ConsumeTest.java (original) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ConsumeTest.java Mon Sep 3 14:39:42 2012 @@ -21,8 +21,6 @@ import javax.inject.Inject; import org.apache.camel.Consume; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; -import org.apache.camel.cdi.support.MockEndpointInjectedBean; -import org.apache.camel.component.cdi.Mock; import org.apache.camel.component.mock.MockEndpoint; import org.junit.Test; Added: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java (added) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,45 @@ +/** + * 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.cdi; + +import javax.inject.Inject; + +import org.apache.camel.Endpoint; +import org.apache.camel.cdi.support.EndpointUriPropertyInjectedBean; +import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Test endpoint injection using a dynamic property expression + */ +public class EndpointPropertyInjectTest extends CdiTestSupport { + + @Inject + private EndpointUriPropertyInjectedBean bean; + + // TODO not supported yet! + @Ignore + public void shouldInjectEndpointByProperty() { + assertNotNull(bean); + Endpoint endpoint = bean.getEndpoint(); + assertNotNull("Could not find injected endpoint!", endpoint); + assertTrue("Endpoint should be a MockEndpoint but was " + endpoint, endpoint instanceof MockEndpoint); + assertEquals("Endpoint URI", "mock://injectedByProperty", endpoint.getEndpointUri()); + } + +} Propchange: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointPropertyInjectTest.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java (added) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,44 @@ +/** + * 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.cdi; + +import javax.inject.Inject; + +import org.apache.camel.Endpoint; +import org.apache.camel.cdi.support.EndpointInjectedBean; +import org.apache.camel.cdi.support.EndpointUriInjectedBean; +import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Test; + +/** + * Test endpoint injection + */ +public class EndpointUriInjectTest extends CdiTestSupport { + + @Inject + private EndpointUriInjectedBean bean; + + @Test + public void shouldInjectEndpoint() { + assertNotNull(bean); + Endpoint endpoint = bean.getEndpoint(); + assertNotNull("Could not find injected endpoint!", endpoint); + assertTrue("Endpoint should be a MockEndpoint but was " + endpoint, endpoint instanceof MockEndpoint); + assertEquals("Endpoint URI", "mock://uriInjected", endpoint.getEndpointUri()); + } + +} Propchange: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/EndpointUriInjectTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ProduceInjectTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ProduceInjectTest.java?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ProduceInjectTest.java (original) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/ProduceInjectTest.java Mon Sep 3 14:39:42 2012 @@ -36,6 +36,10 @@ public class ProduceInjectTest extends C ProducerTemplate producer = bean.getProducer(); assertNotNull("Could not find injected producer!", producer); assertEquals("producer default URI", "mock://foo", producer.getDefaultEndpoint().getEndpointUri()); + + ProducerTemplate producer2 = bean.getProducer2(); + assertNotNull("Could not find injected producer2!", producer2); + assertEquals("producer2 default URI", "mock://bar", producer2.getDefaultEndpoint().getEndpointUri()); } } Added: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java (added) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,39 @@ +/** + * 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.cdi.support; + +import javax.inject.Inject; + +import org.apache.camel.Endpoint; +import org.apache.camel.EndpointInject; +import org.apache.camel.cdi.Uri; + +/** + */ +public class EndpointUriInjectedBean { + + @Inject @Uri("mock:uriInjected") + private Endpoint endpoint; + + public Endpoint getEndpoint() { + return endpoint; + } + + public void setEndpoint(Endpoint endpoint) { + this.endpoint = endpoint; + } +} Propchange: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriInjectedBean.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java?rev=1380252&view=auto ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java (added) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java Mon Sep 3 14:39:42 2012 @@ -0,0 +1,43 @@ +/** + * 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.cdi.support; + +import javax.inject.Inject; + +import org.apache.camel.Endpoint; +import org.apache.camel.EndpointInject; +import org.apache.camel.cdi.Uri; + +/** + */ +public class EndpointUriPropertyInjectedBean { + + @Inject @EndpointInject(property = "injectUri") + private Endpoint endpoint; + + public Endpoint getEndpoint() { + return endpoint; + } + + public void setEndpoint(Endpoint endpoint) { + this.endpoint = endpoint; + } + + public String getInjectUri() { + return "mock:injectedByProperty"; + } +} Propchange: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/EndpointUriPropertyInjectedBean.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/MockEndpointInjectedBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/MockEndpointInjectedBean.java?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/MockEndpointInjectedBean.java (original) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/MockEndpointInjectedBean.java Mon Sep 3 14:39:42 2012 @@ -19,7 +19,7 @@ package org.apache.camel.cdi.support; import javax.inject.Inject; import org.apache.camel.EndpointInject; -import org.apache.camel.component.cdi.Mock; +import org.apache.camel.cdi.Mock; import org.apache.camel.component.mock.MockEndpoint; public class MockEndpointInjectedBean { Modified: camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/ProduceInjectedBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/ProduceInjectedBean.java?rev=1380252&r1=1380251&r2=1380252&view=diff ============================================================================== --- camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/ProduceInjectedBean.java (original) +++ camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/support/ProduceInjectedBean.java Mon Sep 3 14:39:42 2012 @@ -18,18 +18,23 @@ package org.apache.camel.cdi.support; import javax.inject.Inject; -import org.apache.camel.EndpointInject; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.cdi.Mock; -import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.cdi.Uri; public class ProduceInjectedBean { @Produce(uri = "mock:foo") private ProducerTemplate producer; + @Inject @Uri("mock:bar") + private ProducerTemplate producer2; + public ProducerTemplate getProducer() { return producer; } + + public ProducerTemplate getProducer2() { + return producer2; + } }