cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frank Herrmann <frank.herrm...@modernizingmedicine.com>
Subject Re: QueryCache @CacheGroups Annotation
Date Thu, 04 Feb 2016 19:23:46 GMT
Thanks for the feedback. I think I prefer to keep everything in the module,
so I'll try the first solution.

-Frank

On Thu, Feb 4, 2016 at 2:16 PM, Andrus Adamchik <andrus@objectstyle.org>
wrote:

> Ah, you are running into an earlier DI limitation. All DI collection item
> *types* needed to be bound explicitly in DI before you can add them to
> collections. E.g.:
>
>   // this looks a bit ugly, but ensures that CacheInvalidationFilter
> singleton
>   // can be referenced as collection/map element
>
> binder.bind(CacheInvalidationFilter.class).to(CacheInvalidationFilter.class);
>
>   // now that the type is known in DI, we can add it to the filter list
>
> binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST).add(CacheInvalidationFilter.class);
>
> This limitation is resolved in 4.0.M3 per
> https://issues.apache.org/jira/browse/CAY-2035 , so the first line is no
> longer needed.
>
> >> CacheInvalidationFilter cacheInvalidationFilter = new
> >> CacheInvalidationFilter();
> >> cayenneRuntime.getDataDomain().addFilter(cacheInvalidationFilter);
>
> This is also a valid solution.
>
> Andrus
>
>
> > On Feb 4, 2016, at 6:23 PM, Frank Herrmann <
> frank.herrmann@modernizingmedicine.com> wrote:
> >
> > Hi Andrus,
> >
> > Following the documentation, I tried to add the following to the DI
> Module:
> >
> > public class M2CayenneModule implements Module{
> >> @Override
> >> public void configure(Binder binder) {
> >> binder.bind(DataDomain.class).toProvider(M2DataDomainProvider.class);
> >> binder.bind(QueryCache.class).to(M2EhCacheQueryCache.class);
> >>
> >>
> binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST).add(CacheInvalidationFilter.class);
> >> }
> >> }
> >
> >
> > However, the following error is generated,
> >
> > DI container has no binding for key <BindingKey:
> > org.apache.cayenne.lifecycle.cache.CacheInvalidationFilter>
> >
> > It does seem to work if I use this method, after the runtime is created:
> >
> >>
> >> CacheInvalidationFilter cacheInvalidationFilter = new
> >> CacheInvalidationFilter();
> >> cayenneRuntime.getDataDomain().addFilter(cacheInvalidationFilter);
> >
> >
> > Is implementing the CacheInvalidationFilter via DI not available in
> Cayenne
> > 3.1?
> >
> > Thanks again,
> >
> > -Frank
> >
> > On Thu, Feb 4, 2016 at 9:41 AM, Frank Herrmann <
> > frank.herrmann@modernizingmedicine.com> wrote:
> >
> >> Thanks again for all the help.
> >>
> >> -Frank
> >>
> >> On Thu, Feb 4, 2016 at 2:22 AM, Andrus Adamchik <andrus@objectstyle.org
> >
> >> wrote:
> >>
> >>>
> >>>
> >>>
> >>>> On Feb 4, 2016, at 9:33 AM, Andrus Adamchik <andrus@objectstyle.org>
> >>> wrote:
> >>>>
> >>>> (Hmm, why don't I copy the above to our docs :))
> >>>
> >>> Here it is for 4.0:
> >>>
> >>>
> >>>
> https://github.com/apache/cayenne/commit/5d3e141a9635dc28ce358d048840e74b76b2b0fd
> >>>
> >>> We'll publish it on the site in a few days hopefully..
> >>>
> >>> Andrus
> >>
> >>
> >>
> >>
> >> --
> >> FRANK HERRMANN
> >> SOFTWARE ENGINEER
> >>
> >> T: 561-880-2998 x1563
> >>
> >> E: frank.herrmann@modmed.com
> >>
> >>
> >>
> >> [image: [ Modernizing Medicine ]] <http://www.modmed.com/>
> >> [image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine>
> [image:
> >> [ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/>
> [image:
> >> [ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image:
> [
> >> Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
> >> <http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
> >> <http://instagram.com/modernizing_medicine>
> >>
> >>
> >
> >
> > --
> > FRANK HERRMANN
> > SOFTWARE ENGINEER
> >
> > T: 561-880-2998 x1563
> >
> > E: frank.herrmann@modmed.com
> >
> >
> >
> > [image: [ Modernizing Medicine ]] <http://www.modmed.com/>
> > [image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine>
> [image:
> > [ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/>
> [image:
> > [ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image: [
> > Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
> > <http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
> > <http://instagram.com/modernizing_medicine>
>
>


-- 
FRANK HERRMANN
SOFTWARE ENGINEER

T: 561-880-2998 x1563

E: frank.herrmann@modmed.com



[image: [ Modernizing Medicine ]] <http://www.modmed.com/>
[image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine> [image:
[ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/> [image:
[ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image: [
Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
<http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
<http://instagram.com/modernizing_medicine>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message