org.sakaiproject.search.component.service.impl
Class SearchIndexBuilderWorkerImpl

java.lang.Object
  extended by org.sakaiproject.search.component.service.impl.SearchIndexBuilderWorkerImpl
All Implemented Interfaces:
Runnable, SearchIndexBuilderWorker

public class SearchIndexBuilderWorkerImpl
extends Object
implements Runnable, SearchIndexBuilderWorker


Field Summary
protected static Object GLOBAL_CONTEXT
           
static String LOCKKEY
          The lock we use to ensure single search index writer
 long sleepTime
          The maximum sleep time for the wait/notify semaphore
 
Constructor Summary
SearchIndexBuilderWorkerImpl()
           
 
Method Summary
 void checkRunning()
           
 void clearHardLock()
           
 void destroy()
           
 String getCurrentDocument()
           
 String getCurrentElapsed()
           
 SearchWriterLock getCurrentLock()
           
 DataSource getDataSource()
           
 org.sakaiproject.entity.api.EntityManager getEntityManager()
           
 org.sakaiproject.event.api.EventTrackingService getEventTrackingService()
           
 boolean getHardLock(long nodeLifetime, boolean forceLock)
           
 String getLastDocument()
           
 String getLastElapsed()
           
 long getLastEventTime()
           
 long getLastIndex()
           
 long getLoadFactor()
           
 boolean getLockTransaction(long nodeLifetime)
           
 boolean getLockTransaction(long nodeLifetime, boolean forceLock)
           
 List<SearchWriterLock> getNodeStatus()
           
 String getNowIndexing()
           
 SearchIndexBuilderImpl getSearchIndexBuilder()
           
 SearchIndexBuilderWorkerDao getSearchIndexBuilderWorkerDao()
           
 SearchService getSearchService()
           
 org.sakaiproject.component.api.ServerConfigurationService getServerConfigurationService()
           
 org.sakaiproject.tool.api.SessionManager getSessionManager()
           
 long getSleepTime()
           
 boolean getSoakTest()
           
 long getStartDocIndex()
           
 org.sakaiproject.user.api.UserDirectoryService getUserDirectoryService()
           
 void init()
           
 boolean isLocalLock()
          Is the lock on this node, but not this thread lockedTo == null, localloc == false lockedTo == this node, locallock = false; lockedTo !
 boolean isRunning()
           
 boolean removeWorkerLock()
           
 void run()
          Main run target of the worker thread
 void setDataSource(DataSource dataSource)
           
 void setEntityManager(org.sakaiproject.entity.api.EntityManager entityManager)
           
 void setEventTrackingService(org.sakaiproject.event.api.EventTrackingService eventTrackingService)
           
 void setLastIndex(long l)
           
 void setLoadFactor(long loadFactor)
           
 void setNowIndexing(String reference)
           
 void setSearchIndexBuilder(SearchIndexBuilderImpl searchIndexBuilder)
           
 void setSearchIndexBuilderWorkerDao(SearchIndexBuilderWorkerDao searchIndexBuilderWorkerDao)
           
 void setSearchService(SearchService searchService)
           
 void setServerConfigurationService(org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService)
           
 void setSessionManager(org.sakaiproject.tool.api.SessionManager sessionManager)
           
 void setSleepTime(long sleepTime)
           
 void setSoakTest(boolean soakTest)
          Puts the index builder into a Soak test, when there are no pending items, it starts building again.
 void setStartDocIndex(long startDocIndex)
           
 void setUserDirectoryService(org.sakaiproject.user.api.UserDirectoryService userDirectoryService)
           
 void updateNodeLock(long lifeLeft)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOCKKEY

public static final String LOCKKEY
The lock we use to ensure single search index writer

See Also:
Constant Field Values

GLOBAL_CONTEXT

protected static final Object GLOBAL_CONTEXT

sleepTime

public long sleepTime
The maximum sleep time for the wait/notify semaphore

Constructor Detail

SearchIndexBuilderWorkerImpl

public SearchIndexBuilderWorkerImpl()
Method Detail

init

public void init()

run

public void run()
Main run target of the worker thread

Specified by:
run in interface Runnable

updateNodeLock

public void updateNodeLock(long lifeLeft)
                    throws SQLException
Specified by:
updateNodeLock in interface SearchIndexBuilderWorker
Throws:
SQLException

getLockTransaction

public boolean getLockTransaction(long nodeLifetime)
Specified by:
getLockTransaction in interface SearchIndexBuilderWorker

getLockTransaction

public boolean getLockTransaction(long nodeLifetime,
                                  boolean forceLock)
Specified by:
getLockTransaction in interface SearchIndexBuilderWorker
Returns:
Throws:
org.hibernate.HibernateException

getHardLock

public boolean getHardLock(long nodeLifetime,
                           boolean forceLock)

clearHardLock

public void clearHardLock()

isRunning

public boolean isRunning()
Specified by:
isRunning in interface SearchIndexBuilderWorker

checkRunning

public void checkRunning()
Specified by:
checkRunning in interface SearchIndexBuilderWorker

destroy

public void destroy()
Specified by:
destroy in interface SearchIndexBuilderWorker

getSleepTime

public long getSleepTime()
Returns:
Returns the sleepTime.

setSleepTime

public void setSleepTime(long sleepTime)
Parameters:
sleepTime - The sleepTime to set.

getDataSource

