+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);
> >>
> >
>

Reply via email to