Skip to content

dev.meetings

Alex Snaps edited this page Aug 29, 2014 · 23 revisions

Meet up notes

Sep 4, 2014 - Hangout on Air

Next public meeting on G+ Hangout on Air at 11:30 IST / 8pm CET / 2pm EST / 11am PST

Agenda

'to be defined —' visit the ehcache developer mailing list to provide input by next Wednesday – Sep 3, 2014.

Aug 28, 2014 - Hangout on Air

Recording available here on YouTube

CacheManagerBuilder and CacheBuilder

Let’s try to introduce a type hierarchy for both Cache and CacheManager that the builder would actually build, narrowing the type down à la Quartz 2.0 builders.

PersistentCache cache = newCacheBuilder() // (1)
  .diskPersistent(
    cfg // (3)
  ) // (2)
  .build(); // (4)
  1. static method that creates a builder: Builder<Cache>

  2. narrows to the builder’s type down to Builder<PersistentCache>

  3. cfg actually defines the mode to use for persistence, eg: expect data on disk; expect none; use data if there; wipe data if there; wipe data on Cache.close()

  4. actually builds the PersistentCache

Alex to make an actual proposal by next week.

CacheManager-less Cache instances

  • Keep these, where the user is actually responsible to provide services

  • Only these Cache's type would expose .close()

  • CacheManager managed Cache instances would be 'closed' through the CacheManager

  • To further lifecycle PersistentCache instance, managed by a CacheManager, the latter could expose some method to retrieve DiskPersisted (interface with minimal lifecycle methods) instances; e.g.

Iterable<Map.Entry<String, DiskPersisted>> it = cacheManager.getManaged(DiskPersisted.class);
it.next().value() // (1)
 .deleteOnDiskFiles(); // (2)
  1. DiskPersisted could expose methods around lifecycling the data on disk only. No Cache methods

  2. Implies Cache.close(), i.e. clear all 'VM transient' data and delete data from disk.

Aug 21, 2014 - Hangout on Air

Recording available here on YouTube

org.ehcache.Cache vs. org.ehcache.spi.cache.Store

Cache<K, V> backed by a Store<K, Element<V>>

  1. Rename Element

  2. Try Store<K, Element<V>> for now

Roles

How much can be solved by having the Cache call into some Store.process(K, EntryProcessor<K, V, T>): T equivalent?

  1. Cache Roles

    1. Expiry

    2. Public EntryListeners

    3. Cache lifecycle

    4. CacheLoaders

    5. CacheWriters

  2. Store Roles

    1. Store by Value vs. Ref.

    2. Eviction & (private) EvictionListeners

Other items

Integrate 107 TCK

Created issue #21

What’s with the sizeof modules ?

  1. Hibernate to be integrated within the h2lc module there

  2. Groovy, either:

    1. @candrews takes ownership, or

    2. we find someone within TC/SAG to do so (unidentified yet though)

Clone this wiki locally