Merged V2.1 to HEAD

6944: More hibernate session cache taming.
   6945: Times for commits are close to linear in the number of items submitted.
   6946: Missing break statement. (Courtesy of Jan).
   6948: Fixed session cache eviction problem triggered by resetLayer().
   6956: Wrapped AVMService and AttributeService in TransactionResourceInterceptor.
   Reverted log4j.properties


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7368 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-11-12 23:18:09 +00:00
parent e3d5cececb
commit 209dd85a0d
23 changed files with 416 additions and 306 deletions

View File

@@ -1,10 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="attributeService" class="org.alfresco.repo.attributes.AttributeServiceImpl">
<bean id="attributeService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.service.cmr.attributes.AttributeService</value>
</property>
<property name="target">
<ref bean="attributeServiceBase"/>
</property>
<property name="interceptorNames">
<list>
<value>sessionSizeResourceInterceptor</value>
</list>
</property>
</bean>
<bean id="attributeServiceBase" class="org.alfresco.repo.attributes.AttributeServiceImpl">
<property name="attributeConverter">
<ref bean="attributeConverter"/>
</property>
@@ -15,9 +30,9 @@
<ref bean="attributeDAO"/>
</property>
</bean>
<bean id="attributeConverter" class="org.alfresco.repo.attributes.AttributeConverter"/>
<bean id="attributeDAO" class="org.alfresco.repo.attributes.hibernate.AttributeDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>

View File

@@ -5,7 +5,7 @@
<beans>
<!-- ID Issuers. -->
<bean id="nodeIssuer" class="org.alfresco.repo.avm.Issuer" depends-on="avmDAOs" >
<property name="name">
<value>node</value>
@@ -25,21 +25,21 @@
</bean>
<!-- DAOs for persistent data types -->
<!-- Issuers are not actual entities. More like pseudo entities. -->
<bean id="issuerDAO" class="org.alfresco.repo.avm.hibernate.IssuerDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmNodeDAO" class="org.alfresco.repo.avm.hibernate.AVMNodeDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmStoreDAO" class="org.alfresco.repo.avm.hibernate.AVMStoreDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
@@ -54,13 +54,13 @@
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="childEntryDAO" class="org.alfresco.repo.avm.hibernate.ChildEntryDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="historyLinkDAO" class="org.alfresco.repo.avm.hibernate.HistoryLinkDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
@@ -78,25 +78,31 @@
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmStorePropertyDAO" class="org.alfresco.repo.avm.hibernate.AVMStorePropertyDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmAspectNameDAO" class="org.alfresco.repo.avm.hibernate.AVMAspectNameDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="versionLayeredNodeEntryDAO" class="org.alfresco.repo.avm.hibernate.VersionLayeredNodeEntryDAOHibernate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="sessionCacheChecker" class="org.alfresco.repo.avm.hibernate.SessionCacheChecker">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmDAOs" class="org.alfresco.repo.avm.AVMDAOs">
<property name="issuerDAO">
<ref bean="issuerDAO"/>
@@ -141,7 +147,7 @@
<ref bean="versionLayeredNodeEntryDAO"/>
</property>
</bean>
<bean id="lookupCache" class="org.alfresco.repo.avm.LookupCache">
<property name="avmNodeDAO">
<ref bean="avmNodeDAO"/>
@@ -153,9 +159,9 @@
<ref bean="avmLookupCache"/>
</property>
</bean>
<bean id="rawServices" class="org.alfresco.repo.avm.util.RawServices"/>
<bean id="orphanReaper" class="org.alfresco.repo.avm.OrphanReaper"
depends-on="AVMService" destroy-method="shutDown">
<property name="activeBaseSleep">
@@ -176,11 +182,11 @@
</bean>
<bean id="createStoreTxnListener" class="org.alfresco.repo.avm.CreateStoreTxnListener"/>
<bean id="purgeStoreTxnListener" class="org.alfresco.repo.avm.PurgeStoreTxnListener"/>
<bean id="createVersionTxnListener" class="org.alfresco.repo.avm.CreateVersionTxnListener"/>
<bean id="purgeVersionTxnListener" class="org.alfresco.repo.avm.PurgeVersionTxnListener"/>
<bean id="avmRepository" class="org.alfresco.repo.avm.AVMRepository">
@@ -237,14 +243,14 @@
<!-- Used to notify virtualization server occur after commit/rollback -->
<bean id="AVMSubmitTransactionListener"
<bean id="AVMSubmitTransactionListener"
class="org.alfresco.repo.avm.wf.AVMSubmitTransactionListener"/>
<!-- NameMatcher beans for filtering what shows up as different in compares. -->
<bean id="excludeRegexMatcher" class="org.alfresco.util.RegexNameMatcher">
<property name="patterns">
<!--
<property name="patterns">
<!--
NOTE: Regexes are implicitly anchored with ^ and $ in this context.
-->
<list>
@@ -252,7 +258,7 @@
</list>
</property>
</bean>
<bean id="excludeExtensionMatcher" class="org.alfresco.repo.avm.util.FileExtensionNameMatcher">
<property name="extensions">
<list>
@@ -262,8 +268,8 @@
<value>~</value>
</list>
</property>
</bean>
</bean>
<bean id="globalPathExcluder" class="org.alfresco.util.OrCompositeNameMatcher">
<property name="matchers">
<list>
@@ -272,7 +278,7 @@
</list>
</property>
</bean>
<!-- Bean used to process content that has expired in AVM staging areas -->
<bean id="avmExpiredContentProcessor" class="org.alfresco.repo.avm.AVMExpiredContentProcessor">
<property name="adminUserName">
@@ -317,13 +323,13 @@
</bean>
<!-- AVM Locking. -->
<bean id="avmLockingService" class="org.alfresco.repo.avm.locking.AVMLockingServiceImpl">
<property name="attributeService">
<ref bean="attributeService"/>
</property>
<property name="authorityService">
<ref bean="authorityService"/>
<ref bean="authorityService"/>
</property>
<property name="personService">
<ref bean="personService"/>

