What about instead of the set-property tags just make them attributes of
the parent tag. Or, if needed, name each <set-property> as the attribute
name? Or even better, have both work.

Ex1:

<cache-attributes
        classname="org.apache.jcs.engine.CompositeCacheAttributes"/> 

Ex2:

<cache-attributes> 
 <classname value="org.apache.jcs.engine.CompositeCacheAttributes"/>
<cache-attributes>


-----Original Message-----
From: Aaron Smuts [mailto:[EMAIL PROTECTED] 
Sent: Sunday, 18 April, 2004 8:14
To: 'Turbine JCS Users List'
Subject: xml config prototype


I'm working using Digester to configure JCS using xml.   I've pasted a
very rough prototype of a jcs.xml configuration file below.  I'm hoping
that someone will have some suggestions on how to improve it or
completely redo it.  I tend to make ugly xml.  Any ideas would be
appreciated.  

If we get a basic format, I'll just have the cachemanager call a
different configuration class if the file ends in .xml.  This should
keep it backward compatible.  

This file does not include the remote server configuration yet.

Aaron


------------------------------------------------------------------------
---
<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
This is the JCS configuration file.

There are two sections to this file.

1. Regions -- This section identifies what regions will be
preconfigured. Any regions created at runtime will adopt the default
configuration. 

Default -- This attribute identifies a default configuration.  
Regions that are not specified in this file will adopt the default
settings. 
The default configuration specifies what auxiliaries to use, the 
default region settings (or cacheattributes), and the default element 
settings (or element attributes).
One default is necessary, and only one is allowed.

System -- This attribute identifies the region by which the system will
handle groups.  
One groupid is necessary, and only one is allowed.


2. Auxiliaries -- This section defines the auxiliaries available.  
If a region definition or the default configuration references an
auxiliary, it must be included in this section.  Auxiliaries not
referenced in the 
region or default configuration sections are ignored.
Memory managers can be plugged in and are often called auxiliaries, but 
they cannot be defined in this section.  Memory managers must be defined
in the region or default configuration sections.

-->

<jcs>

  <regions>

    <!-- One region, but not more than one, must be marked default. -->
    <region>
        <name default="true">example</name>
        <auxiliary-list>DC<auxiliary-list/> 
        <cache-attributes> 
          <set-property         
            name="classname"
            value="org.apache.jcs.engine.CompositeCacheAttributes" />
          <set-property 
            name="MaxObjects" 
            value="10" />
          <set-property 
            name="MemoryCacheName" 
            value="org.apache.jcs.engine.memory.lru.LRUMemoryCache" />
          <set-property 
            name="UseMemoryShrinker" 
            value="false" />
          <set-property 
            name="ShrinkerIntervalSeconds" 
            value="30" />
          <set-property 
            name="MaxMemoryIdleTimeSeconds" 
            value="3600000000" />
        </cache-attributes> 
        <element-attributes> 
          <set-property         
            name="classname"
value="org.apache.jcs.engine.ElementAttributes" />
          <set-property 
            name="IsEternal" 
            value="true" />
          <set-property 
            name="MaxLifeSeconds" 
            value="30" />
          <set-property 
            name="IsSpool" 
            value="true" />
          <set-property 
            name="IsRemote" 
            value="true" />
          <set-property 
            name="IsLateral" 
            value="true" />
        </element-attributes> 
    </region>


    <!-- One region, but not more than one, must be marked groupid. -->
    <region>
        <name groupid="true">system-group-id</name>
        <auxiliary-list>DC<auxiliary-list/> 
        <cache-attributes> 
          <set-property         
            name="classname"
            value="org.apache.jcs.engine.CompositeCacheAttributes" />
          <set-property 
            name="MaxObjects" 
            value="10" />
          <set-property 
            name="MemoryCacheName" 
            value="org.apache.jcs.engine.memory.lru.LRUMemoryCache" />
          <set-property 
            name="UseMemoryShrinker" 
            value="false" />
          <set-property 
            name="ShrinkerIntervalSeconds" 
            value="30" />
          <set-property 
            name="MaxMemoryIdleTimeSeconds" 
            value="3600000000" />
        </cache-attributes> 
        <element-attributes> 
          <set-property         
            name="classname"
value="org.apache.jcs.engine.ElementAttributes" />
          <set-property 
            name="IsEternal" 
            value="true" />
          <set-property 
            name="MaxLifeSeconds" 
            value="30" />
          <set-property 
            name="IsSpool" 
            value="true" />
          <set-property 
            name="IsRemote" 
            value="true" />
          <set-property 
            name="IsLateral" 
            value="true" />
        </element-attributes> 
    </region>


    <!-- Otptional Regions -->
    <region>
        <name>testCache1</name>
        <auxiliary-list>DC<auxiliary-list/> 
        <cache-attributes> 
          <set-property         
            name="classname"
            value="org.apache.jcs.engine.CompositeCacheAttributes" />
          <set-property 
            name="MaxObjects" 
            value="10" />
          <set-property 
            name="MemoryCacheName" 
            value="org.apache.jcs.engine.memory.lru.LRUMemoryCache" />
          <set-property 
            name="UseMemoryShrinker" 
            value="false" />
          <set-property 
            name="ShrinkerIntervalSeconds" 
            value="30" />
          <set-property 
            name="MaxMemoryIdleTimeSeconds" 
            value="3600000000" />
        </cache-attributes> 
        <element-attributes> 
          <set-property         
            name="classname"
value="org.apache.jcs.engine.ElementAttributes" />
          <set-property 
            name="IsEternal" 
            value="true" />
          <set-property 
            name="MaxLifeSeconds" 
            value="30" />
          <set-property 
            name="IsSpool" 
            value="true" />
          <set-property 
            name="IsRemote" 
            value="true" />
          <set-property 
            name="IsLateral" 
            value="true" />
        </element-attributes> 
    </region>
 
  </regions>


        
  <!-- Auxiliary COnfiguration -->

  <auxiliaries>

    <!-- Remote RMI cache without failover -->
    <auxiliary>
        <name>RGroup</name>
        <set-property   
            name="classname"
            value="org.apache.jcs.auxiliary.remote.RemoteCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.remote.RemoteCacheAttributes"
/>
          <set-property 
            name="RemoteTypeName" 
            value="LOCAL" />
          <set-property 
            name="RemoteHost" 
            value="localhost" />
          <set-property 
            name="RemotePort" 
            value="1102" />
          <set-property 
            name="GetOnly" 
            value="true" />
        </auxiliary-attributes>
   </auxiliary>


    <!-- Remote RMI cache with failover -->
    <auxiliary>
        <name>RFailover</name>
        <set-property   
            name="classname"
            value="org.apache.jcs.auxiliary.remote.RemoteCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.remote.RemoteCacheAttributes"
/>
          <set-property 
            name="RemoteTypeName" 
            value="LOCAL" />
          <set-property 
            name="FailoverServers" 
            value="localhost:1102" />
          <set-property 
            name="GetOnly" 
            value="false" />
        </auxiliary-attributes>
   </auxiliary>



  <!-- Primary Disk Cache --> 
    <auxiliary>
        <name>DC</name>
        <set-property   
            name="classname"                
 
value="org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory" />
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes"
/>
          <set-property 
            name="DiskPath" 
            value="i:\\dev\\raf" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- HSQL Disk Cache -- too slow --> 
    <auxiliary>
        <name>HDC</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.disk.hsql.HSQLCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.disk.hsql.HSQLCacheAttributes" />
          <set-property 
            name="DiskPath" 
            value="i:\\dev\\hsql" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- JISP Disk Cache -- save memory with disk key storage --> 
    <auxiliary>
        <name>HDC</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.disk.jisp.JISPCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.disk.jisp.JISPCacheAttributes" />
          <set-property 
            name="DiskPath" 
            value="i:\\dev\\jisp" />
          <set-property 
            name="ClearOnStart" 
            value="false" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- Unreliable Lateral --> 
    <auxiliary>
        <name>LUDP</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.lateral.LateralCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.lateral.LateralCacheAttributes" />
          <set-property 
            name="TransmissionTypeName" 
            value="UDP" />
          <set-property 
            name="UdpMulticastAddr" 
            value="228.5.6.7" />
          <set-property 
            name="UdpMulticastPort" 
            value="6789" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- JavaGroups Lateral --> 
    <auxiliary>
        <name>LJG</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.lateral.LateralCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.lateral.LateralCacheAttributes" />
          <set-property 
            name="TransmissionTypeName" 
            value="JAVAGROUPS" />
          <set-property 
            name="UdpMulticastAddr" 
            value="228.5.6.7" />
          <set-property 
            name="UdpMulticastPort" 
            value="6789" />
          <set-property 
            name="PutOnlyMode" 
            value="false" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- Reliable, fast TCP Lateral --> 
    <auxiliary>
        <name>LTCP</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.lateral.LateralCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.lateral.LateralCacheAttributes" />
          <set-property 
            name="TransmissionTypeName" 
            value="TCP" />
          <set-property 
            name="TcpServers" 
            value="localhost:1111,localhost2:1112" />
          <set-property 
            name="TcpListenerPort" 
            value="1111" />
          <set-property 
            name="PutOnlyMode" 
            value="true" />
        </auxiliary-attributes>
   </auxiliary>

 
  <!-- XMLRPC Lateral --> 
    <auxiliary>
        <name>LTCP</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.lateral.LateralCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.lateral.LateralCacheAttributes" />
          <set-property 
            name="TransmissionTypeName" 
            value="XMLRPC" />
          <set-property 
            name="HttpServers" 
            value="localhost:8182" />
          <set-property 
            name="HttpListenerPort" 
            value="8181" />
          <set-property 
            name="PutOnlyMode" 
            value="false" />
        </auxiliary-attributes>
   </auxiliary>


  <!-- HTTP Lateral --> 
    <auxiliary>
        <name>LTCP</name>
        <set-property   
            name="classname"                
            value="org.apache.jcs.auxiliary.lateral.LateralCacheFactory"
/>
        <auxiliary-attributes>
          <set-property 
            name="classname" 
        
value="org.apache.jcs.auxiliary.lateral.LateralCacheAttributes" />
          <set-property 
            name="TransmissionTypeName" 
            value="HTTP" />
          <set-property 
            name="HttpServers" 
            value="localhost:8080,localhost:7001,localhost:80" />
          <set-property 
            name="httpReceiveServlet" 
            value="/cache/LateralCacheReceiverServlet" />
          <set-property 
            name="httpDeleteServlet" 
            value="/cache/DeleteCacheServlet" />
        </auxiliary-attributes>
   </auxiliary>


  <auxiliaries/>

</jcs>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to