Submitted: https://github.com/jsr107/jsr107spec/issues/401 I suppose they will tell the issue is from DS...:(
On Fri, Apr 20, 2018 at 2:36 PM, Luís Alves <luisalve...@gmail.com> wrote: > I suppose it's CDI capable. > > https://www.jcp.org/en/jsr/detail?id=107 > > Red Hat > : Pete Muir <--- is on the expert group > > > * @author Gavin King > * @author Pete Muir > * @author Antoine Sabot-Durand > */ > > @Target({ TYPE, METHOD, FIELD }) > @Retention(RUNTIME) > @Documented > @NormalScope > @Inherited > public @interface ApplicationScoped { > > } > > > what I don't understand is how DS look for the interceptors? Can you point > me out the code? > Isn't possible to look for all annotations even if they don't have > @InterceptorBinding and then look for the registered interceptors? > > > > > On Fri, Apr 20, 2018 at 2:33 PM, Luís Alves <luisalve...@gmail.com> wrote: > >> I suppose it's CDI capable. >> >> https://www.jcp.org/en/jsr/detail?id=107 >> >> >> >> On Fri, Apr 20, 2018 at 2:24 PM, Thomas Andraschko < >> andraschko.tho...@gmail.com> wrote: >> >>> Puh, i wonder why they did it without binding. CacheResult is actually >>> exactly a binding for the interceptor. >>> Is it CDI compatible? Never had a look at the cache API ;) >>> >>> Even there is a bridge or something available ( >>> https://github.com/tomitribe/jcache-cdi), i'm not sure if this would >>> work >>> with the limited ability to add interceptors to partial beans. >>> >>> I think the best solution for now is to create a own binding. >>> >>> 2018-04-20 14:55 GMT+02:00 Luís Alves <luisalve...@gmail.com>: >>> >>> > uhm...that's not good :S >>> > >>> > the annotation is this one: >>> > >>> > https://static.javadoc.io/javax.cache/cache-api/1.0.0/ >>> > javax/cache/annotation/CacheResult.html >>> > >>> > is there a way that using that annotation we get the interceptor to >>> work? >>> > (I can implement the interceptor myself....as I said I cannot modify >>> the >>> > annotation as it is javax packge) >>> > >>> > >>> > >>> > On Fri, Apr 20, 2018 at 1:41 PM, Thomas Andraschko < >>> > andraschko.tho...@gmail.com> wrote: >>> > >>> > > Just to be clear: I have no idea how internally CacheResult works >>> but our >>> > > partial beans only supports CDI interceptors by a binding >>> > > (InterceptorBinding). >>> > > Everything else, like stated in the doc (@Interceptors, @Intercepted, >>> > > @Decorator), is not supported. >>> > > >>> > > 2018-04-20 14:31 GMT+02:00 Thomas Andraschko < >>> > andraschko.tho...@gmail.com >>> > > >: >>> > > >>> > > > In must not work without the interceptorbinding. Do you mean that >>> it >>> > does >>> > > > work without? >>> > > > >>> > > > >>> > > > Am Freitag, 20. April 2018 schrieb Luís Alves : >>> > > > >>> > > >> can you update your test to remove @InterceptorBinding? and check >>> if >>> > it >>> > > >> works? >>> > > >> >>> > > >> javax.cache.annotation.CacheResult is standard so I don't want >>> to >>> > > extend >>> > > >> it to have the @InterceptorBinding.....if this is really the >>> problem. >>> > > >> >>> > > >> On Fri, Apr 20, 2018 at 1:11 PM, Luís Alves < >>> luisalve...@gmail.com> >>> > > >> wrote: >>> > > >> >>> > > >> > @Retention(RUNTIME) >>> > > >> > @Target({ TYPE, METHOD }) >>> > > >> > // @InterceptorBinding >>> > > >> > public @interface CustomInterceptor >>> > > >> > { >>> > > >> > } >>> > > >> > >>> > > >> > I suspect is this @InterceptorBinding....but not 100% >>> sure....what >>> > is >>> > > >> the >>> > > >> > purpose of that? >>> > > >> > >>> > > >> > On Fri, Apr 20, 2018 at 1:06 PM, Luís Alves < >>> luisalve...@gmail.com> >>> > > >> wrote: >>> > > >> > >>> > > >> >> don't you want to rewrite your tests with the @CacheResult >>> > > interceptor >>> > > >> ;) >>> > > >> >> ? to see if it works? >>> > > >> >> >>> > > >> >> On Fri, Apr 20, 2018 at 12:57 PM, Thomas Andraschko < >>> > > >> >> andraschko.tho...@gmail.com> wrote: >>> > > >> >> >>> > > >> >>> No idea, debug if the interceptor is really called ;) >>> > > >> >>> >>> > > >> >>> 2018-04-20 13:56 GMT+02:00 Luís Alves <luisalve...@gmail.com >>> >: >>> > > >> >>> >>> > > >> >>> > moved the @CustomInterceptor declaration of the interceptor >>> for >>> > > the >>> > > >> >>> web app >>> > > >> >>> > beans.xml and now it gets called....SO it should work for >>> the >>> > > cache >>> > > >> as >>> > > >> >>> > well. Any hint? >>> > > >> >>> > >>> > > >> >>> > On Fri, Apr 20, 2018 at 12:43 PM, Luís Alves < >>> > > luisalve...@gmail.com >>> > > >> > >>> > > >> >>> > wrote: >>> > > >> >>> > >>> > > >> >>> > > So I've created a custom one (in fact is a "copy" of yours >>> > that >>> > > >> logs >>> > > >> >>> a >>> > > >> >>> > > line): >>> > > >> >>> > > >>> > > >> >>> > > @Interceptor >>> > > >> >>> > > @CustomInterceptor >>> > > >> >>> > > public class CustomInterceptorImpl implements Serializable >>> > > >> >>> > > { >>> > > >> >>> > > >>> > > >> >>> > > private static final long serialVersionUID = >>> > > >> >>> 7327752605570037403L; >>> > > >> >>> > > >>> > > >> >>> > > @Inject >>> > > >> >>> > > private Logger logger; >>> > > >> >>> > > >>> > > >> >>> > > @AroundInvoke >>> > > >> >>> > > public Object interceptIt(InvocationContext >>> > > invocationContext) >>> > > >> >>> throws >>> > > >> >>> > > Exception >>> > > >> >>> > > { >>> > > >> >>> > > logger.info("yay :) CustomInterceptorImpl was >>> > called"); >>> > > >> >>> > > return invocationContext.proceed(); >>> > > >> >>> > > } >>> > > >> >>> > > } >>> > > >> >>> > > >>> > > >> >>> > > registered on the beans.xml (for service and repo layers): >>> > > >> >>> > > >>> > > >> >>> > > <?xml version="1.0" encoding="UTF-8"?> >>> > > >> >>> > > <beans xmlns="http://java.sun.com/xml/ns/javaee" >>> xmlns:xsi=" >>> > > >> >>> > > http://www.w3.org/2001/XMLSchema-instance" >>> > > >> >>> > > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >>> > > >> >>> > > http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> >>> > > >> >>> > > >>> > > >> >>> > > <interceptors> >>> > > >> >>> > > <class>org.jsr107.ri.annotations.cdi. >>> > > >> >>> > > CacheResultInterceptor</class> >>> > > >> >>> > > ... >>> > > >> >>> > > <class>eu.gls.ddtm.config. >>> > CustomInterceptorImpl</class> >>> > > >> >>> > > </interceptors> >>> > > >> >>> > > >>> > > >> >>> > > </beans> >>> > > >> >>> > > >>> > > >> >>> > > It's called on the service layer but not on the >>> @Repository :( >>> > > >> >>> > > >>> > > >> >>> > > ...I'm using Wildfly 10 (CDI 1.x)... >>> > > >> >>> > > >>> > > >> >>> > > >>> > > >> >>> > > >>> > > >> >>> > > On Fri, Apr 20, 2018 at 11:50 AM, Thomas Andraschko < >>> > > >> >>> > > andraschko.tho...@gmail.com> wrote: >>> > > >> >>> > > >>> > > >> >>> > >> You can try with a custom interceptor and check if it's >>> > > invoked? >>> > > >> >>> > >> >>> > > >> >>> > >> I assume you don't use weld-2.0.0.Final or >>> weld-2.0.0.SP1? We >>> > > >> have a >>> > > >> >>> > >> exclusion for this in the unit test as there is something >>> > > broken, >>> > > >> >>> as you >>> > > >> >>> > >> can check in the link i posted before. >>> > > >> >>> > >> Otherwise, it would be great if you could provide a >>> unittest >>> > > for >>> > > >> the >>> > > >> >>> > data >>> > > >> >>> > >> module. >>> > > >> >>> > >> I don't have time to prepare it by myself. >>> > > >> >>> > >> >>> > > >> >>> > >> >>> > > >> >>> > >> 2018-04-20 12:40 GMT+02:00 Luís Alves < >>> luisalve...@gmail.com >>> > >: >>> > > >> >>> > >> >>> > > >> >>> > >> > So far no success...@CacheResult on >>> > > >> >>> > >> > >>> > > >> >>> > >> > @ApplicationScoped >>> > > >> >>> > >> > @Repository >>> > > >> >>> > >> > public abstract class SomeRepository >>> > > >> >>> > >> > >>> > > >> >>> > >> > doesn't seem to work :S not sure what I'm doing wrong. >>> > > >> >>> > >> > >>> > > >> >>> > >> > >>> > > >> >>> > >> > On Fri, Apr 20, 2018 at 11:03 AM, Luís Alves < >>> > > >> >>> luisalve...@gmail.com> >>> > > >> >>> > >> > wrote: >>> > > >> >>> > >> > >>> > > >> >>> > >> > > I ditched the CustomBaseRepository for now...but >>> still >>> > > can't >>> > > >> >>> get the >>> > > >> >>> > >> > cache >>> > > >> >>> > >> > > interceptor to work...here is my beans.xml: >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > <?xml version="1.0" encoding="UTF-8"?> >>> > > >> >>> > >> > > <beans xmlns="http://java.sun.com/xml/ns/javaee" >>> > > xmlns:xsi=" >>> > > >> >>> > >> > > http://www.w3.org/2001/XMLSchema-instance" >>> > > >> >>> > >> > > xsi:schemaLocation="http:// >>> > java.sun.com/xml/ns/javaee >>> > > >> >>> > >> > > http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > <interceptors> >>> > > >> >>> > >> > > <class>org.jsr107.ri.annotations.cdi. >>> > > >> >>> > >> > > CacheResultInterceptor</class> >>> > > >> >>> > >> > > <class>org.jsr107.ri.annotations.cdi. >>> > > >> >>> > >> > CacheRemoveEntryInterceptor</ >>> > > >> >>> > >> > > class> >>> > > >> >>> > >> > > <class>org.jsr107.ri.annotati >>> > > >> >>> ons.cdi.CacheRemoveAllIntercep >>> > > >> >>> > >> tor</ >>> > > >> >>> > >> > > class> >>> > > >> >>> > >> > > <class>org.jsr107.ri.annotati >>> > > >> >>> ons.cdi.CachePutInterceptor</ >>> > > >> >>> > >> class> >>> > > >> >>> > >> > > </interceptors> >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > </beans> >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > LA >>> > > >> >>> > >> > > >>> > > >> >>> > >> > > On Fri, Apr 20, 2018 at 10:45 AM, Luís Alves < >>> > > >> >>> luisalve...@gmail.com >>> > > >> >>> > > >>> > > >> >>> > >> > > wrote: >>> > > >> >>> > >> > > >>> > > >> >>> > >> > >> Thanks Thomas, >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> if I understood correctly if they are on the >>> bean.xml >>> > they >>> > > >> >>> should >>> > > >> >>> > >> works >>> > > >> >>> > >> > >> :)...only annotated one don't work. >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> I'm now (not sure why I didn't had it before) >>> getting: >>> > > >> >>> > >> > >> org.apache.deltaspike.data.imp >>> > > >> l.RepositoryDefinitionException: >>> > > >> >>> > >> > >> Repository creation for class class >>> CustomBaseRepository >>> > > >> >>> failed. Is >>> > > >> >>> > >> it >>> > > >> >>> > >> > >> associated with a valid Entity? I got this base >>> class >>> > for >>> > > >> some >>> > > >> >>> > >> > repositories >>> > > >> >>> > >> > >> for some similar behavior: >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> public abstract class CustomBaseRepository <E >>> extends >>> > > >> >>> > >> DomainObject<K>, K >>> > > >> >>> > >> > >> extends Serializable> >>> > > >> >>> > >> > >> extends AbstractEntityRepository<E, K> >>> > > >> >>> > >> > >> { >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> not sure if this inheritance is supposed to work >>> with >>> > the >>> > > >> >>> Repos... >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> On Fri, Apr 20, 2018 at 10:23 AM, Thomas Andraschko >>> < >>> > > >> >>> > >> > >> andraschko.tho...@gmail.com> wrote: >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >>> See: >>> > > >> >>> > >> > >>> https://github.com/apache/delt >>> > > >> aspike/tree/master/deltaspike/ >>> > > >> >>> > >> > >>> modules/partial-bean/impl/src/ >>> > > >> test/java/org/apache/deltaspik >>> > > >> >>> > >> > >>> e/test/core/api/partialbean/uc008 >>> > > >> >>> > >> > >>> >>> > > >> >>> > >> > >>> 2018-04-20 11:22 GMT+02:00 Thomas Andraschko < >>> > > >> >>> > >> > >>> andraschko.tho...@gmail.com>: >>> > > >> >>> > >> > >>> >>> > > >> >>> > >> > >>> > Interceptors in generell should be supported but >>> only >>> > > via >>> > > >> >>> custom >>> > > >> >>> > >> > >>> binding - >>> > > >> >>> > >> > >>> > not via "@Interceptors, @Intercepted and >>> @Decorator" >>> > > >> >>> > >> > >>> > >>> > > >> >>> > >> > >>> > 2018-04-20 11:21 GMT+02:00 Luís Alves < >>> > > >> >>> luisalve...@gmail.com>: >>> > > >> >>> > >> > >>> > >>> > > >> >>> > >> > >>> >> So far I found that @Repository is actually a >>> > > >> >>> > @PartialBeanBinding >>> > > >> >>> > >> > and >>> > > >> >>> > >> > >>> I >>> > > >> >>> > >> > >>> >> found: "Currently CDI Interceptors applied via >>> > > >> >>> @Interceptors, >>> > > >> >>> > >> > >>> @Intercepted >>> > > >> >>> > >> > >>> >> and @Decorator are not supported by our proxies! >>> > > >> "...does >>> > > >> >>> it >>> > > >> >>> > >> means >>> > > >> >>> > >> > >>> that >>> > > >> >>> > >> > >>> >> I'm >>> > > >> >>> > >> > >>> >> screwed ;)? >>> > > >> >>> > >> > >>> >> >>> > > >> >>> > >> > >>> >> LA >>> > > >> >>> > >> > >>> >> >>> > > >> >>> > >> > >>> >> On Fri, Apr 20, 2018 at 10:11 AM, Luís Alves < >>> > > >> >>> > >> luisalve...@gmail.com >>> > > >> >>> > >> > > >>> > > >> >>> > >> > >>> >> wrote: >>> > > >> >>> > >> > >>> >> >>> > > >> >>> > >> > >>> >> > even with @ApplicationScoped the interceptor >>> is >>> > not >>> > > >> >>> working >>> > > >> >>> > :( >>> > > >> >>> > >> > can't >>> > > >> >>> > >> > >>> >> > figure out why...can't @Repository methods be >>> > > >> >>> intercepted? >>> > > >> >>> > >> > >>> >> > >>> > > >> >>> > >> > >>> >> > >>> > > >> >>> > >> > >>> >> > >>> > > >> >>> > >> > >>> >> > On Fri, Apr 20, 2018 at 9:53 AM, Luís Alves < >>> > > >> >>> > >> > luisalve...@gmail.com> >>> > > >> >>> > >> > >>> >> wrote: >>> > > >> >>> > >> > >>> >> > >>> > > >> >>> > >> > >>> >> >> since it's proxied...it should be OK...I >>> guess >>> > it's >>> > > >> like >>> > > >> >>> > >> > Spring's >>> > > >> >>> > >> > >>> >> >> repositories. >>> > > >> >>> > >> > >>> >> >> >>> > > >> >>> > >> > >>> >> >> On Fri, Apr 20, 2018 at 9:44 AM, Luís Alves < >>> > > >> >>> > >> > luisalve...@gmail.com >>> > > >> >>> > >> > >>> > >>> > > >> >>> > >> > >>> >> >> wrote: >>> > > >> >>> > >> > >>> >> >> >>> > > >> >>> > >> > >>> >> >>> Hi, >>> > > >> >>> > >> > >>> >> >>> >>> > > >> >>> > >> > >>> >> >>> @Repository is @Dependent scoped...and seems >>> > that >>> > > >> >>> > @Dependent >>> > > >> >>> > >> > >>> don't run >>> > > >> >>> > >> > >>> >> >>> interceptors, so @CacheResult(cacheName = >>> > > >> "my-cache") >>> > > >> >>> > >> annotation >>> > > >> >>> > >> > >>> isn't >>> > > >> >>> > >> > >>> >> >>> working :( >>> > > >> >>> > >> > >>> >> >>> I remember that some one proposed that >>> > @Repository >>> > > >> >>> > >> could/should >>> > > >> >>> > >> > be >>> > > >> >>> > >> > >>> >> >>> @ApplicationScoped...if I change them do I >>> have >>> > > to >>> > > >> >>> worry >>> > > >> >>> > >> with >>> > > >> >>> > >> > >>> >> anything? My >>> > > >> >>> > >> > >>> >> >>> EntityManager producer is the following: >>> > > >> >>> > >> > >>> >> >>> >>> > > >> >>> > >> > >>> >> >>> @Produces >>> > > >> >>> > >> > >>> >> >>> @RequestScoped >>> > > >> >>> > >> > >>> >> >>> public EntityManager get() >>> > > >> >>> > >> > >>> >> >>> { >>> > > >> >>> > >> > >>> >> >>> return entityManager; >>> > > >> >>> > >> > >>> >> >>> } >>> > > >> >>> > >> > >>> >> >>> >>> > > >> >>> > >> > >>> >> >>> I suppose I'll have a different EM for each >>> HTTP >>> > > >> >>> request / >>> > > >> >>> > >> MDB >>> > > >> >>> > >> > >>> >> >>> onMessage() / @Scheduled(cronExpression >>> > > >> ="....")...am I >>> > > >> >>> > >> correct? >>> > > >> >>> > >> > >>> >> >>> >>> > > >> >>> > >> > >>> >> >>> regards, >>> > > >> >>> > >> > >>> >> >>> LA >>> > > >> >>> > >> > >>> >> >>> >>> > > >> >>> > >> > >>> >> >> >>> > > >> >>> > >> > >>> >> >> >>> > > >> >>> > >> > >>> >> > >>> > > >> >>> > >> > >>> >> >>> > > >> >>> > >> > >>> > >>> > > >> >>> > >> > >>> > >>> > > >> >>> > >> > >>> >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > >> >>> > > >> >>> > >> > > >>> > > >> >>> > >> > >>> > > >> >>> > >> >>> > > >> >>> > > >>> > > >> >>> > > >>> > > >> >>> > >>> > > >> >>> >>> > > >> >> >>> > > >> >> >>> > > >> > >>> > > >> >>> > > > >>> > > >>> > >>> >> >> >