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="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>
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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
|
||||||
@@ -316,23 +322,16 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Registry getRegistry()
|
public Registry getRegistry()
|
||||||
{
|
|
||||||
if (tenantDeployerService.isEnabled())
|
|
||||||
{
|
{
|
||||||
String tenantDomain = tenantDeployerService.getCurrentUserDomain();
|
String tenantDomain = tenantDeployerService.getCurrentUserDomain();
|
||||||
Registry registry = tenantRegistries.get(tenantDomain);
|
Registry registry = webScriptsRegistryCache.get(tenantDomain);
|
||||||
if (registry == null)
|
if (registry == null)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
registry = tenantRegistries.get(tenantDomain);
|
registry = webScriptsRegistryCache.get(tenantDomain);
|
||||||
}
|
}
|
||||||
return registry;
|
return registry;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return super.getRegistry();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.alfresco.web.scripts.AbstractRuntimeContainer#reset()
|
* @see org.alfresco.web.scripts.AbstractRuntimeContainer#reset()
|
||||||
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user