@Mark: not sure what you mean and which case you have in mind. Can you
precise your answer please and what prevents my patch to work?

Le lun. 11 nov. 2019 à 20:13, Mark Struberg <strub...@yahoo.de.invalid> a
écrit :

> no we still need it imo
>
> > Am 09.11.2019 um 16:30 schrieb Romain Manni-Bucau <rmannibu...@gmail.com
> >:
> >
> > Hi everyone,
> >
> > I wonder if we can drop the loop
> > in org.apache.webbeans.proxy.AbstractProxyFactory#getUnusedProxyClassName
> > to ensure we have stable names for proxies.
> > The rational behind that is to:
> >
> > 1. Stop creating the same class again and again when we
> > start/stop/restart/restop/... a container in the same classloader
> > 2. Ensure we have deterministic names for the same proxy (currently, when
> > the name are conflicting, it depends what was executed before, even in
> the
> > same app!).
> >
> > From a quick review we only need to mark the intercepted methods in the
> > proxy name to ensure we can reuse the existing class. Therefore a quick
> > proposal for the proxy name suffix is:
> >
> > +    protected String getProxySuffix(final Method[] interceptedMethods,
> > +                                    final Method[]
> nonInterceptedMethods) {
> > +        return "__i_" + getMethodsId(interceptedMethods);
> > +    }
> > +
> > +    private String getMethodsId(final Method[] methods, final
> > Predicate<Method> filter) {
> > +        return Stream.of(methods)
> > +                .filter(filter)
> > +                .map(m -> m.getName() +
> > +
> >
> Stream.of(m.getParameterTypes()).map(Class::getSimpleName).collect(joining()))
> > +                .collect(joining("_"));
> > +    }
> >
> > Full patch is available here:
> > https://gist.github.com/rmannibucau/6f6cdf8d605387ac8820dcbc76e67909
> >
> > Wdyt?
> >
> > If not desired, should I
> > enrich org.apache.webbeans.spi.DefiningClassService with that feature?
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
>
>

Reply via email to