From 647930c0a48e10ee4dbf464dcafcccc20d91307d Mon Sep 17 00:00:00 2001 From: Dave Ward Date: Thu, 11 Mar 2010 11:42:02 +0000 Subject: [PATCH] ALF-1946: Cut down repository startup time by only refreshing web script registry once! - A discovery by Kev - RepositoryContainer now remembers whether or not it is initialized and doesn't refresh a registry returned by getRegistry() when it is not (as the superclass will think it has to initialize it) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19217 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/web/scripts/RepositoryContainer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java index 1c71fb4530..ed9802e2e9 100644 --- a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java +++ b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java @@ -91,6 +91,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten private TenantAdminService tenantAdminService; private ObjectFactory registryFactory; private SimpleCache webScriptsRegistryCache; + private boolean initialized; /** * @param webScriptsRegistryCache @@ -457,7 +458,11 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten if (registry == null) { registry = (Registry)registryFactory.getObject(); - registry.reset(); + // We only need to reset the registry if the superclass thinks its already initialized + if (initialized) + { + registry.reset(); + } webScriptsRegistryCache.put(tenantDomain, registry); } return registry; @@ -552,6 +557,8 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten tenantAdminService.register(this); super.reset(); + + initialized = true; } /* (non-Javadoc) @@ -560,6 +567,8 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten public void destroy() { webScriptsRegistryCache.remove(tenantAdminService.getCurrentUserDomain()); + + initialized = false; }