View File

@@ -1,9 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<!-- Beans pertinent to node persistence and services -->
<!-- Beans pertinent to node persistence and services -->
<beans>
<bean id="mlPropertyInterceptor" class="org.alfresco.repo.node.MLPropertyInterceptor">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
@@ -15,7 +15,7 @@
<ref bean="dictionaryService" />
</property>
</bean>
<bean id="nodeRefPropertyInterceptor" class="org.alfresco.repo.node.NodeRefPropertyMethodInterceptor">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
@@ -24,7 +24,7 @@
<ref bean="dictionaryService" />
</property>
</bean>
<bean id="nodeService" class="org.springframework.aop.framework.ProxyFactoryBean" >
<property name="targetName">
<value>mlAwareNodeService</value>
@@ -57,7 +57,7 @@
</map>
</property>
</bean>
<!-- Map stores to archive stores -->
<bean id="storeArchiveMap" class="org.alfresco.repo.node.StoreArchiveMap">
<property name="archiveMap">
@@ -66,7 +66,7 @@
</map>
</property>
</bean>
<!-- Wrapper component to handle restore and purge of archived nodes -->
<bean id="nodeArchiveService" class="org.alfresco.repo.node.archive.NodeArchiveServiceImpl" >
<property name="nodeService">
@@ -92,7 +92,7 @@
<ref bean="policyComponent"/>
</property>
</bean>
<!-- Handles policy callbacks to ensure that node hierarchy gets indexed -->
<bean id="nodeIndexer" class="org.alfresco.repo.node.index.NodeIndexer" init-method="init">
<property name="policyComponent">
@@ -103,7 +103,7 @@
</property>
</bean>
<!-- ensures model-compliance of node structures -->
<!-- ensures model-compliance of node structures -->
<bean id="integrityChecker" class="org.alfresco.repo.node.integrity.IntegrityChecker" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent"/>
@@ -128,7 +128,7 @@
</property>
</bean>
<!-- tags nodes that are incomplete w.r.t. properties-->
<!-- tags nodes that are incomplete w.r.t. properties-->
<bean id="incompleteNodeTagger" class="org.alfresco.repo.node.integrity.IncompleteNodeTagger" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent"/>
@@ -185,7 +185,8 @@
<value>10000</value>
</property>
<property name="resourceManagerCallFrequencyMillis">
<value>5000</value>
<!-- Was 5000 -->
<value>1000</value>
</property>
</bean>
<bean id="sessionSizeResourceManager" class="org.alfresco.repo.domain.hibernate.SessionSizeResourceManager">
@@ -193,8 +194,9 @@
<ref bean="sessionFactory" />
</property>
<property name="threshold">
<value>5000</value>
<!-- Was 5000 -->
<value>100</value>
</property>
</bean>
</beans>

View File

@@ -749,7 +749,7 @@
</bean>
<!-- The AVMLockingAwareService -->
<bean id="avmLockingAwareService" class="org.alfresco.repo.avm.AVMLockingAwareService">
<!-- Because of circular dependendencies, this bean's dependencies
are grabbed at bootstrap time.x -->
@@ -791,7 +791,21 @@
<!-- The AVMService -->
<bean id="avmService" class="org.alfresco.repo.avm.AVMServiceImpl">
<bean id="avmService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.service.cmr.avm.AVMService</value>
</property>
<property name="target">
<ref bean="avmServiceBase"/>
</property>
<property name="interceptorNames">
<list>
<value>sessionSizeResourceInterceptor</value>
</list>
</property>
</bean>
<bean id="avmServiceBase" class="org.alfresco.repo.avm.AVMServiceImpl">
<property name="avmRepository">
<ref bean="avmRepository"/>
</property>
@@ -1364,7 +1378,7 @@
<!-- LinkValidationService -->
<!-- Read transaction advisor for link validation service. -->
<bean id="linkValidationServiceReadTxnAdvisor"
<bean id="linkValidationServiceReadTxnAdvisor"
class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice">
<ref bean="retryingReadTxnAdvice"/>
@@ -1382,7 +1396,7 @@
</bean>
<!-- Write transaction advisor for link validation service. -->
<bean id="linkValidationServiceWriteTxnAdvisor"
<bean id="linkValidationServiceWriteTxnAdvisor"
class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice">
<ref bean="retryingWriteTxnAdvice"/>
@@ -1394,7 +1408,7 @@
</property>
</bean>
<bean id="LinkValidationService"
<bean id="LinkValidationService"
class="org.springframework.aop.framework.ProxyFactoryBean"
lazy-init="true">
<property name="proxyInterfaces">