One desperate step further and success?!?

added apache-deltaspike.properties: deltaspike.bean-manager.delegate_lookup
= false
Now all tests pass in partial-bean.impl for wildfly-build-managed!
(But then the Weld-only tests fail, reason to be identified :-/

The difference I understand is to use the BeanManager passed
to @AfterBeanDiscovery instead of CDI.current()

Any ideas?
Useful approach?
Add a property for Wildfly to handle this?


Am Fr., 8. März 2024 um 20:49 Uhr schrieb Romain Manni-Bucau <
rmannibu...@gmail.com>:

> Hmm, not sure I got it all but weld uses BDA isolation - no link to
> classloaders, linked to physical jars/folders even in the same classloader.
> The web-inf/classes can also see more than the web-inf/lib/x.jar due to
> that - but it is a spec abuse AFAIK.
> This is a blurry line in the CDI spec where vendors never agreed upon.
>
> I guess we can just detect it is weld and fallback on multiple captured bm
> (jndi, provider one, CDI.current()) but it stays very fragile.
>
> 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
> >
>
>
> Le ven. 8 mars 2024 à 19:34, Thomas Frühbeck <t.fruehb...@gmail.com> a
> écrit :
>
> > Follow-Up: when designing Weld-only test I had missed a detail :-/
> > Now following Weld-only test works perfectly fine!
> >
> > I desingned a bm#interceptorLookup on an injected BM in the arquillian
> > test: works fine!
> >
> > The interceptor resolution inside DS by injected(!)
> > DeltaSpikeProxyInterceptorLookup fails!
> >
> > So it seems that finally the reason may be the deployment isolation in
> > Wildfly?!
> >
> > According docs web-archives should have flat CL, so I see no reason for
> > isolation, I could not find any related configuration :-/
> >
> > I designed a simple 2-module web-app to simulate "reverse-visibility"
> > issue: no problem detected!!
> >
> > Maybe the problem is related to the time, when
> BeanManagerProviderExtension
> > is fired - due to concurrent CL?
> > I will try to simulate, but anyway: the problem seems to be substantial.
> >
> > How to proceed?
> > Suggestions much appreciated!
> >
> > Simple Weld-only test:
> >     weld = new Weld().disableDiscovery()
> >             .addExtension(new BeanManagerProvider())
> >             .addExtension(new PartialBeanBindingExtension())
> >             .addInterceptor(CustomInterceptorImpl.class)
> >             .addPackages(CustomInterceptor.class, PartialBean.class,
> > DeltaSpikeProxyInvocationHandler.class)
> >             .addBeanClass(PartialBean.class);
> >     container = weld.initialize();
> >     beanManager = container.getBeanManager();
> >     deltaSpikeProxyInterceptorLookup =
> >
> >
> BeanProvider.getContextualReference(DeltaSpikeProxyInterceptorLookup.class);
> >
> >     PartialBean partialBean =
> > BeanProvider.getContextualReference(PartialBean.class);
> >     List<Interceptor<?>> interceptorListBm =
> > beanManager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new
> > AnnotationLiteral<CustomInterceptor>() {});
> >     Assert.assertFalse(interceptorListBm.isEmpty());
> >
> >     List<Interceptor<?>> interceptorList =
> > deltaSpikeProxyInterceptorLookup.lookup(partialBean,
> > PartialBean.class.getMethod("getResult"));
> >     Assert.assertFalse(interceptorList.isEmpty());
> >
> >
> >
> > Am Di., 5. März 2024 um 21:46 Uhr schrieb Romain Manni-Bucau <
> > rmannibu...@gmail.com>:
> >
> > > Not sure what does weld in standalone mode but there JNDI is undefined.
> > > That said it is still a change in behavior so a regression.
> > > Anyone spotted that in the spec or is it a new BDA interpretation of
> > weld?
> > >
> > > Fact that the behavior is broken in wildfly and broken in standalone
> > > compared to old version is fishy, means we should use the BM only in
> > > extension somehow which is just not compatible with most CDI code so
> I'm
> > > quite hesitant to modify DS where Weld is likely the culprit, wdyt?
> > >
> > >
> > >
> >
>

Reply via email to