com.atlassian.confluence.search.lucene.queue
Class DatabaseIndexTaskQueue

java.lang.Object
  extended by com.atlassian.confluence.search.lucene.queue.DatabaseIndexTaskQueue
All Implemented Interfaces:
IndexTaskQueue, EventListener, org.springframework.context.ApplicationListener

public class DatabaseIndexTaskQueue
extends Object
implements IndexTaskQueue, org.springframework.context.ApplicationListener

An implementation of the IndexTaskQueue backed by the database.


Field Summary
static org.apache.log4j.Logger log
          Deprecated. since 3.1 do not use this class's logger externally. Create one in the class doing the logging.
 
Constructor Summary
DatabaseIndexTaskQueue()
           
 
Method Summary
 void deleteOldEntries()
          Delete all entries older then 2 days from the database.
 void enqueue(IndexTask task)
          Add a new index task to the queue.
 void enqueueAll(Collection<IndexTask> tasks)
          Add a collection of index tasks to the queue.
 List<IndexTask> flushQueue()
          Flush the contents of the queue, returning those elements currently queued as the result.
 List<IndexTask> flushQueue(int maxEntries)
          Flush the contents of the queue, returning those elements currently queued as the result.
 List<IndexTask> getQueuedEntries()
          Retrieve the list of index tasks currently queued.
 int getSize()
          Retrieve the number of tasks currently queued.
 void onApplicationEvent(org.springframework.context.ApplicationEvent event)
          Set the initial entry on the IndexQueueTracker.
 void reset()
          Reseting the queue removes all queued index tasks from the queue without flushing.
 void setAnyTypeDao(AnyTypeDao anyTypeDao)
           
 void setBootstrapManager(BootstrapManager bootstrapManager)
           
 void setIndexQueueTracker(IndexQueueTracker indexQueueTracker)
           
 void setIndexTaskFactory(IndexTaskFactory indexTaskFactory)
           
 void setQueueEntryDao(IndexQueueEntryDao queueEntryDao)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

@Deprecated
public static final org.apache.log4j.Logger log
Deprecated. since 3.1 do not use this class's logger externally. Create one in the class doing the logging.
Constructor Detail

DatabaseIndexTaskQueue

public DatabaseIndexTaskQueue()
Method Detail

onApplicationEvent

public void onApplicationEvent(org.springframework.context.ApplicationEvent event)
Set the initial entry on the IndexQueueTracker. This must be done after the Spring application context has started (so that we know that necessary database tables exist).

Specified by:
onApplicationEvent in interface org.springframework.context.ApplicationListener

enqueue

public void enqueue(IndexTask task)
Add a new index task to the queue.

Specified by:
enqueue in interface IndexTaskQueue

enqueueAll

public void enqueueAll(Collection<IndexTask> tasks)
Add a collection of index tasks to the queue.

Specified by:
enqueueAll in interface IndexTaskQueue

getSize

public int getSize()
Retrieve the number of tasks currently queued.

Specified by:
getSize in interface IndexTaskQueue
Returns:
an int count of the number of index tasks in the queue.

getQueuedEntries

public List<IndexTask> getQueuedEntries()
Retrieve the list of index tasks currently queued.

Specified by:
getQueuedEntries in interface IndexTaskQueue
Returns:
a list of IndexTask objects.

flushQueue

public List<IndexTask> flushQueue()
Description copied from interface: IndexTaskQueue
Flush the contents of the queue, returning those elements currently queued as the result.

Specified by:
flushQueue in interface IndexTaskQueue
Returns:
the list of entries on the queue when it was flushed.

flushQueue

public List<IndexTask> flushQueue(int maxEntries)
Description copied from interface: IndexTaskQueue
Flush the contents of the queue, returning those elements currently queued as the result.

Specified by:
flushQueue in interface IndexTaskQueue
Parameters:
maxEntries - the maximum number of entries to return. This should return the n first entries in the queue.
Returns:
the list of entries on the queue when it was flushed.

deleteOldEntries

public void deleteOldEntries()
Delete all entries older then 2 days from the database. This should be triggered by a regularly scheduled maintenance task.


reset

public void reset()
Reseting the queue removes all queued index tasks from the queue without flushing.

Specified by:
reset in interface IndexTaskQueue

setQueueEntryDao

public void setQueueEntryDao(IndexQueueEntryDao queueEntryDao)

setBootstrapManager

public void setBootstrapManager(BootstrapManager bootstrapManager)

setAnyTypeDao

public void setAnyTypeDao(AnyTypeDao anyTypeDao)

setIndexQueueTracker

public void setIndexQueueTracker(IndexQueueTracker indexQueueTracker)

setIndexTaskFactory

public void setIndexTaskFactory(IndexTaskFactory indexTaskFactory)


Copyright © 2003-2013 Atlassian. All Rights Reserved.