On Fri, May 10, 2013 at 11:53 AM, Manik Surtani <msurtani(a)redhat.com> wrote:
On 9 May 2013, at 20:56, Dan Berindei <dan.berindei(a)gmail.com> wrote:
Couldn't you change CacheLoaderManager to call
ComponentRegistry.wireDependencies(cacheStore)?
That way, each cache store could have a separate @Inject method, and it
could depend on any cache-scoped or global-scoped component. It may require
an infinispan-module.properties file in each cache store module, but it
then it could be used for any other component.
-1. That would expose the injection fwk to custom cache store impls.
Unless you're assuming that custom impls would't use the TimeService
(since it isn't public API), and just call System.nanoTime() directly?
Well, that was my point: to allow custom cache stores to use the injection
framework.
The custom cache stores can use the component registry right now, because
they have access to the cache. And they can also use injection for their
own custom components, by writing a
org.infinispan.factories.components.ModuleMetadataFileFinder. Not allowing
them to use injection in the cache store itself seems like an arbitrary
limitation.