Files
alfresco-community-repo/config/alfresco/bootstrap-context.xml
Frederik Heremans 70d1b0783c Merged BRANCHES/DEV/FRED/ACTIVITI-UPGRADE to HEAD:
44909: Creating branch for activiti 5.11 upgrade
   44913: Upgraded to activiti 5.11 - to be validated
   45025: Removing obsolete libraries
   45026: Preventing optimistic locking during task-update sequence

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@45028 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2013-01-02 10:57:41 +00:00

833 lines
36 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<!--
Repository Bootstrap Sequence.
This file specifies the initialisation (and order of initialisation) to perform during Repository startup.
The pattern for adding new initialisation to the bootstrap sequence is as follows:
1) Develop a bean that extends the Spring Surf class AbstractLifecycleBean
2) Place the initialisation logic in the method onBootstrap(ApplicationEvent event)...
public void onBootstrap(ApplicationEvent event)
{
// initialisation logic here
}
3) Place the shutdown logic (if any) in the method onShutdown(ApplicationEvent event)...
public void onShutdown(ApplicationEvent event)
{
// cleanup logic here
}
4) Add the bean definition to this file - Note: the beans are initialised in the order they are specified.
-->
<beans>
<!--
The Shutdown Backstop Bean is a special bean which is used to terminate Alfresco if its
normal shutdown does not complete in a reasonable time - it needs to go first so it can
terminate any of the following beans if they misbehave.
-->
<bean id="shutdownBackstop" class="org.alfresco.repo.shutdown.ShutdownBackstop">
<property name="timeout">
<value>${shutdown.backstop.timeout}</value>
</property>
<property name="enabled">
<value>${shutdown.backstop.enabled}</value>
</property>
</bean>
<bean id="repositoryStartBootstrapBean" class="org.alfresco.repo.admin.RepositoryStartBootstrapBean" >
<property name="repositoryState">
<ref bean="repositoryState"/>
</property>
</bean>
<!-- ensure that the schema is bootstrapped -->
<bean id="schemaBootstrap" class="org.alfresco.repo.domain.schema.SchemaBootstrap" >
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="localSessionFactory">
<ref bean="&amp;sessionFactory"></ref> <!-- inject the actual factory, not a session -->
</property>
<property name="descriptorService">
<ref bean="descriptorComponent"/>
</property>
<property name="dialect">
<ref bean="dialect" />
</property>
<property name="maximumStringLength">
<value>${system.maximumStringLength}</value>
</property>
<property name="hibernateMaxExecutions">
<value>${system.hibernateMaxExecutions}</value>
</property>
<property name="updateSchema">
<value>${db.schema.update}</value>
</property>
<property name="stopAfterSchemaBootstrap">
<value>${db.schema.stopAfterSchemaBootstrap}</value>
</property>
<property name="schemaUpdateLockRetryCount">
<value>${db.schema.update.lockRetryCount}</value>
</property>
<property name="schemaUpdateLockRetryWaitSeconds">
<value>${db.schema.update.lockRetryWaitSeconds}</value>
</property>
<property name="globalProperties">
<ref bean="global-properties" />
</property>
<property name="preCreateScriptUrls">
<list>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-RepoTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-LockTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-ContentTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-PropertyValueTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-AuditTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-AvmTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-ActivityTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-UsageTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-SubscriptionTables.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-TenantTables.sql</value>
</list>
</property>
<property name="postCreateScriptUrls">
<list>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoPostCreate-JBPM-Extra.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoPostCreate-JBPM-FK-indexes.sql</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoPostCreate-JBPM-varinst-indexes.sql</value>
</list>
</property>
<property name="schemaReferenceUrls">
<list>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/Schema-Reference-ALF.xml</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/Schema-Reference-AVM.xml</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/Schema-Reference-JBPM.xml</value>
<value>classpath:alfresco/dbscripts/create/${db.script.dialect}/Schema-Reference-ACT.xml</value>
</list>
</property>
<property name="validateUpdateScriptPatches">
<list>
</list>
</property>
<property name="preUpdateScriptPatches">
<list>
<ref bean="patch.db-V2.2-ACL-From-2.1-A" />
<ref bean="patch.db-V2.2-ACL" />
<ref bean="patch.db-V2.2-CleanNodeStatuses" />
<ref bean="patch.db-V2.2-0-CreateMissingTables" />
<ref bean="patch.db-V2.2-Upgrade-From-2.1" />
<ref bean="patch.db-V2.2-Upgrade-From-2.2SP1" />
<ref bean="patch.db-V2.2-Person-3" />
<ref bean="patch.db-V3.2-LockTables" />
<ref bean="patch.db-V3.2-ContentTables" />
<ref bean="patch.db-V3.2-ContentTables2" />
<ref bean="patch.db-V3.2-PropertyValueTables" />
<ref bean="patch.db-V3.2-AuditTables" />
<ref bean="patch.db-V3.2-Child-Assoc-QName-CRC" />
<ref bean="patch.db-V3.3-modify-index-permission_id" />
<ref bean="patch.db-V3.2-AddFKIndexes" />
<ref bean="patch.db-V3.2-AddFKIndexes-2" />
<ref bean="patch.db-V3.0-ActivityTables" />
</list>
</property>
<property name="postUpdateScriptPatches">
<list>
<ref bean="patch.db-V3.1-Allow-IPv6" />
<ref bean="patch.db-V3.2-Remove-AVM-Issuer" />
<ref bean="patch.db-V3.2-Modify-AVM-MimeType" />
<ref bean="patch.db-V3.3-Remove-VersionCount" />
<ref bean="patch.db-V3.3-Fix-Repo-Seqs" />
<ref bean="patch.db-V3.3-Fix-AVM-Seqs" />
<ref bean="patch.db-V3.3-JBPM-Extra" />
<ref bean="patch.db-V3.3-Node-Prop-Serializable" />
<ref bean="patch.db-V3.4-property-unique-ctx-value" />
<ref bean="patch.db-V3.4-property-unique-ctx-idx" />
<ref bean="patch.db-V3.4-authority-unique-idx" />
<ref bean="patch.db-V3.4-child-assoc-indexes" />
<ref bean="patch.db-V3.4-RemovingLinkValidationMetadata" />
<ref bean="patch.db-V3.4-AVM-rename-dupes" />
<ref bean="patch.db-V3.4-VarcharFieldSizesQuadrupleIncreasing" />
<ref bean="patch.db-V3.4-JBPM-FK-indexes" />
<ref bean="patch.db-V3.4-Upgrade-JBPM" />
<ref bean="patch.db-V3.4-alter-jBPM331-CLOB-columns-to-nvarchar" />
<ref bean="patch.db-V3.4-AVM-index-child-entries-lower" />
<ref bean="patch.db-V3.4-JBPM-varinst-indexes" />
<ref bean="patch.db-V3.4-remove-redundant-jbpm-indexes" />
<ref bean="patch.db-V4.0-AclChangeSet" />
<ref bean="patch.db-V4.0-NodeAssoc-Ordering" />
<ref bean="patch.db-V4.0-Node-Locale" />
<ref bean="patch.db-V4.0-SubscriptionTables" />
<ref bean="patch.db-V4.0-SolrTracking" />
<ref bean="patch.db-V4.0-AclChangeSet2" />
<ref bean="patch.db-V4.0-Activiti-task-id-indexes" />
<ref bean="patch.db-V4.0-TenantTables" />
<ref bean="patch.db-V4.1-NodeDeleted" />
<ref bean="patch.db-V4.1-increase-column-size-activiti" />
<ref bean="patch.db-V4.1-remove-column-activiti" />
<ref bean="patch.db-V4.2-upgrade-to-activiti-5.10" />
<ref bean="patch.db-V4.1-rename-constraint-activiti" />
<ref bean="patch.db-V4.2-add-activti-index-historic-activity" />
<ref bean="patch.db-V4.2-upgrade-to-activiti-5.11" />
</list>
</property>
</bean>
<bean id="encryptionChecker" class="org.alfresco.encryption.EncryptionChecker">
<property name="transactionService" ref="transactionService"/>
<property name="keyStoreChecker" ref="keyStoreChecker"/>
</bean>
<!-- node indexing for ADM -->
<bean id="nodeIndexer" class="org.alfresco.repo.node.index.NodeIndexer">
<property name="disabled">
<value>${index.tracking.disableInTransactionIndexing}</value>
</property>
</bean>
<!-- Bootstrap the AVM -->
<bean id="avmBootstrap" class="org.alfresco.repo.avm.AvmBootstrap" >
<property name="avmLockingAwareService">
<ref bean="avmLockingAwareService"/>
</property>
<property name="avmRepository">
<ref bean="avmRepository"/>
</property>
<property name="permissionService">
<ref bean="permissionService"/>
</property>
<property name="avmSyncService">
<ref bean="avmSyncService"/>
</property>
</bean>
<!-- Load models -->
<bean id="dictionaryRepositoryBootstrap" class="org.alfresco.repo.dictionary.DictionaryRepositoryBootstrap">
<property name="dictionaryDAO" ref="dictionaryDAO"/>
<property name="contentService" ref="ContentService"/>
<property name="transactionService" ref="transactionService"/>
<property name="namespaceService" ref="namespaceService"/>
<property name="nodeService" ref="nodeService"/>
<property name="messageService" ref="messageService"/>
<property name="tenantAdminService" ref="tenantAdminService"/>
<property name="repositoryModelsLocations">
<list>
<ref bean="customModelsRepositoryLocation" />
</list>
</property>
<property name="repositoryMessagesLocations">
<list>
<ref bean="customMessagesRepositoryLocation" />
</list>
</property>
</bean>
<bean id="bootstrapReEncryptor" class="org.alfresco.encryption.BootstrapReEncryptor">
<property name="enabled" value="${encryption.bootstrap.reencrypt}"/>
<property name="reEncryptor" ref="reEncryptor"/>
</bean>
<!-- Bootstrap Data: Concrete instances for the basic Alfresco bootstrap -->
<bean id="systemInfoBootstrap" parent="systemInfoBootstrap-base" singleton="true" />
<bean id="userBootstrap" parent="userBootstrap-base" singleton="true" />
<bean id="systemBootstrap" parent="systemBootstrap-base" singleton="true" />
<bean id="versionBootstrap" parent="versionBootstrap-base" singleton="true" />
<bean id="version2Bootstrap" parent="version2Bootstrap-base" singleton="true" />
<bean id="spacesArchiveBootstrap" parent="spacesArchiveBootstrap-base" singleton="true" />
<!--
NOOP for fresh bootstrap (will skip store creation) - provides ordering when performing a repo restore (bootstrap import)
-->
<bean id="spacesModelsBootstrap" parent="storeImporter" singleton="true" />
<bean id="spacesBootstrap" parent="spacesBootstrap-base" singleton="true" />
<!--
NOOP for fresh bootstrap - provides ordering for site imports which occur via bootstrap context extensions
-->
<bean id="siteLoadBootstrap-Spaces" parent="spacesStoreImporter" singleton="true" />
<bean id="siteLoadBootstrap-Users" parent="userStoreImporter" singleton="true" />
<bean id="siteLoadBootstrap-AVM" parent="sitesAVMZipBootstrap-base" singleton="true" />
<bean id="workflowBootstrap" parent="workflowDeployer">
<property name="workflowDefinitions">
<list>
<!-- Adhoc workflow definition -->
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/adhoc_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Review and Approve workflow definitions -->
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/review_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/review_pooled_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/parallelreview_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/parallelreview_group_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- WCM workflow definitions -->
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/changerequest_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/submitdirect_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Invitation service workflow definition -->
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/invitation-nominated_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Invitation service workflow definition -->
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/invitation-moderated_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti Adhoc workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/adhoc.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti Review workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/review.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti Pooled Review workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/review-pooled.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti Parallel Review workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/parallel-review.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti Parallel Group Review workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/parallel-review-group.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti invitation service workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/invitation-moderated.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<!-- Activiti invitation service workflow definition -->
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/workflow/invitation-nominated.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
</list>
</property>
<property name="models">
<list>
<value>alfresco/workflow/workflowModel.xml</value>
<value>alfresco/workflow/wcmWorkflowModel.xml</value>
<value>alfresco/workflow/invitation-nominated-workflow-model.xml</value>
<value>alfresco/workflow/invitation-moderated-workflow-model.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/workflow/workflow-messages</value>
<value>alfresco/workflow/wcm-workflow-messages</value>
<value>alfresco/workflow/invitation-nominated-workflow-messages</value>
<value>alfresco/workflow/invitation-moderated-workflow-messages</value>
</list>
</property>
<property name="repositoryWorkflowDefsLocations" ref="customWorkflowDefsRepositoryLocation"/>
</bean>
<!-- Descriptor Service -->
<bean id="descriptorComponent" class="org.alfresco.repo.descriptor.DescriptorServiceImpl">
<property name="serverDescriptorDAO">
<ref bean="serverDescriptorDAO"/>
</property>
<property name="currentRepoDescriptorDAO">
<ref bean="currentRepoDescriptorDAO"/>
</property>
<property name="installedRepoDescriptorDAO">
<ref bean="installedRepoDescriptorDAO"/>
</property>
<property name="transactionService">
<ref bean="transactionService"/>
</property>
<property name="repoUsageComponent" ref="repoUsageComponent"/>
</bean>
<!-- Bootstrap MT (multi-tenancy) if applicable -->
<bean id="multiTenantBootstrap" class="org.alfresco.repo.tenant.MultiTenantBootstrap" >
<property name="tenantAdminService" ref="tenantAdminService"/>
<property name="patchService" ref="PatchService"/>
<property name="descriptorService" ref="descriptorComponent"/>
<property name="migrateAttrTenantsPatch" ref="patch.migrateAttrTenants"/>
</bean>
<!-- Bootstrap any extensions -->
<import resource="classpath*:alfresco/extension/bootstrap/*-context.xml" />
<!-- Start third party transformer Subsystem. -->
<bean id="thirdparty" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
</bean>
<bean id="OOoDirect" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- Bootstrap any enterprise contexts -->
<!-- This is placed at this point because we need the enterprise OOoJodConverter subsystem started
before reindexing begins. -->
<import resource="classpath*:alfresco/enterprise/bootstrap/*-context.xml" />
<!-- Perform index recovery before applying any patches -->
<!-- rebuild the index if required - before we check that it is there -->
<bean id="indexRecoveryBootstrap" class="org.alfresco.repo.node.index.IndexRecoveryBootstrapBean" >
<property name="indexRecoveryComponent">
<ref bean="indexRecoveryComponent"/>
</property>
</bean>
<bean id="avmIndexRecoveryBootstrap" class="org.alfresco.repo.node.index.IndexRecoveryBootstrapBean" >
<property name="indexRecoveryComponent">
<ref bean="avmIndexRecoveryComponent"/>
</property>
</bean>
<!-- This component checks the interconnection between the metadata, indexes and content -->
<bean id="configurationChecker" class="org.alfresco.repo.admin.ConfigurationChecker">
<property name="strict">
<value>${system.bootstrap.config_check.strict}</value>
</property>
<property name="dirRoot">
<value>${dir.root}</value>
</property>
<property name="indexRecoveryMode">
<value>${index.recovery.mode}</value>
</property>
<!-- helper beans -->
<property name="transactionService">
<ref bean="transactionService"/>
</property>
<property name="systemBootstrap">
<ref bean="systemBootstrap"/>
</property>
<property name="namespaceService">
<ref bean="namespaceService"/>
</property>
<property name="nodeService">
<ref bean="nodeService"/>
</property>
<property name="searchService">
<ref bean="searchService"/>
</property>
<property name="contentService">
<ref bean="contentService"/>
</property>
<property name="indexConfigurationChecker">
<ref bean="indexConfigurationChecker"/>
</property>
</bean>
<!-- This component ensures that patches get applied on startup -->
<bean id="patchExecuter" class="org.alfresco.repo.admin.patch.PatchExecuter">
<property name="patchService">
<ref bean="PatchService" />
</property>
</bean>
<!-- Import other Alfresco bootstrap components -->
<import resource="classpath*:alfresco/alfresco-*-bootstrap-context.xml" />
<!-- Start module components -->
<bean id="moduleStarter" class="org.alfresco.repo.module.ModuleStarter">
<property name="transactionService">
<ref bean="transactionService" />
</property>
<property name="moduleService">
<ref bean="ModuleService" />
</property>
</bean>
<!-- System Administration Parameters -->
<bean id="sysAdmin" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean"/>
<!-- File Servers Subsystem -->
<bean id="fileServers" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
<property name="compositePropertyTypes">
<map>
<entry key="nfs.user.mappings">
<value>org.alfresco.filesys.auth.nfs.UserMapping</value>
</entry>
<entry key="filesystem.acl.global.domainAccessControls">
<value>org.alfresco.filesys.config.acl.DomainAccessControlBean</value>
</entry>
<entry key="filesystem.acl.global.protocolAccessControls">
<value>org.alfresco.filesys.config.acl.ProtocolAccessControlBean</value>
</entry>
<entry key="filesystem.acl.global.userAccessControls">
<value>org.alfresco.filesys.config.acl.UserAccessControlBean</value>
</entry>
<entry key="filesystem.domainMappings">
<value>org.alfresco.filesys.config.DomainMappingConfigBean</value>
</entry>
</map>
</property>
<property name="persister">
<bean class="org.alfresco.config.AlfrescoPropertiesPersister"/>
</property>
</bean>
<bean id="fileServerConfiguration" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
<property name="sourceApplicationContextFactory">
<ref bean="fileServers" />
</property>
<property name="interfaces">
<list>
<!-- Allow authentication subsystem to see file server config at runtime -->
<value>org.alfresco.filesys.ExtendedServerConfigurationAccessor</value>
<!-- Allow export as MBean -->
<value>org.alfresco.filesys.FileServerConfigMBean</value>
</list>
</property>
</bean>
<bean id="contentDiskDriver" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
<property name="sourceApplicationContextFactory">
<ref bean="fileServers" />
</property>
<property name="sourceBeanName">
<value>contentDiskDriver</value>
</property>
<property name="interfaces">
<list>
<!-- Allow authentication subsystem to see content disk driver at runtime -->
<value>org.alfresco.filesys.alfresco.ExtendedDiskInterface</value>
</list>
</property>
</bean>
<!-- IMAP Subsystem -->
<bean id="imap" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
<property name="compositePropertyTypes">
<map>
<entry key="imap.config.server.mountPoints">
<value>org.alfresco.repo.imap.config.ImapConfigMountPointsBean</value>
</entry>
<entry key="imap.config.ignore.extraction">
<value>org.alfresco.util.config.RepositoryFolderConfigBean</value>
</entry>
</map>
</property>
</bean>
<!-- Outbound Email subsystem -->
<bean id="OutboundSMTP" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="category">
<value>email</value>
</property>
<property name="typeName">
<value>OutboundSMTP</value>
</property>
<property name="instancePath">
<list>
<value>outbound</value>
</list>
</property>
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- Inbound Email subsystem -->
<bean id="InboundSMTP" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="category">
<value>email</value>
</property>
<property name="typeName">
<value>InboundSMTP</value>
</property>
<property name="instancePath">
<list>
<value>inbound</value>
</list>
</property>
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- GoogleDocs subsystem -->
<bean id="googledocs" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- Subscription Service subsystem -->
<bean id="subscriptions" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="category">
<value>Subscriptions</value>
</property>
<property name="autoStart">
<value>true</value>
</property>
</bean>
<bean id="SubscriptionService" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
<property name="sourceApplicationContextFactory">
<ref bean="subscriptions" />
</property>
<property name="sourceBeanName">
<value>SubscriptionServiceImpl</value>
</property>
<property name="interfaces">
<list>
<value>org.alfresco.service.cmr.subscriptions.SubscriptionService</value>
</list>
</property>
</bean>
<!-- Start the quartz scheduler -->
<bean id="schedulerStarter" class="org.alfresco.util.SchedulerStarterBean" >
<property name="scheduler">
<ref bean="schedulerFactory"/>
</property>
</bean>
<!-- User usage tracking (requires a query across all users on startup) -->
<bean id="userUsageTrackingComponent" class="org.alfresco.repo.usage.UserUsageTrackingComponent" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent"/>
</property>
<property name="transactionService">
<ref bean="transactionService"/>
</property>
<property name="contentUsageImpl">
<ref bean="contentUsageImpl"/>
</property>
<!-- The store in which people are persisted-->
<property name="personStoreUrl">
<value>${spaces.store}</value>
</property>
<property name="nodeService">
<ref bean="nodeService"/>
</property>
<property name="usageDAO">
<ref bean="usageDAO"/>
</property>
<property name="usageService">
<ref bean="usageService"/>
</property>
<property name="tenantAdminService">
<ref bean="tenantAdminService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="clearBatchSize">
<value>${system.usages.clearBatchSize}</value>
</property>
<property name="updateBatchSize">
<value>${system.usages.updateBatchSize}</value>
</property>
<property name="enabled">
<value>${system.usages.enabled}</value>
</property>
</bean>
<!-- Synchronization of home folders locations to their HomeFolderProvider -->
<bean id="homeFolderProviderSynchronizer" class="org.alfresco.repo.security.person.HomeFolderProviderSynchronizer">
<constructor-arg ref="transactionService" />
<constructor-arg ref="authorityService" />
<constructor-arg ref="personService" />
<constructor-arg ref="nodeService" />
<constructor-arg ref="fileFolderService" />
<constructor-arg ref="homeFolderManager" />
<constructor-arg ref="tenantAdminService" />
<property name="enabled">
<value>${home_folder_provider_synchronizer.enabled}</value>
</property>
<property name="overrideHomeFolderProviderName">
<value>${home_folder_provider_synchronizer.override_provider}</value>
</property>
<property name="keepEmptyParents">
<value>${home_folder_provider_synchronizer.keep_empty_parents}</value>
</property>
</bean>
<!-- User registry synchronization jobs (e.g. LDAP) -->
<bean id="Synchronization" class="org.alfresco.repo.management.subsystems.ChildApplicationContextFactory" parent="abstractPropertyBackedBean">
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- Workflow Scheduler -->
<bean id="workflowScheduler" class="org.alfresco.repo.workflow.jbpm.JBPMScheduler">
<property name="JBPMTemplate" ref="jbpm_template" />
<property name="JBPMEngineEnabled">
<value>${system.workflow.engine.jbpm.enabled}</value>
</property>
</bean>
<!-- Start Auditing -->
<bean id="Audit" class="org.alfresco.repo.audit.model.AuditModelRegistryImpl" parent="abstractPropertyBackedBean">
<property name="searchPath">
<list>
<value>classpath*:alfresco/audit/*.xml</value>
<value>classpath*:alfresco/enterprise/audit/*.xml</value>
<value>classpath*:alfresco/module/*/audit/*.xml</value>
<value>classpath*:alfresco/extension/audit/*.xml</value>
</list>
</property>
<property name="transactionService" ref="transactionService" />
<property name="auditDAO" ref="auditDAO" />
<property name="dataExtractors" ref="auditModel.extractorRegistry" />
<property name="dataGenerators" ref="auditModel.generatorRegistry" />
<property name="autoStart">
<value>true</value>
</property>
</bean>
<!-- Repository helper class -->
<bean id="repositoryHelper" class="org.alfresco.repo.model.Repository">
<property name="transactionHelper" ref="retryingTransactionHelper" />
<property name="namespaceService" ref="namespaceService" />
<property name="nodeService" ref="nodeService" />
<property name="personService" ref="personService" />
<property name="fileFolderService" ref="fileFolderService" />
<property name="searchService" ref="searchService" />
<property name="tenantAdminService" ref="tenantAdminService" />
<property name="avmService" ref="AVMService" />
<property name="companyHomeStore"><value>${spaces.store}</value></property>
<property name="companyHomePath"><value>/${spaces.company_home.childname}</value></property>
</bean>
<!-- Site service cache warmer -->
<bean id="siteServiceBootstrap" class="org.alfresco.repo.site.SiteServiceBootstrap">
<property name="siteService" ref="SiteService" />
<property name="tenantAdminService" ref="tenantAdminService" />
</bean>
<!-- Scheduled persisted actions - load into quartz -->
<bean id="scheduledPersistedActionServiceBootstrap" class="org.alfresco.repo.action.scheduled.ScheduledPersistedActionServiceImpl$ScheduledPersistedActionServiceBootstrap">
<property name="scheduledPersistedActionService" ref="scheduledPersistedActionService" />
<property name="transactionHelper" ref="retryingTransactionHelper" />
</bean>
<bean id="repositoryEndBootstrapBean" class="org.alfresco.repo.admin.RepositoryEndBootstrapBean" >
<property name="repositoryState">
<ref bean="repositoryState"/>
</property>
</bean>
<bean id="webDavBootstrapBean" class="org.alfresco.repo.webdav.WebDavBootstrap" >
<property name="rootNode">
<ref bean="webdavRootNode"/>
</property>
</bean>
<bean id="fileServerConfigurationFactory" class="org.alfresco.filesys.config.FileServerConfigurationFactory"/>
<!-- Startup Message -->
<bean id="startupLog" class="org.alfresco.repo.descriptor.DescriptorStartupLog">
<property name="descriptorService">
<ref local="descriptorComponent"/>
</property>
<property name="transactionService">
<ref bean="transactionService"/>
</property>
</bean>
</beans>