Fix AR-2090

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8308 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2008-02-18 13:16:07 +00:00
parent 2a5f0a3cb8
commit f45bccdbd8
2 changed files with 24 additions and 21 deletions

View File

@@ -118,6 +118,7 @@
<property name="searchPath" ref="webscripts.searchpath" /> <property name="searchPath" ref="webscripts.searchpath" />
<property name="configService" ref="web.config" /> <property name="configService" ref="web.config" />
<property name="tenantDeployerService" ref="tenantAdminService" /> <property name="tenantDeployerService" ref="tenantAdminService" />
<property name="webScriptsRegistryCache" ref="webScriptsRegistryCache"/>
</bean> </bean>

View File

@@ -30,6 +30,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.tenant.TenantDeployer; import org.alfresco.repo.tenant.TenantDeployer;
import org.alfresco.repo.tenant.TenantDeployerService; import org.alfresco.repo.tenant.TenantDeployerService;
@@ -76,7 +77,12 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
private DescriptorService descriptorService; private DescriptorService descriptorService;
private TenantDeployerService tenantDeployerService; private TenantDeployerService tenantDeployerService;
private Map<String, Registry> tenantRegistries = new HashMap<String, Registry>(0); private SimpleCache<String, Registry> webScriptsRegistryCache;
public void setWebScriptsRegistryCache(SimpleCache<String, Registry> webScriptsRegistryCache)
{
this.webScriptsRegistryCache = webScriptsRegistryCache;
}
/** /**
* @param repository * @param repository
@@ -317,21 +323,14 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
@Override @Override
public Registry getRegistry() public Registry getRegistry()
{ {
if (tenantDeployerService.isEnabled()) String tenantDomain = tenantDeployerService.getCurrentUserDomain();
{ Registry registry = webScriptsRegistryCache.get(tenantDomain);
String tenantDomain = tenantDeployerService.getCurrentUserDomain(); if (registry == null)
Registry registry = tenantRegistries.get(tenantDomain); {
if (registry == null) init();
{ registry = webScriptsRegistryCache.get(tenantDomain);
init(); }
registry = tenantRegistries.get(tenantDomain); return registry;
}
return registry;
}
else
{
return super.getRegistry();
}
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -340,8 +339,8 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
@Override @Override
public void reset() public void reset()
{ {
tenantDeployerService.register(this); destroy();
super.reset(); init();
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -365,9 +364,12 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
*/ */
public void init() public void init()
{ {
tenantDeployerService.register(this);
Registry registry = super.getRegistry().cloneEmpty(); Registry registry = super.getRegistry().cloneEmpty();
tenantRegistries.put(tenantDeployerService.getCurrentUserDomain(), registry); webScriptsRegistryCache.put(tenantDeployerService.getCurrentUserDomain(), registry);
registry.reset();
super.reset();
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -375,6 +377,6 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
*/ */
public void destroy() public void destroy()
{ {
tenantRegistries.remove(tenantDeployerService.getCurrentUserDomain()); webScriptsRegistryCache.remove(tenantDeployerService.getCurrentUserDomain());
} }
} }