<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
 
<beans>
     <import resource="classpath:alfresco/public-services-security-context.xml" />

    <!-- Base Service Descriptor for Alfresco Services -->
    <bean id="AlfrescoServiceDescriptor" abstract="true" class="org.alfresco.repo.service.ServiceDescriptorAdvisorFactory">
    	<property name="namespace">
    		<value>http://www.alfresco.org</value>
    	</property>
    </bean>


    <!-- Service Registry -->

    <bean id="ServiceRegistry" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.ServiceRegistry</value>
    	</property>
    	<property name="target">
    		<bean class="org.alfresco.repo.service.ServiceDescriptorRegistry"/>
    	</property>
    	<property name="interceptorNames">
    		<list>
    			<idref local="ServiceRegistry_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="ServiceRegistry_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.ServiceRegistry</value>
    	</property>
    	<property name="description">
    		<value>Repository service registry</value>
    	</property>
    </bean>

    <!-- Exception Translation -->
    
    <bean id="exceptionTranslator" class="org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor"/>

    <!-- Descriptor Service -->

    <bean id="DescriptorService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.descriptor.DescriptorService</value>
    	</property>
    	<property name="target"><ref bean="descriptorComponent"/></property>
    	<property name="interceptorNames">
    		<list>
                <idref local="exceptionTranslator" />
    			<idref local="DescriptorService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="DescriptorService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.descriptor.DescriptorService</value>
    	</property>
    	<property name="description">
    		<value>Descriptor service</value>
    	</property>
    </bean>


    <!-- Namespace Service -->

    <bean id="NamespaceService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.namespace.NamespaceService</value>
    	</property>
    	<property name="target"><ref bean="namespaceService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="NamespaceService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="NamespaceService_security" />
    			<idref local="NamespaceService_descriptor" />
    		</list>
    	</property>
    </bean>
    
    <bean id="NamespaceService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="NamespaceService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.namespace.NamespaceService</value>
    	</property>
    	<property name="description">
    		<value>Namespace service</value>
    	</property>
    </bean>


    <!-- Transaction Service -->

	<alias alias="TransactionService" name="transactionComponent"/>
	

    <!-- Dictionary Service -->

    <bean id="DictionaryService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.dictionary.DictionaryService</value>
    	</property>
    	<property name="target"><ref bean="dictionaryService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="DictionaryService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="DictionaryService_security" />
    			<idref local="DictionaryService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="DictionaryService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="DictionaryService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.dictionary.DictionaryService</value>
    	</property>
    	<property name="description">
    		<value>Dictionary Service</value>
    	</property>
    </bean>


    <!-- Node Service -->

    <bean id="NodeService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.repository.NodeService</value>
    	</property>
    	<property name="target"><ref bean="nodeService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="NodeService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="NodeService_security" />
    			<idref local="NodeService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="NodeService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="exist*">${server.transaction.mode.readOnly}</prop>
                <prop key="get*">${server.transaction.mode.readOnly}</prop>
                <prop key="has*">${server.transaction.mode.readOnly}</prop>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="NodeService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.repository.NodeService</value>
    	</property>
    	<property name="description">
    		<value>Node Service</value>
    	</property>
    </bean>
    



    <!-- Content Service -->

    <bean id="ContentService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.repository.ContentService</value>
    	</property>
    	<property name="target"><ref bean="contentService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="ContentService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="ContentService_security" />
    			<idref local="ContentService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="ContentService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="ContentService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.repository.ContentService</value>
    	</property>
    	<property name="description">
    		<value>Content Service</value>
    	</property>
    </bean>


    <!-- Mime Type Service -->

    <bean id="MimetypeService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.repository.MimetypeService</value>
    	</property>
    	<property name="target"><ref bean="mimetypeMap"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="MimetypeService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="MimetypeService_security" />
    			<idref local="MimetypeService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="MimetypeService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="MimetypeService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.repository.MimetypeService</value>
    	</property>
    	<property name="description">
    		<value>Mime Type Service</value>
    	</property>
    </bean>


    <!-- Search Service -->

    <bean id="SearchService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.search.SearchService</value>
    	</property>
    	<property name="target"><ref bean="searchService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="SearchService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="SearchService_security" />
    			<idref local="SearchService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="SearchService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="SearchService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.search.SearchService</value>
    	</property>
    	<property name="description">
    		<value>Search Service</value>
    	</property>
    </bean>
   

    <!-- Category Service -->

    <bean id="CategoryService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.search.CategoryService</value>
    	</property>
    	<property name="target"><ref bean="categoryService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="CategoryService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="CategoryService_security" />
    			<idref local="CategoryService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="CategoryService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="CategoryService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.search.CategoryService</value>
    	</property>
    	<property name="description">
    		<value>Category Service</value>
    	</property>
    </bean>


    <!-- Copy Service -->

    <bean id="CopyService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.repository.CopyService</value>
    	</property>
    	<property name="target"><ref bean="copyService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="CopyService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="CopyService_security" />
    			<idref local="CopyService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="CopyService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="CopyService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.repository.CopyService</value>
    	</property>
    	<property name="description">
    		<value>Copy Service</value>
    	</property>
    </bean>
   

    <!-- Lock Service -->

    <bean id="LockService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.lock.LockService</value>
    	</property>
    	<property name="target"><ref bean="lockService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="LockService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="LockService_security" />
    			<idref local="LockService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="LockService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="LockService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.lock.LockService</value>
    	</property>
    	<property name="description">
    		<value>Lock Service</value>
    	</property>
    </bean>


    <!-- Version Service -->

    <bean id="VersionService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.version.VersionService</value>
    	</property>
    	<property name="target"><ref bean="versionService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="VersionService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="VersionService_security" />
    			<idref local="VersionService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="VersionService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="VersionService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.version.VersionService</value>
    	</property>
    	<property name="description">
    		<value>Version Service</value>
    	</property>
    </bean>


    <!-- COCI Service -->

    <bean id="CheckoutCheckinService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.coci.CheckOutCheckInService</value>
    	</property>
    	<property name="target"><ref bean="checkOutCheckInService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="CheckoutCheckinService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="CheckoutCheckinService_security" />
    			<idref local="CheckoutCheckinService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="CheckoutCheckinService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="CheckoutCheckinService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.coci.CheckOutCheckInService</value>
    	</property>
    	<property name="description">
    		<value>Version Service</value>
    	</property>
    </bean>


    <!-- Rule Service -->

    <bean id="RuleService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.rule.RuleService</value>
    	</property>
    	<property name="target"><ref bean="ruleService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="RuleService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="RuleService_security" />
    			<idref local="RuleService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="RuleService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="RuleService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.rule.RuleService</value>
    	</property>
    	<property name="description">
    		<value>Rule Service</value>
    	</property>
    </bean>


    <!-- Importer Service -->

    <bean id="ImporterService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.view.ImporterService</value>
    	</property>
    	<property name="target"><ref bean="importerComponent"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="ImporterService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="ImporterService_security" />
    			<idref local="ImporterService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="ImporterService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="ImporterService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.view.ImporterService</value>
    	</property>
    	<property name="description">
    		<value>Importer Service</value>
    	</property>
    </bean>


    <!-- Exporter Service -->

    <bean id="ExporterService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.view.ExporterService</value>
    	</property>
    	<property name="target"><ref bean="exporterComponent"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="ExporterService_transaction" />
    			<idref local="ExporterService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="ExporterService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>

    <bean id="ExporterService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.view.ExporterService</value>
    	</property>
    	<property name="description">
    		<value>Exporter Service</value>
    	</property>
    </bean>


    <!-- Action Service -->

    <bean id="ActionService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.action.ActionService</value>
    	</property>
    	<property name="target"><ref bean="actionService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="ActionService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="ActionService_security" />
    			<idref local="ActionService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="ActionService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="ActionService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.action.ActionService</value>
    	</property>
    	<property name="description">
    		<value>Action Service</value>
    	</property>
    </bean>


    <!-- Permission Service -->
    
    <bean id="PermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.security.PermissionService</value>
    	</property>
    	<property name="target"><ref bean="permissionService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="PermissionService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="PermissionService_security" />
    			<idref local="PermissionService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="PermissionService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="PermissionService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.security.PermissionService</value>
    	</property>
    	<property name="description">
    		<value>Permission Service</value>
    	</property>
    </bean>
    
    
    <!-- Authority Service -->
    
    <bean id="AuthorityService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.security.AuthorityService</value>
    	</property>
    	<property name="target"><ref bean="authorityService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="AuthorityService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="AuthorityService_security" />
    			<idref local="AuthorityService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="AuthorityService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="AuthorityService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.security.AuthorityService</value>
    	</property>
    	<property name="description">
    		<value>Authority Service</value>
    	</property>
    </bean>
    
    
    <!-- Ownable Service -->
    
    <bean id="OwnableService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.security.OwnableService</value>
    	</property>
    	<property name="target"><ref bean="ownableService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="OwnableService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="OwnableService_security" />
    			<idref local="OwnableService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="OwnableService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="OwnableService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.security.OwnableService</value>
    	</property>
    	<property name="description">
    		<value>OwnableService Service</value>
    	</property>
    </bean>
    
    
    
     <!-- Authentication Service -->
    
    <bean id="AuthenticationService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.security.AuthenticationService</value>
    	</property>
    	<property name="target"><ref bean="authenticationServiceImpl"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="AuthenticationService_transaction" />
                <idref local="exceptionTranslator" />
                <idref bean="AuthenticationService_security" />
    			<idref local="AuthenticationService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="AuthenticationService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="AuthenticationService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.security.AuthenticationService</value>
    	</property>
    	<property name="description">
    		<value>AuthenticationService Service</value>
    	</property>
    </bean>
    
    <!-- Template Service -->
    <bean id="TemplateService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.repository.TemplateService</value>
    	</property>
    	<property name="target"><ref bean="templateService"/></property>
    	<property name="interceptorNames">
    		<list>
    		    <idref local="TemplateService_transaction" />
             <idref local="exceptionTranslator" />
             <idref bean="TemplateService_security" />
    			 <idref local="TemplateService_descriptor" />
    		</list>
    	</property>
    </bean>

    <bean id="TemplateService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
    <bean id="TemplateService_descriptor" parent="AlfrescoServiceDescriptor">
    	<property name="interface">
    		<value>org.alfresco.service.cmr.repository.TemplateService</value>
    	</property>
    	<property name="description">
    		<value>TemplateService Service</value>
    	</property>
    </bean>
    
    <!-- File/Folder Service -->
    <bean id="FileFolderService" class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="proxyInterfaces">
    		<value>org.alfresco.service.cmr.model.FileFolderService</value>
    	</property>
    	<property name="target"><ref bean="fileFolderService"/></property>
    	<property name="interceptorNames">
            <list>
                <idref local="FileFolderService_transaction" />
                <idref local="exceptionTranslator" />
    		</list>
    	</property>
    </bean>

    <bean id="FileFolderService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager"/>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="list*">${server.transaction.mode.readOnly}</prop>
                <prop key="search*">${server.transaction.mode.readOnly}</prop>
                <prop key="get*">${server.transaction.mode.readOnly}</prop>
                <prop key="resolve*">${server.transaction.mode.readOnly}</prop>
                <prop key="*">${server.transaction.mode.default}</prop>
            </props>
        </property>
    </bean>
    
</beans>
