Re: svn commit: r1028219 - in /openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans: component/ResourceBean.java proxy/JavassistProxyFactory.java
Thanks Joe. I have corrected! Thanks; --Gurkan - Original Message From: Joseph Bergmark To: dev@openwebbeans.apache.org Sent: Thu, November 4, 2010 2:47:05 AM Subject: Re: svn commit: r1028219 - in /openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans: component/ResourceBean.java proxy/JavassistProxyFactory.java This change to ResourceBean doesn't compile. It appears to be a partial backport. I attempted to quickly resolve it by bringing in the ResourceProxyHandler from trunk but hit another set of failures. In the meantime I have reverted it. Sincerely, Joe On Thu, Oct 28, 2010 at 4:44 AM, wrote: > Author: gerdogdu > Date: Thu Oct 28 08:44:01 2010 > New Revision: 1028219 > > URL: http://svn.apache.org/viewvc?rev=1028219&view=rev > Log: > [OWB-486] ResourceBean tries to proxy final classes before testing them for > being final, thanks to David Jencks, Also includes sync. problem that Ying > has provided > > Modified: > > >openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java > > > >openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java > > > Modified: >openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java >a > URL: >http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java?rev=1028219&r1=1028218&r2=1028219&view=diff >f > > == > --- >openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java >a > (original) > +++ >openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java >a > Thu Oct 28 08:44:01 2010 > @@ -21,8 +21,6 @@ package org.apache.webbeans.component; > import java.lang.annotation.Annotation; > import java.lang.reflect.Modifier; > > -import javassist.util.proxy.ProxyFactory; > - > import javax.enterprise.context.spi.CreationalContext; > > import javassist.util.proxy.ProxyObject; > @@ -35,8 +33,6 @@ import org.apache.webbeans.spi.api.Resou > > public class ResourceBean extends > ProducerFieldBean > { > -private X actualResourceReference = null; > - > private ResourceReference resourceReference = null; > > public ResourceBean(Class returnType, InjectionTargetBean > ownerBean, > @@ -55,37 +51,38 @@ public class ResourceBean X instance = null; > try > { > -//X TODO cache proxy class! > -ProxyFactory proxyFactory = > JavassistProxyFactory.getInstance().createProxyFactory(this); > - > ResourceInjectionService resourceService = > ServiceLoader.getService(ResourceInjectionService.class); > -this.actualResourceReference = > resourceService.getResourceReference(this.resourceReference); > +instance = > resourceService.getResourceReference(this.resourceReference); > > -instance = >(X)(JavassistProxyFactory.getInstance().getProxyClass(proxyFactory).newInstance()); >; > -((ProxyObject)instance).setHandler(new > ResourceProxyHandler(this.actualResourceReference)); > -} > -catch (Exception e) > -{ > -//check type is final > -//return actual resource > - > if(Modifier.isFinal(this.actualResourceReference.getClass().getModifiers())) > +if (instance != null && > Modifier.isFinal(instance.getClass().getModifiers())) > { > -return this.actualResourceReference; > +return instance; > } > > +instance = (X) >JavassistProxyFactory.getInstance().getResourceBeanProxyClass(this).newInstance(); >; > +((ProxyObject) instance).setHandler(new > ResourceProxyHandler(this,instance)); > +} > +catch (Exception e) > +{ > throw new WebBeansException(e); > } > - > + > return instance; > } > > -@Override > -protected void destroyInstance(X instance, CreationalContext > creationalContext) > +/** > + * Called after deserialization to get a new instance for some type of > resource bean instance that are > + * not serializable. > + * > + * @return a new instance of this resource bean. > + */ > +public X getActualInstance() > { > -this.actualResourceReference = null; > +ResourceInjectionService resourceService = > ServiceLoa
Re: svn commit: r1028219 - in /openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans: component/ResourceBean.java proxy/JavassistProxyFactory.java
This change to ResourceBean doesn't compile. It appears to be a partial backport. I attempted to quickly resolve it by bringing in the ResourceProxyHandler from trunk but hit another set of failures. In the meantime I have reverted it. Sincerely, Joe On Thu, Oct 28, 2010 at 4:44 AM, wrote: > Author: gerdogdu > Date: Thu Oct 28 08:44:01 2010 > New Revision: 1028219 > > URL: http://svn.apache.org/viewvc?rev=1028219&view=rev > Log: > [OWB-486] ResourceBean tries to proxy final classes before testing them for > being final, thanks to David Jencks, Also includes sync. problem that Ying > has provided > > Modified: > > > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java > > > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java > > Modified: > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java > URL: > http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java?rev=1028219&r1=1028218&r2=1028219&view=diff > > == > --- > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java > (original) > +++ > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/component/ResourceBean.java > Thu Oct 28 08:44:01 2010 > @@ -21,8 +21,6 @@ package org.apache.webbeans.component; > import java.lang.annotation.Annotation; > import java.lang.reflect.Modifier; > > -import javassist.util.proxy.ProxyFactory; > - > import javax.enterprise.context.spi.CreationalContext; > > import javassist.util.proxy.ProxyObject; > @@ -35,8 +33,6 @@ import org.apache.webbeans.spi.api.Resou > > public class ResourceBean extends > ProducerFieldBean > { > -private X actualResourceReference = null; > - > private ResourceReference resourceReference = null; > > public ResourceBean(Class returnType, InjectionTargetBean > ownerBean, > @@ -55,37 +51,38 @@ public class ResourceBean X instance = null; > try > { > -//X TODO cache proxy class! > -ProxyFactory proxyFactory = > JavassistProxyFactory.getInstance().createProxyFactory(this); > - > ResourceInjectionService resourceService = > ServiceLoader.getService(ResourceInjectionService.class); > -this.actualResourceReference = > resourceService.getResourceReference(this.resourceReference); > +instance = > resourceService.getResourceReference(this.resourceReference); > > -instance = > (X)(JavassistProxyFactory.getInstance().getProxyClass(proxyFactory).newInstance()); > -((ProxyObject)instance).setHandler(new > ResourceProxyHandler(this.actualResourceReference)); > -} > -catch (Exception e) > -{ > -//check type is final > -//return actual resource > - > if(Modifier.isFinal(this.actualResourceReference.getClass().getModifiers())) > +if (instance != null && > Modifier.isFinal(instance.getClass().getModifiers())) > { > -return this.actualResourceReference; > +return instance; > } > > +instance = (X) > JavassistProxyFactory.getInstance().getResourceBeanProxyClass(this).newInstance(); > +((ProxyObject) instance).setHandler(new > ResourceProxyHandler(this,instance)); > +} > +catch (Exception e) > +{ > throw new WebBeansException(e); > } > - > + > return instance; > } > > -@Override > -protected void destroyInstance(X instance, CreationalContext > creationalContext) > +/** > + * Called after deserialization to get a new instance for some type of > resource bean instance that are > + * not serializable. > + * > + * @return a new instance of this resource bean. > + */ > +public X getActualInstance() > { > -this.actualResourceReference = null; > +ResourceInjectionService resourceService = > ServiceLoader.getService(ResourceInjectionService.class); > +X instance = > resourceService.getResourceReference(this.resourceReference); > +return instance; > } > - > - > + > public boolean isPassivationCapable() > { > return true; > > Modified: > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java > URL: > http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=1028219&r1=1028218&r2=1028219&view=diff > > == > --- > openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/proxy/Ja