Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)

77193: Merged PLATFORM1 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud)
      74588: Revert of R 74318 ACE-1996


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@78049 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2014-07-23 16:24:56 +00:00
parent eaf4f69cdd
commit d9271fc8e8
8 changed files with 54 additions and 100 deletions

View File

@@ -378,8 +378,8 @@
<!-- The cross-transaction shared cache for Dictionary Models --> <!-- The cross-transaction shared cache for Dictionary Models -->
<bean name="compiledModelsCache" class="org.alfresco.repo.dictionary.CompiledModelsCache" parent="abstractAsynchronouslyRefreshedCache"> <bean name="compiledModelsCache" factory-bean="cacheFactory" factory-method="createCache">
<property name="dictionaryDAO" ref="dictionaryDAO" /> <constructor-arg value="cache.compiledModelsSharedCache"/>
</bean> </bean>
<!-- The cross-transaction shared cache for Dictionary Namespaces [Must be non-clustered, non-txn and UNLIMITED IN SIZE]--> <!-- The cross-transaction shared cache for Dictionary Namespaces [Must be non-clustered, non-txn and UNLIMITED IN SIZE]-->

View File

@@ -373,6 +373,15 @@ cache.messagesSharedCache.eviction-policy=LRU
cache.messagesSharedCache.eviction-percentage=25 cache.messagesSharedCache.eviction-percentage=25
cache.messagesSharedCache.merge-policy=hz.ADD_NEW_ENTRY cache.messagesSharedCache.merge-policy=hz.ADD_NEW_ENTRY
cache.compiledModelsSharedCache.maxItems=1000
cache.compiledModelsSharedCache.timeToLiveSeconds=0
cache.compiledModelsSharedCache.maxIdleSeconds=0
cache.compiledModelsSharedCache.cluster.type=invalidating
cache.compiledModelsSharedCache.backup-count=1
cache.compiledModelsSharedCache.eviction-policy=LRU
cache.compiledModelsSharedCache.eviction-percentage=25
cache.compiledModelsSharedCache.merge-policy=hz.ADD_NEW_ENTRY
cache.webScriptsRegistrySharedCache.maxItems=1000 cache.webScriptsRegistrySharedCache.maxItems=1000
cache.webScriptsRegistrySharedCache.timeToLiveSeconds=0 cache.webScriptsRegistrySharedCache.timeToLiveSeconds=0
cache.webScriptsRegistrySharedCache.maxIdleSeconds=0 cache.webScriptsRegistrySharedCache.maxIdleSeconds=0

View File

@@ -20,14 +20,11 @@ package org.alfresco.repo.dictionary;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ThreadPoolExecutor;
import org.alfresco.repo.cache.DefaultSimpleCache; import org.alfresco.repo.cache.DefaultSimpleCache;
import org.alfresco.repo.cache.SimpleCache; import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.tenant.SingleTServiceImpl; import org.alfresco.repo.tenant.SingleTServiceImpl;
import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantService;
import org.alfresco.util.ThreadPoolExecutorFactoryBean;
import org.alfresco.util.cache.DefaultAsynchronouslyRefreshedCacheRegistry;
/** /**
@@ -45,9 +42,8 @@ public class TestModel
* TestModel [-h] [model filename]* * TestModel [-h] [model filename]*
* <p> * <p>
* Returns 0 for success. * Returns 0 for success.
* @throws Exception
*/ */
public static void main(String[] args) throws Exception public static void main(String[] args)
{ {
if (args != null && args.length > 0 && args[0].equals("-h")) if (args != null && args.length > 0 && args[0].equals("-h"))
{ {
@@ -86,7 +82,7 @@ public class TestModel
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
// bootstrap dao // bootstrap dao
try try
@@ -113,16 +109,9 @@ public class TestModel
} }
} }
private static void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private static void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO)
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); SimpleCache<String, DictionaryRegistry> dictionaryCache = new DefaultSimpleCache<String, DictionaryRegistry>();
compiledModelsCache.setDictionaryDAO(dictionaryDAO); dictionaryDAO.setDictionaryRegistryCache(dictionaryCache);
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
ThreadPoolExecutorFactoryBean threadPoolfactory = new ThreadPoolExecutorFactoryBean();
threadPoolfactory.afterPropertiesSet();
compiledModelsCache.setThreadPoolExecutor((ThreadPoolExecutor) threadPoolfactory.getObject());
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init();
} }
} }

