Files
alfresco-community-repo/config/alfresco/core-services-context.xml

998 lines
39 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<!-- Core and miscellaneous bean definitions -->
<beans>
<!-- -->
<!-- PERSISTENCE -->
<!-- -->
<!-- Load runtime-dependent properties (e.g.: alfresco.jmx.dir). -->
<!-- Note: This bean relies on PropertyPlaceholderConfigurer -->
<bean id="runtimeProperties" class="org.alfresco.util.RuntimeSystemPropertiesSetter"/>
<!-- load common properties -->
<bean id="repository-properties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
<property name="locations">
<list>
<value>classpath:alfresco/repository.properties</value>
<value>classpath:alfresco/version.properties</value>
<value>classpath:alfresco/domain/transaction.properties</value>
</list>
</property>
</bean>
<!-- Load properties that must be shared between the -->
<!-- Alfresco server and its remote clients. -->
<!-- -->
<!-- Note: This is done in a seperate bean to make it -->
<!-- for users who have alrady overridden their -->
<!-- "repository-properties" in a dev-context.xml -->
<!-- or custom-db-and-data-context.xml file. -->
<bean id="shared-properties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
<property name="locations">
<list>
<value>classpath:alfresco/alfresco-shared.properties</value>
</list>
</property>
</bean>
<!-- Custom MBeanServer -->
<bean id="alfrescoMBeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/>
<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">
<property name="port" value="${alfresco.rmi.services.port}"/>
</bean>
<!-- MBeanServer Connector (registers itself with custom alfrescoMBeanServer) -->
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean"
depends-on="registry">
<property name="server" ref="alfrescoMBeanServer"/>
<property name="objectName" value="connector:name=rmi"/>
<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:${alfresco.rmi.services.port}/alfresco/jmxrmi" />
<property name="environment">
<map>
<!-- The following keys are only valid when sun jmx is used -->
<entry key="jmx.remote.x.password.file" value="${alfresco.jmx.dir}/alfresco-jmxrmi.password"/>
<entry key="jmx.remote.x.access.file" value="${alfresco.jmx.dir}/alfresco-jmxrmi.access"/>
</map>
</property>
</bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="server" ref="alfrescoMBeanServer"/>
<property name="beans">
<map>
<!-- MBeans to register with alfrescoMBeanServer -->
<entry key="Alfresco:Name=VirtServerRegistry,Type=VirtServerRegistry" value-ref="VirtServerRegistry"/>
<entry key="Alfresco:Name=FileServerConfig,Type=FileServerConfig" value-ref="FileServerConfig"/>
<entry key="Alfresco:Name=Log4jHierarchy,Type=Log4JHierarchy" value-ref="log4jHierarchy"/>
<entry key="Alfresco:Name=RepoServerMgmt,Type=RepoServerMgmt" value-ref="RepoServerMgmt"/>
</map>
</property>
</bean>
<!-- MBeans registered with alfrescoMBeanServer -->
<bean id="VirtServerRegistry"
class="org.alfresco.mbeans.VirtServerRegistry"
init-method="initialize" >
<!-- Authentication info to contact remote virtualization server -->
<!-- NOTE: -->
<!-- On the machine hosting the virtualization server, -->
<!-- $VIRTUAL_TOMCAT_HOME/conf/alfresco-jmxrmi.password and -->
<!-- $VIRTUAL_TOMCAT_HOME/conf/alfresco-jmxrmi.access -->
<!-- should have the same data as the corresponding files -->
<!-- contained here within the Alfresco webapp server. -->
<!-- By default, they do; however, if you change the password -->
<!-- file on one server, be sure to change it on the other. -->
<!-- -->
<!-- WARNING: -->
<!-- For security, be certain that *only* the uid under which -->
<!-- the servers run have read access to the password files -->
<!-- (e.g.: under Unix, chmod them to "400"). -->
<property name="passwordFile"
value="${alfresco.jmx.dir}/alfresco-jmxrmi.password"/>
<property name="accessFile"
value="${alfresco.jmx.dir}/alfresco-jmxrmi.access"/>
</bean>
<bean id="FileServerConfig"
class="org.alfresco.filesys.FileServerConfig">
<property name="fileServerConfiguration"><ref bean="fileServerConfiguration"/></property>
<property name="ftpServer"><ref bean="ftpServer"/></property>
<property name="cifsServer"><ref bean="cifsServer"/></property>
<property name="nfsServer"><ref bean="nfsServer"/></property>
</bean>
<!-- Log4J Hierarchy -->
<bean id="log4jHierarchy" class="org.apache.log4j.jmx.HierarchyDynamicMBean"/>
<bean id="log4JHierarchyInit" class="org.alfresco.repo.admin.Log4JHierarchyInit" init-method="init">
<property name="log4jHierarchy" ref="log4jHierarchy"/>
</bean>
<bean id="RepoServerMgmt" class="org.alfresco.repo.admin.RepoServerMgmt">
<property name="transactionService"><ref bean="transactionService"/></property>
<property name="authenticationService"><ref bean="authenticationService"/></property>
<property name="linkValidationService"><ref bean="linkValidationService"/></property>
<property name="maxUsers"><value>${server.maxusers}</value></property>
<property name="singleUserOnly"><value>${server.singleuseronly.name}</value></property>
</bean>
<!-- Datasource bean -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>${db.driver}</value>
</property>
<property name="url">
<value>${db.url}</value>
</property>
<property name="username">
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
<property name="initialSize" >
<value>${db.pool.initial}</value>
</property>
<property name="maxActive" >
<value>${db.pool.max}</value>
</property>
<property name="defaultAutoCommit" >
<value>false</value>
</property>
</bean>
<!-- Characterset decoder -->
<bean id="charset.finder" class="org.alfresco.repo.content.encoding.ContentCharsetFinder">
<property name="defaultCharset">
<value>UTF-8</value>
</property>
<property name="mimetypeService">
<ref bean="mimetypeService"/>
</property>
<property name="charactersetFinders">
<list>
<bean class="org.alfresco.encoding.GuessEncodingCharsetFinder" />
</list>
</property>
</bean>
<!-- transaction service -->
<alias name="transactionService" alias="transactionComponent"/>
<bean id="transactionService" class="org.alfresco.repo.transaction.TransactionServiceImpl">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="sysAdminCache">
<ref bean="sysAdminCache"/>
</property>
<property name="allowWrite">
<value>${server.transaction.allow-writes}</value>
</property>
</bean>
<bean id="retryingTransactionHelper" class="org.alfresco.repo.transaction.RetryingTransactionHelper">
<property name="transactionService">
<ref bean="transactionService"/>
</property>
<property name="maxRetries">
<value>${server.transaction.max-retries}</value>
</property>
</bean>
<bean id="readWriteTransactionDefinition" class="org.springframework.transaction.support.DefaultTransactionDefinition">
<property name="propagationBehaviorName">
<value>PROPAGATION_REQUIRED</value>
</property>
<property name="readOnly">
<value>false</value>
</property>
</bean>
<bean id="readOnlyTransactionDefinition" class="org.springframework.transaction.support.DefaultTransactionDefinition">
<property name="propagationBehaviorName">
<value>PROPAGATION_REQUIRED</value>
</property>
<property name="readOnly">
<value>true</value>
</property>
</bean>
<bean id="retryingWriteTxnAdvice" class="org.alfresco.repo.transaction.RetryingTransactionAdvice">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionDefinition">
<ref bean="readWriteTransactionDefinition"/>
</property>
<property name="maxRetries">
<value>20</value>
</property>
</bean>
<bean id="retryingReadTxnAdvice" class="org.alfresco.repo.transaction.RetryingTransactionAdvice">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionDefinition">
<ref bean="readOnlyTransactionDefinition"/>
</property>
<property name="maxRetries">
<value>20</value>
</property>
</bean>
<!-- -->
<!-- I18N -->
<!-- -->
<bean id="resourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
<property name="resourceBundles">
<list>
<value>alfresco.messages.system-messages</value>
<value>alfresco.messages.module-messages</value>
<value>alfresco.messages.dictionary-messages</value>
<value>alfresco.messages.version-service</value>
<value>alfresco.messages.permissions-service</value>
<value>alfresco.messages.content-service</value>
<value>alfresco.messages.coci-service</value>
<value>alfresco.messages.template-service</value>
<value>alfresco.messages.lock-service</value>
<value>alfresco.messages.patch-service</value>
<value>alfresco.messages.schema-update</value>
<value>alfresco.messages.webdav-messages</value>
<value>alfresco.messages.copy-service</value>
<value>alfresco.messages.avm-messages</value>
<value>alfresco.messages.content-filter-languages</value>
</list>
</property>
</bean>
<!-- Repo-based Message Service (based on Core I18NUtil) -->
<bean id="messageService" class="org.alfresco.repo.i18n.MessageServiceImpl">
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
<property name="resourceBundleBaseNamesCache">
<ref bean="resourceBundleBaseNamesCache"/>
</property>
<property name="loadedResourceBundlesCache">
<ref bean="loadedResourceBundlesCache"/>
</property>
<property name="messagesCache">
<ref bean="messagesCache"/>
</property>
</bean>
<!-- -->
<!-- MAIL SERVICE -->
<!-- -->
<bean id="mailService" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>${mail.host}</value>
</property>
<property name="port">
<value>${mail.port}</value>
</property>
<property name="username">
<value>${mail.username}</value>
</property>
<property name="password">
<value>${mail.password}</value>
</property>
<property name="defaultEncoding">
<value>${mail.encoding}</value>
</property>
</bean>
<!-- -->
<!-- Indexing and Search API -->
<!-- -->
<bean id="indexerComponent" class="org.alfresco.repo.search.IndexerComponent">
<property name="indexerAndSearcherFactory">
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<bean id="searchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<bean id="admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="admLuceneIndexerAndSearcherFactory" />
</property>
</bean>
<!-- -->
<!-- Generic factory for making indexers and searchers for a given protol or store -->
<!-- -->
<bean id="indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcher</value>
</property>
<property name="defaultBinding">
<ref bean="admLuceneIndexerAndSearcherFactory"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="admLuceneIndexerAndSearcherFactory"></ref>
</entry>
<entry key="versionStore">
<ref bean="admLuceneIndexerAndSearcherFactory"></ref>
</entry>
<entry key="avm">
<ref bean="avmLuceneIndexerAndSearcherFactory"></ref>
</entry>
</map>
</property>
</bean>
<bean id="categoryService" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.service.cmr.search.CategoryService</value>
</property>
<property name="defaultBinding">
<ref bean="luceneCategoryService"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="luceneCategoryService"></ref>
</entry>
<entry key="versionStore">
<ref bean="luceneCategoryService"></ref>
</entry>
<entry key="avm">
<ref bean="luceneCategoryService"></ref>
</entry>
</map>
</property>
</bean>
<bean id="indexThreadPoolExecutor" class="org.alfresco.util.ThreadPoolExecutorFactoryBean" singleton="true">
<property name="corePoolSize">
<value>10</value>
</property>
<property name="threadPriority">
<value>5</value>
</property>
</bean>
<!-- Indexer and searchers for lucene -->
<bean id="admLuceneIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="nameSpaceService">
<ref bean="namespaceService" />
</property>
<property name="indexRootLocation">
<value>${dir.indexes}</value>
</property>
<property name="contentService">
<ref bean="contentService" />
</property>
<property name="queryRegister">
<ref bean="queryRegisterComponent" />
</property>
<property name="maxAtomicTransformationTime">
<value>${lucene.maxAtomicTransformationTime}</value> <!-- milliseconds allowed for inline text transformation -->
</property>
<property name="queryMaxClauses">
<value>${lucene.query.maxClauses}</value>
</property>
<property name="indexerBatchSize">
<value>${lucene.indexer.batchSize}</value>
</property>
<property name="lockDirectory">
<value>${dir.indexes.lock}</value>
</property>
<property name="indexerMaxFieldLength">
<value>${lucene.indexer.maxFieldLength}</value>
</property>
<property name="writeLockTimeout">
<value>${lucene.write.lock.timeout}</value>
</property>
<property name="commitLockTimeout">
<value>${lucene.commit.lock.timeout}</value>
</property>
<property name="lockPollInterval">
<value>${lucene.lock.poll.interval}</value>
</property>
<property name="defaultMLIndexAnalysisMode">
<value>EXACT_LANGUAGE_AND_ALL</value>
</property>
<property name="defaultMLSearchAnalysisMode">
<value>EXACT_LANGUAGE_AND_ALL</value>
</property>
<property name="threadPoolExecutor">
<ref bean="indexThreadPoolExecutor"></ref>
</property>
</bean>
<!-- Indexer and searchers for lucene -->
<bean id="avmLuceneIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.lucene.AVMLuceneIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="nameSpaceService">
<ref bean="namespaceService" />
</property>
<property name="indexRootLocation">
<value>${dir.indexes}</value>
</property>
<property name="contentService">
<ref bean="contentService" />
</property>
<property name="contentStore">
<ref bean="fileContentStore"/>
</property>
<property name="avmService">
<ref bean="avmService" />
</property>
<property name="avmSyncService">
<ref bean="avmSyncService" />
</property>
<property name="queryRegister">
<ref bean="queryRegisterComponent" />
</property>
<property name="maxAtomicTransformationTime">
<value>${lucene.maxAtomicTransformationTime}</value> <!-- milliseconds allowed for inline text transformation -->
</property>
<property name="queryMaxClauses">
<value>${lucene.query.maxClauses}</value>
</property>
<property name="indexerBatchSize">
<value>${lucene.indexer.batchSize}</value>
</property>
<property name="lockDirectory">
<value>${dir.indexes.lock}</value>
</property>
<property name="indexerMaxFieldLength">
<value>${lucene.indexer.maxFieldLength}</value>
</property>
<property name="writeLockTimeout">
<value>${lucene.write.lock.timeout}</value>
</property>
<property name="commitLockTimeout">
<value>${lucene.commit.lock.timeout}</value>
</property>
<property name="lockPollInterval">
<value>${lucene.lock.poll.interval}</value>
</property>
<property name="defaultMLIndexAnalysisMode">
<value>EXACT_LANGUAGE_AND_ALL</value>
</property>
<property name="defaultMLSearchAnalysisMode">
<value>EXACT_LANGUAGE_AND_ALL</value>
</property>
<property name="threadPoolExecutor">
<ref bean="indexThreadPoolExecutor"></ref>
</property>
</bean>
<!-- Indexer and searchers for lucene -->
<bean id="luceneCategoryService" class="org.alfresco.repo.search.impl.lucene.LuceneCategoryServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="publicNodeService">
<ref bean="NodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="indexerAndSearcher">
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<!-- -->
<!-- Lock Service -->
<!-- -->
<bean id="lockService" class="org.alfresco.repo.lock.LockServiceImpl" init-method="initialise">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="authenticationService">
<ref bean="authenticationService"></ref>
</property>
<property name="ownableService">
<ref bean="ownableService"></ref>
</property>
<property name="searchService">
<ref bean="admSearchService"></ref>
</property>
</bean>
<!-- -->
<!-- Version Service -->
<!-- -->
<bean id="versionService" class="org.alfresco.repo.version.VersionServiceImpl" init-method="initialise">
<property name="nodeService">
<ref bean="NodeService" />
</property>
<property name="dbNodeService">
<ref bean="dbNodeService" />
</property>
<property name="versionCounterService">
<ref bean="versionCounterService" />
</property>
<property name="searcher">
<ref bean="admSearchService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="policyBehaviourFilter">
<ref bean="policyBehaviourFilter" />
</property>
</bean>
<bean id="versionNodeService" class="org.alfresco.repo.version.NodeServiceImpl">
<property name="dbNodeService">
<ref bean="dbNodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
</bean>
<bean id="versionCounterService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.repo.version.common.counter.VersionCounterService</value>
</property>
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref bean="versionCounterDaoComponent" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">${server.transaction.mode.default}, PROPAGATION_REQUIRES_NEW</prop>
</props>
</property>
</bean>
<bean id="versionableAspect" class="org.alfresco.repo.version.VersionableAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="versionService">
<ref bean="versionService"/>
</property>
<property name="nodeService">
<ref bean="nodeService"/>
</property>
</bean>
<!-- -->
<!-- Data Dictionary -->
<!-- -->
<bean id="namespaceDAO" class="org.alfresco.repo.dictionary.NamespaceDAOImpl">
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="urisCache">
<ref bean="urisCache"/>
</property>
<property name="prefixesCache">
<ref bean="prefixesCache"/>
</property>
</bean>
<bean id="dictionaryDAO" class="org.alfresco.repo.dictionary.DictionaryDAOImpl">
<constructor-arg index="0">
<ref bean="namespaceDAO" />
</constructor-arg>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="uriToModelsCache">
<ref bean="uriToModelsCache"/>
</property>
<property name="compiledModelsCache">
<ref bean="compiledModelsCache"/>
</property>
</bean>
<bean id="dictionaryService" class="org.alfresco.repo.dictionary.DictionaryComponent" depends-on="dictionaryBootstrap">
<property name="dictionaryDAO">
<ref bean="dictionaryDAO" />
</property>
</bean>
<bean id="namespaceService" class="org.alfresco.repo.dictionary.DictionaryNamespaceComponent"
depends-on="dictionaryDAO">
<property name="namespaceDAO">
<ref bean="namespaceDAO" />
</property>
</bean>
<bean id="dictionaryModelBootstrap" class="org.alfresco.repo.dictionary.DictionaryBootstrap" init-method="bootstrap" abstract="true">
<property name="dictionaryDAO"><ref local="dictionaryDAO"/></property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
</bean>
<bean id="dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="resourceBundles">
<property name="models">
<list>
<!-- System models -->
<value>alfresco/model/dictionaryModel.xml</value>
<value>alfresco/model/systemModel.xml</value>
<value>org/alfresco/repo/security/authentication/userModel.xml</value>
<!-- Content models -->
<value>alfresco/model/contentModel.xml</value>
<value>alfresco/model/bpmModel.xml</value>
<value>alfresco/model/wcmModel.xml</value>
<value>alfresco/model/forumModel.xml</value>
<!-- Content models -->
<value>alfresco/model/applicationModel.xml</value>
<value>alfresco/model/wcmAppModel.xml</value>
<!-- Implementation models -->
<value>org/alfresco/repo/action/actionModel.xml</value>
<value>org/alfresco/repo/rule/ruleModel.xml</value>
<value>org/alfresco/repo/version/version_model.xml</value>
<!-- Email model -->
<value>alfresco/model/emailServerModel.xml</value>
<!-- Calendar model -->
<value>alfresco/model/calendarModel.xml</value>
<!-- Blog Integration model -->
<value>alfresco/model/blogIntegrationModel.xml</value>
<!-- Deprecated types -->
<value>alfresco/model/deprecated/deprecated_contentModel.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/model/dataTypeAnalyzers</value>
<value>alfresco/messages/system-model</value>
<value>alfresco/messages/dictionary-model</value>
<value>alfresco/messages/content-model</value>
<value>alfresco/messages/bpm-messages</value>
<value>alfresco/messages/application-model</value>
<value>alfresco/messages/forum-model</value>
</list>
</property>
</bean>
<bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/model/defaultCustomModel.xml</value>
</list>
</property>
</bean>
<!-- -->
<!-- Copy Service -->
<!-- -->
<!-- Note this uses the node service that enforces permissions so you can only copy what you can see -->
<bean id="copyService" class="org.alfresco.repo.copy.CopyServiceImpl" init-method="init">
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="nodeService">
<ref bean="NodeService" />
</property>
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="ruleService">
<ref bean="ruleService" />
</property>
<property name="searchService">
<ref bean="ADMSearchService" />
</property>
<property name="permissionService">
<ref bean="PermissionService" />
</property>
<property name="authenticationService">
<ref bean="AuthenticationService" />
</property>
<property name="internalNodeService">
<ref bean="nodeService" />
</property>
</bean>
<!-- -->
<!-- CheckOut/CheckIn Service -->
<!-- -->
<bean id="checkOutCheckInService" class="org.alfresco.repo.coci.CheckOutCheckInServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="versionService">
<ref bean="versionService" />
</property>
<property name="lockService">
<ref bean="LockService" />
</property>
<property name="copyService">
<ref bean="CopyService" />
</property>
<property name="authenticationService">
<ref bean="authenticationService" />
</property>
<property name="searchService">
<ref bean="searchService" />
</property>
<property name="versionableAspect">
<ref bean="versionableAspect" />
</property>
</bean>
<bean id="workingCopyAspect" class="org.alfresco.repo.coci.WorkingCopyAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="nodeService">
<ref bean="NodeService" />
</property>
<property name="lockService">
<ref bean="LockService" />
</property>
</bean>
<bean id="discussableAspect" class="org.alfresco.repo.forum.DiscussableAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="nodeService">
<ref bean="NodeService" />
</property>
<property name="fileFolderService">
<ref bean="FileFolderService" />
</property>
</bean>
<!-- Bean to support full text search -->
<bean id="LuceneFullTextSearchIndexer"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" depends-on="indexerAndSearcherFactory">
<property name="proxyInterfaces">
<value>org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexer</value>
</property>
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref bean="luceneFullTextSearchIndexer" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">${server.transaction.mode.default}</prop>
</props>
</property>
</bean>
<bean id="luceneFullTextSearchIndexer" class="org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl">
<property name="indexerAndSearcherFactory">
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<!-- Bean to backup Lucene indexes -->
<bean id="luceneIndexBackupComponent"
class="org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerAndSearcherFactory$LuceneIndexBackupComponent">
<property name="transactionService">
<ref bean="transactionService" />
</property>
<property name="factories">
<set>
<ref bean="admLuceneIndexerAndSearcherFactory" />
</set>
</property>
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="targetLocation">
<value>${dir.root}/backup-lucene-indexes</value>
</property>
</bean>
<!-- -->
<!-- Thread Pool -->
<!-- -->
<bean id="threadPoolExecutor" class="org.alfresco.util.ThreadPoolExecutorFactoryBean" singleton="true">
<property name="corePoolSize">
<value>2</value>
</property>
</bean>
<!-- Query Register Component -->
<bean id="queryRegisterComponent" class="org.alfresco.repo.search.QueryRegisterComponentImpl">
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespaceService">
<ref bean="namespaceService" />
</property>
<!-- Query collections should be loaded on demand using this component - once loaded thay are available for use -->
</bean>
<!-- Audit -->
<bean id="auditableAspect" class="org.alfresco.repo.audit.AuditableAspect" init-method="init">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="authenticationService">
<ref bean="authenticationService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
</bean>
<!-- Multilingual Document-->
<bean id="multilingualDocumentAspect" class="org.alfresco.repo.model.ml.MultilingualDocumentAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="multilingualContentService">
<ref bean="multilingualContentService" />
</property>
</bean>
<!-- Empty translation -->
<bean id="emptyTranslationAspect" class="org.alfresco.repo.model.ml.EmptyTranslationAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
</bean>
<!-- Multilingual Container -->
<bean id="mlContainerType" class="org.alfresco.repo.model.ml.MLContainerType" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="multilingualContentService">
<ref bean="multilingualContentService" />
</property>
</bean>
<!-- Referenceable -->
<bean id="referenceableAspect" class="org.alfresco.repo.node.ReferenceableAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
</bean>
<!-- Temporary Aspect -->
<bean id="temporaryAspect" class="org.alfresco.repo.node.TemporaryAspect" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
</bean>
<!-- Configurable service -->
<bean id="configurableService" class="org.alfresco.repo.configuration.ConfigurableServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
</bean>
<!-- Registry service -->
<bean id="registryService" class="org.alfresco.repo.admin.registry.RegistryServiceImpl" init-method="init">
<property name="authenticationComponent">
<ref bean="authenticationComponent" />
</property>
<property name="namespaceService">
<ref bean="namespaceService" />
</property>
<property name="searchService">
<ref bean="SearchService" />
</property>
<property name="nodeService">
<ref bean="NodeService" />
</property>
<!-- Root properties -->
<property name="registryStore">
<value>system://system</value>
</property>
<property name="registryRootPath">
<value>/sys:system-registry</value>
</property>
</bean>
</beans>