Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Predict specific object type in EhCacheFactoryBean #41

Closed
wants to merge 1 commit into
from
Jump to file or symbol
Failed to load files and symbols.
+19 −2
Split
@@ -399,7 +399,24 @@ public Ehcache getObject() {
}
public Class<? extends Ehcache> getObjectType() {
- return (this.cache != null ? this.cache.getClass() : Ehcache.class);
+ if (this.cache != null) {
+ return this.cache.getClass();
+ }
+
+ if (this.cacheEntryFactory != null) {
+ if (this.cacheEntryFactory instanceof UpdatingCacheEntryFactory) {
+ return UpdatingSelfPopulatingCache.class;
+ }
+ else {
+ return SelfPopulatingCache.class;
+ }
+ }
+
+ if (this.blocking) {
+ return BlockingCache.class;
+ }
+
+ return Cache.class;
}
public boolean isSingleton() {
@@ -82,7 +82,7 @@ private void doTestEhCacheFactoryBean(boolean useCacheManagerFb) throws Exceptio
EhCacheManagerFactoryBean cacheManagerFb = null;
try {
EhCacheFactoryBean cacheFb = new EhCacheFactoryBean();
- assertEquals(Ehcache.class, cacheFb.getObjectType());
+ assertTrue(Ehcache.class.isAssignableFrom(cacheFb.getObjectType()));
assertTrue("Singleton property", cacheFb.isSingleton());
if (useCacheManagerFb) {
cacheManagerFb = new EhCacheManagerFactoryBean();