View File

@@ -23,7 +23,6 @@ import static org.junit.Assert.assertNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ThreadPoolExecutor;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.cache.MemoryCache; import org.alfresco.repo.cache.MemoryCache;
@@ -34,10 +33,6 @@ import org.alfresco.repo.tenant.SingleTServiceImpl;
import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantService;
import org.alfresco.repo.tenant.TenantUtil; import org.alfresco.repo.tenant.TenantUtil;
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork; import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
import org.alfresco.util.DynamicallySizedThreadPoolExecutor;
import org.alfresco.util.TraceableThreadFactory;
import org.alfresco.util.ThreadPoolExecutorFactoryBean;
import org.alfresco.util.cache.DefaultAsynchronouslyRefreshedCacheRegistry;
import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.TypeDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
@@ -45,7 +40,6 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.extensions.surf.util.I18NUtil; import org.springframework.extensions.surf.util.I18NUtil;
/** /**
* *
* @author sglover * @author sglover
@@ -70,7 +64,7 @@ public class DictionaryDAOTest
this.dictionaryDAO = new DictionaryDAOImpl(); this.dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
new AuthenticationUtil().afterPropertiesSet(); new AuthenticationUtil().afterPropertiesSet();
@@ -93,27 +87,19 @@ public class DictionaryDAOTest
service = component; service = component;
} }
private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO)
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); dictionaryDAO.setDictionaryRegistryCache(new MemoryCache<String, DictionaryRegistry>());
compiledModelsCache.setDictionaryDAO(dictionaryDAO);
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
ThreadPoolExecutorFactoryBean threadPoolfactory = new ThreadPoolExecutorFactoryBean();
threadPoolfactory.afterPropertiesSet();
compiledModelsCache.setThreadPoolExecutor((ThreadPoolExecutor) threadPoolfactory.getObject());
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init();
} }
@Test @Test
public void testBootstrap() throws Exception public void testBootstrap()
{ {
TenantService tenantService = new SingleTServiceImpl(); TenantService tenantService = new SingleTServiceImpl();
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
DictionaryBootstrap bootstrap = new DictionaryBootstrap(); DictionaryBootstrap bootstrap = new DictionaryBootstrap();
List<String> bootstrapModels = new ArrayList<String>(); List<String> bootstrapModels = new ArrayList<String>();

View File

@@ -113,18 +113,20 @@ public class DictionaryLoadDAOTest
private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); dictionaryDAO.setDictionaryRegistryCache(new MemoryCache<String, DictionaryRegistry>());
compiledModelsCache.setDictionaryDAO(dictionaryDAO);
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
TraceableThreadFactory threadFactory = new TraceableThreadFactory();
threadFactory.setThreadDaemon(true);
threadFactory.setThreadPriority(Thread.NORM_PRIORITY);
ThreadPoolExecutor threadPoolExecutor = new DynamicallySizedThreadPoolExecutor(20, 20, 90, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), threadFactory, // CompiledModelsCache compiledModelsCache = new CompiledModelsCache();
new ThreadPoolExecutor.CallerRunsPolicy()); // compiledModelsCache.setDictionaryDAO(dictionaryDAO);
compiledModelsCache.setThreadPoolExecutor(threadPoolExecutor); // compiledModelsCache.setTenantService(tenantService);
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache); // compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
// TraceableThreadFactory threadFactory = new TraceableThreadFactory();
// threadFactory.setThreadDaemon(true);
// threadFactory.setThreadPriority(Thread.NORM_PRIORITY);
//
// ThreadPoolExecutor threadPoolExecutor = new DynamicallySizedThreadPoolExecutor(20, 20, 90, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), threadFactory,
// new ThreadPoolExecutor.CallerRunsPolicy());
// compiledModelsCache.setThreadPoolExecutor(threadPoolExecutor);
// dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init(); dictionaryDAO.init();
} }

View File

@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ThreadPoolExecutor;
import junit.framework.TestCase; import junit.framework.TestCase;
@@ -55,8 +54,6 @@ import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.dictionary.TypeDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.util.ThreadPoolExecutorFactoryBean;
import org.alfresco.util.cache.DefaultAsynchronouslyRefreshedCacheRegistry;
import org.springframework.extensions.surf.util.I18NUtil; import org.springframework.extensions.surf.util.I18NUtil;
@@ -71,7 +68,7 @@ public class RepoDictionaryDAOTest extends TestCase
@Override @Override
public void setUp() throws Exception public void setUp()
{ {
// Registered the required constraints // Registered the required constraints
ConstraintRegistry constraintRegistry = ConstraintRegistry.getInstance(); ConstraintRegistry constraintRegistry = ConstraintRegistry.getInstance();
@@ -92,7 +89,7 @@ public class RepoDictionaryDAOTest extends TestCase
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
// Populate with appropriate models // Populate with appropriate models
DictionaryBootstrap bootstrap = new DictionaryBootstrap(); DictionaryBootstrap bootstrap = new DictionaryBootstrap();
@@ -113,26 +110,19 @@ public class RepoDictionaryDAOTest extends TestCase
service = component; service = component;
} }
private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO)
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); SimpleCache<String,DictionaryRegistry> dictionaryCache = new DefaultSimpleCache<String, DictionaryRegistry>(11, getClass().getName() + ".dictionary");
compiledModelsCache.setDictionaryDAO(dictionaryDAO); dictionaryDAO.setDictionaryRegistryCache(dictionaryCache);
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
ThreadPoolExecutorFactoryBean threadPoolfactory = new ThreadPoolExecutorFactoryBean();
threadPoolfactory.afterPropertiesSet();
compiledModelsCache.setThreadPoolExecutor((ThreadPoolExecutor) threadPoolfactory.getObject());
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init();
} }
public void testBootstrap() throws Exception public void testBootstrap()
{ {
TenantService tenantService = new SingleTServiceImpl(); TenantService tenantService = new SingleTServiceImpl();
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
DictionaryBootstrap bootstrap = new DictionaryBootstrap(); DictionaryBootstrap bootstrap = new DictionaryBootstrap();
List<String> bootstrapModels = new ArrayList<String>(); List<String> bootstrapModels = new ArrayList<String>();
@@ -409,18 +399,18 @@ public class RepoDictionaryDAOTest extends TestCase
assertTrue("Expected 'true' for timestamp propagation", childAssocDef.getPropagateTimestamps()); assertTrue("Expected 'true' for timestamp propagation", childAssocDef.getPropagateTimestamps());
} }
public void testADB159() throws Exception public void testADB159() throws UnsupportedEncodingException
{ {
// source dictionary // source dictionary
TenantService tenantService = new SingleTServiceImpl(); TenantService tenantService = new SingleTServiceImpl();
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
// destination dictionary // destination dictionary
DictionaryDAOImpl dictionaryDAO2 = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO2 = new DictionaryDAOImpl();
dictionaryDAO2.setTenantService(tenantService); dictionaryDAO2.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO2, tenantService); initDictionaryCaches(dictionaryDAO2);
List<String> models = new ArrayList<String>(); List<String> models = new ArrayList<String>();
models.add("alfresco/model/dictionaryModel.xml"); models.add("alfresco/model/dictionaryModel.xml");

View File

@@ -26,12 +26,10 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.ThreadPoolExecutor;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.alfresco.repo.cache.MemoryCache; import org.alfresco.repo.cache.MemoryCache;
import org.alfresco.repo.dictionary.CompiledModelsCache;
import org.alfresco.repo.dictionary.DictionaryBootstrap; import org.alfresco.repo.dictionary.DictionaryBootstrap;
import org.alfresco.repo.dictionary.DictionaryComponent; import org.alfresco.repo.dictionary.DictionaryComponent;
import org.alfresco.repo.dictionary.DictionaryDAOImpl; import org.alfresco.repo.dictionary.DictionaryDAOImpl;
@@ -40,8 +38,6 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.util.ThreadPoolExecutorFactoryBean;
import org.alfresco.util.cache.DefaultAsynchronouslyRefreshedCacheRegistry;
/** /**
* Policy Component Tests * Policy Component Tests
@@ -85,7 +81,7 @@ public class MTPolicyComponentTest extends TestCase
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(mockTenantService); dictionaryDAO.setTenantService(mockTenantService);
initDictionaryCaches(dictionaryDAO, mockTenantService); initDictionaryCaches(dictionaryDAO);
DictionaryBootstrap bootstrap = new DictionaryBootstrap(); DictionaryBootstrap bootstrap = new DictionaryBootstrap();
List<String> bootstrapModels = new ArrayList<String>(); List<String> bootstrapModels = new ArrayList<String>();
@@ -106,18 +102,11 @@ public class MTPolicyComponentTest extends TestCase
policyComponent = x; policyComponent = x;
} }
@SuppressWarnings("unchecked") @SuppressWarnings({ "unchecked", "rawtypes" })
private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO)
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); // note: unit tested here with null cache
compiledModelsCache.setDictionaryDAO(dictionaryDAO); dictionaryDAO.setDictionaryRegistryCache(new MemoryCache());
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
ThreadPoolExecutorFactoryBean threadPoolfactory = new ThreadPoolExecutorFactoryBean();
threadPoolfactory.afterPropertiesSet();
compiledModelsCache.setThreadPoolExecutor((ThreadPoolExecutor) threadPoolfactory.getObject());
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init();
} }
public void testJavaBehaviour() public void testJavaBehaviour()

View File

@@ -21,20 +21,16 @@ package org.alfresco.repo.policy;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.concurrent.ThreadPoolExecutor;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.alfresco.repo.cache.MemoryCache; import org.alfresco.repo.cache.MemoryCache;
import org.alfresco.repo.dictionary.CompiledModelsCache;
import org.alfresco.repo.dictionary.DictionaryBootstrap; import org.alfresco.repo.dictionary.DictionaryBootstrap;
import org.alfresco.repo.dictionary.DictionaryComponent; import org.alfresco.repo.dictionary.DictionaryComponent;
import org.alfresco.repo.dictionary.DictionaryDAOImpl; import org.alfresco.repo.dictionary.DictionaryDAOImpl;
import org.alfresco.repo.tenant.SingleTServiceImpl; import org.alfresco.repo.tenant.SingleTServiceImpl;
import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.util.ThreadPoolExecutorFactoryBean;
import org.alfresco.util.cache.DefaultAsynchronouslyRefreshedCacheRegistry;
public class PolicyComponentTest extends TestCase public class PolicyComponentTest extends TestCase
@@ -62,7 +58,7 @@ public class PolicyComponentTest extends TestCase
TenantService tenantService = new SingleTServiceImpl(); TenantService tenantService = new SingleTServiceImpl();
DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl(); DictionaryDAOImpl dictionaryDAO = new DictionaryDAOImpl();
dictionaryDAO.setTenantService(tenantService); dictionaryDAO.setTenantService(tenantService);
initDictionaryCaches(dictionaryDAO, tenantService); initDictionaryCaches(dictionaryDAO);
DictionaryBootstrap bootstrap = new DictionaryBootstrap(); DictionaryBootstrap bootstrap = new DictionaryBootstrap();
List<String> bootstrapModels = new ArrayList<String>(); List<String> bootstrapModels = new ArrayList<String>();
@@ -81,18 +77,11 @@ public class PolicyComponentTest extends TestCase
policyComponent = new PolicyComponentImpl(dictionary); policyComponent = new PolicyComponentImpl(dictionary);
} }
@SuppressWarnings("unchecked") @SuppressWarnings({ "unchecked", "rawtypes" })
private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO, TenantService tenantService) throws Exception private void initDictionaryCaches(DictionaryDAOImpl dictionaryDAO)
{ {
CompiledModelsCache compiledModelsCache = new CompiledModelsCache(); // note: unit tested here with null cache
compiledModelsCache.setDictionaryDAO(dictionaryDAO); dictionaryDAO.setDictionaryRegistryCache(new MemoryCache());
compiledModelsCache.setTenantService(tenantService);
compiledModelsCache.setRegistry(new DefaultAsynchronouslyRefreshedCacheRegistry());
ThreadPoolExecutorFactoryBean threadPoolfactory = new ThreadPoolExecutorFactoryBean();
threadPoolfactory.afterPropertiesSet();
compiledModelsCache.setThreadPoolExecutor((ThreadPoolExecutor) threadPoolfactory.getObject());
dictionaryDAO.setDictionaryRegistryCache(compiledModelsCache);
dictionaryDAO.init();
} }
public void testJavaBehaviour() public void testJavaBehaviour()