org.codehaus.plexus.util.SweeperPool Maven / Gradle / Ivy
package org.codehaus.plexus.util;
/*
* Copyright The Codehaus Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.util.ArrayList;
/**
* Pools a bunch of objects . Runs a sweeper periodically to keep it down to size. The objects in the pool first get
* disposed first.
*
* @author Bert van Brakel
*
*/
public class SweeperPool
{
/***/
private static final boolean DEBUG = false;
/** Sweeps the pool periodically to trim it's size */
private transient Sweeper sweeper;
/** Absolute maximum size of the pool. */
private transient int maxSize;
/** The size the pool gets trimmed down to */
private transient int minSize;
/**
* When the sweeper runs and the pool is over this size, then the pool is trimmed
*/
private int triggerSize;
/** Holds the pooled objects */
private ArrayList