+1 we use it pretty much in TomEE and not sure about the argument "the code is not used here so i can change it"
btw the separation could be reworked for sure *Romain Manni-Bucau* *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* *Github: https://github.com/rmannibucau* 2012/11/15 Mark Struberg <strub...@yahoo.de> > Actually that code is used in TomEE afaik. We might think about better > separation between CDI and EJB in the end. > > Also this part would need unit test - another argument for creating a JIRA. > > LieGrue, > strub > > > > > ----- Original Message ----- > > From: Gurkan Erdogdu <gurkanerdo...@yahoo.com> > > To: "dev@openwebbeans.apache.org" <dev@openwebbeans.apache.org> > > Cc: > > Sent: Thursday, November 15, 2012 2:16 PM > > Subject: Re: svn commit: r1409751 - in > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > ProxyFactory.java javassist/JavassistFactory.java > > > > Hey Mark > > > > > > I don't think to create JIRA issues for every commit. I think that this > is > > not a big change, this method is not used in anywhere in the codebase > and only > > used for EJB purposes. Someone removed this code while removing Javassist > > functionality and introduces regression. Sure to always open for a big > changes! > > > > > > Gurkan > > > > > > > > ________________________________ > > Kimden: Mark Struberg <strub...@yahoo.de> > > Kime: "dev@openwebbeans.apache.org" > > <dev@openwebbeans.apache.org> > > Gönderildiği Tarih: 15 Kasım 2012 15:10 Perşembe > > Konu: Re: svn commit: r1409751 - in > > > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > > ProxyFactory.java javassist/JavassistFactory.java > > > > Gurkan, please create a JIRA for all other than cosmetical changes! > > This is a pretty big change internally and really requires a JIRA entry. > > > > txs and LieGrue, > > strub > > > > > > > > ----- Original Message ----- > >> From: "gerdo...@apache.org" <gerdo...@apache.org> > >> To: comm...@openwebbeans.apache.org > >> Cc: > >> Sent: Thursday, November 15, 2012 1:25 PM > >> Subject: svn commit: r1409751 - in > > > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > > ProxyFactory.java javassist/JavassistFactory.java > >> > >> Author: gerdogdu > >> Date: Thu Nov 15 12:25:17 2012 > >> New Revision: 1409751 > >> > >> URL: http://svn.apache.org/viewvc?rev=1409751&view=rev > >> Log: > >> Regression in Javassist remove updates > >> > >> Modified: > >> > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > >> > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > >> > >> Modified: > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > >> URL: > >> > > > http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java?rev=1409751&r1=1409750&r2=1409751&view=diff > >> > > > ============================================================================== > >> --- > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > > > >> (original) > >> +++ > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > > > >> Thu Nov 15 12:25:17 2012 > >> @@ -22,6 +22,7 @@ import java.io.Serializable; > >> import java.lang.reflect.Constructor; > >> import java.lang.reflect.InvocationTargetException; > >> import java.lang.reflect.Type; > >> +import java.util.ArrayList; > >> import java.util.HashSet; > >> import java.util.Iterator; > >> import java.util.List; > >> @@ -106,12 +107,60 @@ public final class ProxyFactory > >> */ > >> public Class<?> getEjbBeanProxyClass(OwbBean<?> bean, > >> Class<?> iface) > >> { > >> + Class<?> proxyClass = null; > >> + > >> ConcurrentMap<Class<?>, Class<?>> > > typeToProxyClassMap > >> = ejbProxyClasses.get(bean); > >> - if (typeToProxyClassMap != null) > >> + if (typeToProxyClassMap == null) > >> { > >> - return typeToProxyClassMap.get(iface); > >> + typeToProxyClassMap = new ConcurrentHashMap<Class<?>, > > > >> Class<?>>(); > >> + ConcurrentMap<Class<?>, Class<?>> > > existingMap = > >> ejbProxyClasses.putIfAbsent(bean, typeToProxyClassMap); > >> + > >> + // use the map that beat us, because our new one > definitely > > had no > >> classes in it. > >> + typeToProxyClassMap = (existingMap != null) ? existingMap > : > >> typeToProxyClassMap; > >> } > >> - return null; > >> + > >> + proxyClass = typeToProxyClassMap.get(iface); > >> + > >> + if (proxyClass == null) > >> + { > >> + Class<?> superClazz = null; > >> + List<Class<?>> list = new > >> ArrayList<Class<?>>(); > >> + Class<?>[] interfaces = null; > >> + > >> + if (iface.isInterface()) > >> + { > >> + list.add(iface); > >> + } > >> + else > >> + { > >> + // @LocalBean no-interface local view requested > >> + superClazz = iface; > >> + //Stateless beans with no interface > >> + //To failover bean instance > >> + Class<?>[] ifaces = iface.getInterfaces(); > >> + if(ifaces != null && ifaces.length > 0) > >> + { > >> + //check for serializable > >> + for(Class<?> temp : ifaces) > >> + { > >> + if(temp == Serializable.class) > >> + { > >> + list.add(Serializable.class); > >> + break; > >> + } > >> + } > >> + } > >> + } > >> + > >> + interfaces = new Class<?>[list.size()]; > >> + interfaces = list.toArray(interfaces); > >> + proxyClass = factory.getProxyClass(superClazz, > interfaces); > >> + > >> + typeToProxyClassMap.putIfAbsent(iface, proxyClass); > >> + // don't care if we were beaten in updating the > >> iface->proxyclass map > >> + } > >> + > >> + return proxyClass; > >> } > >> > >> public Object createDecoratorDelegate(OwbBean<?> bean, > >> DelegateHandler newDelegateHandler) > >> > >> Modified: > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > >> URL: > >> > > > http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java?rev=1409751&r1=1409750&r2=1409751&view=diff > >> > > > ============================================================================== > >> --- > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > > > >> (original) > >> +++ > >> > > > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > > > >> Thu Nov 15 12:25:17 2012 > >> @@ -38,7 +38,10 @@ public class JavassistFactory > >> { > >> ProxyFactory fact = new ProxyFactory(); > >> fact.setInterfaces(interfaces); > >> - fact.setSuperclass(superClass); > >> + if(superClass != null) > >> + { > >> + fact.setSuperclass(superClass); > >> + } > >> fact.setFilter(FinalizeMethodFilter.INSTANCE); > >> > >> return getProxyClass(fact); > >> > > >