WebScripts: replace custom cloneEmpty with standard Spring factory pattern (follow-on from r8293 & r8335)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8349 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2008-02-21 12:12:14 +00:00
parent 6ad23dfa26
commit 7f0a4aeabc
2 changed files with 22 additions and 3 deletions

View File

@@ -110,7 +110,13 @@
<property name="authorityService" ref="authorityService" /> <property name="authorityService" ref="authorityService" />
<property name="repository" ref="webscripts.repo" /> <property name="repository" ref="webscripts.repo" />
<property name="repositoryImageResolver" ref="webscripts.repo.imageresolver" /> <property name="repositoryImageResolver" ref="webscripts.repo.imageresolver" />
<property name="registry" ref="webscripts.registry" />
<property name="registryFactory">
<bean class="org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean">
<property name="targetBeanName"><idref local="webscripts.registry.prototype"/></property>
</bean>
</property>
<property name="formatRegistry" ref="webscripts.formatregistry" /> <property name="formatRegistry" ref="webscripts.formatregistry" />
<property name="templateProcessor" ref="webscripts.repo.templateprocessor" /> <property name="templateProcessor" ref="webscripts.repo.templateprocessor" />
<property name="scriptProcessor" ref="webscripts.repo.scriptprocessor" /> <property name="scriptProcessor" ref="webscripts.repo.scriptprocessor" />
@@ -120,6 +126,8 @@
<property name="tenantDeployerService" ref="tenantAdminService" /> <property name="tenantDeployerService" ref="tenantAdminService" />
<property name="webScriptsRegistryCache" ref="webScriptsRegistryCache"/> <property name="webScriptsRegistryCache" ref="webScriptsRegistryCache"/>
</bean> </bean>
<bean id="webscripts.registry.prototype" parent="webscripts.registry" singleton="false"/>
<!-- --> <!-- -->

View File

@@ -56,6 +56,7 @@ import org.alfresco.web.scripts.Description.RequiredAuthentication;
import org.alfresco.web.scripts.Description.RequiredTransaction; import org.alfresco.web.scripts.Description.RequiredTransaction;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.ObjectFactory;
/** /**
@@ -76,14 +77,24 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
private PermissionService permissionService; private PermissionService permissionService;
private DescriptorService descriptorService; private DescriptorService descriptorService;
private TenantDeployerService tenantDeployerService; private TenantDeployerService tenantDeployerService;
private ObjectFactory registryFactory;
private SimpleCache<String, Registry> webScriptsRegistryCache; private SimpleCache<String, Registry> webScriptsRegistryCache;
/**
* @param webScriptsRegistryCache
*/
public void setWebScriptsRegistryCache(SimpleCache<String, Registry> webScriptsRegistryCache) public void setWebScriptsRegistryCache(SimpleCache<String, Registry> webScriptsRegistryCache)
{ {
this.webScriptsRegistryCache = webScriptsRegistryCache; this.webScriptsRegistryCache = webScriptsRegistryCache;
} }
/**
* @param registryFactory
*/
public void setRegistryFactory(ObjectFactory registryFactory) {
this.registryFactory = registryFactory;
}
/** /**
* @param repository * @param repository
*/ */
@@ -366,7 +377,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten
{ {
tenantDeployerService.register(this); tenantDeployerService.register(this);
Registry registry = super.getRegistry().cloneEmpty(); Registry registry = (Registry)registryFactory.getObject();
webScriptsRegistryCache.put(tenantDeployerService.getCurrentUserDomain(), registry); webScriptsRegistryCache.put(tenantDeployerService.getCurrentUserDomain(), registry);
super.reset(); super.reset();