Andrea Cosentino created CAMEL-11643:
----------------------------------------

             Summary: Extensions: registerExtensions method has to avoid final 
in his declaration to work in CDI
                 Key: CAMEL-11643
                 URL: https://issues.apache.org/jira/browse/CAMEL-11643
             Project: Camel
          Issue Type: Bug
          Components: camel-core, examples
            Reporter: Andrea Cosentino
            Assignee: Luca Burgazzoli
            Priority: Minor
             Fix For: 2.20.0


For example in the examples camel-example-cdi-properties we are currently 
getting an error:

{code}
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.camel.example.cdi.properties.CdiPropertiesTest
2017-08-07 10:40:08,567 [main           ] INFO  Version                        
- WELD-000900: 2.4.4 (Final)
2017-08-07 10:40:08,726 [main           ] INFO  Bootstrap                      
- WELD-000101: Transactional services not available. Injection of @Inject 
UserTransaction not available. Transactional observers will be invoked 
synchronously.
2017-08-07 10:40:08,824 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] private 
org.apache.camel.cdi.CdiCamelExtension.processAnnotatedType(@Observes 
ProcessAnnotatedType<?>) receives events for all annotated types. Consider 
restricting events using @WithAnnotations or a generic type with bounds.
2017-08-07 10:40:08,828 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] private 
org.apache.camel.cdi.CdiCamelExtension.processAnnotatedType(@Observes 
ProcessAnnotatedType<?>) receives events for all annotated types. Consider 
restricting events using @WithAnnotations or a generic type with bounds.
2017-08-07 10:40:08,831 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] protected 
org.apache.deltaspike.core.impl.interceptor.GlobalInterceptorExtension.promoteInterceptors(@Observes
 ProcessAnnotatedType, BeanManager) receives events for all annotated types. 
Consider restricting events using @WithAnnotations or a generic type with 
bounds.
2017-08-07 10:40:08,839 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] public 
org.apache.deltaspike.core.impl.config.ConfigurationExtension.findDynamicConfigurationBeans(@Observes
 ProcessAnnotatedType<?>) receives events for all annotated types. Consider 
restricting events using @WithAnnotations or a generic type with bounds.
2017-08-07 10:40:08,841 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] protected 
org.apache.deltaspike.core.impl.message.MessageBundleExtension.detectInterfaces(@Observes
 ProcessAnnotatedType) receives events for all annotated types. Consider 
restricting events using @WithAnnotations or a generic type with bounds.
2017-08-07 10:40:08,846 [main           ] INFO  Event                          
- WELD-000411: Observer method [BackedAnnotatedMethod] protected 
org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension.vetoBeans(@Observes
 ProcessAnnotatedType, BeanManager) receives events for all annotated types. 
Consider restricting events using @WithAnnotations or a generic type with 
bounds.
2017-08-07 10:40:09,090 [main           ] WARN  Validator                      
- WELD-001478: Interceptor class 
org.apache.deltaspike.core.impl.throttling.ThrottledInterceptor is enabled for 
the application and for the bean archive 
/home/oscerd/.m2/repository/org/apache/deltaspike/core/deltaspike-core-impl/1.8.0/deltaspike-core-impl-1.8.0.jar.
 It will only be invoked in the @Priority part of the chain.
2017-08-07 10:40:09,091 [main           ] WARN  Validator                      
- WELD-001478: Interceptor class 
org.apache.deltaspike.core.impl.lock.LockedInterceptor is enabled for the 
application and for the bean archive 
/home/oscerd/.m2/repository/org/apache/deltaspike/core/deltaspike-core-impl/1.8.0/deltaspike-core-impl-1.8.0.jar.
 It will only be invoked in the @Priority part of the chain.
2017-08-07 10:40:09,091 [main           ] WARN  Validator                      
- WELD-001478: Interceptor class 
org.apache.deltaspike.core.impl.future.FutureableInterceptor is enabled for the 
application and for the bean archive 
/home/oscerd/.m2/repository/org/apache/deltaspike/core/deltaspike-core-impl/1.8.0/deltaspike-core-impl-1.8.0.jar.
 It will only be invoked in the @Priority part of the chain.
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.14 s 
<<< FAILURE! - in org.apache.camel.example.cdi.properties.CdiPropertiesTest
[ERROR] org.apache.camel.example.cdi.properties.CdiPropertiesTest  Time 
elapsed: 1.14 s  <<< ERROR!
org.jboss.weld.exceptions.DeploymentException: 
Exception List with 1 exceptions:
Exception 0 :
javax.enterprise.inject.InjectionException: Error adding routes of type 
[org.apache.camel.example.cdi.properties.Application$HelloRoute] to Camel 
context [hello]
        at 
org.apache.camel.cdi.CdiCamelExtension.addRouteToContext(CdiCamelExtension.java:456)
        at 
