Hi,
I have been working on an implementation of the DataCache API based
on wadi-cache, a distributed, replicated and transaction cache.
The implementation can be found there:
https://svn.codehaus.org/wadi/trunk/wadi/wadi-cache-openjpa/src/main/
java/org/codehaus/wadi/cache/openjpa/WADIDataCache.java
and a smoke test there:
https://svn.codehaus.org/wadi/trunk/wadi/wadi-cache-openjpa/src/test/
java/org/codehaus/wadi/cache/openjpa/itest/SmokeTest.java
A couple of things still need to be implemented:
1. DataCache.lock/unlock contracts: even if it is quite easy to
implement them, I believe this may result in a noticeable reduction
of throughput for cache misses. I wonder if it would not be
preferable to have a more optimistic implementation strategy with
retires.
2. removeAllInternal(Class cls, boolean subclasses): I intend to
provide an implementation as soon as distributed service operations
against data cache entries is supported by wadi-cache.
3. The timeout of cache entries is not honored: whatever the timeout
attribute value of @DataCache, entities have their timeout defaulted
by WADI. I intend to work on a fix.
So far, the implementation has been tested within Geronimo behind a
transactional EJB. If you would like to give me a hand to complete
implementation or tests, then please feel free to ping me.
Thanks,
Gianny