well....I think we might have an issue with the proceed part:
try {
//Call the annotated method
result = this.proceed(invocation); <-- this is not calling my
method...I think is because the invocation is
org.apache.deltaspike.proxy.impl.invocation.ManualInvocationContext@69b38203
instead of my method :(
any ideas?
On Fri, Apr 20, 2018 at 5:07 PM, Luís Alves <[email protected]> wrote:
> seems to work: org.apache.deltaspike.proxy.impl.invocation.
> ManualInvocationContext@59fae308
>
> not sure the cache is actually working but I think it's not related with
> DS. If possible release a version with the fix:
>
> @ApplicationScoped
> @Specializes
> public class CustomDeltaSpikeProxyInterceptorLookup extends
> InterceptorLookup
> {
>
> @Override
> protected void addInterceptorBindings(BeanManager beanManager,
> ArrayList<Annotation> bindings,
> Annotation[] declaredAnnotations)
> {
> for (Annotation annotation : declaredAnnotations)
> {
> if (bindings.contains(annotation))
> {
> continue;
> }
>
> Class<? extends Annotation> annotationType =
> annotation.annotationType();
>
> * if (**beanManager.isInterceptorBinding(annotationType))*
> {
> bindings.add(annotation);
> }
>
> if (beanManager.isStereotype(annotationType)) *///fun part is
> that here is well done ;)*
> {
> for (Annotation subAnnotation : annotationType.
> getDeclaredAnnotations())
> {
> if (bindings.contains(subAnnotation))
> {
> continue;
> }
>
> if (subAnnotation.annotationType(
> ).isAnnotationPresent(InterceptorBinding.class))
> {
> bindings.add(subAnnotation);
> }
> }
> }
> }
> }
>
> Thanks very much Thomas :)
>
>
> On Fri, Apr 20, 2018 at 4:48 PM, Luís Alves <[email protected]> wrote:
>
>> found this one: org.apache.deltaspike.proxy.im
>> pl.invocation.InterceptorLookup on version 1.8.0
>>
>> On Fri, Apr 20, 2018 at 4:43 PM, Luís Alves <[email protected]>
>> wrote:
>>
>>> where the hell is DeltaSpikeProxyInterceptorLookup? which jar I have to
>>> import?!
>>>
>>>
>>> On Fri, Apr 20, 2018 at 4:25 PM, Luís Alves <[email protected]>
>>> wrote:
>>>
>>>> I'll try....@Specializes on CustomDeltaSpikeProxyInterceptorLookup
>>>> extends DeltaSpikeProxyInterceptorLookup should do the trick.
>>>>
>>>> On Fri, Apr 20, 2018 at 4:19 PM, Thomas Andraschko <
>>>> [email protected]> wrote:
>>>>
>>>>> https://docs.jboss.org/cdi/api/2.0/javax/enterprise/inject/s
>>>>> pi/BeanManager.html#isInterceptorBinding-java.lang.Class-
>>>>>
>>>>> Would be great if you can test it, create a issue and provide a patch.
>>>>>
>>>>> Am Freitag, 20. April 2018 schrieb Luís Alves :
>>>>>
>>>>> > I have no idea if it's possible or not. Isn't any CDI expert on the
>>>>> mailing
>>>>> > list that want to help? ;)
>>>>> >
>>>>> > https://docs.oracle.com/javaee/7/api/javax/enterprise/inject/spi/
>>>>> > BeforeBeanDiscovery.html#addInterceptorBinding-javax.enterpr
>>>>> ise.inject.spi
>>>>> > .
>>>>> > AnnotatedType- doesn't make the annotation visible to
>>>>> (annotationType.
>>>>> > isAnnotationPresent(InterceptorBinding.class))...we need some
>>>>> runtime way
>>>>> > to check it...
>>>>> >
>>>>> > BTW if a solutions is found can you make it available on 1.8.2?
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > On Fri, Apr 20, 2018 at 3:33 PM, Thomas Andraschko <
>>>>> > [email protected]> wrote:
>>>>> >
>>>>> > > Yep, they add the interceptorBinding dynamically:
>>>>> > > https://github.com/jsr107/RI/blob/master/cache-annotations-
>>>>> > > ri/cache-annotations-ri-cdi/src/main/java/org/jsr107/ri/anno
>>>>> tations/cdi/
>>>>> > > InterceptorExtension.java
>>>>> > >
>>>>> > > Just check our code here:
>>>>> > > https://github.com/apache/deltaspike/blob/master/
>>>>> > > deltaspike/modules/proxy/api/src/main/java/org/apache/
>>>>> > > deltaspike/proxy/spi/invocation/DeltaSpikeProxyInterceptorLook
>>>>> > up.java#L90
>>>>> > >
>>>>> > > This code would need ask CDI if this annotation is a interceptor
>>>>> binding
>>>>> > > (if possible, not sure if it's in the CDI API). Then your case
>>>>> should
>>>>> > work.
>>>>> > >
>>>>> > > 2018-04-20 16:25 GMT+02:00 Luís Alves <[email protected]>:
>>>>> > >
>>>>> > > > This is the reference implementation of the interceptors:
>>>>> > > > https://github.com/jsr107/RI
>>>>> > > > They have:
>>>>> > > >
>>>>> > > > <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.
>>>>> > CachePutInterceptor</class>
>>>>> > > >
>>>>> > > > <class>org.jsr107.ri.annotations.cdi.CacheRemoveEntryInterce
>>>>> ptor</
>>>>> > class>
>>>>> > > >
>>>>> > > > <class>org.jsr107.ri.annotations.cdi.CacheRemoveAllIntercept
>>>>> or</class>
>>>>> > > > </interceptors>
>>>>> > > > </beans>
>>>>> > > >
>>>>> > > > and they have 2files with:
>>>>> > > >
>>>>> > > > org.jsr107.ri.annotations.cdi.InterceptorExtension
>>>>> > > >
>>>>> > > > and
>>>>> > > >
>>>>> > > > org.jsr107.ri.annotations.cdi.CdiAnnotationProviderImpl
>>>>> > > >
>>>>> > > > The interceptors work on a normal cdi bean.
>>>>> > > >
>>>>> > > > On Fri, Apr 20, 2018 at 3:17 PM, Thomas Andraschko <
>>>>> > > > [email protected]> wrote:
>>>>> > > >
>>>>> > > > > AFAIK there 2 ways of using interceptors with CDI:
>>>>> > > > >
>>>>> > > > > 1) @InterceptorBinding
>>>>> > > > > 2) @Interceptors(..)
>>>>> > > > >
>>>>> > > > > We only support 1) currently.
>>>>> > > > >
>>>>> > > > > So i have currently no idea how @CacheResult will work even a
>>>>> normal
>>>>> > > CDI
>>>>> > > > > bean. Maybe it's done in Wildfly but not via the "normal" CDI
>>>>> way.
>>>>> > > > >
>>>>> > > > >
>>>>> > > > >
>>>>> > > > >
>>>>> > > > > 2018-04-20 15:48 GMT+02:00 Luís Alves <[email protected]>:
>>>>> > > > >
>>>>> > > > > > 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 <
>>>>> [email protected]
>>>>> > >
>>>>> > > > > 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 <
>>>>> > [email protected]
>>>>> > > >
>>>>> > > > > > 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 <
>>>>> > > > > > >> [email protected]> 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 <
>>>>> [email protected]>:
>>>>> > > > > > >>>
>>>>> > > > > > >>> > 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 <
>>>>> > > > > > >>> > [email protected]> 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 <
>>>>> > > > > > >>> > [email protected]
>>>>> > > > > > >>> > > >:
>>>>> > > > > > >>> > >
>>>>> > > > > > >>> > > > 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 <
>>>>> > > > > > >>> [email protected]>
>>>>> > > > > > >>> > > >> 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 <
>>>>> > > > > > >>> [email protected]>
>>>>> > > > > > >>> > > >> 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 <
>>>>> > > > > > >>> > > >> >> [email protected]> wrote:
>>>>> > > > > > >>> > > >> >>
>>>>> > > > > > >>> > > >> >>> No idea, debug if the interceptor is really
>>>>> called
>>>>> > ;)
>>>>> > > > > > >>> > > >> >>>
>>>>> > > > > > >>> > > >> >>> 2018-04-20 13:56 GMT+02:00 Luís Alves <
>>>>> > > > > > [email protected]
>>>>> > > > > > >>> >:
>>>>> > > > > > >>> > > >> >>>
>>>>> > > > > > >>> > > >> >>> > 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 <
>>>>> > > > > > >>> > > [email protected]
>>>>> > > > > > >>> > > >> >
>>>>> > > > > > >>> > > >> >>> > 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/jav
>>>>> aee/beans_1_0.xsd
>>>>> > ">
>>>>> > > > > > >>> > > >> >>> > >
>>>>> > > > > > >>> > > >> >>> > > <interceptors>
>>>>> > > > > > >>> > > >> >>> > > <class>org.jsr107.ri.annotati
>>>>> ons.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
>>>>> > > > <
>>>>> > > > > > >>> > > >> >>> > > [email protected]> 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 <
>>>>> > > > > > >>> [email protected]
>>>>> > > > > > >>> > >:
>>>>> > > > > > >>> > > >> >>> > >>
>>>>> > > > > > >>> > > >> >>> > >> > 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
>>>>> > <
>>>>> > > > > > >>> > > >> >>> [email protected]>
>>>>> > > > > > >>> > > >> >>> > >> > 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/XMLSche
>>>>> ma-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
>>>>> > > <
>>>>> > > > > > >>> > > >> >>> [email protected]
>>>>> > > > > > >>> > > >> >>> > >
>>>>> > > > > > >>> > > >> >>> > >> > > 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
>>>>> > > > > > >>> <
>>>>> > > > > > >>> > > >> >>> > >> > >> [email protected]> 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
>>>>> > > > <
>>>>> > > > > > >>> > > >> >>> > >> > >>> [email protected]>:
>>>>> > > > > > >>> > > >> >>> > >> > >>>
>>>>> > > > > > >>> > > >> >>> > >> > >>> > 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 <
>>>>> > > > > > >>> > > >> >>> [email protected]>:
>>>>> > > > > > >>> > > >> >>> > >> > >>> >
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> 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 <
>>>>> > > > > > >>> > > >> >>> > >> [email protected]
>>>>> > > > > > >>> > > >> >>> > >> > >
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> 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
>>>>> > > > > > <
>>>>> > > > > > >>> > > >> >>> > >> > [email protected]>
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> 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 <
>>>>> > > > > > >>> > > >> >>> > >> > [email protected]
>>>>> > > > > > >>> > > >> >>> > >> > >>> >
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> >> 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
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> >>>
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> >>
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> >>
>>>>> > > > > > >>> > > >> >>> > >> > >>> >> >
>>>>> > > > > > >>> > > >> >>> > >> > >>> >>
>>>>> > > > > > >>> > > >> >>> > >> > >>> >
>>>>> > > > > > >>> > > >> >>> > >> > >>> >
>>>>> > > > > > >>> > > >> >>> > >> > >>>
>>>>> > > > > > >>> > > >> >>> > >> > >>
>>>>> > > > > > >>> > > >> >>> > >> > >>
>>>>> > > > > > >>> > > >> >>> > >> > >
>>>>> > > > > > >>> > > >> >>> > >> >
>>>>> > > > > > >>> > > >> >>> > >>
>>>>> > > > > > >>> > > >> >>> > >
>>>>> > > > > > >>> > > >> >>> > >
>>>>> > > > > > >>> > > >> >>> >
>>>>> > > > > > >>> > > >> >>>
>>>>> > > > > > >>> > > >> >>
>>>>> > > > > > >>> > > >> >>
>>>>> > > > > > >>> > > >> >
>>>>> > > > > > >>> > > >>
>>>>> > > > > > >>> > > >
>>>>> > > > > > >>> > >
>>>>> > > > > > >>> >
>>>>> > > > > > >>>
>>>>> > > > > > >>
>>>>> > > > > > >>
>>>>> > > > > > >
>>>>> > > > > >
>>>>> > > > >
>>>>> > > >
>>>>> > >
>>>>> >
>>>>>
>>>>
>>>>
>>>
>>
>