org.apache.camel.cdi.CdiCamelExtension.afterDeploymentValidation(CdiCamelExtension.java:399)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
        at 
org.jboss.weld.injection.MethodInvocationStrategy$SpecialParamPlusBeanManagerStrategy.invoke(MethodInvocationStrategy.java:144)
        at 
org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:299)
        at 
org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:124)
        at 
org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:277)
        at 
org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:255)
        at 
org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:269)
        at 
org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:258)
        at 
org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:154)
        at 
org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:148)
        at 
org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:53)
        at 
org.jboss.weld.bootstrap.events.AbstractDeploymentContainerEvent.fire(AbstractDeploymentContainerEvent.java:35)
        at 
org.jboss.weld.bootstrap.events.AfterDeploymentValidationImpl.fire(AfterDeploymentValidationImpl.java:28)
        at 
org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:487)
        at 
org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:90)
        at org.jboss.weld.environment.se.Weld.initialize(Weld.java:787)
        at 
org.apache.camel.test.cdi.CamelCdiDeployment$1.evaluate(CamelCdiDeployment.java:71)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
        at 
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
        at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)
Caused by: org.apache.camel.RuntimeCamelException: 
org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001480: Bean 
type class org.apache.camel.component.properties.PropertiesComponent is not 
proxyable because it contains a final method protected final void 
org.apache.camel.impl.DefaultComponent.registerExtension(org.apache.camel.component.extension.ComponentExtension)
 - <unknown javax.enterprise.inject.spi.Bean instance>.
        at 
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1828)
        at 
org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByName(PropertyPlaceholderDelegateRegistry.java:52)
        at 
org.apache.camel.util.CamelContextHelper.lookupPropertiesComponent(CamelContextHelper.java:683)
        at 
org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2532)
        at 
org.apache.camel.model.ProcessorDefinitionHelper.resolvePropertyPlaceholders(ProcessorDefinitionHelper.java:735)
        at 
org.apache.camel.model.RouteDefinitionHelper.initRouteInputs(RouteDefinitionHelper.java:378)
        at 
org.apache.camel.model.RouteDefinitionHelper.prepareRouteImp(RouteDefinitionHelper.java:298)
        at 
org.apache.camel.model.RouteDefinitionHelper.prepareRoute(RouteDefinitionHelper.java:270)
        at 
org.apache.camel.model.RoutesDefinition.route(RoutesDefinition.java:205)
        at 
org.apache.camel.model.RoutesDefinition.from(RoutesDefinition.java:158)
        at org.apache.camel.builder.RouteBuilder.from(RouteBuilder.java:169)
        at 
org.apache.camel.example.cdi.properties.Application$HelloRoute.configure(Application.java:45)
        at 
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:462)
        at 
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:402)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:383)
        at 
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1014)
        at 
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1011)
        at 
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3235)
        at 
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:1011)
        at 
org.apache.camel.impl.DefaultCamelContext$Proxy$_$$_WeldClientProxy.addRoutes(Unknown
 Source)
        at 
org.apache.camel.cdi.CdiCamelExtension.addRouteToContext(CdiCamelExtension.java:443)
        ... 31 more
Caused by: org.jboss.weld.exceptions.UnproxyableResolutionException: 
WELD-001480: Bean type class 
org.apache.camel.component.properties.PropertiesComponent is not proxyable 
because it contains a final method protected final void 
org.apache.camel.impl.DefaultComponent.registerExtension(org.apache.camel.component.extension.ComponentExtension)
 - <unknown javax.enterprise.inject.spi.Bean instance>.
        at 
org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:222)
        at 
org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:179)
        at 
org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:141)
        at 
org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy(ClientProxyProvider.java:239)
        at 
org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:779)
        at 
org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:808)
        at 
org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:61)
        at 
org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:85)
        at 
org.apache.camel.cdi.BeanManagerHelper.getReference(BeanManagerHelper.java:53)
        at 
org.apache.camel.cdi.CdiCamelRegistry.lambda$findByTypeWithName$63(CdiCamelRegistry.java:78)
        at java.util.stream.Collectors.lambda$toMap$214(Collectors.java:1321)
        at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
        at 
java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
        at java.util.Iterator.forEachRemaining(Iterator.java:116)
        at 
java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at 
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
        at 
org.apache.camel.cdi.CdiCamelRegistry.findByTypeWithName(CdiCamelRegistry.java:78)
        at 
org.apache.camel.cdi.CdiCamelRegistry.lookupByName(CdiCamelRegistry.java:58)
        at 
org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByName(PropertyPlaceholderDelegateRegistry.java:50)
        ... 50 more


[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   
CdiPropertiesTest.org.apache.camel.example.cdi.properties.CdiPropertiesTest ยป 
Deployment
[INFO] 
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO] 
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to