There have been a number of utility like and pattern like implementations going into forge/labs. I have been thinking about how best to organize these things. Here's my thinking to date, I'm open to suggestions or just voting for one of the options below.

At the moment I know of:

   * ResourceManager - a pair of classes that level a shared resource
     across a cluster (relies on JMX util)
   * Pipes/Channels - refactoring of the pipe/channel idea in m/w
   * Master/Worker - work load balancer
   * JMX Util - JMX event util classes
   * Annotations - annotations
   * SplitHashMap - rough equivalent of concurrenthashmap
   * TimeSeriesMap -  to expire items in a map based on time entries

So, I am not sure, I can argue a few different layouts:

1) All in one package. On the one extreme, this makes using any TC based util class (or pattern) really easy. Until there is too much in one package, this what I prefer, except it tends to have version creep that doesn't correspond to relevant features - in other words a developer uses it only for JMX, but the version bumps because of a fix for annotations

2) A Balanced set of packages.  I would propose

   * tc-util - contains pipe/channel, resourcemanager, jmxutil,
     splithashmap, timeseriesmap
   * annotations - annotations only
   * master/woker - m/w only, but needs tc-util for both pipe/channel
     and jmx


3) Lots of little packages - basically everything in its own package. This is my least favorite option.


Thoughts?
_______________________________________________
tc-dev mailing list
[email protected]
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to