geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Ward <timothyjw...@apache.org>
Subject RE: Yet another proxy/weaving problem
Date Mon, 06 Jun 2011 11:51:33 GMT

Hi, 

Some quick answers. I hope they help

Regards,



Tim

----------------------------------------
> Date: Sun, 5 Jun 2011 10:40:46 +0100
> From: struberg@yahoo.de
> Subject: Re: Yet another proxy/weaving problem
> To: dev@aries.apache.org
> CC: dev@openwebbeans.apache.org; dev@geronimo.apache.org
>
> 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: dev@aries.apache.org
> > Cc: dev@openwebbeans.apache.org, "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
> >
> >
 		 	   		  
Mime
View raw message