[ 
https://issues.apache.org/jira/browse/CAY-2259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrus Adamchik updated CAY-2259:
---------------------------------
    Description: 
With cayenne-jcache we lost the ability to invalidate caches not handled by 
Cayenne. The API for CacheManager's caches introspection requires the caller to 
know the generic parameters of a named cache. So we can no longer invalidate 
caches that were not created for Cayenne (and that are known to be of type 
"Cache<String, List>"). 

A few changes to address this:

1. Internally use "untyped" caches for storage. This would allow the same 
caches to be reused by the code outside Cayenne.

2. Add API to QueryCache to handle invalidation of typed caches with known key 
and value types. Extend @CacheGroups annotation to specify cache generics 
"signatures", add support for it in CacheInvalidationFilter.

  was:
With cayenne-jcache we lost the ability to invalidate caches not handled by 
Cayenne. The API for CacheManager's caches introspection requires the caller to 
know the generic parameters of a named cache. So we can no longer invalidate 
caches that were not created for Cayenne (and that are known to be of type 
"Cache<String, List>"). 

A possible solution would be to extend @CacheGroups annotation to specify cache 
generics "signatures". And also change QueryCache API, perhaps deprecating 
'removeGroup(String)' in favor of 'clearCache(String name, Class keyType, Class 
valueType)'


> QueryCache: support for referencing type-safe caches
> ----------------------------------------------------
>
>                 Key: CAY-2259
>                 URL: https://issues.apache.org/jira/browse/CAY-2259
>             Project: Cayenne
>          Issue Type: Task
>    Affects Versions: 4.0.M5
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>
> With cayenne-jcache we lost the ability to invalidate caches not handled by 
> Cayenne. The API for CacheManager's caches introspection requires the caller 
> to know the generic parameters of a named cache. So we can no longer 
> invalidate caches that were not created for Cayenne (and that are known to be 
> of type "Cache<String, List>"). 
> A few changes to address this:
> 1. Internally use "untyped" caches for storage. This would allow the same 
> caches to be reused by the code outside Cayenne.
> 2. Add API to QueryCache to handle invalidation of typed caches with known 
> key and value types. Extend @CacheGroups annotation to specify cache generics 
> "signatures", add support for it in CacheInvalidationFilter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to