Not a bad idea. It's a lot simpler than I was trying to make it out to be.
Thanks Eric On Thu, Aug 8, 2019, 10:39 AM Matthew Adams <matt...@matthewadams.me wrote: > Advise the call to the constructor of DefaultCacheResolverFactory with > around advice, catch the exception, then return what you want to. Note: > don't use an "execution" pointcut expression -- you want a "call". > > On Aug 8, 2019, at 9:20 AM, Eric B <ebenza...@gmail.com> wrote: > > I'm using the JCache API, in which a design decision made by the JSR-107 > team in implementing the Reference Implementation is causing me a > significant headache. The class in question is: > org.jsr107.ri.annotations.cdi.CacheLookupUtil from package org.jsr107.ri: > cache-annotations-ri-cdi:1.1.0. > > This is the layout of the class: > > public class CacheLookupUtil extends > AbstractCacheLookupUtil<InvocationContext> { > @Inject > private BeanManagerUtil beanManagerUtil; > > private CacheKeyGenerator defaultCacheKeyGenerator = new > DefaultCacheKeyGenerator(); > private CacheResolverFactory defaultCacheResolverFactory = new > DefaultCacheResolverFactory(); > > ... > > ... > > } > > > My problem is the assignment of the defaultCacheResolverFactory, or to be > even more specific the construction of the DefaultCacheResolverFactory() > without arguments when initializing the object. The default constructor > used throws an exception which is extremely difficult to catch given that > the DI framework is instantiating the object. > > Is there anyway I can use AspectJ to modify that assignment? Ideally, I > would like to prevent the construction of the DefaultCacheResolverFactory > with no args, and replace it with a call to new > DefaultCacheResolverFactory(CacheManager) instead. > > So my issue is not just being able to assign the field (which I would be > able to do in a CacheLookupUtil constructor advice, but also prevent the > construction of the DefaultCacheResolverFactory(). > > Can you think of any kind of pointcut(s) that I could use to catch that > condition? I figure I need an Around advice against a pointcut which picks > up the constructor of the DefaultCacheResolverFactory (so I can return my > own object instead), but from what I understand I cannot use around with > the initialization pointcut. > > Any suggestions what I can try? > > Thanks, > > Eric > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/aspectj-users > > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/aspectj-users