diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 086d1f9..a965865 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,49 +1,49 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-
-name: Java CI
-
-on: [push, pull_request]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-    continue-on-error: ${{ matrix.experimental }}
-    strategy:
-      matrix:
-        java: [ 8, 11, 17 ]
-        experimental: [false]
-#        include:
-#          - java: 18-ea
-#            experimental: true
-        
-    steps:
-    - uses: actions/checkout@v2.3.4
-    - uses: actions/cache@v2.1.4
-      with:
-        path: ~/.m2/repository
-        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-        restore-keys: |
-          ${{ runner.os }}-maven-
-    - name: Set up JDK ${{ matrix.java }}
-      uses: actions/setup-java@v3
-      with:
-        distribution: 'temurin'
-        java-version: ${{ matrix.java }}
-    - name: Build with Maven
-      run: mvn -V -e --file pom.xml --no-transfer-progress
-
-# For Java 11, you can be more strict: -DadditionalJOption=-Xdoclint/package:-org.apache.commons.configuration2.plist
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+name: Java CI
+
+on: [push, pull_request]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+    continue-on-error: ${{ matrix.experimental }}
+    strategy:
+      matrix:
+        java: [ 8, 11, 17 ]
+        experimental: [false]
+#        include:
+#          - java: 18-ea
+#            experimental: true
+        
+    steps:
+    - uses: actions/checkout@v3
+    - uses: actions/cache@v2.1.4
+      with:
+        path: ~/.m2/repository
+        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+        restore-keys: |
+          ${{ runner.os }}-maven-
+    - name: Set up JDK ${{ matrix.java }}
+      uses: actions/setup-java@v3
+      with:
+        distribution: 'temurin'
+        java-version: ${{ matrix.java }}
+    - name: Build with Maven
+      run: mvn -V -e --file pom.xml --no-transfer-progress
+
+# For Java 11, you can be more strict: -DadditionalJOption=-Xdoclint/package:-org.apache.commons.configuration2.plist
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4f42d0d..5e75879 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,280 +1,283 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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 file is used by the maven-changes-plugin to generate the release notes.
-Useful ways of finding items to add to this file are:
-
-1.  Add items when you fix a bug or add a feature (this makes the 
-release process easy :-).
-
-2.  Do a Jira search for tickets closed since the previous release.
-
-3.  Use the report generated by the maven-changelog-plugin to see all
-SVN commits.  Set the project.properties' maven.changelog.range 
-property to the number of days since the last release.
-
-
-The <action> type attribute can be add,update,fix,remove.
--->
-<document xmlns="http://maven.apache.org/changes/1.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
-  <properties>
-    <title>Release Notes</title>
-  </properties>
-
-  <body>
-    <release version="2.0" date="YYYY-MM-DD" description="Major release">
-      <action issue="CHAIN-86" dev="britter" type="update" due-to="Jonas Sprenger">
-          Make CatalogFactory an interface
-      </action>
-      <action issue="CHAIN-108" dev="britter" type="update">
-          Build fails with Java 6
-      </action>
-      <action issue="CHAIN-94" dev="britter" type="update" due-to="Jonas Sprenger">
-          Refactor tests in class TestContextTestCase
-      </action>
-      <action issue="CHAIN-100" dev="britter" type="add">
-          Add Maven PMD Plugin to the site build
-      </action>
-      <action issue="CHAIN-91" dev="britter" type="update">
-          Split up CopyCommand
-      </action>
-      <action issue="CHAIN-93" dev="britter" type="add">
-          Create test case for o.a.c.chain2.base.RemoveCommand
-      </action>
-      <action issue="CHAIN-92" dev="britter" type="add">
-          Create a new module containing common test code and utilities
-      </action>
-      <action issue="CHAIN-88" dev="britter" type="update" due-to="Stephan Köninger">
-          Refactor tests in class ContextBaseTestCase
-      </action>
-      <action issue="CHAIN-83" dev="britter" type="update">
-          Rename o.a.c.chain2.generic package to o.a.c.chain2.base
-      </action>
-      <action issue="CHAIN-90" dev="britter" type="add">
-          Create test for o.a.c.chain.generic.CopyCommand
-      </action>
-      <action issue="CHAIN-89" dev="britter" type="update">
-          Combine XmlConfigParserTestCase and XmlConfigParser2TestCase into a parameterized test case
-      </action>
-      <action issue="CHAIN-87" dev="britter" type="update">
-          Change method signature of ConfigParser.parse(URL)
-      </action>
-      <action issue="CHAIN-79" dev="simonetripodi" type="update">
-        Extract APIs in a separate module from default core implementation
-      </action>
-      <action issue="CHAIN-78" dev="simonetripodi" type="update" due-to="Steve Westwood">
-        Move to a more recent version of commons-parent POM
-      </action>
-      <action issue="CHAIN-75" dev="elijah" type="update">
-        Update serialVersionUID in all classes to a date based format.
-      </action>
-      <action issue="CHAIN-74" dev="simonetripodi" type="update">
-        Improve Chain/Catalog use of Generics.
-      </action>
-      <action issue="CHAIN-73" dev="simonetripodi" type="add">
-        Add a small EDSL to simplify Catalog setup.
-      </action>
-      <action issue="CHAIN-72" dev="elijah" type="update">
-        Refactored configuration module to a facade that supports multiple implementations.
-      </action>
-      <action issue="CHAIN-71" dev="elijah" type="update">
-        Removed methods deprecated in 1.xx releases.
-      </action>
-      <action issue="CHAIN-70" dev="simonetripodi" type="add">
-        Add a small EDSL to simplify Chain setup and execution.
-      </action>
-      <action issue="CHAIN-69" dev="simonetripodi" type="fix" due-to="Elijah Zupancic">
-        Fixed Checkstyle / PMD Warnings
-      </action>
-      <action issue="CHAIN-68" dev="simonetripodi" type="fix" due-to="Elijah Zupancic">
-        SNAPSHOT tomcat plugin breaks the build
-      </action>
-      <action issue="CHAIN-67" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
-        Refactor of explicit Exception throws to a RuntimeException type
-      </action>
-      <action issue="CHAIN-66" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
-        Updated Chain documentation to include new changes to the API
-      </action>
-      <action issue="CHAIN-65" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
-        Rename package org.apache.commons.chain to org.apache.commons.chain2 for v2 of chain.
-      </action>
-      <action issue="CHAIN-61" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
-        Chain 2.0 trunk build is throwing many warnings as a result of generification changes.
-      </action>
-      <action issue="CHAIN-58" dev="simonetripodi" type="update" due-to="Elijah Zupancic">
-        Update Chain Context interface to use K,V generics
-      </action>
-      <action issue="CHAIN-56" dev="simonetripodi" type="add">
-        clever Context with generic type "auto-cast" feature.
-      </action>
-      <action issue="CHAIN-55" dev="simonetripodi" type="add">
-        split the huge project in submodules.
-      </action>
-      <action issue="CHAIN-53" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
-        Global Update of Chain - Generics, JDK 1.5, Update Dependency Versions.
-      </action>
-      <action issue="CHAIN-47" dev="elijah" type="fix">
-        WebContext, ServletWebContext are now interfaces
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Bump actions/setup-java from 1.4.3 to 3.
-      </action>
-    </release>
-
-    <release version="1.2" date="2008-06-02" description="OSGi enabled / minor bug fixes">
-      <action dev="niallp" type="add">
-         Chain 1.2 is the first OSGi-enabled release.
-      </action>
-      <action dev="niallp" type="add" issue="CHAIN-36">
-         Add Example webapp for Servlet Mapper Commands
-      </action>
-      <action dev="rahul" type="update">
-         Upgrade Commons Logging dependency to 1.1.1
-      </action>
-      <action dev="niallp" type="update" issue="CHAIN-32" due-to="Joshua Graham">
-         Improve instantiation performance of ContextBase subclasses.
-      </action>
-      <action dev="niallp" type="update" issue="CHAIN-4" due-to="Joe Germuska">
-         Update servlet implementation classes to be aware of CatalogFactory
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-44" due-to="FindBugs">
-         CatalogFactory instance variable prevents ChainProcessor from being serializable.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-43" due-to="Ales Dolecek">
-         ChainListener URL translation does not work as expected.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-42" due-to="Isaac Shabtay">
-         Various scope mappers use incorrect equalization.
-      </action>
-      <action dev="skitching" type="fix" issue="CHAIN-41" due-to="Isaac Shabtay">
-         Ant build fails due to usage of old Digester.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-35">
-         PathInfoMapper command can not obtain the current catalog instance.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-34" due-to="Mark Vedder">
-         Unbalanced tags in Javadoc for ContextBase class.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-33">
-         Upgrade to Commons Digester 1.8 to fix bug loading webapp resources.
-      </action>
-      <action dev="niallp" type="fix">
-         Corrections to the project.xml - mark servlet, portlet and myfaces dependencies
-         as "optional" to prevent dependency problems for maven2 users.
-      </action>
-    </release>
-
-    <release version="1.1" date="2006-06-14">
-      <action dev="niallp" type="fix" issue="CHAIN-30">
-         ServletSessionScopeMap always forces a Session to be Created.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-31">
-         Portlet Map implementations' entry Set should contain Map.Entry elements.
-      </action>
-      <action dev="niallp" type="add" issue="CHAIN-28">
-        Provide a Map of Cookies in the WebContext.
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-29">
-         Remove Static Log instances - see
-         http://wiki.apache.org/commons/Logging/StaticLog
-      </action>
-      <action dev="niallp" type="fix" issue="CHAIN-11">
-         Modify DispatchCommand so that it will compile using JDK 1.3 (remove JDK 1.4 method).
-      </action>
-      <action dev="germuska" type="fix">
-         DispatchCommand - fix bug in handling InvocationTargetException.
-      </action>
-      <action dev="germuska" type="fix" issue="CHAIN-9" due-to="Wendy Smoak">
-         Maven build updates.
-      </action>
-      <action dev="germuska" type="update">
-         CatalogBase - add constructor which takes an already built map of commands, for easier use in dependency-injection environments.
-      </action>
-      <action dev="germuska" type="fix" issue="CHAIN-25">
-         DispatchCommand should unwrap InvocationTargetException.
-      </action>
-      <action dev="germuska" type="update">
-         Expose catalogFactory so that subclasses can get at it.
-      </action>
-      <action dev="germuska" type="update" issue="CHAIN-3">
-         Decouple CatalogFactory lookup from LookupAction.
-      </action>
-      <action dev="craigmcc" type="fix" issue="CHAIN-12" due-to="Jeff Ramsdale and Dennis Lundberg">
-         Make ContextBase live up to the Serializable contract that it inherits by virtue of extending HashMap.
-      </action>
-      <action dev="martinc" type="update">
-         ChainResources - factor out the comma-delimited parsing into a separate method, fix the whitespace-skipping bugs in it.
-      </action>
-      <action dev="germuska" type="update">
-         Add support for using LookupCommand in a way which does not pass through the result from the looked up command.
-      </action>
-      <action dev="jmitchell" type="add" issue="CHAIN-14" due-to="Sean Schofield">
-         Add new DispatchLookupCommand.
-      </action>
-      <action dev="jmitchell" type="add" issue="CHAIN-26" due-to="Sean Schofield">
-         Add new test for LookupCommand.
-      </action>
-      <action dev="germuska" type="add" issue="CHAIN-20">
-         Add new  DispatchCommand.
-      </action>
-      <action dev="jmitchell" type="fix" issue="CHAIN-6" due-to="William Slough and Sean Schofield">
-         CopyCommand does not work unless setValue is called.
-      </action>
-      <action dev="craigmcc" type="add" issue="CHAIN-19" due-to="Joe Germuska">
-         Provide a  mechanism for encoding catalog and command in a single string
-      </action>
-      <action dev="martinc" type="fix" issue="CHAIN-1" due-to="Sergio Moretto">
-         Code fragment from 'cookbook' is incorrect.
-      </action>
-    </release>
-
-    <release version="1.0" date="2004-12-09" description="Initial Release">
-      <action dev="mardon" type="fix" issue="CHAIN-5" due-to="Manfred Wolff">
-         Make CatalogBase.getCommand() thread safe.
-      </action>
-      <action dev="craigmcc" type="update" issue="CHAIN-2" due-to="Sean Schofield">
-         LookupCommand should use new CatalogFactory.
-      </action>
-      <action dev="craigmcc" type="fix" issue="CHAIN-10" due-to="Sean Schofield">
-         Sample catalog.xml missing &lt;catalog&gt; tag.
-      </action>
-      <action dev="craigmcc" type="add" issue="CHAIN-7" due-to="Sean Schofield">
-         Add missing new class ConfigCatalogRule.
-      </action>
-      <action dev="craigmcc" type="update" issue="CHAIN-21">
-         Make the impl. class of chainbase configurable.
-      </action>
-      <action dev="craigmcc" type="fix" issue="CHAIN-23" due-to="Sean Schofield">
-         Support for new CatalogFactory.
-      </action>
-      <action dev="martinc" type="fix" issue="CHAIN-8" due-to="Otis Gospodnetic">
-         tabs to spaces, Log name fix.
-      </action>
-      <action dev="husted" type="fix" issue="CHAIN-15" due-to="Joe Germuska">
-         build.properties.sample should add commons-logging.
-      </action>
-      <action dev="husted" type="update" issue="CHAIN-22" due-to="Matthew Sgarlata">
-         Added Javadoc and a toString() method to CatalogBase.
-      </action>
-    </release>
-  </body>
-
-</document>
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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 file is used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1.  Add items when you fix a bug or add a feature (this makes the 
+release process easy :-).
+
+2.  Do a Jira search for tickets closed since the previous release.
+
+3.  Use the report generated by the maven-changelog-plugin to see all
+SVN commits.  Set the project.properties' maven.changelog.range 
+property to the number of days since the last release.
+
+
+The <action> type attribute can be add,update,fix,remove.
+-->
+<document xmlns="http://maven.apache.org/changes/1.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
+  <properties>
+    <title>Release Notes</title>
+  </properties>
+
+  <body>
+    <release version="2.0" date="YYYY-MM-DD" description="Major release">
+      <action issue="CHAIN-86" dev="britter" type="update" due-to="Jonas Sprenger">
+          Make CatalogFactory an interface
+      </action>
+      <action issue="CHAIN-108" dev="britter" type="update">
+          Build fails with Java 6
+      </action>
+      <action issue="CHAIN-94" dev="britter" type="update" due-to="Jonas Sprenger">
+          Refactor tests in class TestContextTestCase
+      </action>
+      <action issue="CHAIN-100" dev="britter" type="add">
+          Add Maven PMD Plugin to the site build
+      </action>
+      <action issue="CHAIN-91" dev="britter" type="update">
+          Split up CopyCommand
+      </action>
+      <action issue="CHAIN-93" dev="britter" type="add">
+          Create test case for o.a.c.chain2.base.RemoveCommand
+      </action>
+      <action issue="CHAIN-92" dev="britter" type="add">
+          Create a new module containing common test code and utilities
+      </action>
+      <action issue="CHAIN-88" dev="britter" type="update" due-to="Stephan Köninger">
+          Refactor tests in class ContextBaseTestCase
+      </action>
+      <action issue="CHAIN-83" dev="britter" type="update">
+          Rename o.a.c.chain2.generic package to o.a.c.chain2.base
+      </action>
+      <action issue="CHAIN-90" dev="britter" type="add">
+          Create test for o.a.c.chain.generic.CopyCommand
+      </action>
+      <action issue="CHAIN-89" dev="britter" type="update">
+          Combine XmlConfigParserTestCase and XmlConfigParser2TestCase into a parameterized test case
+      </action>
+      <action issue="CHAIN-87" dev="britter" type="update">
+          Change method signature of ConfigParser.parse(URL)
+      </action>
+      <action issue="CHAIN-79" dev="simonetripodi" type="update">
+        Extract APIs in a separate module from default core implementation
+      </action>
+      <action issue="CHAIN-78" dev="simonetripodi" type="update" due-to="Steve Westwood">
+        Move to a more recent version of commons-parent POM
+      </action>
+      <action issue="CHAIN-75" dev="elijah" type="update">
+        Update serialVersionUID in all classes to a date based format.
+      </action>
+      <action issue="CHAIN-74" dev="simonetripodi" type="update">
+        Improve Chain/Catalog use of Generics.
+      </action>
+      <action issue="CHAIN-73" dev="simonetripodi" type="add">
+        Add a small EDSL to simplify Catalog setup.
+      </action>
+      <action issue="CHAIN-72" dev="elijah" type="update">
+        Refactored configuration module to a facade that supports multiple implementations.
+      </action>
+      <action issue="CHAIN-71" dev="elijah" type="update">
+        Removed methods deprecated in 1.xx releases.
+      </action>
+      <action issue="CHAIN-70" dev="simonetripodi" type="add">
+        Add a small EDSL to simplify Chain setup and execution.
+      </action>
+      <action issue="CHAIN-69" dev="simonetripodi" type="fix" due-to="Elijah Zupancic">
+        Fixed Checkstyle / PMD Warnings
+      </action>
+      <action issue="CHAIN-68" dev="simonetripodi" type="fix" due-to="Elijah Zupancic">
+        SNAPSHOT tomcat plugin breaks the build
+      </action>
+      <action issue="CHAIN-67" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
+        Refactor of explicit Exception throws to a RuntimeException type
+      </action>
+      <action issue="CHAIN-66" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
+        Updated Chain documentation to include new changes to the API
+      </action>
+      <action issue="CHAIN-65" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
+        Rename package org.apache.commons.chain to org.apache.commons.chain2 for v2 of chain.
+      </action>
+      <action issue="CHAIN-61" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
+        Chain 2.0 trunk build is throwing many warnings as a result of generification changes.
+      </action>
+      <action issue="CHAIN-58" dev="simonetripodi" type="update" due-to="Elijah Zupancic">
+        Update Chain Context interface to use K,V generics
+      </action>
+      <action issue="CHAIN-56" dev="simonetripodi" type="add">
+        clever Context with generic type "auto-cast" feature.
+      </action>
+      <action issue="CHAIN-55" dev="simonetripodi" type="add">
+        split the huge project in submodules.
+      </action>
+      <action issue="CHAIN-53" dev="simonetripodi" type="add" due-to="Elijah Zupancic">
+        Global Update of Chain - Generics, JDK 1.5, Update Dependency Versions.
+      </action>
+      <action issue="CHAIN-47" dev="elijah" type="fix">
+        WebContext, ServletWebContext are now interfaces
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Bump actions/setup-java from 1.4.3 to 3.
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Bump actions/checkout 2.3.4 to 3.
+      </action>
+    </release>
+
+    <release version="1.2" date="2008-06-02" description="OSGi enabled / minor bug fixes">
+      <action dev="niallp" type="add">
+         Chain 1.2 is the first OSGi-enabled release.
+      </action>
+      <action dev="niallp" type="add" issue="CHAIN-36">
+         Add Example webapp for Servlet Mapper Commands
+      </action>
+      <action dev="rahul" type="update">
+         Upgrade Commons Logging dependency to 1.1.1
+      </action>
+      <action dev="niallp" type="update" issue="CHAIN-32" due-to="Joshua Graham">
+         Improve instantiation performance of ContextBase subclasses.
+      </action>
+      <action dev="niallp" type="update" issue="CHAIN-4" due-to="Joe Germuska">
+         Update servlet implementation classes to be aware of CatalogFactory
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-44" due-to="FindBugs">
+         CatalogFactory instance variable prevents ChainProcessor from being serializable.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-43" due-to="Ales Dolecek">
+         ChainListener URL translation does not work as expected.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-42" due-to="Isaac Shabtay">
+         Various scope mappers use incorrect equalization.
+      </action>
+      <action dev="skitching" type="fix" issue="CHAIN-41" due-to="Isaac Shabtay">
+         Ant build fails due to usage of old Digester.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-35">
+         PathInfoMapper command can not obtain the current catalog instance.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-34" due-to="Mark Vedder">
+         Unbalanced tags in Javadoc for ContextBase class.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-33">
+         Upgrade to Commons Digester 1.8 to fix bug loading webapp resources.
+      </action>
+      <action dev="niallp" type="fix">
+         Corrections to the project.xml - mark servlet, portlet and myfaces dependencies
+         as "optional" to prevent dependency problems for maven2 users.
+      </action>
+    </release>
+
+    <release version="1.1" date="2006-06-14">
+      <action dev="niallp" type="fix" issue="CHAIN-30">
+         ServletSessionScopeMap always forces a Session to be Created.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-31">
+         Portlet Map implementations' entry Set should contain Map.Entry elements.
+      </action>
+      <action dev="niallp" type="add" issue="CHAIN-28">
+        Provide a Map of Cookies in the WebContext.
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-29">
+         Remove Static Log instances - see
+         http://wiki.apache.org/commons/Logging/StaticLog
+      </action>
+      <action dev="niallp" type="fix" issue="CHAIN-11">
+         Modify DispatchCommand so that it will compile using JDK 1.3 (remove JDK 1.4 method).
+      </action>
+      <action dev="germuska" type="fix">
+         DispatchCommand - fix bug in handling InvocationTargetException.
+      </action>
+      <action dev="germuska" type="fix" issue="CHAIN-9" due-to="Wendy Smoak">
+         Maven build updates.
+      </action>
+      <action dev="germuska" type="update">
+         CatalogBase - add constructor which takes an already built map of commands, for easier use in dependency-injection environments.
+      </action>
+      <action dev="germuska" type="fix" issue="CHAIN-25">
+         DispatchCommand should unwrap InvocationTargetException.
+      </action>
+      <action dev="germuska" type="update">
+         Expose catalogFactory so that subclasses can get at it.
+      </action>
+      <action dev="germuska" type="update" issue="CHAIN-3">
+         Decouple CatalogFactory lookup from LookupAction.
+      </action>
+      <action dev="craigmcc" type="fix" issue="CHAIN-12" due-to="Jeff Ramsdale and Dennis Lundberg">
+         Make ContextBase live up to the Serializable contract that it inherits by virtue of extending HashMap.
+      </action>
+      <action dev="martinc" type="update">
+         ChainResources - factor out the comma-delimited parsing into a separate method, fix the whitespace-skipping bugs in it.
+      </action>
+      <action dev="germuska" type="update">
+         Add support for using LookupCommand in a way which does not pass through the result from the looked up command.
+      </action>
+      <action dev="jmitchell" type="add" issue="CHAIN-14" due-to="Sean Schofield">
+         Add new DispatchLookupCommand.
+      </action>
+      <action dev="jmitchell" type="add" issue="CHAIN-26" due-to="Sean Schofield">
+         Add new test for LookupCommand.
+      </action>
+      <action dev="germuska" type="add" issue="CHAIN-20">
+         Add new  DispatchCommand.
+      </action>
+      <action dev="jmitchell" type="fix" issue="CHAIN-6" due-to="William Slough and Sean Schofield">
+         CopyCommand does not work unless setValue is called.
+      </action>
+      <action dev="craigmcc" type="add" issue="CHAIN-19" due-to="Joe Germuska">
+         Provide a  mechanism for encoding catalog and command in a single string
+      </action>
+      <action dev="martinc" type="fix" issue="CHAIN-1" due-to="Sergio Moretto">
+         Code fragment from 'cookbook' is incorrect.
+      </action>
+    </release>
+
+    <release version="1.0" date="2004-12-09" description="Initial Release">
+      <action dev="mardon" type="fix" issue="CHAIN-5" due-to="Manfred Wolff">
+         Make CatalogBase.getCommand() thread safe.
+      </action>
+      <action dev="craigmcc" type="update" issue="CHAIN-2" due-to="Sean Schofield">
+         LookupCommand should use new CatalogFactory.
+      </action>
+      <action dev="craigmcc" type="fix" issue="CHAIN-10" due-to="Sean Schofield">
+         Sample catalog.xml missing &lt;catalog&gt; tag.
+      </action>
+      <action dev="craigmcc" type="add" issue="CHAIN-7" due-to="Sean Schofield">
+         Add missing new class ConfigCatalogRule.
+      </action>
+      <action dev="craigmcc" type="update" issue="CHAIN-21">
+         Make the impl. class of chainbase configurable.
+      </action>
+      <action dev="craigmcc" type="fix" issue="CHAIN-23" due-to="Sean Schofield">
+         Support for new CatalogFactory.
+      </action>
+      <action dev="martinc" type="fix" issue="CHAIN-8" due-to="Otis Gospodnetic">
+         tabs to spaces, Log name fix.
+      </action>
+      <action dev="husted" type="fix" issue="CHAIN-15" due-to="Joe Germuska">
+         build.properties.sample should add commons-logging.
+      </action>
+      <action dev="husted" type="update" issue="CHAIN-22" due-to="Matthew Sgarlata">
+         Added Javadoc and a toString() method to CatalogBase.
+      </action>
+    </release>
+  </body>
+
+</document>
