[infinispan-dev] TimeService (ISPN-3069): CacheLoader API break

Pedro Ruivo pedro at infinispan.org
Tue May 14 05:38:54 EDT 2013



On 05/14/2013 10:31 AM, Dan Berindei wrote:
>
>
>
> On Tue, May 14, 2013 at 11:51 AM, Pedro Ruivo <pedro at infinispan.org
> <mailto:pedro at infinispan.org>> wrote:
>
>
>
>     On 05/14/2013 09:44 AM, Dan Berindei wrote:
>      >
>      >
>      >
>      > On Tue, May 14, 2013 at 11:37 AM, Manik Surtani
>     <msurtani at redhat.com <mailto:msurtani at redhat.com>
>      > <mailto:msurtani at redhat.com <mailto:msurtani at redhat.com>>> wrote:
>      >
>      >
>      >     On 14 May 2013, at 08:33, Dan Berindei
>     <dan.berindei at gmail.com <mailto:dan.berindei at gmail.com>
>      >     <mailto:dan.berindei at gmail.com
>     <mailto:dan.berindei at gmail.com>>> wrote:
>      >
>      >>     If we want to keep it hidden, then I think it would be best to
>      >>     leave the getTimeService() method only in
>      >>     ComponentRegistry/GlobalComponentRegistry and remove it from the
>      >>     AdvancedCache interface.
>      >
>      >     +1.
>
>     first I have two situations here:
>
>     in production: it's indifferent for me have it in the AdvancedCache or
>     in the ComponentRegistry, in the cache loader/store and in the Extended
>     Stats I have access to the cache and I can pick from everywhere.
>
>     in the test suite: I first try to have it only in the ComponentRegistry
>     and I was not be able to mock it because the class is final (I believe
>     that is final for some reason). In addition, all the cache store tests
>     mocks the Cache interface. That's why I put it in the AdvancedCache.
>
>
> Yeah, being able to inject the TimeService directly in the cache store
> would have been nice :)
> I think we can remove the final modifier from the ComponentRegistry
> class, though.
>
>      >
>      >>     We might want to remove it from the configuration, too.
>      >
>      >     It is definitely *not* configurable and *not* a part of the
>      >     configuration.  See an earlier thread on this subject:
>      > http://bit.ly/102aQ9R
>
>     This is another issue I have. I need to have the TimeService in the
>     Extended Stats and this are a CustomInterceptor. My first try was to
>     replace and rewire the GlobalComponent but this does not work because I
>     don't have any @Inject method in the CustomInterceptor where I can
>     replace for TimeService implementation in the test suite. That's why it
>     is in the GlobalConfiguration.
>
>
> cache.getAdvancedCache().getComponentRegistry().getTimeService() should
> work in a custom interceptor.
> You just have to mock the cache and the component registry...

I cannot mock the cache in the test suite otherwise I'm not able to test 
the statistics. Even if I register and rewire the ComponentRegistry, 
does not work because I'm setting the TimeService when the start() is 
invoked.

>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>


More information about the infinispan-dev mailing list