cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: QueryCache @CacheGroups Annotation
Date Tue, 09 Feb 2016 18:03:53 GMT
Hi Frank,

It should look something like this: @CacheGroups({ "g1", "g2 "})

Andrus

> On Feb 9, 2016, at 8:56 PM, Frank Herrmann <frank.herrmann@modernizingmedicine.com>
wrote:
> 
> Hi Andrus,
> 
> One last question on the @CacheGroups annotation. I'm assuming that the
> annotation can be used to flush more than one cache group, if necessary.
> What is the proper syntax to use? For instance would it be:
> @CacheGroups("group1", "group2") ? Or something similar?
> 
> -Frank
> 
> On Thu, Feb 4, 2016 at 2:23 PM, Frank Herrmann <
> frank.herrmann@modernizingmedicine.com> wrote:
> 
>> 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>
>> 
>> 
> 
> 
> -- 
> 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
View raw message