You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jt...@apache.org on 2002/02/14 01:57:41 UTC
cvs commit: jakarta-turbine-stratum/src/test-conf cache.ccf log4j.properties logger.properties
jtaylor 02/02/13 16:57:41
Modified: . build-test.xml build.xml default.properties
src/java/org/apache/stratum/jcs/engine/group GroupCache.java
Added: src/aspect/org/apache/stratum/jcs TraceJCS.aj
src/test/org/apache/stratum/jcs TestJCS.java
src/test-conf cache.ccf log4j.properties logger.properties
Log:
Added a simple unit test for the JCS class. This includes simple cache and log
configuration files.
Added optional tracing aspects which are disabled by default. Everything should
still build and run fine without them. Everything also builds with them, but
there are still some problems to be worked out.
build.xml still needs some cleanup. Also, the test structure could be a little
better, a number of classes which are not Junit tests are getting included in
the run.
Revision Changes Path
1.5 +36 -2 jakarta-turbine-stratum/build-test.xml
Index: build-test.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-stratum/build-test.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- build-test.xml 5 Feb 2002 20:38:20 -0000 1.4
+++ build-test.xml 14 Feb 2002 00:57:41 -0000 1.5
@@ -14,9 +14,28 @@
<pathelement location="${dom4j.jar}"/>
<pathelement location="${junit.jar}"/>
<pathelement location="${commons-beanutils.jar}"/>
- <pathelement location="${commons-util.jar}"/>
<pathelement location="${commons-collections.jar}"/>
+ <pathelement location="${commons-util.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
+ <pathelement location="${jgl.jar}"/>
+ <pathelement location="${jetty.jar}"/>
+ <pathelement location="${log4j.jar}"/>
+ <pathelement location="${microstar.xml.jar}"/>
+ <pathelement location="${j2ee.jar}"/>
<pathelement location="${servlet.jar}"/>
+ <pathelement location="${javamail.jar}"/>
+ <pathelement location="${tomcat.jar}"/>
+ <pathelement location="${jasper.jar}"/>
+ <pathelement location="${hsqldb.jar}"/>
+ <pathelement location="${jisp.jar}"/>
+ <pathelement location="${javaclass.jar}"/>
+ <pathelement location="${jaf.jar}"/>
+ <pathelement location="${jaxp.jar}"/>
+ <pathelement location="${crimson.jar}"/>
+ <pathelement location="${xmlrpc.jar}"/>
+ <pathelement location="${build.dest}"/>
+ <pathelement location="${aspectjrt.jar}"/>
+
<pathelement location="${build.dest}"/>
</path>
@@ -26,7 +45,7 @@
<target
name="test"
- depends="compile"
+ depends="compile,prepare"
description="runs (junit) unit tests">
<echo>
@@ -68,6 +87,21 @@
<pathelement path="${build.dest}"/>
</classpath>
</javac>
+ </target>
+
+ <target
+ name="prepare">
+
+ <!-- Make directory for log output from tests (distinct from reports) -->
+
+ <mkdir dir="${build.dir}/test/logs/jcs"/>
+
+ <!-- Copy test config files to the test build dir -->
+
+ <copy todir="${build.dest}">
+ <fileset dir="${src.dir}/test-conf"/>
+ </copy>
+
</target>
</project>
1.18 +55 -6 jakarta-turbine-stratum/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-stratum/build.xml,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- build.xml 13 Feb 2002 19:13:59 -0000 1.17
+++ build.xml 14 Feb 2002 00:57:41 -0000 1.18
@@ -35,6 +35,11 @@
<pathelement location="${xmlrpc.jar}"/>
<pathelement location="${build.dest}"/>
+ <!-- AspectJ Jars for non-invasive use of aspects
+ this is needed only for acompile target -->
+ <pathelement location="${aspectjrt.jar}"/>
+ <pathelement location="${aspectjtools.jar}"/>
+
<!-- This is required to bootstrap the build -->
<pathelement location="tdk.jar"/>
</path>
@@ -124,8 +129,13 @@
depends="init">
<mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
-
+
+ <copy todir="${build.src}" overwrite="yes">
+ <fileset dir="${src.dir}/java/"/>
+ </copy>
+
</target>
<!-- ================================================================== -->
@@ -134,10 +144,15 @@
<target
name="compile"
+ depends="javac.compile, aspectj.compile"/>
+
+ <target
+ name="javac.compile"
+ unless="build.includes.aspects"
depends="prepare"
description="==> compiles the source code">
- <javac srcdir="${src.dir}/java"
+ <javac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
@@ -145,8 +160,11 @@
<classpath refid="classpath"/>
</javac>
+ </target>
-
+ <target
+ name="rmi.compile"
+ depends="compile">
<rmic
base="${build.dest}"
@@ -168,7 +186,38 @@
base="${build.dest}"
classname="org.apache.stratum.jcs.auxiliary.remote.RemoteCacheClientTest"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- A S P E C T C O M P I L E -->
+ <!-- =================================================================== -->
+
+ <target
+ name="aspectj.compile"
+ if="build.includes.aspects"
+ depends="prepare"
+ description="==> compiles the source code with aspects">
+
+ <!-- Move aspects into the build cycle -->
+ <copy todir="${build.src}" filtering="yes">
+ <fileset dir="${src.dir}/aspect">
+ <include name="**/Trace*.aj" if="build.includes.tracing.aspects"/>
+ </fileset>
+ </copy>
+
+ <taskdef
+ name="ajc"
+ classname="org.aspectj.tools.ant.taskdefs.Ajc"/>
+ <ajc srcdir="${build.src}"
+ destdir="${build.dest}"
+ debug="${debug}"
+ deprecation="${deprecation}"
+ optimize="${optimize}">
+ <classpath refid="classpath"/>
+ <include name="**/*.java"/>
+ <include name="**/*.aj"/>
+ </ajc>
</target>
@@ -191,7 +240,7 @@
<!-- ================================================================== -->
- <!-- FILTER Scripts and Config Files -->
+ <!-- FILTER Scripts and Config Files -->
<!-- ================================================================== -->
<target
@@ -216,7 +265,7 @@
<!-- ================================================================== -->
- <!-- Dev Standard Build -->
+ <!-- Dev Standard Build -->
<!-- ================================================================== -->
<target
@@ -261,7 +310,7 @@
name="clean"
description="==> cleans up the build directory">
- <delete dir="${build.dir}/classes/"/>
+ <delete dir="${build.dir}"/>
<delete dir="${test.reportsDirectory}"/>
</target>
1.15 +15 -0 jakarta-turbine-stratum/default.properties
Index: default.properties
===================================================================
RCS file: /home/cvs/jakarta-turbine-stratum/default.properties,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- default.properties 13 Feb 2002 19:13:59 -0000 1.14
+++ default.properties 14 Feb 2002 00:57:41 -0000 1.15
@@ -13,6 +13,7 @@
final.name = ${project}-${version}
build.dir = ./bin
+build.src = ${build.dir}/src
build.dest = ${build.dir}/classes
src.dir = ./src
test.dir = ${src.dir}/test
@@ -28,6 +29,15 @@
optimize = off
deprecation = off
+# This property determines if the aspectj compiler will be used to compile. If
+# false, that standard javac task is used
+# build.includes.aspects = true
+
+# Should optional tracing aspects (using AspectJ) be included in the build?
+# Great for debuging, bad idea for production use! Does nothing without the
+# above property also being set.
+# build.includes.tracing.aspects = true
+
test.reportsDirectory = test-reports
commons-beanutils.jar = ${lib.repo}/commons-beanutils.jar
@@ -54,6 +64,11 @@
crimson.jar = ${lib.repo}/crimson.jar
xmlrpc.jar = ${lib.repo}/xmlrpc.jar
log4j.jar = ${lib.repo}/log4j-1.1.3.jar
+
+# For aspects to be used (entirely optional)
+# Set aspectj.home in your build.properties and all should be good.
+aspectjrt.jar = ${aspectj.home}/lib/aspectjrt.jar
+aspectjtools.jar = ${aspectj.home}/lib/aspectjtools.jar
# For import scrubber
#importscrubber.jar = ${lib.repo}/importscrubber.jar
1.1 jakarta-turbine-stratum/src/aspect/org/apache/stratum/jcs/TraceJCS.aj
Index: TraceJCS.aj
===================================================================
package org.apache.stratum.jcs;
import java.io.PrintStream;
import org.apache.log4j.Category;
/**
* This class provides support for printing trace messages into a
* log4j category.
*
* The messages are appended with the string representation of the objects
* whose constructors and methods are being traced.
*
* @author <a href="mailto:jvanzyl@zenplex.com">Jason van Zyl</a>
* @author <a href="mailto:james@jamestaylor.org">James Taylor</a>
* @version $Id: TraceJCS.aj,v 1.1 2002/02/14 00:57:41 jtaylor Exp $
*/
public aspect TraceJCS
{
/*
* Functional part
*/
/**
* There are 3 trace levels (values of TRACELEVEL):
*
* 0 - No messages are printed
* 1 - Trace messages are printed, but there is no indentation
* according to the call stack
* 2 - Trace messages are printed, and they are indented
* according to the call stack
*/
public static int TRACELEVEL = 2;
/**
* Tracks the call depth for indented traces made according
* to the structure of the stack.
*/
protected static int callDepth = 0;
/**
* Log4j category used for tracing.
*/
private static Category log = Category.getInstance( TraceJCS.class );
/**
* Tracing method used in before advice.
*/
protected static void traceEntry(String str, Object o)
{
if (TRACELEVEL == 0)
{
return;
}
if (TRACELEVEL == 2)
{
callDepth++;
}
printEntering(str + ": " + o.toString());
}
/**
* Tracing method used in after advice.
*/
protected static void traceExit(String str, Object o)
{
if (TRACELEVEL == 0)
{
return;
}
printExiting(str + ": " + o.toString());
if (TRACELEVEL == 2)
{
callDepth--;
}
}
private static void printEntering(String str)
{
log.debug(indent() + "--> " + str);
}
private static void printExiting(String str)
{
log.debug(indent() + "<-- " + str);
}
private static String indent()
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < callDepth; i++)
{
sb.append(" ");
}
return sb.toString();
}
/*
* Crosscut part
*/
/**
* JCS Application classes
*/
pointcut myClass(Object obj): this(obj) &&
(within(org.apache.stratum.jcs..*));
/**
* The constructors in those classes.
*/
pointcut myConstructor(Object obj): myClass(obj) && execution(new(..));
/**
* The methods of those classes.
*/
pointcut myMethod(Object obj): myClass(obj) &&
execution(* *(..)) && !execution(String toString());
/**
* Before advice that will execute before a constructor
* is invoked.
*/
before(Object obj): myConstructor(obj)
{
traceEntry("" + thisJoinPointStaticPart.getSignature(), obj);
}
/**
* After advice that will execute after a constructor
* a constructor has been invoked.
*/
after(Object obj): myConstructor(obj)
{
traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
}
/**
* Before advice that will execute before a method
* is invoked.
*/
before(Object obj): myMethod(obj)
{
traceEntry("" + thisJoinPointStaticPart.getSignature(), obj);
}
/**
* After advice that will execute after a method
* has been invoked.
*/
after(Object obj): myMethod(obj)
{
traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
}
}
1.10 +14 -35 jakarta-turbine-stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java
Index: GroupCache.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- GroupCache.java 13 Feb 2002 19:13:59 -0000 1.9
+++ GroupCache.java 14 Feb 2002 00:57:41 -0000 1.10
@@ -83,18 +83,17 @@
import org.apache.commons.logging.LogSource;
/**
- * Group cache is basically a composite cache with the additional capability of
- * providing automatic and safe attribute name list update for each
- * GroupAttrName cache item.
+ * Group cache is basically a composite cache with the additional capability of
+ * providing automatic and safe attribute name list update for each
+ * GroupAttrName cache item.
*
- * TODO: WORKING ON THIS NOW -- reduce the number of methods or describe
- * them better. The complexity of this points to group design problems. I need
- * to fix the locking and the maintenance of the remote list. The list can be
- * infered fromt he contents of the cache. Iterating through the hashtable
- * could be problematic but easier.
+ * TODO: WORKING ON THIS NOW -- reduce the number of methods or describe
+ * them better. The complexity of this points to group design problems. I need
+ * to fix the locking and the maintenance of the remote list. The list can be
+ * infered fromt he contents of the cache. Iterating through the hashtable
+ * could be problematic but easier.
*
- *@author asmuts
- *@created January 15, 2002
+ * @author asmuts
*/
public class GroupCache extends Cache implements ICompositeCache
{
@@ -106,11 +105,6 @@
private ReadWriteLockManager locker = GroupRWLockManager.getInstance();
/**
- * Rarely used class identity. Mainly for debugging.
- */
- private String source_id = "org.apache.stratum.jcs.engine.group.GroupCache";
-
- /**
* Declare a group_id cache here, so ids and elements don't compete
* for first with the list.
* The systemGroupIdCache will have different remote behavior.
@@ -118,31 +112,16 @@
* the list will not move back and forth.
* The list can be maintained locally but the elements themselves
* need not be.
- *
*/
ICompositeCache systemGroupIdCache;
-
- ///////////////////////////////////////////////////
- /**
- * Gets the sourceId attribute of the GroupCache object
- *
- *@return The sourceId value
- */
- public Serializable getSourceId()
- {
- return this.source_id;
- }
-
-
- ///////////////////////////////////////////////////////////////
/**
- * Constructor for the GroupCache object
+ * Constructor for the GroupCache object
*
- *@param cacheName The name of the region
- *@param auxCaches The auxiliary caches to be used by this region
- *@param cattr The cache attribute
- *@param attr The default element attributes
+ * @param cacheName The name of the region
+ * @param auxCaches The auxiliary caches to be used by this region
+ * @param cattr The cache attribute
+ * @param attr The default element attributes
*/
public GroupCache( String cacheName, ICache[] auxCaches, ICompositeCacheAttributes cattr, Attributes attr )
{
1.1 jakarta-turbine-stratum/src/test/org/apache/stratum/jcs/TestJCS.java
Index: TestJCS.java
===================================================================
package org.apache.stratum.jcs;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Turbine" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.stratum.jcs.JCS;
import java.util.LinkedList;
import java.util.HashMap;
import java.util.Random;
/**
* Simple test for the JCS class.
*
* @author <a href="mailto:james@jamestaylor.org">James Taylor</a>
* @version $Id: TestJCS.java,v 1.1 2002/02/14 00:57:41 jtaylor Exp $
*/
public class TestJCS extends TestCase
{
Random random = new Random();
public TestJCS( String testName )
{
super( testName );
}
public static Test suite()
{
return new TestSuite( TestJCS.class );
}
public static void main( String args[] )
{
String[] testCaseName = { TestJCS.class.getName() };
junit.textui.TestRunner.main( testCaseName );
}
public void testJCS() throws Exception
{
JCS jcs = JCS.getInstance( "testCache1" );
LinkedList list = buildList();
jcs.put( "some:key", list );
assertEquals( list, jcs.get( "some:key" ) );
}
private LinkedList buildList()
{
LinkedList list = new LinkedList();
for ( int i = 0; i < 100; i++ )
{
list.add( buildMap() );
}
return list;
}
private HashMap buildMap()
{
HashMap map = new HashMap();
byte[] keyBytes = new byte[32];
byte[] valBytes = new byte[128];
for ( int i = 0; i < 10; i++ )
{
random.nextBytes( keyBytes );
random.nextBytes( valBytes );
map.put( new String( keyBytes ), new String( valBytes ) );
}
return map;
}
}
1.1 jakarta-turbine-stratum/src/test-conf/cache.ccf
Index: cache.ccf
===================================================================
# JCS Config for unit testing, just a simple memory only cache
jcs.default=
jcs.default.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache
jcs.system.groupIdCache=
jcs.system.groupIdCache.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes
jcs.system.groupIdCache.cacheattributes.MaxObjects=10000
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.testCache1=
jcs.region.testCache1.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes
jcs.region.testCache1.cacheattributes.MaxObjects=1000
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache
1.1 jakarta-turbine-stratum/src/test-conf/log4j.properties
Index: log4j.properties
===================================================================
# For unit testing, all output goes to bin/test/logs/jcs.log
log4j.category.org.apache.stratum.jcs = DEBUG, jcs
log4j.appender.jcs = org.apache.log4j.FileAppender
log4j.appender.jcs.file = bin/test/logs/jcs.log
log4j.appender.jcs.layout = org.apache.log4j.PatternLayout
log4j.appender.jcs.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.jcs.append = false
1.1 jakarta-turbine-stratum/src/test-conf/logger.properties
Index: logger.properties
===================================================================
# The LoggerManager creates loggers for entries in this file.
# This initializes certain logs at the set debugging levels( 0 - 4 )
# A management tool will force reinitialization and a reread of this file at
# runtime. However the primary way to alter runtime loggin levels will be to
# modify the level of the logger object through the tool.
# An entry must have a .level entry to be initialized
# .systemout is N by default, Y will turn it on
# .maxfilesize -- number of bytes before archiving log
# .numtocheck -- number of entries before checking to see if it is too big
# The logroot value is used by default. This can be overridden with
# a specific entry
logroot=bin/test/jcs/logs
# the sleepinterval value is how often the writing thread wakes up in ms.
# Recommend set to 1000 for development servers (so it would write with 1 sec. delay
# and 10000 for production servers (so it would write every 10 seconds.)
#Min is 5 secs ie 5000
sleepInterval=1000
# The string buffer size before messages are flushed to disk.
# Minimum is zero, which flushes every log message to disk asap.
buffer_capacity=0
access_cacheaccess.level=2
access_cacheaccess.systemout=y
access_cacheaccess.maxfilesize=100000
access_cacheaccess.numtocheck=300
control_cache.level=2
control_cache.systemout=y
control_cache.maxfilesize=100000
control_cache.numtocheck=300
engine_groupcache.level=2
engine_groupcache.systemout=y
engine_groupcache.maxfilesize=100000
engine_groupcache.numtocheck=300
control_cachemanager.level=2
control_cachemanager.systemout=y
control_cachemanager.maxfilesize=100000
control_cachemanager.numtocheck=300
memory_lateralcacheunicaster.level=0
memory_lateralcacheunicaster.systemout=n
memory_lateralcacheunicaster.maxfilesize=100000
memory_lateralcacheunicaster.numtocheck=300
remote_remotecachemanager.level=2
remote_remotecachemanager.systemout=y
remote_remotecachemanager.maxfilesize=100000
remote_remotecachemanager.numtocheck=300
group_remotegroupcacheserver.level=2
group_remotegroupcacheserver.systemout=y
group_remotegroupcacheserver.maxfilesize=100000
group_remotegroupcacheserver.numtocheck=300
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
RE: cvs commit: jakarta-turbine-stratum/src/test-conf cache.ccf log4j.properties logger.properties
Posted by Aaron Smuts <aa...@verizon.net>.
I like the test. Scripting a complex test might be a pain, especially
to test distributed caching. Hmmn.
> -----Original Message-----
> From: jtaylor@apache.org [mailto:jtaylor@apache.org]
> Sent: Wednesday, February 13, 2002 7:58 PM
> To: jakarta-turbine-stratum-cvs@apache.org
> Subject: cvs commit: jakarta-turbine-stratum/src/test-conf cache.ccf
> log4j.properties logger.properties
>
> jtaylor 02/02/13 16:57:41
>
> Modified: . build-test.xml build.xml default.properties
> src/java/org/apache/stratum/jcs/engine/group
> GroupCache.java
> Added: src/aspect/org/apache/stratum/jcs TraceJCS.aj
> src/test/org/apache/stratum/jcs TestJCS.java
> src/test-conf cache.ccf log4j.properties
logger.properties
> Log:
> Added a simple unit test for the JCS class. This includes simple
cache
> and log
> configuration files.
>
> Added optional tracing aspects which are disabled by default.
Everything
> should
> still build and run fine without them. Everything also builds with
them,
> but
> there are still some problems to be worked out.
>
> build.xml still needs some cleanup. Also, the test structure could
be a
> little
> better, a number of classes which are not Junit tests are getting
> included in
> the run.
>
> Revision Changes Path
> 1.5 +36 -2 jakarta-turbine-stratum/build-test.xml
>
> Index: build-test.xml
> ===================================================================
> RCS file: /home/cvs/jakarta-turbine-stratum/build-test.xml,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- build-test.xml 5 Feb 2002 20:38:20 -0000 1.4
> +++ build-test.xml 14 Feb 2002 00:57:41 -0000 1.5
> @@ -14,9 +14,28 @@
> <pathelement location="${dom4j.jar}"/>
> <pathelement location="${junit.jar}"/>
> <pathelement location="${commons-beanutils.jar}"/>
> - <pathelement location="${commons-util.jar}"/>
> <pathelement location="${commons-collections.jar}"/>
> + <pathelement location="${commons-util.jar}"/>
> + <pathelement location="${commons-logging.jar}"/>
> + <pathelement location="${jgl.jar}"/>
> + <pathelement location="${jetty.jar}"/>
> + <pathelement location="${log4j.jar}"/>
> + <pathelement location="${microstar.xml.jar}"/>
> + <pathelement location="${j2ee.jar}"/>
> <pathelement location="${servlet.jar}"/>
> + <pathelement location="${javamail.jar}"/>
> + <pathelement location="${tomcat.jar}"/>
> + <pathelement location="${jasper.jar}"/>
> + <pathelement location="${hsqldb.jar}"/>
> + <pathelement location="${jisp.jar}"/>
> + <pathelement location="${javaclass.jar}"/>
> + <pathelement location="${jaf.jar}"/>
> + <pathelement location="${jaxp.jar}"/>
> + <pathelement location="${crimson.jar}"/>
> + <pathelement location="${xmlrpc.jar}"/>
> + <pathelement location="${build.dest}"/>
> + <pathelement location="${aspectjrt.jar}"/>
> +
> <pathelement location="${build.dest}"/>
> </path>
>
> @@ -26,7 +45,7 @@
>
> <target
> name="test"
> - depends="compile"
> + depends="compile,prepare"
> description="runs (junit) unit tests">
>
> <echo>
> @@ -68,6 +87,21 @@
> <pathelement path="${build.dest}"/>
> </classpath>
> </javac>
> + </target>
> +
> + <target
> + name="prepare">
> +
> + <!-- Make directory for log output from tests (distinct from
> reports) -->
> +
> + <mkdir dir="${build.dir}/test/logs/jcs"/>
> +
> + <!-- Copy test config files to the test build dir -->
> +
> + <copy todir="${build.dest}">
> + <fileset dir="${src.dir}/test-conf"/>
> + </copy>
> +
> </target>
>
> </project>
>
>
>
> 1.18 +55 -6 jakarta-turbine-stratum/build.xml
>
> Index: build.xml
> ===================================================================
> RCS file: /home/cvs/jakarta-turbine-stratum/build.xml,v
> retrieving revision 1.17
> retrieving revision 1.18
> diff -u -r1.17 -r1.18
> --- build.xml 13 Feb 2002 19:13:59 -0000 1.17
> +++ build.xml 14 Feb 2002 00:57:41 -0000 1.18
> @@ -35,6 +35,11 @@
> <pathelement location="${xmlrpc.jar}"/>
> <pathelement location="${build.dest}"/>
>
> + <!-- AspectJ Jars for non-invasive use of aspects
> + this is needed only for acompile target -->
> + <pathelement location="${aspectjrt.jar}"/>
> + <pathelement location="${aspectjtools.jar}"/>
> +
> <!-- This is required to bootstrap the build -->
> <pathelement location="tdk.jar"/>
> </path>
> @@ -124,8 +129,13 @@
> depends="init">
>
> <mkdir dir="${build.dir}"/>
> + <mkdir dir="${build.src}"/>
> <mkdir dir="${build.dest}"/>
> -
> +
> + <copy todir="${build.src}" overwrite="yes">
> + <fileset dir="${src.dir}/java/"/>
> + </copy>
> +
> </target>
>
> <!--
> ================================================================== -->
> @@ -134,10 +144,15 @@
>
> <target
> name="compile"
> + depends="javac.compile, aspectj.compile"/>
> +
> + <target
> + name="javac.compile"
> + unless="build.includes.aspects"
> depends="prepare"
> description="==> compiles the source code">
>
> - <javac srcdir="${src.dir}/java"
> + <javac srcdir="${build.src}"
> destdir="${build.dest}"
> debug="${debug}"
> deprecation="${deprecation}"
> @@ -145,8 +160,11 @@
> <classpath refid="classpath"/>
> </javac>
>
> + </target>
>
> -
> + <target
> + name="rmi.compile"
> + depends="compile">
>
> <rmic
> base="${build.dest}"
> @@ -168,7 +186,38 @@
> base="${build.dest}"
>
>
classname="org.apache.stratum.jcs.auxiliary.remote.RemoteCacheClientTest
"/
> >
>
> + </target>
> +
> + <!--
> ===================================================================
-->
> + <!-- A S P E C T C O M P I L E
> -->
> + <!--
> ===================================================================
-->
> +
> + <target
> + name="aspectj.compile"
> + if="build.includes.aspects"
> + depends="prepare"
> + description="==> compiles the source code with aspects">
> +
> + <!-- Move aspects into the build cycle -->
> + <copy todir="${build.src}" filtering="yes">
> + <fileset dir="${src.dir}/aspect">
> + <include name="**/Trace*.aj"
> if="build.includes.tracing.aspects"/>
> + </fileset>
> + </copy>
> +
> + <taskdef
> + name="ajc"
> + classname="org.aspectj.tools.ant.taskdefs.Ajc"/>
>
> + <ajc srcdir="${build.src}"
> + destdir="${build.dest}"
> + debug="${debug}"
> + deprecation="${deprecation}"
> + optimize="${optimize}">
> + <classpath refid="classpath"/>
> + <include name="**/*.java"/>
> + <include name="**/*.aj"/>
> + </ajc>
>
> </target>
>
> @@ -191,7 +240,7 @@
>
>
> <!--
> ================================================================== -->
> - <!-- FILTER Scripts and Config Files
> -->
> + <!-- FILTER Scripts and Config Files
> -->
> <!--
> ================================================================== -->
>
> <target
> @@ -216,7 +265,7 @@
>
>
> <!--
> ================================================================== -->
> - <!-- Dev Standard Build
> -->
> + <!-- Dev Standard Build
> -->
> <!--
> ================================================================== -->
>
> <target
> @@ -261,7 +310,7 @@
> name="clean"
> description="==> cleans up the build directory">
>
> - <delete dir="${build.dir}/classes/"/>
> + <delete dir="${build.dir}"/>
> <delete dir="${test.reportsDirectory}"/>
> </target>
>
>
>
>
> 1.15 +15 -0 jakarta-turbine-stratum/default.properties
>
> Index: default.properties
> ===================================================================
> RCS file: /home/cvs/jakarta-turbine-stratum/default.properties,v
> retrieving revision 1.14
> retrieving revision 1.15
> diff -u -r1.14 -r1.15
> --- default.properties 13 Feb 2002 19:13:59 -0000 1.14
> +++ default.properties 14 Feb 2002 00:57:41 -0000 1.15
> @@ -13,6 +13,7 @@
> final.name = ${project}-${version}
>
> build.dir = ./bin
> +build.src = ${build.dir}/src
> build.dest = ${build.dir}/classes
> src.dir = ./src
> test.dir = ${src.dir}/test
> @@ -28,6 +29,15 @@
> optimize = off
> deprecation = off
>
> +# This property determines if the aspectj compiler will be used to
> compile. If
> +# false, that standard javac task is used
> +# build.includes.aspects = true
> +
> +# Should optional tracing aspects (using AspectJ) be included in
the
> build?
> +# Great for debuging, bad idea for production use! Does nothing
without
> the
> +# above property also being set.
> +# build.includes.tracing.aspects = true
> +
> test.reportsDirectory = test-reports
>
> commons-beanutils.jar = ${lib.repo}/commons-beanutils.jar
> @@ -54,6 +64,11 @@
> crimson.jar = ${lib.repo}/crimson.jar
> xmlrpc.jar = ${lib.repo}/xmlrpc.jar
> log4j.jar = ${lib.repo}/log4j-1.1.3.jar
> +
> +# For aspects to be used (entirely optional)
> +# Set aspectj.home in your build.properties and all should be good.
> +aspectjrt.jar = ${aspectj.home}/lib/aspectjrt.jar
> +aspectjtools.jar = ${aspectj.home}/lib/aspectjtools.jar
>
> # For import scrubber
> #importscrubber.jar = ${lib.repo}/importscrubber.jar
>
>
>
> 1.1 jakarta-turbine-
> stratum/src/aspect/org/apache/stratum/jcs/TraceJCS.aj
>
> Index: TraceJCS.aj
> ===================================================================
> package org.apache.stratum.jcs;
>
> import java.io.PrintStream;
> import org.apache.log4j.Category;
>
> /**
> * This class provides support for printing trace messages into a
> * log4j category.
> *
> * The messages are appended with the string representation of the
> objects
> * whose constructors and methods are being traced.
> *
> * @author <a href="mailto:jvanzyl@zenplex.com">Jason van Zyl</a>
> * @author <a href="mailto:james@jamestaylor.org">James Taylor</a>
> * @version $Id: TraceJCS.aj,v 1.1 2002/02/14 00:57:41 jtaylor Exp $
> */
> public aspect TraceJCS
> {
> /*
> * Functional part
> */
>
> /**
> * There are 3 trace levels (values of TRACELEVEL):
> *
> * 0 - No messages are printed
> * 1 - Trace messages are printed, but there is no indentation
> * according to the call stack
> * 2 - Trace messages are printed, and they are indented
> * according to the call stack
> */
> public static int TRACELEVEL = 2;
>
> /**
> * Tracks the call depth for indented traces made according
> * to the structure of the stack.
> */
> protected static int callDepth = 0;
>
> /**
> * Log4j category used for tracing.
> */
> private static Category log = Category.getInstance(
TraceJCS.class
> );
>
> /**
> * Tracing method used in before advice.
> */
> protected static void traceEntry(String str, Object o)
> {
> if (TRACELEVEL == 0)
> {
> return;
> }
>
> if (TRACELEVEL == 2)
> {
> callDepth++;
> }
> printEntering(str + ": " + o.toString());
> }
>
> /**
> * Tracing method used in after advice.
> */
> protected static void traceExit(String str, Object o)
> {
> if (TRACELEVEL == 0)
> {
> return;
> }
>
> printExiting(str + ": " + o.toString());
>
> if (TRACELEVEL == 2)
> {
> callDepth--;
> }
> }
>
> private static void printEntering(String str)
> {
> log.debug(indent() + "--> " + str);
> }
>
> private static void printExiting(String str)
> {
> log.debug(indent() + "<-- " + str);
> }
>
> private static String indent()
> {
> StringBuffer sb = new StringBuffer();
>
> for (int i = 0; i < callDepth; i++)
> {
> sb.append(" ");
> }
>
> return sb.toString();
> }
>
> /*
> * Crosscut part
> */
>
> /**
> * JCS Application classes
> */
> pointcut myClass(Object obj): this(obj) &&
> (within(org.apache.stratum.jcs..*));
>
> /**
> * The constructors in those classes.
> */
> pointcut myConstructor(Object obj): myClass(obj) &&
> execution(new(..));
>
> /**
> * The methods of those classes.
> */
> pointcut myMethod(Object obj): myClass(obj) &&
> execution(* *(..)) && !execution(String toString());
>
> /**
> * Before advice that will execute before a constructor
> * is invoked.
> */
> before(Object obj): myConstructor(obj)
> {
> traceEntry("" + thisJoinPointStaticPart.getSignature(),
obj);
> }
>
> /**
> * After advice that will execute after a constructor
> * a constructor has been invoked.
> */
> after(Object obj): myConstructor(obj)
> {
> traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
> }
>
> /**
> * Before advice that will execute before a method
> * is invoked.
> */
> before(Object obj): myMethod(obj)
> {
> traceEntry("" + thisJoinPointStaticPart.getSignature(),
obj);
> }
>
> /**
> * After advice that will execute after a method
> * has been invoked.
> */
> after(Object obj): myMethod(obj)
> {
> traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
> }
> }
>
>
>
> 1.10 +14 -35 jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java
>
> Index: GroupCache.java
> ===================================================================
> RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/group/GroupCache.java,v
> retrieving revision 1.9
> retrieving revision 1.10
> diff -u -r1.9 -r1.10
> --- GroupCache.java 13 Feb 2002 19:13:59 -0000 1.9
> +++ GroupCache.java 14 Feb 2002 00:57:41 -0000 1.10
> @@ -83,18 +83,17 @@
> import org.apache.commons.logging.LogSource;
>
> /**
> - * Group cache is basically a composite cache with the additional
> capability of
> - * providing automatic and safe attribute name list update for
each
> - * GroupAttrName cache item.
> + * Group cache is basically a composite cache with the additional
> capability of
> + * providing automatic and safe attribute name list update for each
> + * GroupAttrName cache item.
> *
> - * TODO: WORKING ON THIS NOW -- reduce the number of methods or
> describe
> - * them better. The complexity of this points to group design
> problems. I need
> - * to fix the locking and the maintenance of the remote list. The
list
> can be
> - * infered fromt he contents of the cache. Iterating through the
> hashtable
> - * could be problematic but easier.
> + * TODO: WORKING ON THIS NOW -- reduce the number of methods or
> describe
> + * them better. The complexity of this points to group design
problems.
> I need
> + * to fix the locking and the maintenance of the remote list. The
list
> can be
> + * infered fromt he contents of the cache. Iterating through the
> hashtable
> + * could be problematic but easier.
> *
> - *@author asmuts
> - *@created January 15, 2002
> + * @author asmuts
> */
> public class GroupCache extends Cache implements ICompositeCache
> {
> @@ -106,11 +105,6 @@
> private ReadWriteLockManager locker =
> GroupRWLockManager.getInstance();
>
> /**
> - * Rarely used class identity. Mainly for debugging.
> - */
> - private String source_id =
> "org.apache.stratum.jcs.engine.group.GroupCache";
> -
> - /**
> * Declare a group_id cache here, so ids and elements don't
compete
> * for first with the list.
> * The systemGroupIdCache will have different remote behavior.
> @@ -118,31 +112,16 @@
> * the list will not move back and forth.
> * The list can be maintained locally but the elements
themselves
> * need not be.
> - *
> */
> ICompositeCache systemGroupIdCache;
>
> -
> - ///////////////////////////////////////////////////
> - /**
> - * Gets the sourceId attribute of the GroupCache object
> - *
> - *@return The sourceId value
> - */
> - public Serializable getSourceId()
> - {
> - return this.source_id;
> - }
> -
> -
> - ///////////////////////////////////////////////////////////////
> /**
> - * Constructor for the GroupCache object
> + * Constructor for the GroupCache object
> *
> - *@param cacheName The name of the region
> - *@param auxCaches The auxiliary caches to be used by this
region
> - *@param cattr The cache attribute
> - *@param attr The default element attributes
> + * @param cacheName The name of the region
> + * @param auxCaches The auxiliary caches to be used by this
> region
> + * @param cattr The cache attribute
> + * @param attr The default element attributes
> */
> public GroupCache( String cacheName, ICache[] auxCaches,
> ICompositeCacheAttributes cattr, Attributes attr )
> {
>
>
>
> 1.1 jakarta-turbine-
> stratum/src/test/org/apache/stratum/jcs/TestJCS.java
>
> Index: TestJCS.java
> ===================================================================
> package org.apache.stratum.jcs;
>
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2001-2002 The Apache Software Foundation. All
rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or
without
> * modification, are permitted provided that the following
conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer
in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
> itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache Turbine" must not be used to endorse or promote
products
> * derived from this software without prior written permission.
For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called
"Apache",
> * "Apache Turbine", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For
more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> */
>
> import junit.framework.Test;
> import junit.framework.TestCase;
> import junit.framework.TestSuite;
>
> import org.apache.stratum.jcs.JCS;
>
> import java.util.LinkedList;
> import java.util.HashMap;
> import java.util.Random;
>
> /**
> * Simple test for the JCS class.
> *
> * @author <a href="mailto:james@jamestaylor.org">James Taylor</a>
> * @version $Id: TestJCS.java,v 1.1 2002/02/14 00:57:41 jtaylor Exp
$
> */
> public class TestJCS extends TestCase
> {
> Random random = new Random();
>
> public TestJCS( String testName )
> {
> super( testName );
> }
>
> public static Test suite()
> {
> return new TestSuite( TestJCS.class );
> }
>
> public static void main( String args[] )
> {
> String[] testCaseName = { TestJCS.class.getName() };
> junit.textui.TestRunner.main( testCaseName );
> }
>
> public void testJCS() throws Exception
> {
> JCS jcs = JCS.getInstance( "testCache1" );
>
> LinkedList list = buildList();
>
> jcs.put( "some:key", list );
>
> assertEquals( list, jcs.get( "some:key" ) );
> }
>
> private LinkedList buildList()
> {
> LinkedList list = new LinkedList();
>
> for ( int i = 0; i < 100; i++ )
> {
> list.add( buildMap() );
> }
>
> return list;
> }
>
> private HashMap buildMap()
> {
> HashMap map = new HashMap();
>
> byte[] keyBytes = new byte[32];
> byte[] valBytes = new byte[128];
>
> for ( int i = 0; i < 10; i++ )
> {
> random.nextBytes( keyBytes );
> random.nextBytes( valBytes );
>
> map.put( new String( keyBytes ), new String( valBytes )
);
> }
>
> return map;
> }
>
> }
>
>
>
> 1.1 jakarta-turbine-stratum/src/test-conf/cache.ccf
>
> Index: cache.ccf
> ===================================================================
> # JCS Config for unit testing, just a simple memory only cache
>
> jcs.default=
>
>
jcs.default.cacheattributes=org.apache.stratum.jcs.engine.CompositeCache
At
> tributes
> jcs.default.cacheattributes.MaxObjects=1000
>
>
jcs.default.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engin
e.
> memory.lru.LRUMemoryCache
>
> jcs.system.groupIdCache=
>
>
jcs.system.groupIdCache.cacheattributes=org.apache.stratum.jcs.engine.Co
mp
> ositeCacheAttributes
> jcs.system.groupIdCache.cacheattributes.MaxObjects=10000
>
>
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.strat
um
> .jcs.engine.memory.lru.LRUMemoryCache
>
> jcs.region.testCache1=
>
>
jcs.region.testCache1.cacheattributes=org.apache.stratum.jcs.engine.Comp
os
> iteCacheAttributes
> jcs.region.testCache1.cacheattributes.MaxObjects=1000
>
>
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.stratum
.j
> cs.engine.memory.lru.LRUMemoryCache
>
>
>
>
> 1.1 jakarta-turbine-stratum/src/test-
> conf/log4j.properties
>
> Index: log4j.properties
> ===================================================================
> # For unit testing, all output goes to bin/test/logs/jcs.log
>
> log4j.category.org.apache.stratum.jcs = DEBUG, jcs
> log4j.appender.jcs = org.apache.log4j.FileAppender
> log4j.appender.jcs.file = bin/test/logs/jcs.log
> log4j.appender.jcs.layout = org.apache.log4j.PatternLayout
> log4j.appender.jcs.layout.conversionPattern = %d [%t] %-5p %c - %m%n
> log4j.appender.jcs.append = false
>
>
>
> 1.1 jakarta-turbine-stratum/src/test-
> conf/logger.properties
>
> Index: logger.properties
> ===================================================================
> # The LoggerManager creates loggers for entries in this file.
> # This initializes certain logs at the set debugging levels( 0 - 4 )
> # A management tool will force reinitialization and a reread of this
> file at
> # runtime. However the primary way to alter runtime loggin levels
will
> be to
> # modify the level of the logger object through the tool.
> # An entry must have a .level entry to be initialized
> # .systemout is N by default, Y will turn it on
> # .maxfilesize -- number of bytes before archiving log
> # .numtocheck -- number of entries before checking to see if it is
too
> big
> # The logroot value is used by default. This can be overridden with
> # a specific entry
>
> logroot=bin/test/jcs/logs
>
> # the sleepinterval value is how often the writing thread wakes up
in
> ms.
> # Recommend set to 1000 for development servers (so it would write
with
> 1 sec. delay
> # and 10000 for production servers (so it would write every 10
seconds.)
>
> #Min is 5 secs ie 5000
> sleepInterval=1000
>
> # The string buffer size before messages are flushed to disk.
> # Minimum is zero, which flushes every log message to disk asap.
> buffer_capacity=0
>
> access_cacheaccess.level=2
> access_cacheaccess.systemout=y
> access_cacheaccess.maxfilesize=100000
> access_cacheaccess.numtocheck=300
>
> control_cache.level=2
> control_cache.systemout=y
> control_cache.maxfilesize=100000
> control_cache.numtocheck=300
>
> engine_groupcache.level=2
> engine_groupcache.systemout=y
> engine_groupcache.maxfilesize=100000
> engine_groupcache.numtocheck=300
>
> control_cachemanager.level=2
> control_cachemanager.systemout=y
> control_cachemanager.maxfilesize=100000
> control_cachemanager.numtocheck=300
>
> memory_lateralcacheunicaster.level=0
> memory_lateralcacheunicaster.systemout=n
> memory_lateralcacheunicaster.maxfilesize=100000
> memory_lateralcacheunicaster.numtocheck=300
>
> remote_remotecachemanager.level=2
> remote_remotecachemanager.systemout=y
> remote_remotecachemanager.maxfilesize=100000
> remote_remotecachemanager.numtocheck=300
>
> group_remotegroupcacheserver.level=2
> group_remotegroupcacheserver.systemout=y
> group_remotegroupcacheserver.maxfilesize=100000
> group_remotegroupcacheserver.numtocheck=300
>
>
>
>
> --
> To unsubscribe, e-mail: <mailto:turbine-dev-
> unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:turbine-dev-
> help@jakarta.apache.org>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>