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 java.lang.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 java.lang.StringcoreNameprotected java.util.Propertiespropsprotected booleanrollbackprotected java.lang.ThrowablerollbackCausedByWhen rollback is set, original error is also gathered in order to provide detailed logging.protected intshardCountprotected intshardInstanceprotected java.util.Optional<java.lang.String>shardKeyThe string representation of the shard key.protected java.util.Optional<org.alfresco.service.namespace.QName>shardPropertyThe property to use for determining the shard.protected org.alfresco.solr.TrackerStatestateprotected java.lang.StringtrackerIdprotected booleantransformContentprotected Tracker.Typetype
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractTracker(java.util.Properties p, org.alfresco.solr.client.SOLRAPIClient client, java.lang.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(java.lang.Long dbid)Returns information about theNodeassociated with the given dbid.protected abstract voiddoTrack(java.lang.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.java.util.PropertiesgetProps()booleangetRollback()java.lang.ThrowablegetRollbackCausedBy()abstract java.util.concurrent.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 java.util.concurrent.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, java.lang.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 java.util.Properties props
-
client
protected org.alfresco.solr.client.SOLRAPIClient client
-
coreName
protected java.lang.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 java.lang.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 java.lang.String trackerId
-
shardProperty
protected java.util.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 java.util.Optional<java.lang.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(java.util.Properties p, org.alfresco.solr.client.SOLRAPIClient client, java.lang.String coreName, InformationServer informationServer, Tracker.Type type)
-
-
Method Detail
-
doTrack
protected abstract void doTrack(java.lang.String iterationId) throws java.lang.ThrowableSubclasses 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:
java.lang.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 java.lang.Throwable getRollbackCausedBy()
- Specified by:
getRollbackCausedByin interfaceTracker
-
setRollback
public void setRollback(boolean rollback, java.lang.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 java.util.concurrent.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 java.util.concurrent.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
-
getType
public Tracker.Type getType()
-
checkNode
public org.alfresco.solr.NodeReport checkNode(java.lang.Long dbid)
Returns information about theNodeassociated with the given dbid.- Parameters:
dbid- the node identifier.- Returns:
- the
Nodeassociated with the given dbid.
-
-