public DataSource getDataSource()
Returns:
Returns the dataSource.

setDataSource

public void setDataSource(DataSource dataSource)
Parameters:
dataSource - The dataSource to set.

getSearchIndexBuilderWorkerDao

public SearchIndexBuilderWorkerDao getSearchIndexBuilderWorkerDao()
Returns:
Returns the searchIndexBuilderWorkerDao.

setSearchIndexBuilderWorkerDao

public void setSearchIndexBuilderWorkerDao(SearchIndexBuilderWorkerDao searchIndexBuilderWorkerDao)
Parameters:
searchIndexBuilderWorkerDao - The searchIndexBuilderWorkerDao to set.

getCurrentLock

public SearchWriterLock getCurrentLock()
Specified by:
getCurrentLock in interface SearchIndexBuilderWorker

getNodeStatus

public List<SearchWriterLock> getNodeStatus()
Specified by:
getNodeStatus in interface SearchIndexBuilderWorker

removeWorkerLock

public boolean removeWorkerLock()
Specified by:
removeWorkerLock in interface SearchIndexBuilderWorker

getLastEventTime

public long getLastEventTime()
Specified by:
getLastEventTime in interface SearchIndexBuilderWorker

setLastIndex

public void setLastIndex(long l)
Specified by:
setLastIndex in interface SearchIndexBuilderWorker

setStartDocIndex

public void setStartDocIndex(long startDocIndex)
Specified by:
setStartDocIndex in interface SearchIndexBuilderWorker

setNowIndexing

public void setNowIndexing(String reference)
Specified by:
setNowIndexing in interface SearchIndexBuilderWorker

getLastIndex

public long getLastIndex()
Specified by:
getLastIndex in interface SearchIndexBuilderWorker
Returns:
Returns the lastIndex.

getNowIndexing

public String getNowIndexing()
Specified by:
getNowIndexing in interface SearchIndexBuilderWorker
Returns:
Returns the nowIndexing.

getStartDocIndex

public long getStartDocIndex()
Specified by:
getStartDocIndex in interface SearchIndexBuilderWorker
Returns:
Returns the startDocIndex.

getLastDocument

public String getLastDocument()
Specified by:
getLastDocument in interface SearchIndexBuilderWorker

getLastElapsed

public String getLastElapsed()
Specified by:
getLastElapsed in interface SearchIndexBuilderWorker

getCurrentDocument

public String getCurrentDocument()
Specified by:
getCurrentDocument in interface SearchIndexBuilderWorker

getCurrentElapsed

public String getCurrentElapsed()
Specified by:
getCurrentElapsed in interface SearchIndexBuilderWorker

getLoadFactor

public long getLoadFactor()
Returns:
the loadFactor

setLoadFactor

public void setLoadFactor(long loadFactor)
Parameters:
loadFactor - the loadFactor to set

isLocalLock

public boolean isLocalLock()
Is the lock on this node, but not this thread lockedTo == null, localloc == false lockedTo == this node, locallock = false; lockedTo != this node, localLock = true

Specified by:
isLocalLock in interface SearchIndexBuilderWorker

getSoakTest

public boolean getSoakTest()
Returns:
the soakTest

setSoakTest

public void setSoakTest(boolean soakTest)
Puts the index builder into a Soak test, when there are no pending items, it starts building again.

Parameters:
soakTest - the soakTest to set

getEntityManager

public org.sakaiproject.entity.api.EntityManager getEntityManager()
Returns:
the entityManager

setEntityManager

public void setEntityManager(org.sakaiproject.entity.api.EntityManager entityManager)
Parameters:
entityManager - the entityManager to set

getEventTrackingService

public org.sakaiproject.event.api.EventTrackingService getEventTrackingService()
Returns:
the eventTrackingService

setEventTrackingService

public void setEventTrackingService(org.sakaiproject.event.api.EventTrackingService eventTrackingService)
Parameters:
eventTrackingService - the eventTrackingService to set

getSearchIndexBuilder

public SearchIndexBuilderImpl getSearchIndexBuilder()
Returns:
the searchIndexBuilder

setSearchIndexBuilder

public void setSearchIndexBuilder(SearchIndexBuilderImpl searchIndexBuilder)
Parameters:
searchIndexBuilder - the searchIndexBuilder to set

getSearchService

public SearchService getSearchService()
Returns:
the searchService

setSearchService

public void setSearchService(SearchService searchService)
Parameters:
searchService - the searchService to set

getServerConfigurationService

public org.sakaiproject.component.api.ServerConfigurationService getServerConfigurationService()
Returns:
the serverConfigurationService

setServerConfigurationService

public void setServerConfigurationService(org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService)
Parameters:
serverConfigurationService - the serverConfigurationService to set

getSessionManager

public org.sakaiproject.tool.api.SessionManager getSessionManager()
Returns:
the sessionManager

setSessionManager

public void setSessionManager(org.sakaiproject.tool.api.SessionManager sessionManager)
Parameters:
sessionManager - the sessionManager to set

getUserDirectoryService

public org.sakaiproject.user.api.UserDirectoryService getUserDirectoryService()
Returns:
the userDirectoryService

setUserDirectoryService

public void setUserDirectoryService(org.sakaiproject.user.api.UserDirectoryService userDirectoryService)
Parameters:
userDirectoryService - the userDirectoryService to set


Copyright © 2003-2012 Sakai Project. All Rights Reserved.