Fix AVM and context issues

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5749 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2007-05-22 10:45:49 +00:00
parent 4523a2dab7
commit 7f5c55247b
13 changed files with 62 additions and 21 deletions

View File

@@ -10,7 +10,7 @@
<ref bean="NodeService" />
</property>
<property name="searchService">
<ref bean="SearchService" />
<ref bean="ADMSearchService" />
</property>
<property name="authenticationComponent">
<ref bean="authenticationComponent" />
@@ -414,7 +414,7 @@
<bean id="simple-avm-submit" class="org.alfresco.repo.avm.actions.SimpleAVMSubmitAction" parent="action-executer">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
<property name="avmSyncService">
<ref bean="avmSyncService"/>
@@ -468,7 +468,7 @@
<bean id="avm-revert-to-version" class="org.alfresco.repo.avm.actions.AVMRevertToVersionAction" parent = "action-executer">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
<property name="publicAction">
<value>false</value>
@@ -477,7 +477,7 @@
<bean id="avm-undo-list" class="org.alfresco.repo.avm.actions.AVMUndoSandboxListAction" parent="action-executer">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
<property name="publicAction">
<value>false</value>

View File

@@ -86,7 +86,7 @@
<ref bean="namespaceService" />
</property>
<property name="searchService">
<ref bean="searchService" />
<ref bean="admSearchService" />
</property>
<property name="userNamesAreCaseSensitive">
<value>${user.name.caseSensitive}</value>
@@ -182,7 +182,7 @@
<ref bean="nodeService" />
</property>
<property name="searchService">
<ref bean="searchService" />
<ref bean="admSearchService" />
</property>
<property name="permissionServiceSPI">
<ref bean="permissionServiceImpl" />

View File

@@ -62,7 +62,7 @@
<ref bean="namespaceService" />
</property>
<property name="searchService">
<ref bean="searchService" />
<ref bean="admSearchService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />

View File

@@ -17,13 +17,13 @@
<bean id="bulkLoader" class="org.alfresco.repo.avm.util.BulkLoader">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
</bean>
<bean id="interactiveConsole" class="org.alfresco.repo.avm.AVMInterpreter">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
<property name="bulkLoader">
<ref bean="bulkLoader"/>

View File

@@ -269,6 +269,12 @@
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<bean id="admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="admLuceneIndexerAndSearcherFactory" />
</property>
</bean>
<!-- -->
@@ -471,7 +477,7 @@
<ref bean="ownableService"></ref>
</property>
<property name="searchService">
<ref bean="searchService"></ref>
<ref bean="admSearchService"></ref>
</property>
</bean>
@@ -491,7 +497,7 @@
<ref bean="versionCounterService" />
</property>
<property name="searcher">
<ref bean="searchService" />
<ref bean="admSearchService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
@@ -675,7 +681,7 @@
<ref bean="ruleService" />
</property>
<property name="searchService">
<ref bean="SearchService" />
<ref bean="ADMSearchService" />
</property>
<property name="permissionService">
<ref bean="PermissionService" />

View File

@@ -10,7 +10,7 @@
<property name="dictionaryService"><ref bean="dictionaryService" /></property>
<property name="nodeService"><ref bean="nodeService" /></property>
<property name="copyService"><ref bean="copyService" /></property>
<property name="searchService"><ref bean="searchService" /></property>
<property name="searchService"><ref bean="admSearchService" /></property>
<property name="contentService"><ref bean="contentService" /></property>
<property name="multilingualContentService"><ref bean="multilingualContentService" /></property>
<property name="mimetypeService"><ref bean="mimetypeService" /></property>
@@ -57,7 +57,7 @@
<ref bean="nodeService" />
</property>
<property name="searchService">
<ref bean="searchService" />
<ref bean="admSearchService" />
</property>
<property name="versionService">
<ref bean="versionService" />

View File

@@ -77,7 +77,7 @@
<!-- AVM Filesystem Interface -->
<bean id="avmDiskDriver" class="org.alfresco.filesys.avm.AVMDiskDriver" >
<property name="avmService"><ref bean="avmService" /></property>
<property name="avmService"><ref bean="indexingAVMService" /></property>
<property name="transactionService"><ref bean="transactionComponent" /></property>
<property name="authenticationComponent"><ref bean="authenticationComponent"/></property>
<property name="authenticationService"><ref bean="authenticationService"/></property>

