Hi, Some quick answers. I hope they help
Regards, Tim ---------------------------------------- > Date: Sun, 5 Jun 2011 10:40:46 +0100 > From: [email protected] > Subject: Re: Yet another proxy/weaving problem > To: [email protected] > CC: [email protected]; [email protected] > > I'm now generally wondering: > > 1.) Does aries proxy ALL classes? All classes that can be woven become "proxyable" and implement the WovenProxy interface. Those that can't be woven can be subclass proxied if necessary. > 2.) are there only certain methods being proxied? Which one in this case? All non-private, non-abstract, non-static, non-synthetic, non-bridge instance methods > 3.) What proxying technology is Aries using? We use the weaving hook service defined by OSGi 4.3 and ASM for bytecode processing > 4.) finally: How big is the performance impact? We saw roughly a 400% improvement in throughput on proxied instances :). Non proxy classes saw a negligible degredation (within the measurement error) of about 0-3 clock cycles per method call. This was only really visible for no-op methods. > > LieGrue, > strub > > --- On Sat, 6/4/11, David Jencks wrote: > > > From: David Jencks > > Subject: Re: Yet another proxy/weaving problem > > To: [email protected] > > Cc: [email protected], "Geronimo Dev List (JIRA)" > > Date: Saturday, June 4, 2011, 4:02 PM > > I've now found another place where > > the added WovenProxy interface breaks > > OpenWebBeans. The lack of response on the > > aries list to my first post makes me think that perhaps this > > interface can't be removed. I notice that there's an > > isSynthetic() method on Class. I'm not sure what this > > means but I'm wondering if it would be possible to mark this > > interface synthetic and have the relevant parts of OWB > > ignore synthetic interfaces rather than explicitly > > configuring it to ignore this particular interface? > > > > thanks > > david jencks > > > > On Jun 2, 2011, at 11:53 PM, David Jencks wrote: > > > > > another day another problem.... > > > > > > > > org.apache.webbeans.exception.WebBeansConfigurationException: > > Decorator : Name:null, WebBeans Type:DECORATOR, API > > Types:[org.jboss.jsr299.tck.tests.context.dependent.InteriorDecorator,org.apache.aries.proxy.weaving.WovenProxy,org.jboss.jsr299.tck.tests.context.dependent.Interior,java.lang.Object], > > Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default] > > delegate attribute must implement all of the decorator > > decorated types, but decorator type interface > > org.apache.aries.proxy.weaving.WovenProxy is not assignable > > from delegate type of interface > > org.jboss.jsr299.tck.tests.context.dependent.Interior > > > > > > > > > I believe the story here is that decorator classes > > must not implement interfaces that the delegate doesn't > > implement, but aries is adding the > > org.apache.aries.proxy.weaving.WovenProxy to the decorator > > class. > > > > > > OWB is already excluding Serializable and I can modify > > the code to also exclude > > org.apache.aries.proxy.weaving.WovenProxy and the jcdi tests > > pass but this is going to involve making the list of ignored > > interfaces configurable and may not be acceptable to OWB. > > > > > > Is there any way to make the weaving/proxying code not > > add this interface? I don't think the jdk proxying > > code needs to add interfaces.... > > > > > > thanks > > > david jencks > > > >
