Skip to end of metadata
Go to start of metadata

General

  1. Naming of util classes, standardize on java naming? Foo has Foos class. Or something else such as FooUtil, FooHelper, also do we strip for example, Cache; CacheLoaders -> Loaders. Applicable for all coconut projects
  2. Clarify how attributes are generated, copied, and finally made immutable.

org.coconut.cache

Api

Class

Description 

Cache

Do we check refresh on cache.get() or only expiration?

Package Documentation

Create some documentation

Impl

org.coconut.cache.spi

Class

Description



org.coconut.cache.service.event

Class

Description

General

Create a flow chart with when events are raised..

org.coconut.cache.service.eviction

Class

Description


  1. (error)(error)

org.coconut.cache.service.exceptionhandling

Class (thumbs up)

Description(error)

 


org.coconut.cache.service.expiration

Class

Description


org.coconut.cache.service.loading

Class

Description


  1. 0 -> defaultRefreshTime?? in configuration its default, but what if I set it from the service??

org.coconut.cache.service.management

Class

Description

Configuration


Testing

TODO Test registrant And Root



org.coconut.cache.service.servicemanager

Class

Description


This is crap

org.coconut.cache.service.statistics

Class

Description



org.coconut.cache.service.worker



executeDedicated

there is a problem when shutting down the cache, how do notify it


  1. Relation between scheduling various stuff, cleanup, loading of entries. Worker threads, priorities
  2. (error) (error)
    We need some static methods to easily construct ThreadingFactories
  3. Persisting configuration

Various

Item

Description

Management


Implementation

Class

Description



Service

Pct

Api

Javadoc API

Implementation

cache

75 %

85 %

85 %

60%

cache.service

 

 

 

 

cache.service.event

 

 

 

 

cache.service.eviction

 

 

 

 

cache.service.exceptionhandling

 

 

 

 

cache.service.expiration

 

 

 

 

cache.service.loading

 

 

 

 

cache.service.management

 

 

 

 

cache.service.servicemanager

 

 

 

 

cache.service.statistics

 

 

 

 

cache.service.threading

 

 

 

 

cache.spi

 

 

 

 

cache.util 95 %

95 %

95 %

95 %

100 %


FUTURE

General

  1. Split into 5 areas-> Standard, Concurrency, Cache-Tree, Persistence, Distribution 

org.coconut.cache

org.coconut.cache.Cache (Interface)

 

 

 

 

 

 

 

 

Javadoc

 

 

 

 

 

 

 


Class

Description 

Cache

  1. We need some kind of putAll(K,V, attributeMap) method, perhaps a service.attribute with something a.la. putAll(ff, AttributeMap), Remove(fff, AttributeMap),... putIfAbsent(K,V, AttributeMap)
  2.  move evict() to eviction service, clarify what exactly it does

CacheAttributes


CacheConfiguration


CacheEntry

  1. (error)(error)
    CacheEntry should contain a AttributeMap in some way



org.coconut.cache.spi

Class

Description

AbstractCacheServiceConfiguration


CacheServiceSupport

  1. Hmm, don't know if I really like it... Nice way to document whether cache supports a particual feature. But couldn't we document this without using an extra class....

ConfigurationValidator

Closely related to CacheServiceSupport. This is definitely something that is last on the list.

IllegalCacheConfigurationException

Do we want to throw an IllegalStateException instead?

org.coconut.cache.util

Class

Description

CacheSingleton

Some tests + javadoc missing

org.coconut.cache.service.event

Class

Description


  1. (error)
    We need someway to specify how events are posted with respect to concurrency. Right now they are just posted asynchronously
  2. Eviction event? Posted whenever an entry is removed from top-level store but is still present in some underlying store. Use cases?

org.coconut.cache.service.eviction

Class

Description


  1. (error)(error)
    Preferable size we need to fix this
  2. (error)
    Someway to allow more control about how many elements are removed doing eviction.
  3. Some way to schedule eviction of elements, how does this relate to the thread service (If scheduled eviction is enabled, and no threadservice is defined an exception will be thrown by the cache constructor)
  4. Should we post an evict event when we call trimToSize, TrimToCapacity? (I think yes)
  5. We should somehow distinguish between elements that are requested through get, and those through load when notifying of an element being loaded.
  6. Regarding hits -> load(val) not presently in cache -> hits=0, getSomeValue not in cache->Hits=1
  7. Regarding hits, lets say an entry is present in the cache, we choose to reload it, the value presented to the eviction policy should be the attribute from the loader or or otherwise the previous number of hits from the cache.

org.coconut.cache.service.exceptionhandling

Class (thumbs up)

Description(error)

 

  1. Should we have a CacheExceptionEvent? Could be useful for example, to fire off warnings if we have 10 consecutive failures within 1 minute or something like that. On the other hand I guess loaders/stores will have the most problems, so they might want to define the events themself..
  2. (error) (error)
    Define some more standard exceptionhandlers
  3. Perhaps a shutdown cache on error?

org.coconut.cache.service.expiration

Class

Description


org.coconut.cache.service.loading

Class

Description


  1. Should we include the loadAll method,  cons: pretty complex method,  most won't need to implement. Pros: We only have one interface, it is possible to easy create wrappers.
  2. (error)
    Determine how exceptions are thrown from the futures of load/forceload
  3. Do we need those future?

org.coconut.cache.service.management

Class

Description

Configuration


Testing

TODO Test registrant And Root

Future

  1. Allow some events to be posted as notifications

org.coconut.cache.service.servicemanager

Class

Description



(error)(error)(error)
CacheService

Lifecycle still doesn't work probably, think we might need to take advantage of the fact that getService/hasService doesn't return service until the cache has fully started. So any calls to a service after start has been called, but before the cache has completly started must be from another service. (through CacheService.start(Map<Class,Object> service)

org.coconut.cache.service.statistics

Class

Description


Do we need a org.coconut.cache.service.profile package for timing methods?

org.coconut.cache.service.threading




  1. Relation between scheduling various stuff, cleanup, loading of entries. Worker threads, priorities
  2. (error) (error)
    We need some static methods to easily construct ThreadingFactories
  3. Persisting configuration

Various

Item

Description

Management


Labels
  • None