This is an automated email from the ASF dual-hosted git repository.

cbrisson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/velocity-tools.git


The following commit(s) were added to refs/heads/master by this push:
     new 994c555  [tools] Fix VELTOOLS-192 : 
EasyFactoryConfiguration.addDefaultTools() overwriting previously added tools
994c555 is described below

commit 994c555d6a31e30b3c07daf6921e83e1b3227658
Author: Claude Brisson <[email protected]>
AuthorDate: Wed Dec 1 18:30:49 2021 +0100

    [tools] Fix VELTOOLS-192 : EasyFactoryConfiguration.addDefaultTools() 
overwriting previously added tools
---
 .../tools/config/CompoundConfiguration.java        | 22 ++++++++++++++++++++--
 .../tools/config/EasyFactoryConfiguration.java     |  2 +-
 .../tools/config/FactoryConfiguration.java         |  6 +++---
 .../tools/config/ToolboxConfiguration.java         |  2 +-
 4 files changed, 25 insertions(+), 7 deletions(-)

diff --git 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/CompoundConfiguration.java
 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/CompoundConfiguration.java
index a0ef0e4..94886ba 100644
--- 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/CompoundConfiguration.java
+++ 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/CompoundConfiguration.java
@@ -35,7 +35,7 @@ public class CompoundConfiguration<C extends Configuration>
 {
     private final SortedSet<C> children = new TreeSet<C>();
 
-    protected void addChild(C newKid)
+    protected C addChild(C newKid)
     {
         // check if we already have a matching child
         C child = getChild(newKid);
@@ -53,11 +53,13 @@ public class CompoundConfiguration<C extends Configuration>
                 // add newKid's values to childs (overwriting any dupes)
                 child.addConfiguration(newKid);
             }
+            return child;
         }
         else
         {
             // simply adopt the new kid
             children.add(newKid);
+            return newKid;
         }
     }
 
@@ -76,8 +78,24 @@ public class CompoundConfiguration<C extends Configuration>
         return children;
     }
 
+    /**
+     * @deprecated use addChildren(collection)
+    /**
+    @Deprecated
     protected void setChildren(Collection<C> kids)
     {
+        
+        for (C kid : kids)
+        {
+            addChild(kid);
+        }
+    }
+
+    /**
+     * @since 3.2
+    /**
+    protected void addChildren(Collection<C> kids)
+    {
         for (C kid : kids)
         {
             addChild(kid);
@@ -99,7 +117,7 @@ public class CompoundConfiguration<C extends Configuration>
     public void addConfiguration(CompoundConfiguration<C> config)
     {
         // add config's children to our own
-        setChildren(config.getChildren());
+        addChildren(config.getChildren());
 
         // add config's properties to ours
         super.addConfiguration(config);
diff --git 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
index 0bb8c7f..0cd539f 100644
--- 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
+++ 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
@@ -193,7 +193,7 @@ public class EasyFactoryConfiguration extends 
FactoryConfiguration
     {
         ToolboxConfiguration toolbox = new ToolboxConfiguration();
         toolbox.setScope(scope);
-        addToolbox(toolbox);
+        toolbox = addToolbox(toolbox);
         this.toolbox =
             new EasyWrap<ToolboxConfiguration>(toolbox, this);
         return this.toolbox;
diff --git 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/FactoryConfiguration.java
 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/FactoryConfiguration.java
index ba8d8b3..6fde49b 100644
--- 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/FactoryConfiguration.java
+++ 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/FactoryConfiguration.java
@@ -205,9 +205,9 @@ public class FactoryConfiguration
         }
     }
 
-    public void addToolbox(ToolboxConfiguration toolbox)
+    public ToolboxConfiguration addToolbox(ToolboxConfiguration toolbox)
     {
-        addChild(toolbox);
+        return addChild(toolbox);
     }
 
     public void removeToolbox(ToolboxConfiguration toolbox)
@@ -234,7 +234,7 @@ public class FactoryConfiguration
 
     public void setToolboxes(Collection<ToolboxConfiguration> toolboxes)
     {
-        setChildren(toolboxes);
+        addChildren(toolboxes);
     }
 
     public void addConfiguration(FactoryConfiguration config)
diff --git 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
index c240919..199b50c 100644
--- 
a/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
+++ 
b/velocity-tools-generic/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
@@ -99,7 +99,7 @@ public class ToolboxConfiguration
 
     public void setTools(Collection<ToolConfiguration> tools)
     {
-        setChildren(tools);
+        addChildren(tools);
     }
 
     @Override

Reply via email to