Package org.alfresco.solr.tracker
Class AbstractTracker
- java.lang.Object
-
- org.alfresco.solr.tracker.AbstractTracker
-
- All Implemented Interfaces:
Tracker
- Direct Known Subclasses:
ActivatableTracker,CommitTracker,ModelTracker,ShardStatePublisher
public abstract class AbstractTracker extends Object implements Tracker
Abstract base class that provides commonTrackerbehaviour.- 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 org.alfresco.solr.client.SOLRAPIClientclientprotected StringcoreNameprotected Propertiespropsprotected booleanrollbackprotected ThrowablerollbackCausedByWhen rollback is set, original error is also gathered in order to provide detailed logging.protected intshardCountprotected intshardInstanceprotected Optional<String>shardKeyThe string representation of the shard key.protected Optional<org.alfresco.service.namespace.QName>shardPropertyThe property to use for determining the shard.protected org.alfresco.solr.TrackerStatestateprotected StringtrackerIdprotected booleantransformContentprotected Tracker.Typetype
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractTracker(Properties p, org.alfresco.solr.client.SOLRAPIClient client, String coreName, InformationServer informationServer, Tracker.Type type)protectedAbstractTracker(Tracker.Type type)Default constructor, strictly for testing.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.alfresco.solr.NodeReportcheckNode(Long dbid)Returns information about theNodeassociated with the given dbid.protected abstract voiddoTrack(String iterationId)Subclasses must implement behaviour that completes the following steps, in order: Purge Reindex Index Track repositoryDocRoutergetDocRouter()Returns theDocRouterinstance in use on this node.PropertiesgetProps()booleangetRollback()ThrowablegetRollbackCausedBy()abstract SemaphoregetRunLock()Trackers implementing this method should decide if the Run Lock is applied globally for every Tracker Thread (static) or locally for each running Threadorg.alfresco.solr.TrackerStategetTrackerState()Tracker.TypegetType()abstract SemaphoregetWriteLock()Trackers implementing this method should decide if the Write Lock is applied globally for every Tracker Thread (static) or locally for each running ThreadvoidinvalidateState()booleanisAlreadyInShutDownMode()voidsetRollback(boolean rollback, Throwable rollbackCausedBy)voidsetShutdown(boolean shutdown)voidshutdown()voidtrack()Template method - subclasses must implement theTracker-specific indexing by implementing the abstract methoddoTrack(String).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.alfresco.solr.tracker.Tracker
hasMaintenance, maintenance
-
-
-
-
Field Detail
-
props
protected Properties props
-
client
protected org.alfresco.solr.client.SOLRAPIClient client
-
coreName
protected String coreName
-
state
protected volatile org.alfresco.solr.TrackerState state
-
shardCount
protected int shardCount
-
shardInstance
protected int shardInstance
-
transformContent
protected boolean transformContent
-
rollback
protected volatile boolean rollback
-
rollbackCausedBy
protected Throwable rollbackCausedBy
When rollback is set, original error is also gathered in order to provide detailed logging.
-
type
protected final Tracker.Type type
-
trackerId
protected final String trackerId
-
shardProperty
protected Optional<org.alfresco.service.namespace.QName> shardProperty
The property to use for determining the shard. Note that this property is not used by all trackers, it is actually managed by theShardStatePublisherandMetadataTracker. We put this property here because otherwise we should introduce another supertype layer for those two trackers.
-
shardKey
protected Optional<String> shardKey
The string representation of the shard key. Note that this property is not used by all trackers, it is actually managed by theShardStatePublisherandMetadataTracker. We put this property here because otherwise we should introduce another supertype layer for those two trackers.
-
-
Constructor Detail
-
AbstractTracker
protected AbstractTracker(Tracker.Type type)
Default constructor, strictly for testing.
-
AbstractTracker
protected AbstractTracker(Properties p, org.alfresco.solr.client.SOLRAPIClient client, String coreName, InformationServer informationServer, Tracker.Type type)
-
-
Method Detail
-
doTrack
protected abstract void doTrack(String iterationId) throws Throwable
Subclasses must implement behaviour that completes the following steps, in order:- Purge
- Reindex
- Index
- Track repository
- Parameters:
iterationId- an identifier which is uniquely associated with a given iteration.- Throws:
Throwable
-
track
public void track()
Template method - subclasses must implement theTracker-specific indexing by implementing the abstract methoddoTrack(String).
-
getRollback
public boolean getRollback()
- Specified by:
getRollbackin interfaceTracker
-
getRollbackCausedBy
public Throwable getRollbackCausedBy()
- Specified by:
getRollbackCausedByin interfaceTracker
-
setRollback
public void setRollback(boolean rollback, Throwable rollbackCausedBy)- Specified by:
setRollbackin interfaceTracker
-
invalidateState
public void invalidateState()
- Specified by:
invalidateStatein interfaceTracker
-
getTrackerState
public org.alfresco.solr.TrackerState getTrackerState()
- Specified by:
getTrackerStatein interfaceTracker
-
isAlreadyInShutDownMode
public boolean isAlreadyInShutDownMode()
- Specified by:
isAlreadyInShutDownModein interfaceTracker
-
setShutdown
public void setShutdown(boolean shutdown)
- Specified by:
setShutdownin interfaceTracker
-
getWriteLock
public abstract Semaphore getWriteLock()
Trackers implementing this method should decide if the Write Lock is applied globally for every Tracker Thread (static) or locally for each running Thread- Specified by:
getWriteLockin interfaceTracker
-
getRunLock
public abstract Semaphore getRunLock()
Trackers implementing this method should decide if the Run Lock is applied globally for every Tracker Thread (static) or locally for each running Thread
-
getProps
public Properties getProps()
-
getType
public Tracker.Type getType()
-
checkNode
public org.alfresco.solr.NodeReport checkNode(Long dbid)
Returns information about theNodeassociated with the given dbid.- Parameters:
dbid- the node identifier.- Returns:
- the
Nodeassociated with the given dbid.
-
-