Hi David, it was not managed by CDI and injections was not working so well.
i added too a way to inject the interface because when you are doing a little bit generic handler you often need it. Do you see any issue with this change? - Romain 2012/3/9 David Blevins <[email protected]> > I thought we already supported injection on the handler. What problem is > this aimed at? > > -David > > On Mar 5, 2012, at 6:02 PM, [email protected] wrote: > > > Author: rmannibucau > > Date: Tue Mar 6 00:02:21 2012 > > New Revision: 1297301 > > > > URL: http://svn.apache.org/viewvc?rev=1297301&view=rev > > Log: > > ability to get injection in dynamic proxy handler + implicit injection > of the proxies interface > > > > Modified: > > > > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java > > > > Modified: > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1297301&r1=1297300&r2=1297301&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java > (original) > > +++ > openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java > Tue Mar 6 00:02:21 2012 > > @@ -1279,11 +1279,27 @@ public class BeanContext extends Deploym > > > > // Create bean instance > > final Object beanInstance; > > - final InjectionProcessor injectionProcessor = new > InjectionProcessor(beanConstructor.create(creationalContext), > this.getInjections(), InjectionProcessor.unwrap(ctx)); > > + final InjectionProcessor injectionProcessor; > > if (!isDynamicallyImplemented()) { > > + injectionProcessor = new > InjectionProcessor(beanConstructor.create(creationalContext), > getInjections(), InjectionProcessor.unwrap(ctx)); > > beanInstance = injectionProcessor.createInstance(); > > inject(beanInstance, creationalContext); > > } else { > > + // update target > > + final List<Injection> newInjections = new > ArrayList<Injection>(); > > + for (Injection injection : getInjections()) { > > + if (beanClass.equals(injection.getTarget())) { > > + final Injection updated = new > Injection(injection.getJndiName(), injection.getName(), > beanDefinition.getBeanClass()); > > + newInjections.add(updated); > > + } else { > > + newInjections.add(injection); > > + } > > + } > > + injections.clear(); > > + injections.addAll(newInjections); > > + > > + injectionProcessor = new > InjectionProcessor(beanConstructor.create(creationalContext), injections, > InjectionProcessor.unwrap(ctx)); > > + > injectionProcessor.setProperty("implementingInterfaceClass", beanClass); > > InvocationHandler handler = (InvocationHandler) > injectionProcessor.createInstance(); > > beanInstance = DynamicProxyImplFactory.newProxy(this, > handler); > > inject(handler, creationalContext); > > > > > > > >
