Package org.alfresco.solr.tracker
Class AclTracker
- java.lang.Object
-
- org.alfresco.solr.tracker.AbstractTracker
-
- org.alfresco.solr.tracker.ActivatableTracker
-
- org.alfresco.solr.tracker.AclTracker
-
- All Implemented Interfaces:
Tracker
public class AclTracker extends ActivatableTracker
Multithreaded ACLTrackerimplementation.- Author:
- Matt Ward
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.alfresco.solr.tracker.Tracker
Tracker.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.slf4j.Loggerlog-
Fields inherited from class org.alfresco.solr.tracker.ActivatableTracker
isEnabled
-
Fields inherited from class org.alfresco.solr.tracker.AbstractTracker
client, coreName, logger, props, rollback, shardCount, shardInstance, shardKey, shardProperty, state, trackerId, transformContent, type
-
-
Constructor Summary
Constructors Constructor Description AclTracker(java.util.Properties p, org.alfresco.solr.client.SOLRAPIClient client, java.lang.String coreName, InformationServer informationServer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAclChangeSetToIndex(java.lang.Long aclChangeSetToIndex)voidaddAclChangeSetToPurge(java.lang.Long aclChangeSetToPurge)voidaddAclChangeSetToReindex(java.lang.Long aclChangeSetToReindex)voidaddAclToIndex(java.lang.Long aclToIndex)voidaddAclToPurge(java.lang.Long aclToPurge)voidaddAclToReindex(java.lang.Long aclToReindex)org.alfresco.solr.AclReportcheckAcl(java.lang.Long aclid)org.alfresco.solr.tracker.IndexHealthReportcheckIndex(java.lang.Long toTx, java.lang.Long toAclTx, java.lang.Long fromTime, java.lang.Long toTime)protected voidclearScheduledMaintenanceWork()Cleans up the scheduled maintenance work collected by this tracker.protected voiddoTrack(java.lang.String iterationId)Subclasses must implement behaviour that completes the following steps, in order: Purge Reindex Index Track repositoryjava.util.List<java.lang.Long>getAclsForDbAclTransaction(java.lang.Long acltxid)protected java.lang.LonggetChangeSetFromCommitTime(org.alfresco.solr.BoundedDeque<org.alfresco.solr.client.AclChangeSet> changeSetsFound, long lastGoodChangeSetCommitTimeInIndex)java.util.List<org.alfresco.solr.client.Node>getFullNodesForDbTransaction(java.lang.Long txid)protected org.alfresco.solr.client.AclChangeSetsgetSomeAclChangeSets(org.alfresco.solr.BoundedDeque<org.alfresco.solr.client.AclChangeSet> changeSetsFound, java.lang.Long fromCommitTime, long timeStep, int maxResults, long endTime)booleanhasMaintenance()protected voidindexAcl(java.util.List<org.alfresco.solr.client.AclReaders> aclReaderList, boolean overwrite)protected voidindexAclChangeSets()protected voidindexAcls()voidinvalidateState()voidmaintenance()protected voidpurgeAclChangeSets()protected voidpurgeAcls()protected voidreindexAclChangeSets()protected voidreindexAcls()protected voidtrackAclChangeSets()protected voidtrackRepository()-
Methods inherited from class org.alfresco.solr.tracker.ActivatableTracker
disable, enable, isDisabled, isEnabled, logAndClear, track
-
Methods inherited from class org.alfresco.solr.tracker.AbstractTracker
checkNode, getDocRouter, getProps, getRollback, getTrackerState, getType, getWriteLock, isAlreadyInShutDownMode, setRollback, setShutdown, shutdown
-
-
-
-
Constructor Detail
-
AclTracker
public AclTracker(java.util.Properties p, org.alfresco.solr.client.SOLRAPIClient client, java.lang.String coreName, InformationServer informationServer)
-
-
Method Detail
-
doTrack
protected void doTrack(java.lang.String iterationId) throws java.lang.ThrowableDescription copied from class:AbstractTrackerSubclasses must implement behaviour that completes the following steps, in order:- Purge
- Reindex
- Index
- Track repository
- Specified by:
doTrackin classAbstractTracker- Parameters:
iterationId- an identifier which is uniquely associated with a given iteration.- Throws:
java.lang.Throwable
-
maintenance
public void maintenance() throws java.lang.Exception- Throws:
java.lang.Exception
-
hasMaintenance
public boolean hasMaintenance()
-
indexAclChangeSets
protected void indexAclChangeSets() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
indexAcls
protected void indexAcls() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
reindexAclChangeSets
protected void reindexAclChangeSets() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
reindexAcls
protected void reindexAcls() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
purgeAclChangeSets
protected void purgeAclChangeSets() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
purgeAcls
protected void purgeAcls() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
addAclChangeSetToReindex
public void addAclChangeSetToReindex(java.lang.Long aclChangeSetToReindex)
-
addAclChangeSetToIndex
public void addAclChangeSetToIndex(java.lang.Long aclChangeSetToIndex)
-
addAclChangeSetToPurge
public void addAclChangeSetToPurge(java.lang.Long aclChangeSetToPurge)
-
addAclToReindex
public void addAclToReindex(java.lang.Long aclToReindex)
-
addAclToIndex
public void addAclToIndex(java.lang.Long aclToIndex)
-
addAclToPurge
public void addAclToPurge(java.lang.Long aclToPurge)
-
clearScheduledMaintenanceWork
protected void clearScheduledMaintenanceWork()
Description copied from class:ActivatableTrackerCleans up the scheduled maintenance work collected by this tracker.- Overrides:
clearScheduledMaintenanceWorkin classActivatableTracker
-
trackRepository
protected void trackRepository() throws java.io.IOException, org.alfresco.httpclient.AuthenticationException, org.json.JSONException- Throws:
java.io.IOExceptionorg.alfresco.httpclient.AuthenticationExceptionorg.json.JSONException
-
getChangeSetFromCommitTime
protected java.lang.Long getChangeSetFromCommitTime(org.alfresco.solr.BoundedDeque<org.alfresco.solr.client.AclChangeSet> changeSetsFound, long lastGoodChangeSetCommitTimeInIndex)- Parameters:
changeSetsFound- BoundedDequelastGoodChangeSetCommitTimeInIndex- long- Returns:
- Long
-
getSomeAclChangeSets
protected org.alfresco.solr.client.AclChangeSets getSomeAclChangeSets(org.alfresco.solr.BoundedDeque<org.alfresco.solr.client.AclChangeSet> changeSetsFound, java.lang.Long fromCommitTime, long timeStep, int maxResults, long endTime) throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
indexAcl
protected void indexAcl(java.util.List<org.alfresco.solr.client.AclReaders> aclReaderList, boolean overwrite) throws java.io.IOException- Parameters:
aclReaderList- Listoverwrite- boolean- Throws:
java.io.IOException
-
checkIndex
public org.alfresco.solr.tracker.IndexHealthReport checkIndex(java.lang.Long toTx, java.lang.Long toAclTx, java.lang.Long fromTime, java.lang.Long toTime) throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
getFullNodesForDbTransaction
public java.util.List<org.alfresco.solr.client.Node> getFullNodesForDbTransaction(java.lang.Long txid)
-
getAclsForDbAclTransaction
public java.util.List<java.lang.Long> getAclsForDbAclTransaction(java.lang.Long acltxid)
- Parameters:
acltxid- Long- Returns:
- List
-
checkAcl
public org.alfresco.solr.AclReport checkAcl(java.lang.Long aclid)
-
trackAclChangeSets
protected void trackAclChangeSets() throws org.alfresco.httpclient.AuthenticationException, java.io.IOException, org.json.JSONException- Throws:
org.alfresco.httpclient.AuthenticationExceptionjava.io.IOExceptionorg.json.JSONException
-
invalidateState
public void invalidateState()
- Specified by:
invalidateStatein interfaceTracker- Overrides:
invalidateStatein classAbstractTracker
-
-