Return-Path: Delivered-To: apmail-jakarta-jcs-dev-archive@www.apache.org Received: (qmail 33963 invoked from network); 14 Jul 2006 17:49:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 14 Jul 2006 17:49:45 -0000 Received: (qmail 43578 invoked by uid 500); 14 Jul 2006 17:49:44 -0000 Delivered-To: apmail-jakarta-jcs-dev-archive@jakarta.apache.org Received: (qmail 43554 invoked by uid 500); 14 Jul 2006 17:49:44 -0000 Mailing-List: contact jcs-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "JCS Developers List" Delivered-To: mailing list jcs-dev@jakarta.apache.org Received: (qmail 43543 invoked by uid 500); 14 Jul 2006 17:49:44 -0000 Delivered-To: apmail-jakarta-jcs-commits@jakarta.apache.org Received: (qmail 43540 invoked by uid 500); 14 Jul 2006 17:49:44 -0000 Delivered-To: apmail-jakarta-jcs-cvs@jakarta.apache.org Received: (qmail 43537 invoked by uid 99); 14 Jul 2006 17:49:44 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Jul 2006 10:49:44 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Jul 2006 10:49:40 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id B83A91A981D; Fri, 14 Jul 2006 10:49:20 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Fri, 14 Jul 2006 17:49:14 -0000 To: jcs-cvs@jakarta.apache.org From: asmuts@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060714174920.B83A91A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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. - * + *

* This is ideal when the work being done is a query to the database where the * results may take time to be retrieved. + *

+ * For example: * - * For example:
+ *

+ *      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);
+ *      }
+ * 
* - * - * 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);
- * } - *
+ * This is essentially the same as doing: * - * This is essentially the same as doing: - * 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);
- * }
- *
+ *
+ * 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 );
+ * }
+ * 
* + *

* 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. - * + *

* @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. + *

+ * Implement doWork() to return the work being done. isFinished() should return + * false until setFinished(true) is called, after which time it should return + * true. + *

* @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. - * + *

* @return True if the work has allready been done, otherwise false. */ public boolean isFinished(); /** * Sets weather or not the work has been done. - * + *

* @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. - * + *

* @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. + *

+ * 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. + *

* @author Aaron Smuts - * */ public class HostNameUtil { @@ -18,8 +17,7 @@ /** * Gets the address for the local machine. - * - * + *

* @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. - * + *

* A simple class for loading java.util.Properties backed by .ccf files deployed * as classpath resources. See individual methods for details. *

* The original source is from: - * + *

* @author (C) Vlad * Roubtsov , 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. *

- * 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 + *

* Thus, the following names refer to the same resource: * *

-     *  
-     *   
-     *    
-     *     
-     *      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
      * 
* * @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 - * + *

* @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. - * + *

* @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. - * + *

* @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. - * + *

* @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. - * - * + *

* @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 "Authorization" header information. + *

* @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. + *

* @param authHeader * @return * @throws IOException @@ -112,9 +107,9 @@ /** * Default implementation of checking the password. + *

* @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. - * + *

* @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. - * + *

* @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. + *

+ * @return The last node. */ public DoubleLinkedListNode getLast() { @@ -91,8 +89,8 @@ /** * Removes the specified node from the link list. + *

* @return - * */ public DoubleLinkedListNode getFirst() { @@ -105,13 +103,12 @@ /** * Moves an existing node to the start of the link list. - * + *

* @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. - * + *

* @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 - * + *

+ * @return The last node if there was one to remove. */ public DoubleLinkedListNode removeLast() { @@ -232,7 +228,7 @@ /** * Returns the size of the list. - * + *

* @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. + *

+ * 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. + *

* @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. *

* Locking is done on the instance. - * + *

* @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. - * + *

* @param maxObjects */ public LRUMap() @@ -77,7 +73,7 @@ /** * This sets the size limit. - * + *

* @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. + *

* @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. + *

* @see java.util.Map#clear() */ public void clear() @@ -107,9 +103,9 @@ list.removeAll(); } - /* - * (non-Javadoc) - * + /** + * Returns true if the map is empty. + *

* @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. + *

* @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. + *

* @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. + *

* @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. + *

* @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. - * + *

* @param key * @param val * The feature to be added to the First @@ -411,7 +410,7 @@ /** * Returns the size of the list. - * + *

* @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. - * + *

* @param key */ protected void verifyCache( Object key ) @@ -576,7 +574,6 @@ * information. *

* 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. - * + *

* @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. - * + *

* @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. - * + *

* Insertion time is n, search is log(n) - * - * + *

* 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. - * + *

* @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. - * + *

* @param obj * Object */ @@ -113,7 +106,7 @@ /** * Returns the largest without removing it from the array. - * + *

* @return Comparable */ public synchronized Comparable getLargest() @@ -123,7 +116,7 @@ /** * Returns the smallest element without removing it from the array. - * + *

* @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. - * + *

* @param obj * Comparable */ @@ -251,12 +244,11 @@ log.debug( this.dumpArray() ); } } - - } // end insert + } /** * Determines whether the preference is for large or small. - * + *

* @param pref * boolean */ @@ -267,7 +259,7 @@ /** * Returns and removes the nearer larger or equal object from the aray. - * + *

* @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. - * + *

* @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. - * + *

* @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. - * + *

* 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. - * + *

* If the object is larger than the largest and it is full, it will return * the last position. - * + *

* If the array is empty, the first spot is returned. - * + *

* If the object is smaller than all the rests, the first position is * returned. The caller must decide what to do given the preference. - * + *

* Returns the position of the object nearest to or equal to the larger * object. - * + *

* If you want to find the takePosition, you have to calculate it. * findNearestOccupiedLargerOrEqualPosition will calculate this for you - * + *

* @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. - * + *

* @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. - * + *

* @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. - * + *

* @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. + *

* @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. + *

* @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. - * + *

* @author aaronsm - * */ public class ThreadPool { - private PooledExecutor pool = null; private Channel queue = null; /** * Create the wrapper. - * + *

* @param pool * @param queue */ @@ -31,7 +29,7 @@ /** * This is intended to give the client access to the PooledExecutor itself. - * + *

* @return Returns the pool. */ public PooledExecutor getPool() @@ -48,7 +46,8 @@ } /** - * + * Delegates execution to the pooled executor. + *

* @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 - * + *

* 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 + *

+ * 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. - * + *

* 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. - * + *

+ * If set, the Properties object will take precedence. + *

* 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" - * + *

* @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. - * + *

* @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 + *

+ * @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. - * + *

* Pools are lazily created. - * - * + *

* @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. + *

* @return ArrayList of string names */ public ArrayList getPoolNames() @@ -264,7 +255,7 @@ /** * Setting this post initialization will have no effect. - * + *

* @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. + *

* @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. - * + *

* @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. + *

* @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. + *

* @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. - * + *

+ * If an incorrect value is returned, RUN will be used. + *

* @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