- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.thread.Sweeper
-
- All Implemented Interfaces:
java.lang.Runnable
,LifeCycle
public class Sweeper extends AbstractLifeCycle implements java.lang.Runnable
A utility class to perform periodic sweeping of resources.
Sweeper.Sweepable
resources may be added to or removed from aSweeper
and the resource implementation decides whether it should be swept or not.If a
Sweeper.Sweepable
resources is itself a container of other sweepable resources, it will forward the sweep operation to children resources, and so on recursively.Typical usage is to add
Sweeper
as a bean to an existing container:Server server = new Server(); server.addBean(new Sweeper(), true); server.start();
Code that knows it has sweepable resources can then lookup theSweeper
and offer the sweepable resources to it:class MyComponent implements Sweeper.Sweepable { private final long creation; private volatile destroyed; MyComponent(Server server) { this.creation = System.nanoTime(); Sweeper sweeper = server.getBean(Sweeper.class); sweeper.offer(this); } void destroy() { destroyed = true; } @Override public boolean sweep() { return destroyed; } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Sweeper.Sweepable
ASweeper.Sweepable
resource implements this interface to signal to aSweeper
or to a parent container if it needs to be swept or not.-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doStart()
Method to override to start the lifecycleprotected void
doStop()
Method to override to stop the lifecycleint
getSize()
boolean
offer(Sweeper.Sweepable sweepable)
boolean
remove(Sweeper.Sweepable sweepable)
void
run()
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addEventListener, getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, setEventListeners, start, stop, toString
-
-
-
-
Constructor Detail
-
Sweeper
public Sweeper(Scheduler scheduler, long period)
-
-
Method Detail
-
doStart
protected void doStart() throws java.lang.Exception
Description copied from class:AbstractLifeCycle
Method to override to start the lifecycle- Overrides:
doStart
in classAbstractLifeCycle
- Throws:
AbstractLifeCycle.StopException
- If thrown, the lifecycle will immediately be stopped.java.lang.Exception
- If there was a problem starting. Will cause a transition to FAILED state
-
doStop
protected void doStop() throws java.lang.Exception
Description copied from class:AbstractLifeCycle
Method to override to stop the lifecycle- Overrides:
doStop
in classAbstractLifeCycle
- Throws:
java.lang.Exception
- If there was a problem stopping. Will cause a transition to FAILED state
-
getSize
public int getSize()
-
offer
public boolean offer(Sweeper.Sweepable sweepable)
-
remove
public boolean remove(Sweeper.Sweepable sweepable)
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
-
-