Hi All, More API spec discussion...
interface TerracottaMap 1: This interface is extended by ConcurrentDistributedMap, and as far as I am aware the only implementors are the CDMImpl, and I'm guessing the enterprise equivalent, perhaps we should be pushing some of the more CDM specific methods down into the CDM interface? The only ones I see as being really generic enough for TerracottaMap are removeNoReturn, putNoReturn and tryRemove. 2: Should we rename this to ClusteredMap (that might make choosing the methods that remain in it easier... interface MapSizeListener 1: Not amazingly happy that this is part of the public API. But I'm not sure we can easily remove it... (anyone have any opinions here?) class ConcurrentBlockingQueue 1: already implements a standard JDK interface so large parts of spec are bolted down... don't anticipate this being a problem interface ConcurrentDistributedMap 1: createFinegrainedLock - behavior on null key (are instance of CDM allowed to implement the null key?) 2: need to define local/non-local (based on local heap utilization I guess) 3: might gain some methods from TerracottaMap class ConcurrentDistributedMapImpl 1: public __tc_ methods need to be removed from here. They are here only so that the cluster info code can kind of work against the map. Unfortunately this only works for getKeysForLocalValues, since all the others defer to server calls which don't work against the top level instance for various internal reasons. I'm thinking that what we should do is stop this from having the __tc_ methods (and being instrumented with TCMap) completely and instead either get the cluster info code to call getConstituentMaps() directly or get the user to do it from outside the cluster info code. class ConcurrentDistributedSet 1: simple JDK Set impl using CDM as a backing... don't anticipate this being a problem class DistributedSortedSet 1: This is currently only used by tim-quartz and is highly quartz specific. It doesn't implement either JDK Set or SortedSet. My current plans are that we will attempt to upgrade this to at least implement Set fully, if not SortedSet. If this turns out to be impossible I think we are best off moving this into a private package until we can clean up the class. This does have the negative effect of making tim-quartz depend on non public API however. Chris _______________________________________________ tc-dev mailing list tc-dev@lists.terracotta.org http://lists.terracotta.org/mailman/listinfo/tc-dev