Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 356856

Summary: [EclipseLink] @Cache databaseChangeNotificationType enum added in 2.4
Product: [WebTools] Dali JPA Tools Reporter: Karen Butzke <karenfbutzke>
Component: JPAAssignee: Neil Hauge <neil.hauge>
Status: NEW --- QA Contact:
Severity: enhancement    
Priority: P3 CC: neil.hauge
Version: 3.0   
Target Milestone: Future   
Hardware: PC   
OS: Windows XP   
Whiteboard: EclipseLink
Bug Depends on: 356812    
Bug Blocks:    

Description Karen Butzke CLA 2011-09-06 16:17:40 EDT
EclipseLink 2.4 is adding @Cache invalidationType being added with a new type of DATABASE. We will need validation that expiry and expiryTimeOfDay are correctly set based on the invalidation type of TIMETOLIVE and DAILY respectively. Support both annotations and xml.

http://wiki.eclipse.org/EclipseLink/DesignDocs/356812
Comment 1 Karen Butzke CLA 2011-09-15 11:06:04 EDT
This has been changed to a new attribute databaseChangeNotificationType on the @Cache annotation. The DatabaseChangeNotificationType enum has 2 settings of NONE and INVALIDATE
Comment 2 Karen Butzke CLA 2011-09-15 11:06:35 EDT
There is also a persistence.xml property: eclipselink.cache.database-event-listener
Comment 3 Nan Li CLA 2013-01-15 10:40:25 EST
This is a list of things I got from the investigation of this feature:

1. We already have the orm resource model support for this (XmlCache). We'll have to add the Java resource model support to handle the new annotation element (EclipseLinkCacheAnnotation).

2. We would want a setting for this under Cache -> Advanced for an Entity and a MappedSuperclass with two possible values - NONE and INVALIDATE. The default value would be NONE if eclipselink.cache.database-event-listener is set; otherwise, INVALIDATE.

3. We would also want a setting in the persistence.xml editor on the Caching tab to select the listener. Right now we only ship OracleChangeNotificationListener as a possible value for eclipselink.cache.database-event-listener which supports QCN/DCN. Enabling this feature is done by setting a listener class as the value of eclipselink.cache.database-event-listener. Therefore, the implementation could be adding a class selection box for the value of eclipselink.cache.database-event-listener with a list of EclipseLink provided classes (only one right now) for easy selection but also allow developers to select an arbitrary class and then validate it implements the DatabaseEventListener API.
Comment 4 Neil Hauge CLA 2013-01-15 10:47:39 EST
Deferring for now until there is more demand for this functionality.