Class Sweeper

All Implemented Interfaces:
Runnable, LifeCycle

@Deprecated(since="2021-05-27") public class Sweeper extends AbstractLifeCycle implements Runnable
Deprecated.
The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

A utility class to perform periodic sweeping of resources.

Sweeper.Sweepable resources may be added to or removed from a Sweeper 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 the Sweeper 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;
      }
  }
  
  • Constructor Details

    • Sweeper

      public Sweeper(Scheduler scheduler, long period)
      Deprecated.
  • Method Details

    • getSize

      public int getSize()
      Deprecated.
    • offer

      public boolean offer(Sweeper.Sweepable sweepable)
      Deprecated.
    • remove

      public boolean remove(Sweeper.Sweepable sweepable)
      Deprecated.
    • run

      public void run()
      Deprecated.
      Specified by:
      run in interface Runnable