You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by as...@apache.org on 2006/07/14 19:49:14 UTC
svn commit: r421965 [2/2] - in /jakarta/jcs/trunk/src/java/org/apache/jcs:
auxiliary/disk/jdbc/mysql/ engine/ engine/memory/ utils/access/
utils/config/ utils/net/ utils/props/ utils/serialization/ utils/servlet/
utils/struct/ utils/threadpool/ utils/t...
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorker.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorker.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorker.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorker.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.access;
/*
- * Copyright 2002-2004 The Apache Software 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.
+ * Copyright 2002-2004 The Apache Software 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.io.Serializable;
@@ -25,7 +20,6 @@
import org.apache.jcs.JCS;
import org.apache.jcs.access.exception.CacheException;
-
/**
* Utility class to encapsulate doing a piece of work, and caching the results
* in JCS. Simply construct this class with the region name for the Cache and
@@ -43,43 +37,49 @@
* and all subsequent workers with the same region, group, and key will wait on
* the first one and use his resulting work instead of doing the work
* themselves.
- *
+ * <p>
* This is ideal when the work being done is a query to the database where the
* results may take time to be retrieved.
+ * <p>
+ * For example:
*
- * For example: <br>
+ * <pre>
+ * public static JCSWorker cachingWorker = new JCSWorker("example region");
+ * public Object getSomething(Serializable aKey){
+ * JCSWorkerHelper helper = new AbstractJCSWorkerHelper(){
+ * public Object doWork(){
+ * // Do some (DB?) work here which results in a list
+ * // This only happens if the cache dosn't have a item in this region for aKey
+ * // Note this is especially useful with Hibernate, which will cache indiviual
+ * // Objects, but not entire query result sets.
+ * List results = query.list();
+ * // Whatever we return here get's cached with aKey, and future calls to
+ * // getResult() on a CachedWorker with the same region and key will return that instead.
+ * return results;
+ * };
+ * List result = worker.getResult(aKey, helper);
+ * }
+ * </pre>
*
- * <code>
- * public static JCSWorker cachingWorker = new JCSWorker("example region");<br>
- * public Object getSomething(Serializable aKey){<br>
- * JCSWorkerHelper helper = new AbstractJCSWorkerHelper(){<br>
- * public Object doWork(){<br>
- * // Do some (DB?) work here which results in a list <br>
- * // This only happens if the cache dosn't have a item in this region for aKey <br>
- * // Note this is especially useful with Hibernate, which will cache indiviual <br>
- * // Objects, but not entire query result sets. <br>
- * List results = query.list(); <br>
- * // Whatever we return here get's cached with aKey, and future calls to <br>
- * // getResult() on a CachedWorker with the same region and key will return that instead. <br>
- * return results; <br>
- * };<br>
- * List result = worker.getResult(aKey, helper);<br>
- * }
- * </code>
+ * This is essentially the same as doing:
*
- * This is essentially the same as doing: <code>
- * JCS jcs = JCS.getInstance("exampleregion");<br>
- * List results = (List) jcs.get(aKey);<br>
- * if(results != null){ //do the work here<br>
- * results = query.list(); jcs.put(aKey, results);<br>
- * }<br>
- * </code>
+ * <pre>
+ * JCS jcs = JCS.getInstance( "exampleregion" );
+ * List results = (List) jcs.get( aKey );
+ * if ( results != null )
+ * {
+ * //do the work here
+ * results = query.list();
+ * jcs.put( aKey, results );
+ * }
+ * </pre>
*
+ * <p>
* But has the added benifit of the work-load sharing; under normal
* circumstances if multiple threads all tried to do the same query at the same
* time, the same query would happen multiple times on the database, and the
* resulting object would get put into JCS multiple times.
- *
+ * <p>
* @author Travis Savo
*/
public class JCSWorker
@@ -100,7 +100,6 @@
/**
* Constructor which takes a region for the JCS cache.
- *
* @param aRegion
* The Region to use for the JCS cache.
*/
@@ -119,7 +118,6 @@
/**
* Getter for the region of the JCS Cache.
- *
* @return The JCS region in which the result will be cached.
*/
public String getRegion()
@@ -131,11 +129,8 @@
* Gets the cached result for this region/key OR does the work and caches
* the result, returning the result. If the result has not been cached yet,
* this calls doWork() on the JCSWorkerHelper to do the work and cache the
- * result.
- *
- * This is also an opertunity to do any post processing of the result in
- * your CachedWorker implementation.
- *
+ * result. This is also an opertunity to do any post processing of the
+ * result in your CachedWorker implementation.
* @param aKey
* The key to get/put with on the Cache.
* @param aWorker
@@ -157,11 +152,8 @@
* Gets the cached result for this region/key OR does the work and caches
* the result, returning the result. If the result has not been cached yet,
* this calls doWork() on the JCSWorkerHelper to do the work and cache the
- * result.
- *
- * This is also an opertunity to do any post processing of the result in
- * your CachedWorker implementation.
- *
+ * result. This is also an opertunity to do any post processing of the
+ * result in your CachedWorker implementation.
* @param aKey
* The key to get/put with on the Cache.
* @param aGroup
@@ -190,7 +182,6 @@
* @param aKey
* @param aGroup
* @param aHelper
- *
* @return Either the result of doing the work, or the cached result.
* @throws Exception
* If something goes wrong while doing the work, throw an
@@ -200,18 +191,18 @@
throws Exception
{
Object result = null;
- //long start = 0;
- //long dbTime = 0;
+ // long start = 0;
+ // long dbTime = 0;
JCSWorkerHelper helper = null;
synchronized ( map )
{
- //Check to see if we allready have a thread doing this work.
+ // Check to see if we allready have a thread doing this work.
helper = (JCSWorkerHelper) map.get( getRegion() + aKey );
if ( helper == null )
{
- //If not, add ourselves as the Worker so
- //calls in another thread will use this worker's result
+ // If not, add ourselves as the Worker so
+ // calls in another thread will use this worker's result
map.put( getRegion() + aKey, aHelper );
}
}
@@ -234,7 +225,7 @@
}
}
}
- //Do the work
+ // Do the work
try
{
if ( logger.isDebugEnabled() )
@@ -243,7 +234,7 @@
}
result = null;
- //Try to get the item from the cache
+ // Try to get the item from the cache
if ( aGroup != null )
{
result = cache.getFromGroup( aKey, aGroup );
@@ -252,7 +243,7 @@
{
result = cache.get( aKey );
}
- //If the cache dosn't have it, do the work.
+ // If the cache dosn't have it, do the work.
if ( result == null )
{
result = aHelper.doWork();
@@ -260,7 +251,7 @@
{
logger.debug( "Work Done, caching: key:" + aKey + ", group:" + aGroup + ", result:" + result + "." );
}
- //Stick the result of the work in the cache.
+ // Stick the result of the work in the cache.
if ( aGroup != null )
{
cache.putInGroup( aKey, aGroup, result );
@@ -270,7 +261,7 @@
cache.put( aKey, result );
}
}
- //return the result
+ // return the result
return result;
}
finally
@@ -281,7 +272,7 @@
}
synchronized ( map )
{
- //Remove ourselves as the worker.
+ // Remove ourselves as the worker.
if ( helper == null )
{
map.remove( getRegion() + aKey );
@@ -289,7 +280,7 @@
synchronized ( this )
{
aHelper.setFinished( true );
- //Wake everyone waiting on us
+ // Wake everyone waiting on us
notifyAll();
}
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorkerHelper.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorkerHelper.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorkerHelper.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorkerHelper.java Fri Jul 14 10:49:13 2006
@@ -1,27 +1,24 @@
package org.apache.jcs.utils.access;
/*
- * Copyright 2002-2004 The Apache Software 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.
+ * Copyright 2002-2004 The Apache Software 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.
*/
/**
* Interface for doing a piece of work which is expected to be cached. This is
- * ment to be used in conjunction with JCSWorker. Implement doWork() to return
- * the work being done. isFinished() should return false until setFinished(true)
- * is called, after which time it should return true.
- *
+ * ment to be used in conjunction with JCSWorker.
+ * <p>
+ * Implement doWork() to return the work being done. isFinished() should return
+ * false until setFinished(true) is called, after which time it should return
+ * true.
+ * <p>
* @author tsavo
*/
public interface JCSWorkerHelper
@@ -29,14 +26,14 @@
/**
* Tells us weather or not the work has been completed. This will be called
* automatically by JCSWorker. You should not call it yourself.
- *
+ * <p>
* @return True if the work has allready been done, otherwise false.
*/
public boolean isFinished();
/**
* Sets weather or not the work has been done.
- *
+ * <p>
* @param isFinished
* True if the work has allready been done, otherwise false.
*/
@@ -45,7 +42,7 @@
/**
* The method to implement to do the work that should be cached. JCSWorker
* will call this itself! You should not call this directly.
- *
+ * <p>
* @return The result of doing the work to be cached.
* @throws Exception
* If anything goes wrong while doing the work, an Exception
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/config/IUtilConstants.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/config/IUtilConstants.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/config/IUtilConstants.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/config/IUtilConstants.java Fri Jul 14 10:49:13 2006
@@ -1,32 +1,28 @@
package org.apache.jcs.utils.config;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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.io.InputStream;
import java.io.IOException;
-
+import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
- * Description of the Interface
- *
+ * This can hold some constants used by various utilities. We should probably
+ * just get rid of this.
+ * <p>
+ * It loads properties from jcsutil.properties on initialization.
*/
public interface IUtilConstants
{
@@ -38,7 +34,6 @@
/**
* Description of the Class
- *
*/
final static class Config
{
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/net/HostNameUtil.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/net/HostNameUtil.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/net/HostNameUtil.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/net/HostNameUtil.java Fri Jul 14 10:49:13 2006
@@ -7,10 +7,9 @@
import org.apache.commons.logging.LogFactory;
/**
- * Simple utility for getting hte local host name.
- *
+ * Simple utility for getting the local host name.
+ * <p>
* @author Aaron Smuts
- *
*/
public class HostNameUtil
{
@@ -18,8 +17,7 @@
/**
* Gets the address for the local machine.
- *
- *
+ * <p>
* @return InetAddress.getLocalHost().getHostAddress(), or unknown if there
* is an error.
*/
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/props/PropertyLoader.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/props/PropertyLoader.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/props/PropertyLoader.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/props/PropertyLoader.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.props;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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.io.InputStream;
@@ -22,20 +17,18 @@
/**
* I modified this class to work with .ccf files in particular. I also removed
* the resource bundle functionality.
- *
+ * <p>
* A simple class for loading java.util.Properties backed by .ccf files deployed
* as classpath resources. See individual methods for details.
* <p>
* The original source is from:
- *
+ * <p>
* @author (C) <a
* href="http://www.javaworld.com/columns/jw-qna-index.shtml">Vlad
* Roubtsov </a>, 2003
- *
*/
public abstract class PropertyLoader
{
-
private static final boolean THROW_ON_LOAD_FAILURE = true;
private static final String SUFFIX = ".ccf";
@@ -48,25 +41,19 @@
* use either "/" or "." for package segment separation with an optional
* leading "/" and optional ".ccf" suffix.
* <p>
- * The suffix ".ccf" will be appended if it is not set. This can also handle .properties files
- *
+ * The suffix ".ccf" will be appended if it is not set. This can also handle
+ * .properties files
+ * <p>
* Thus, the following names refer to the same resource:
*
* <pre>
- *
- *
- *
- *
- * some.pkg.Resource
- * some.pkg.Resource.ccf
- * some/pkg/Resource
- * some/pkg/Resource.ccf
- * /some/pkg/Resource
- * /some/pkg/Resource.ccf
- *
- *
- *
*
+ * some.pkg.Resource
+ * some.pkg.Resource.ccf
+ * some/pkg/Resource
+ * some/pkg/Resource.ccf
+ * /some/pkg/Resource
+ * /some/pkg/Resource.ccf
* </pre>
*
* @param name
@@ -74,7 +61,6 @@
* @param loader
* classloader through which to load the resource [null is
* equivalent to the application loader]
- *
* @return resource converted to java.util.properties [may be null if the
* resource was not found and THROW_ON_LOAD_FAILURE is false]
* @throws IllegalArgumentException
@@ -163,7 +149,7 @@
* that uses the current thread's context classloader. A better strategy
* would be to use techniques shown in
* http://www.javaworld.com/javaworld/javaqa/2003-06/01-qa-0606-load.html
- *
+ * <p>
* @param name
* @return Properties
*/
@@ -174,7 +160,6 @@
/**
* Can't use this one.
- *
*/
private PropertyLoader()
{
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java Fri Jul 14 10:49:13 2006
@@ -12,19 +12,17 @@
/**
* This uses a supplied Serialer to convert to and from cache elements.
- *
+ * <p>
* @author Aaron Smuts
- *
*/
public class SerializationConversionUtil
{
-
private final static Log log = LogFactory.getLog( SerializationConversionUtil.class );
/**
* This returns a wrapper that has a serialized version of the value instead
* of the value.
- *
+ * <p>
* @param element
* @param elementSerializer
* the serializer to be used.
@@ -77,7 +75,7 @@
/**
* This returns a wrapper that has a de-serialized version of the value
* instead of the serialized value.
- *
+ * <p>
* @param serialized
* @param elementSerializer
* the serializer to be used.
@@ -126,5 +124,4 @@
return deSerialized;
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java Fri Jul 14 10:49:13 2006
@@ -12,10 +12,8 @@
/**
* Performs default serialization and de-serialization.
- *
- *
+ * <p>
* @author Aaron Smuts
- *
*/
public class StandardSerializer
implements IElementSerializer
@@ -23,7 +21,6 @@
/**
* Serializes an object using default serilaization.
- *
*/
public byte[] serialize( Serializable obj )
throws IOException
@@ -42,8 +39,8 @@
}
/**
- * Uses default de-serialization to turn a byte array into an object. All exceptions are converted into
- * IOExceptions.
+ * Uses default de-serialization to turn a byte array into an object. All
+ * exceptions are converted into IOExceptions.
*/
public Object deSerialize( byte[] data )
throws IOException, ClassNotFoundException
@@ -71,5 +68,4 @@
ois.close();
}
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/servlet/BasicHttpAuthenticator.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/servlet/BasicHttpAuthenticator.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/servlet/BasicHttpAuthenticator.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/servlet/BasicHttpAuthenticator.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.servlet;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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.io.IOException;
@@ -21,7 +16,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jcs.utils.config.IUtilConstants;
@@ -30,7 +24,6 @@
/**
* Used to perform basic http authentication.
- *
*/
public class BasicHttpAuthenticator
{
@@ -51,6 +44,7 @@
/**
* Authenticates the http <code>"Authorization"</code> header information.
+ * <p>
* @param req
* @param res
* @return boolean
@@ -78,6 +72,7 @@
/**
* Returns true iff the given "Authorization" http request header contains
* authorized user id and password.
+ * <p>
* @param authHeader
* @return
* @throws IOException
@@ -112,9 +107,9 @@
/**
* Default implementation of checking the password.
+ * <p>
* @param userid
* @param password
- *
* @return true iff the given user id and password is valid.
*/
protected boolean checkPassword( String userid, String password )
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedList.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedList.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedList.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedList.java Fri Jul 14 10:49:13 2006
@@ -4,11 +4,12 @@
import org.apache.commons.logging.LogFactory;
/**
- * This is a generic thread safe double linked list.
+ * This is a generic thread safe double linked list. It's very simple and all
+ * the operations are so quick that course grained synchronization is more than
+ * acceptible.
*/
public class DoubleLinkedList
{
-
// record size to avoid having to iterate
private int size = 0;
@@ -21,7 +22,6 @@
/**
* Default constructor.
- *
*/
public DoubleLinkedList()
{
@@ -30,13 +30,12 @@
/**
* Adds a new node to the end of the link list.
- *
+ * <p>
* @param me
* The feature to be added to the Last
*/
public void addLast( DoubleLinkedListNode me )
{
-
if ( first == null )
{
// empty list.
@@ -53,13 +52,12 @@
/**
* Adds a new node to the start of the link list.
- *
+ * <p>
* @param me
* The feature to be added to the First
*/
public synchronized void addFirst( DoubleLinkedListNode me )
{
-
if ( last == null )
{
// empty list.
@@ -76,9 +74,9 @@
}
/**
- * Removes the specified node from the link list.
- * @return
- *
+ * Returns the last node from the link list, if there are any nodes.
+ * <p>
+ * @return The last node.
*/
public DoubleLinkedListNode getLast()
{
@@ -91,8 +89,8 @@
/**
* Removes the specified node from the link list.
+ * <p>
* @return
- *
*/
public DoubleLinkedListNode getFirst()
{
@@ -105,13 +103,12 @@
/**
* Moves an existing node to the start of the link list.
- *
+ * <p>
* @param ln
* Description of the Parameter
*/
public synchronized void makeFirst( DoubleLinkedListNode ln )
{
-
if ( ln.prev == null )
{
// already the first node. or not a node
@@ -141,7 +138,6 @@
*/
public synchronized void removeAll()
{
-
for ( DoubleLinkedListNode me = first; me != null; )
{
if ( me.prev != null )
@@ -158,10 +154,10 @@
/**
* Removes the specified node from the link list.
- *
+ * <p>
* @param me
* Description of the Parameter
- * @return
+ * @return true if an element was removed.
*/
public synchronized boolean remove( DoubleLinkedListNode me )
{
@@ -213,8 +209,8 @@
/**
* Removes the specified node from the link list.
- * @return
- *
+ * <p>
+ * @return The last node if there was one to remove.
*/
public DoubleLinkedListNode removeLast()
{
@@ -232,7 +228,7 @@
/**
* Returns the size of the list.
- *
+ * <p>
* @return int
*/
public int size()
@@ -240,7 +236,7 @@
return size;
}
- /////////////////////////////////////////////////////////////////////
+ // ///////////////////////////////////////////////////////////////////
/**
* Dump the cache entries from first to list for debugging.
*/
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedListNode.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedListNode.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedListNode.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/DoubleLinkedListNode.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.struct;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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.io.Serializable;
@@ -22,6 +17,9 @@
* This serves as a placeholder in a double linked list. You can extend this to
* add functionality. This allows you to remove in constant time from a linked
* list.
+ * <p>
+ * It simply holds the payload and a reference to the items before and after it
+ * in the list.
*/
public class DoubleLinkedListNode
implements Serializable
@@ -37,7 +35,6 @@
public DoubleLinkedListNode next;
/**
- *
* @param payloadP
*/
public DoubleLinkedListNode( Object payloadP )
@@ -52,5 +49,4 @@
{
return payload;
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUElementDescriptor.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUElementDescriptor.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUElementDescriptor.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUElementDescriptor.java Fri Jul 14 10:49:13 2006
@@ -1,14 +1,14 @@
package org.apache.jcs.utils.struct;
-
/**
+ * This is a node in the double linked list. It is stored as the value in the
+ * underlying map used by the LRUMap class.
+ * <p>
* @author aaronsm
- *
*/
public class LRUElementDescriptor
extends DoubleLinkedListNode
{
-
private static final long serialVersionUID = 8249555756363020156L;
/**
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMap.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMap.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMap.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMap.java Fri Jul 14 10:49:13 2006
@@ -29,22 +29,18 @@
* should be thread safe. It uses a hashtable and our own double linked list.
* <p>
* Locking is done on the instance.
- *
+ * <p>
* @author aaronsm
- *
*/
public class LRUMap
implements Map
{
-
private final static Log log = LogFactory.getLog( LRUMap.class );
// double linked list for lru
private DoubleLinkedList list;
- /**
- * Map where items are stored by key
- */
+ /** Map where items are stored by key. */
protected Map map;
int hitCnt = 0;
@@ -62,7 +58,7 @@
/**
* This creates an unbounded version. Setting the max objects will result in
* spooling on subsequent puts.
- *
+ * <p>
* @param maxObjects
*/
public LRUMap()
@@ -77,7 +73,7 @@
/**
* This sets the size limit.
- *
+ * <p>
* @param maxObjects
*/
public LRUMap( int maxObjects )
@@ -86,9 +82,9 @@
this.maxObjects = maxObjects;
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * This simply returned the number of elements in the map.
+ * <p>
* @see java.util.Map#size()
*/
public int size()
@@ -96,9 +92,9 @@
return map.size();
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * This removes all the items. It clears the map and the double linked list.
+ * <p>
* @see java.util.Map#clear()
*/
public void clear()
@@ -107,9 +103,9 @@
list.removeAll();
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * Returns true if the map is empty.
+ * <p>
* @see java.util.Map#isEmpty()
*/
public boolean isEmpty()
@@ -117,9 +113,9 @@
return map.size() == 0;
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * Returns true if the map contains an element for the supplied key.
+ * <p>
* @see java.util.Map#containsKey(java.lang.Object)
*/
public boolean containsKey( Object key )
@@ -127,9 +123,10 @@
return map.containsKey( key );
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * This is an expensive operation that determines if the object supplied is
+ * mapped to any key.
+ * <p>
* @see java.util.Map#containsValue(java.lang.Object)
*/
public boolean containsValue( Object value )
@@ -139,7 +136,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#values()
*/
public Collection values()
@@ -149,7 +145,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#putAll(java.util.Map)
*/
public void putAll( Map source )
@@ -166,9 +161,12 @@
}
}
- /*
- * (non-Javadoc)
- *
+ /**
+ * This returns a set of entries. Our LRUMapEntry is used since the value
+ * stored in the underlying map is a node in the double linked list. We
+ * wouldn't want to return this to the client, so we construct a new entry
+ * with the payload of the node.
+ * <p>
* @see java.util.Map#entrySet()
*/
public Set entrySet()
@@ -194,7 +192,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#keySet()
*/
public Set keySet()
@@ -205,7 +202,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#get(java.lang.Object)
*/
public Object get( Object key )
@@ -242,6 +238,11 @@
}
/**
+ * This gets an element out of the map without adjusting it's posisiton in
+ * the LRU. In other words, this does not count as being used. If the
+ * element is the last item in the list, it will still be the last itme in
+ * the list.
+ * <p>
* @param key
* @return Object
*/
@@ -269,7 +270,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#remove(java.lang.Object)
*/
public Object remove( Object key )
@@ -294,7 +294,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map#put(java.lang.Object, java.lang.Object)
*/
public Object put( Object key, Object value )
@@ -396,7 +395,7 @@
/**
* Adds a new node to the start of the link list.
- *
+ * <p>
* @param key
* @param val
* The feature to be added to the First
@@ -411,7 +410,7 @@
/**
* Returns the size of the list.
- *
+ * <p>
* @return int
*/
private int dumpCacheSize()
@@ -454,7 +453,6 @@
/**
* Checks to see if all the items that should be in the cache are. Checks
* consistency between List and map.
- *
*/
protected void verifyCache()
{
@@ -543,7 +541,7 @@
/**
* Logs an error is an element that should be in the cache is not.
- *
+ * <p>
* @param key
*/
protected void verifyCache( Object key )
@@ -576,7 +574,6 @@
* information.
* <p>
* Children can implement this method for special behavior.
- *
* @param key
* @param value
*/
@@ -592,7 +589,7 @@
/**
* The chunk size is the number of items to remove when the max is reached.
* By default it is 1.
- *
+ * <p>
* @param chunkSize
* The chunkSize to set.
*/
@@ -610,7 +607,6 @@
}
/**
- *
* @return IStats
*/
public IStats getStatistics()
@@ -653,5 +649,4 @@
return stats;
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMapEntry.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMapEntry.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMapEntry.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/LRUMapEntry.java Fri Jul 14 10:49:13 2006
@@ -5,9 +5,8 @@
/**
* Entry for the LRUMap.
- *
+ * <p>
* @author Aaron Smuts
- *
*/
public class LRUMapEntry
implements Entry, Serializable
@@ -31,7 +30,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map$Entry#getKey()
*/
public Object getKey()
@@ -41,7 +39,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map$Entry#getValue()
*/
public Object getValue()
@@ -51,7 +48,6 @@
/*
* (non-Javadoc)
- *
* @see java.util.Map$Entry#setValue(java.lang.Object)
*/
public Object setValue( Object valueArg )
@@ -60,5 +56,4 @@
this.value = valueArg;
return old;
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/SortedPreferentialArray.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/SortedPreferentialArray.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/SortedPreferentialArray.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/struct/SortedPreferentialArray.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.struct;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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 org.apache.commons.logging.Log;
@@ -22,14 +17,12 @@
/**
* This maintains a sorted array with a preferential replacement policy when
* full.
- *
+ * <p>
* Insertion time is n, search is log(n)
- *
- *
+ * <p>
* Clients must manage thread safety on previous version. I synchronized the
* public methods to add easy thread safety. I synchronized all public methods
* that make modifications.
- *
*/
public class SortedPreferentialArray
{
@@ -48,7 +41,7 @@
/**
* Consruct the array with the maximum size.
- *
+ * <p>
* @param maxSize
* int
*/
@@ -62,7 +55,7 @@
* If the array is full this will remove the smallest if preferLarge==true
* and if obj is bigger, or the largest if preferLarge=false and obj is
* smaller than the largest.
- *
+ * <p>
* @param obj
* Object
*/
@@ -113,7 +106,7 @@
/**
* Returns the largest without removing it from the array.
- *
+ * <p>
* @return Comparable
*/
public synchronized Comparable getLargest()
@@ -123,7 +116,7 @@
/**
* Returns the smallest element without removing it from the array.
- *
+ * <p>
* @return Comparable
*/
public synchronized Comparable getSmallest()
@@ -134,7 +127,7 @@
/**
* Insert looks for the nearest largest. It then determines which way to
* shuffle depending on the preference.
- *
+ * <p>
* @param obj
* Comparable
*/
@@ -251,12 +244,11 @@
log.debug( this.dumpArray() );
}
}
-
- } // end insert
+ }
/**
* Determines whether the preference is for large or small.
- *
+ * <p>
* @param pref
* boolean
*/
@@ -267,7 +259,7 @@
/**
* Returns and removes the nearer larger or equal object from the aray.
- *
+ * <p>
* @param obj
* Comparable
* @return Comparable, null if arg is null or none was found.
@@ -312,7 +304,7 @@
/**
* Returns the current size of the array.
- *
+ * <p>
* @return int
*/
public int size()
@@ -323,7 +315,7 @@
/**
* This determines the position in the array that is occupied by an object
* that is larger or equal to the argument. If none exists, -1 is returned.
- *
+ * <p>
* @param obj
* Object
* @return Object
@@ -358,24 +350,24 @@
* This method determines the position where an insert should take place for
* a given object. With some additional checking, this can also be used to
* find an object matching or greater than the argument.
- *
+ * <p>
* If the array is not full and the current object is larger than all the
* rest the first open slot at the end will be returned.
- *
+ * <p>
* If the object is larger than the largest and it is full, it will return
* the last position.
- *
+ * <p>
* If the array is empty, the first spot is returned.
- *
+ * <p>
* If the object is smaller than all the rests, the first position is
* returned. The caller must decide what to do given the preference.
- *
+ * <p>
* Returns the position of the object nearest to or equal to the larger
* object.
- *
+ * <p>
* If you want to find the takePosition, you have to calculate it.
* findNearestOccupiedLargerOrEqualPosition will calculate this for you
- *
+ * <p>
* @param obj
* Comparable
* @return int
@@ -501,6 +493,8 @@
greaterPos = curPos;
// set the current position to
// set the previous position to the current position
+ // We could have an integer overflow, but this array could
+ // never get that large.
int newPos = Math.min( curPos, ( curPos + prevPos ) / 2 );
prevPos = curPos;
curPos = newPos;
@@ -556,7 +550,7 @@
/**
* Removes the item from the array at the specified position. The remaining
* items to the right are shifted left.
- *
+ * <p>
* @param position
* int
* @throw IndexOutOfBoundsException if position is out of range.
@@ -589,7 +583,7 @@
/**
* Debugging method to return a human readable display of array data.
- *
+ * <p>
* @return
*/
protected String dumpArray()
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/PoolConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/PoolConfiguration.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/PoolConfiguration.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/PoolConfiguration.java Fri Jul 14 10:49:13 2006
@@ -3,31 +3,24 @@
import org.apache.jcs.utils.threadpool.behavior.IPoolConfiguration;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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.
*/
/**
* This object holds configuration data for a thread pool.
- *
+ * <p>
* @author Aaron Smuts
- *
*/
public class PoolConfiguration
implements Cloneable, IPoolConfiguration
{
-
private boolean useBoundary = true;
private int boundarySize = 2000;
@@ -41,7 +34,7 @@
private int keepAliveTime = 1000 * 60 * 5;
- //should be ABORT, BLOCK, RUN, WAIT, DISCARDOLDEST,
+ // should be ABORT, BLOCK, RUN, WAIT, DISCARDOLDEST,
private String whenBlockedPolicy = POLICY_RUN;
private int startUpSize = 4;
@@ -65,7 +58,6 @@
/**
* Default
- *
*/
public PoolConfiguration()
{
@@ -73,7 +65,8 @@
}
/**
- *
+ * Construct a completely configured instance.
+ * <p>
* @param useBoundary
* @param boundarySize
* @param maximumPoolSize
@@ -85,7 +78,7 @@
public PoolConfiguration( boolean useBoundary, int boundarySize, int maximumPoolSize, int minimumPoolSize,
int keepAliveTime, String whenBlockedPolicy, int startUpSize )
{
- setUseBoundary( useBoundary ) ;
+ setUseBoundary( useBoundary );
setBoundarySize( boundarySize );
setMaximumPoolSize( maximumPoolSize );
setMinimumPoolSize( minimumPoolSize );
@@ -170,6 +163,8 @@
{
if ( whenBlockedPolicy != null )
{
+ whenBlockedPolicy = whenBlockedPolicy.trim();
+
if ( whenBlockedPolicy.equalsIgnoreCase( POLICY_ABORT ) )
{
this.whenBlockedPolicy = POLICY_ABORT;
@@ -201,7 +196,6 @@
// the value is null, dfault to RUN
this.whenBlockedPolicy = POLICY_RUN;
}
-
}
/**
@@ -236,18 +230,19 @@
public String toString()
{
StringBuffer buf = new StringBuffer();
- buf.append( "useBoundary = [" + isUseBoundary() + "]" );
- buf.append( "boundarySize = [" + boundarySize + "]" );
- buf.append( "maximumPoolSize = [" + maximumPoolSize + "]" );
- buf.append( "minimumPoolSize = [" + minimumPoolSize + "]" );
- buf.append( "keepAliveTime = [" + keepAliveTime + "]" );
- buf.append( "whenBlockedPolicy = [" + getWhenBlockedPolicy() + "]" );
+ buf.append( "useBoundary = [" + isUseBoundary() + "] " );
+ buf.append( "boundarySize = [" + boundarySize + "] " );
+ buf.append( "maximumPoolSize = [" + maximumPoolSize + "] " );
+ buf.append( "minimumPoolSize = [" + minimumPoolSize + "] " );
+ buf.append( "keepAliveTime = [" + keepAliveTime + "] " );
+ buf.append( "whenBlockedPolicy = [" + getWhenBlockedPolicy() + "] " );
buf.append( "startUpSize = [" + startUpSize + "]" );
return buf.toString();
}
/**
* Copies the instance variables to another instance.
+ * <p>
* @return PoolConfiguration
*/
public Object clone()
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPool.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPool.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPool.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPool.java Fri Jul 14 10:49:13 2006
@@ -6,20 +6,18 @@
/**
* This is simply a wrapper around the Pooled Excutor that allows clients to
* access the queue.
- *
+ * <p>
* @author aaronsm
- *
*/
public class ThreadPool
{
-
private PooledExecutor pool = null;
private Channel queue = null;
/**
* Create the wrapper.
- *
+ * <p>
* @param pool
* @param queue
*/
@@ -31,7 +29,7 @@
/**
* This is intended to give the client access to the PooledExecutor itself.
- *
+ * <p>
* @return Returns the pool.
*/
public PooledExecutor getPool()
@@ -48,7 +46,8 @@
}
/**
- *
+ * Delegates execution to the pooled executor.
+ * <p>
* @param run
* @throws InterruptedException
*/
@@ -57,5 +56,4 @@
{
pool.execute( run );
}
-
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPoolManager.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPoolManager.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPoolManager.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/ThreadPoolManager.java Fri Jul 14 10:49:13 2006
@@ -1,19 +1,14 @@
package org.apache.jcs.utils.threadpool;
/*
- * Copyright 2001-2004 The Apache Software 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.
+ * Copyright 2001-2004 The Apache Software 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;
@@ -36,19 +31,19 @@
* This manages threadpools for an application using Doug Lea's Util Concurrent
* package.
* http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
- *
+ * <p>
* It is a singleton since threads need to be managed vm wide.
- *
- * This managers force you to use a bounded queue. By default it uses the
+ * <p>
+ * This manager forces you to use a bounded queue. By default it uses the
* current thread for execuion when the buffer is full and no free threads can
* be created.
- *
+ * <p>
* You can specify the props file to use or pass in a properties object prior to
* configuration. By default it looks for configuration information in
* thread_pool.properties.
- *
- * If set the Properties object will take precedence.
- *
+ * <p>
+ * If set, the Properties object will take precedence.
+ * <p>
* If a value is not set for a particular pool, the hard coded defaults will be
* used.
*
@@ -70,13 +65,11 @@
*
* You can configure default settings by specifying a default pool in the
* properties, ie "cache.ccf"
- *
+ * <p>
* @author Aaron Smuts
- *
*/
public class ThreadPoolManager
{
-
private static final Log log = LogFactory.getLog( ThreadPoolManager.class );
// DEFAULT SETTINGS, these are not final since they can be set
@@ -118,7 +111,6 @@
/**
* No instances please. This is a singleton.
- *
*/
private ThreadPoolManager()
{
@@ -127,7 +119,7 @@
/**
* Creates a pool based on the configuration info.
- *
+ * <p>
* @param config
* @return A ThreadPoll wrapper
*/
@@ -188,8 +180,8 @@
* Returns a configured instance of the ThreadPoolManger To specify a
* configuation file or Properties object to use call the appropriate setter
* prior to calling getInstance.
- *
- * @return
+ * <p>
+ * @return The single instance of the ThreadPoolManager
*/
public static synchronized ThreadPoolManager getInstance()
{
@@ -204,12 +196,11 @@
* Returns a pool by name. If a pool by this name does not exist in the
* configuration file or properties, one will be created using the default
* values.
- *
+ * <p>
* Pools are lazily created.
- *
- *
+ * <p>
* @param name
- * @return
+ * @return The thread pool configured for the name.
*/
public ThreadPool getPool( String name )
{
@@ -243,8 +234,8 @@
}
/**
- * returns the names of all configured pools.
- *
+ * Returns the names of all configured pools.
+ * <p>
* @return ArrayList of string names
*/
public ArrayList getPoolNames()
@@ -264,7 +255,7 @@
/**
* Setting this post initialization will have no effect.
- *
+ * <p>
* @param propsFileName
* The propsFileName to set.
*/
@@ -274,7 +265,10 @@
}
/**
- *
+ * Returns the name of the properties file that we used to initialize the
+ * pools. If the value was set post-initialization, then it may not be the
+ * file used.
+ * <p>
* @return Returns the propsFileName.
*/
public static String getPropsFileName()
@@ -285,7 +279,7 @@
/**
* This will be used if it is not null on initialzation. Setting this post
* initialization will have no effect.
- *
+ * <p>
* @param props
* The props to set.
*/
@@ -305,7 +299,6 @@
/**
* Intialize the ThreadPoolManager and create all the pools defined in the
* configuration.
- *
*/
protected void configure()
{
@@ -344,19 +337,16 @@
whenBlockedPolicy_DEFAULT, startUpSize_DEFAULT );
defaultConfig = loadConfig( DEFAULT_PROP_NAME_ROOT );
-
}
/**
- * Configures the default PoolConfiguration settings
- *
+ * Configures the default PoolConfiguration settings.
+ * <p>
* @param root
* @return PoolConfiguration
- *
*/
protected PoolConfiguration loadConfig( String root )
{
-
PoolConfiguration config = (PoolConfiguration) defaultConfig.clone();
if ( props.containsKey( root + ".useBoundary" ) )
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/behavior/IPoolConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/behavior/IPoolConfiguration.java?rev=421965&r1=421964&r2=421965&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/behavior/IPoolConfiguration.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/utils/threadpool/behavior/IPoolConfiguration.java Fri Jul 14 10:49:13 2006
@@ -1,8 +1,9 @@
package org.apache.jcs.utils.threadpool.behavior;
/**
+ * This provides values to use for the when-blocked-policy.
+ * <p>
* @author aaronsm
- *
*/
public interface IPoolConfiguration
{
@@ -78,9 +79,9 @@
/**
* should be ABORT, BLOCK, RUN, WAIT, DISCARDOLDEST.
- *
- * If an incorrect value is returned, run will be used.
- *
+ * <p>
+ * If an incorrect value is returned, RUN will be used.
+ * <p>
* @param whenBlockedPolicy
* The whenBlockedPolicy to set.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org