mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
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:
@@ -118,6 +118,7 @@
|
||||
<property name="searchPath" ref="webscripts.searchpath" />
|
||||
<property name="configService" ref="web.config" />
|
||||
<property name="tenantDeployerService" ref="tenantAdminService" />
|
||||
<property name="webScriptsRegistryCache" ref="webScriptsRegistryCache"/>
|
||||
</bean>
|
||||
|
||||
|
||||
|
@@ -30,6 +30,7 @@ import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.alfresco.repo.cache.SimpleCache;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.tenant.TenantDeployer;
|
||||
import org.alfresco.repo.tenant.TenantDeployerService;
|
||||
@@ -76,8 +77,13 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
||||
private DescriptorService descriptorService;
|
||||
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
|
||||
*/
|
||||
@@ -317,21 +323,14 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
||||
@Override
|
||||
public Registry getRegistry()
|
||||
{
|
||||
if (tenantDeployerService.isEnabled())
|
||||
{
|
||||
String tenantDomain = tenantDeployerService.getCurrentUserDomain();
|
||||
Registry registry = tenantRegistries.get(tenantDomain);
|
||||
if (registry == null)
|
||||
{
|
||||
init();
|
||||
registry = tenantRegistries.get(tenantDomain);
|
||||
}
|
||||
return registry;
|
||||
}
|
||||
else
|
||||
{
|
||||
return super.getRegistry();
|
||||
}
|
||||
String tenantDomain = tenantDeployerService.getCurrentUserDomain();
|
||||
Registry registry = webScriptsRegistryCache.get(tenantDomain);
|
||||
if (registry == null)
|
||||
{
|
||||
init();
|
||||
registry = webScriptsRegistryCache.get(tenantDomain);
|
||||
}
|
||||
return registry;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -340,8 +339,8 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
||||
@Override
|
||||
public void reset()
|
||||
{
|
||||
tenantDeployerService.register(this);
|
||||
super.reset();
|
||||
destroy();
|
||||
init();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -365,9 +364,12 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
||||
*/
|
||||
public void init()
|
||||
{
|
||||
tenantDeployerService.register(this);
|
||||
|
||||
Registry registry = super.getRegistry().cloneEmpty();
|
||||
tenantRegistries.put(tenantDeployerService.getCurrentUserDomain(), registry);
|
||||
registry.reset();
|
||||
webScriptsRegistryCache.put(tenantDeployerService.getCurrentUserDomain(), registry);
|
||||
|
||||
super.reset();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -375,6 +377,6 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
||||
*/
|
||||
public void destroy()
|
||||
{
|
||||
tenantRegistries.remove(tenantDeployerService.getCurrentUserDomain());
|
||||
webScriptsRegistryCache.remove(tenantDeployerService.getCurrentUserDomain());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user