Return-Path: Mailing-List: contact turbine-jcs-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list turbine-jcs-dev@jakarta.apache.org Received: (qmail 45000 invoked from network); 31 Mar 2003 19:02:32 -0000 Received: from unknown (HELO exchange.tallan.com) (63.170.158.192) by daedalus.apache.org with SMTP; 31 Mar 2003 19:02:32 -0000 Received: by exchange.net.tallan.com with Internet Mail Service (5.5.2653.19) id ; Mon, 31 Mar 2003 14:02:21 -0500 Received: from KBAUM ([10.67.2.64]) by exchange.tallan.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id HKTQ8FV2; Mon, 31 Mar 2003 14:02:14 -0500 From: "Baum, Karl" Reply-To: "Baum, Karl" To: 'Turbine JCS Developers List' Subject: RE: [PATCH] Changing behavior of jcs.default.elementattributes Date: Mon, 31 Mar 2003 14:04:12 -0800 Organization: Tallan Message-ID: <003201c2f7d1$76355f30$4002430a@kbaum> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2616 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 In-Reply-To: Importance: Normal X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N I agree. The values should definitely be configurable from the properties file. -----Original Message----- From: Todd Carmichael [mailto:toddc@concur.com] Sent: Monday, March 31, 2003 9:06 AM To: 'Turbine JCS Developers List' Subject: [PATCH] Changing behavior of jcs.default.elementattributes In my case, my cache.ccf has several pre-defined regions so that I can define the size of the cache, the algorithm, etc. However, in these pre-defined regions, I did not specify values for all elementattributes just the class name. In this case, all other default values specified by the jcs.default.elementattributes entries in the cache.ccf are ignored and the values that are hard coded in the class org.apache.jcs.engine.ElementAttributes are used. I have not tested the case where you create a region on the fly (no pre-defined region) but I don't see any other path in the code that would set these defaults from the property file. I do see that you could specify a different class for this property then you could setup your own default values. If that is the intented mechansim for controlling default values then this patch may not be desirable. However, I find it much easier to control these default values through the property file. I have not had a different need to create a new elementattribute class yet. Here is the cvs diff -u output : Index: CompositeCacheConfigurator.java =================================================================== RCS file: /usr/local/cvsrep/javatools/jakarta/jcs/src/java/org/apache/jcs/engine/c ontr ol/CompositeCacheConfigurator.java,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 CompositeCacheConfigurator.java --- CompositeCacheConfigurator.java 21 Mar 2003 18:28:54 -0000 1.1.1.1 +++ CompositeCacheConfigurator.java 31 Mar 2003 17:01:12 -0000 @@ -311,19 +311,8 @@ String attrName = regionPrefix + regName + this.ELEMENT_ATTRIBUTE_PREFIX; - // auxFactory was not previously initialized. - //String prefix = regionPrefix + regName + ATTRIBUTE_PREFIX; - eAttr = ( IElementAttributes ) OptionConverter.instantiateByKey( props, attrName, - org.apache.jcs.engine.behavior.IElementAttributes.class, - null ); - if ( eAttr == null ) - { - log.warn( "Could not instantiate eAttr named '" + attrName + - "', using defaults." ); - - IElementAttributes eAttr2 = ccMgr.getDefaultElementAttributes(); - eAttr = eAttr2.copy(); - } + IElementAttributes eAttr2 = ccMgr.getDefaultElementAttributes(); + eAttr = eAttr2.copy(); log.debug( "Parsing options for '" + attrName + "'" ); -----Original Message----- From: Baum, Karl [mailto:Karl.Baum@Tallan.com] Sent: Saturday, March 29, 2003 8:32 PM To: 'Turbine JCS Developers List' Subject: RE: Changing behavior of jcs.default.elementattributes So you are saying that specifying default attributes in the cache.ccf does not affect the configuration of any of the regions? If this is the case, then I think there is a definite need for this patch. -----Original Message----- From: Todd Carmichael [mailto:toddc@concur.com] Sent: Friday, March 28, 2003 1:38 PM To: 'Turbine JCS Developers List' Subject: Changing behavior of jcs.default.elementattributes I have been debugging and trying to get the lateral cache to work and I have a documentation bug and implementation question (possibly a bug) that I would like the team to consider. 1. In the documentation on how to setup the properties for a lateral cache, the following string is used to identify the class implementing the lateral cache: jcs.auxiliary.LTCP=org.apache.stratum.jcs.auxiliary.lateral.LateralCache Fact ory jcs.auxiliary.LTCP.attributes=org.apache.stratum.jcs.auxiliary.lateral.L ater alCacheAttributes .stratum should be removed. This applies to all the documentation on the property files. 2. In the property file for the Basic Web example, the cache.ccf file has entries for element attributes like such: jcs.default.elementattributes.IsEternal=false jcs.default.elementattributes.MaxLifeSeconds=3600 jcs.default.elementattributes.IdleTime=1800 jcs.default.elementattributes.IsSpool=true jcs.default.elementattributes.IsRemote=true jcs.default.elementattributes.IsLateral=true Are these intended to be default values for elementattributes all the regions? If so, it doesn't work that way. Each region gets the default values for element attributes specified by the initialization values for the property in the ElementAttributesClass. It could work that way if the method parseElementAttributes in the class org.apache.jcs.engine.control.CompositeCacheConfigurator was changed to be the following: protected IElementAttributes parseElementAttributes( Properties props, String regName, String regionPrefix ) { IElementAttributes eAttr; String attrName = regionPrefix + regName + this.ELEMENT_ATTRIBUTE_PREFIX; // auxFactory was not previously initialized. //String prefix = regionPrefix + regName + ATTRIBUTE_PREFIX; IElementAttributes eAttr2 = ccMgr.getDefaultElementAttributes(); eAttr = eAttr2.copy(); PropertySetter.setProperties( eAttr, props, attrName + "." ); Then, each region would get default values and could override defaults by specifying a new value in their region. Consider the above a patch if someone wants it. Todd --------------------------------------------------------------------- To unsubscribe, e-mail: turbine-jcs-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: turbine-jcs-dev-help@jakarta.apache.org