View File

@@ -147,6 +147,23 @@
</list>
</property>
</bean>
<bean id="ADMSearchService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.service.cmr.search.SearchService</value>
</property>
<property name="target">
<ref bean="admSearchService"/>
</property>
<property name="interceptorNames">
<list>
<idref local="SearchService_transaction"/>
<idref local="AuditMethodInterceptor"/>
<idref local="exceptionTranslator"/>
<idref bean="SearchService_security"/>
</list>
</property>
</bean>
<bean id="SearchService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
@@ -692,7 +709,7 @@
<bean id="crossRepositoryCopyService" class="org.alfresco.repo.copy.CrossRepositoryCopyServiceImpl">
<property name="avmService">
<ref bean="avmService"/>
<ref bean="indexingAVMService"/>
</property>
<property name="nodeService">
<ref bean="nodeService"/>

View File

@@ -38,6 +38,8 @@ import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.NamespaceService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Factory for AVM indexers and searchers
@@ -47,6 +49,8 @@ import org.alfresco.service.namespace.NamespaceService;
*/
public class AVMLuceneIndexerAndSearcherFactory extends AbstractLuceneIndexerAndSearcherFactory
{
private static Log s_logger = LogFactory.getLog(AVMLuceneIndexerAndSearcherFactory.class);
private DictionaryService dictionaryService;
private NamespaceService nameSpaceService;
@@ -61,6 +65,11 @@ public class AVMLuceneIndexerAndSearcherFactory extends AbstractLuceneIndexerAnd
private ContentStore contentStore;
public AVMLuceneIndexerAndSearcherFactory()
{
s_logger.error("Creating AVMLuceneIndexerAndSearcherFactory");
}
/**
* Set the dictionary service
* @param dictionaryService

View File

@@ -250,6 +250,10 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
{
return docs;
}
if (desc.isLayeredDirectory() || desc.isLayeredFile())
{
return docs;
}
List<Pair<Integer, String>> paths = avmService.getHeadPaths(desc);
if(paths.size() == 0)

View File

@@ -83,18 +83,18 @@ public abstract class AbstractLuceneIndexerAndSearcherFactory implements LuceneI
* indexer for each store within a transaction
*/
private static Map<Xid, Map<StoreRef, LuceneIndexer>> activeIndexersInGlobalTx = new HashMap<Xid, Map<StoreRef, LuceneIndexer>>();
private Map<Xid, Map<StoreRef, LuceneIndexer>> activeIndexersInGlobalTx = new HashMap<Xid, Map<StoreRef, LuceneIndexer>>();
/**
* Suspended global transactions.
*/
private static Map<Xid, Map<StoreRef, LuceneIndexer>> suspendedIndexersInGlobalTx = new HashMap<Xid, Map<StoreRef, LuceneIndexer>>();
private Map<Xid, Map<StoreRef, LuceneIndexer>> suspendedIndexersInGlobalTx = new HashMap<Xid, Map<StoreRef, LuceneIndexer>>();
/**
* Thread local indexers - used outside a global transaction
*/
private static ThreadLocal<Map<StoreRef, LuceneIndexer>> threadLocalIndexers = new ThreadLocal<Map<StoreRef, LuceneIndexer>>();
private ThreadLocal<Map<StoreRef, LuceneIndexer>> threadLocalIndexers = new ThreadLocal<Map<StoreRef, LuceneIndexer>>();
/**
* The dafault timeout for transactions TODO: Respect this
@@ -311,7 +311,7 @@ public abstract class AbstractLuceneIndexerAndSearcherFactory implements LuceneI
* @param tx
* @return - the transaction id
*/
private static String getTransactionId(Transaction tx, StoreRef storeRef)
private String getTransactionId(Transaction tx, StoreRef storeRef)
{
if (tx instanceof SimpleTransaction)
{

View File

@@ -1442,7 +1442,7 @@ public class IndexInfo
{
public void beforeWithReadLock(String id, Set<Term> toDelete, Set<Term> read) throws IOException
{
closeDelta(id);
}
public void transition(String id, Set<Term> toDelete, Set<Term> read) throws IOException

View File

@@ -80,6 +80,11 @@
<property name="usr:members">
<type>d:text</type>
<multiple>true</multiple>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
</properties>
<associations>