David, I don't think it is easy to mark the WovenProxy class as synthetic because it is a real interface with source in the org.apache.aries.proxy.weaving package. AFAIK there is no way to mark an interface as synthetic only on the implementing class, but not on the interface class itself. It is probably possible for us to write a plugin that operates during the process-classes phase which will add the synthetic marker to the WovenProxy interface class after compilation. Is this what you had in mind?
Thanks, Rich From: David Jencks <[email protected]> To: [email protected] Cc: [email protected], "Geronimo Dev List \(JIRA\)" <[email protected]> Date: 04/06/2011 17:03 Subject: Re: Yet another proxy/weaving problem 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 Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
