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

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git


The following commit(s) were added to refs/heads/master by this push:
     new 5053e6f67 Make the bindings used by DimensionFanOutNode and 
ParameterFanOutNode configurable
5053e6f67 is described below

commit 5053e6f6770ad41816bc3805d7d10e0cd84650f1
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 15 21:05:27 2026 +0000

    Make the bindings used by DimensionFanOutNode and ParameterFanOutNode 
configurable
---
 .../apache/axiom/util/sax/XMLReaderTestSuite.java  |  6 +++++-
 .../om/impl/jaxp/StreamSourceToOMResultTest.java   | 11 +++++++++--
 .../serializer/SerializerConformanceTest.java      |  7 ++++++-
 .../stax/pull/output/StAXPivotTransformerTest.java | 11 +++++++++--
 .../apache/axiom/ts/om/cross/CrossOMTestSuite.java | 10 ++++++++--
 .../org/apache/axiom/ts/omdom/OMDOMTestSuite.java  | 11 +++++++++--
 .../axiom/testutils/suite/DimensionFanOutNode.java |  4 ++--
 .../axiom/testutils/suite/ParameterFanOutNode.java | 11 ++---------
 .../org/apache/axiom/ts/saaj/SAAJTestSuite.java    |  7 ++++++-
 .../axiom/ts/springws/SpringWSTestSuite.java       | 11 ++++++++---
 .../org/apache/axiom/truth/xml/CompareTest.java    | 23 ++++++++++++++++++----
 11 files changed, 83 insertions(+), 29 deletions(-)

diff --git 
a/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java 
b/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
index 526e7729d..a4aee3ef7 100644
--- a/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
+++ b/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
@@ -24,17 +24,21 @@ import org.apache.axiom.testutils.suite.ParameterFanOutNode;
 import org.xml.sax.XMLReader;
 
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 
 public class XMLReaderTestSuite {
     public static InjectorNode create(XMLReader xmlReader) {
         return new InjectorNode(
                 binder -> binder.bind(XMLReader.class).toInstance(xmlReader),
                 new ParameterFanOutNode<>(
-                        String.class,
                         ImmutableList.of(
                                 "http://xml.org/sax/features/namespaces";,
                                 
"http://xml.org/sax/features/namespace-prefixes";,
                                 
"http://xml.org/sax/features/external-general-entities";),
+                        (binder, value) ->
+                                binder.bind(String.class)
+                                        .annotatedWith(Names.named("feature"))
+                                        .toInstance(value),
                         "feature",
                         s -> s,
                         new MatrixTest(TestGetSetFeature.class)));
diff --git 
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
 
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
index daccbb051..66c0dc874 100644
--- 
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
+++ 
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
 import org.apache.axiom.testing.multiton.Multiton;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 import org.apache.axiom.testutils.suite.MatrixTestFilters;
 import org.apache.axiom.testutils.suite.ParameterFanOutNode;
 import org.apache.axiom.ts.xml.XMLSample;
@@ -37,13 +38,19 @@ public class StreamSourceToOMResultTest {
                         
.add("(|(file=sax-attribute-namespace-bug.xml)(file=large.xml))")
                         .build();
         return new ParameterFanOutNode<>(
-                        String.class,
                         ImmutableList.of("default", "dom"),
+                        (binder, value) ->
+                                binder.bind(String.class)
+                                        
.annotatedWith(Names.named("axiomImplementation"))
+                                        .toInstance(value),
                         "axiomImplementation",
                         s -> s,
                         new ParameterFanOutNode<>(
-                                XMLSample.class,
                                 Multiton.getInstances(XMLSample.class),
+                                (binder, value) ->
+                                        binder.bind(XMLSample.class)
+                                                
.annotatedWith(Names.named("file"))
+                                                .toInstance(value),
                                 "file",
                                 XMLSample::getName,
                                 new 
MatrixTest(StreamSourceToOMResultTestCase.class)))
diff --git 
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
 
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
index cb68bb4e6..59f4f1d79 100644
--- 
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
+++ 
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
@@ -20,6 +20,8 @@ package org.apache.axiom.core.stream.serializer;
 
 import java.util.stream.Stream;
 
+import com.google.inject.name.Names;
+
 import org.apache.axiom.testing.multiton.Multiton;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.ParameterFanOutNode;
@@ -31,8 +33,11 @@ public class SerializerConformanceTest {
     @TestFactory
     public Stream<DynamicNode> tests() {
         return new ParameterFanOutNode<>(
-                        XMLSample.class,
                         Multiton.getInstances(XMLSample.class),
+                        (binder, value) ->
+                                binder.bind(XMLSample.class)
+                                        .annotatedWith(Names.named("sample"))
+                                        .toInstance(value),
                         "sample",
                         XMLSample::getName,
                         new MatrixTest(SerializerConformanceTestCase.class))
diff --git 
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
 
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
index 381a6b382..e6a4c1911 100644
--- 
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
+++ 
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
@@ -29,22 +29,29 @@ import org.junit.jupiter.api.DynamicNode;
 import org.junit.jupiter.api.TestFactory;
 
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 
 public class StAXPivotTransformerTest {
     @TestFactory
     public Stream<DynamicNode> tests() {
         return new ParameterFanOutNode<>(
-                        XSLTImplementation.class,
                         
Multiton.getInstances(XSLTImplementation.class).stream()
                                 .filter(XSLTImplementation::supportsStAXSource)
                                 .collect(ImmutableList.toImmutableList()),
+                        (binder, value) ->
+                                binder.bind(XSLTImplementation.class)
+                                        .annotatedWith(Names.named("xslt"))
+                                        .toInstance(value),
                         "xslt",
                         XSLTImplementation::getName,
                         new ParameterFanOutNode<>(
-                                XMLSample.class,
                                 Multiton.getInstances(XMLSample.class).stream()
                                         .filter(s -> !s.hasDTD())
                                         
.collect(ImmutableList.toImmutableList()),
+                                (binder, value) ->
+                                        binder.bind(XMLSample.class)
+                                                
.annotatedWith(Names.named("sample"))
+                                                .toInstance(value),
                                 "sample",
                                 XMLSample::getName,
                                 new 
MatrixTest(StAXPivotTransformerTestCase.class)))
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
index 330f0a0f5..396e03e8f 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
@@ -43,14 +43,20 @@ public class CrossOMTestSuite {
                 new ParentNode(
                         new MatrixTest(TestAddChild.class),
                         new ParameterFanOutNode<>(
-                                XMLSample.class,
                                 Multiton.getInstances(XMLSample.class),
+                                (binder, value) ->
+                                        binder.bind(XMLSample.class)
+                                                
.annotatedWith(Names.named("file"))
+                                                .toInstance(value),
                                 "file",
                                 XMLSample::getName,
                                 new 
MatrixTest(TestImportInformationItem.class)),
                         new ParameterFanOutNode<>(
-                                Boolean.class,
                                 ImmutableList.of(false, true),
+                                (binder, value) ->
+                                        binder.bind(Boolean.class)
+                                                
.annotatedWith(Names.named("before"))
+                                                .toInstance(value),
                                 "before",
                                 String::valueOf,
                                 new MatrixTest(TestInsertSibling.class))));
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
index 8b22f03fa..04bcd7f66 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
@@ -27,6 +27,7 @@ import org.apache.axiom.testutils.suite.ParameterFanOutNode;
 import org.apache.axiom.ts.xml.XMLSample;
 
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 
 /**
  * Builds a test suite for Axiom implementations that also implement DOM. Note 
that this test suite
@@ -44,8 +45,11 @@ public class OMDOMTestSuite {
                                 
org.apache.axiom.ts.omdom.attr.TestSetValueOnNamespaceDeclaration
                                         .class),
                         new ParameterFanOutNode<>(
-                                Boolean.class,
                                 ImmutableList.of(true, false),
+                                (binder, value) ->
+                                        binder.bind(Boolean.class)
+                                                
.annotatedWith(Names.named("build"))
+                                                .toInstance(value),
                                 "build",
                                 String::valueOf,
                                 new ParentNode(
@@ -61,8 +65,11 @@ public class OMDOMTestSuite {
                         new 
MatrixTest(org.apache.axiom.ts.omdom.document.TestGetOMFactory1.class),
                         new 
MatrixTest(org.apache.axiom.ts.omdom.document.TestGetOMFactory2.class),
                         new ParameterFanOutNode<>(
-                                XMLSample.class,
                                 Multiton.getInstances(XMLSample.class),
+                                (binder, value) ->
+                                        binder.bind(XMLSample.class)
+                                                
.annotatedWith(Names.named("file"))
+                                                .toInstance(value),
                                 "file",
                                 XMLSample::getName,
                                 new MatrixTest(
diff --git 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/DimensionFanOutNode.java
 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/DimensionFanOutNode.java
index 8f3edc655..fc495453c 100644
--- 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/DimensionFanOutNode.java
+++ 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/DimensionFanOutNode.java
@@ -34,8 +34,8 @@ import com.google.common.collect.ImmutableList;
  */
 public class DimensionFanOutNode<D extends Dimension> extends 
AbstractFanOutNode<D> {
     public DimensionFanOutNode(
-            Class<D> dimensionType, ImmutableList<D> dimensions, 
MatrixTestNode child) {
-        super(dimensions, (binder, value) -> 
binder.bind(dimensionType).toInstance(value), child);
+            ImmutableList<D> dimensions, Binding<D> binding, MatrixTestNode 
child) {
+        super(dimensions, binding, child);
     }
 
     @Override
diff --git 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/ParameterFanOutNode.java
 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/ParameterFanOutNode.java
index 15fa595d1..9d821af94 100644
--- 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/ParameterFanOutNode.java
+++ 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/ParameterFanOutNode.java
@@ -22,7 +22,6 @@ import java.util.Map;
 import java.util.function.Function;
 
 import com.google.common.collect.ImmutableList;
-import com.google.inject.name.Names;
 
 /**
  * Fan-out node for arbitrary value types that do not implement {@link 
Dimension}. The caller
@@ -36,18 +35,12 @@ public class ParameterFanOutNode<T> extends 
AbstractFanOutNode<T> {
     private final Function<T, String> parameterValueFunction;
 
     public ParameterFanOutNode(
-            Class<T> type,
             ImmutableList<T> values,
+            Binding<T> binding,
             String parameterName,
             Function<T, String> parameterValueFunction,
             MatrixTestNode child) {
-        super(
-                values,
-                (binder, value) ->
-                        binder.bind(type)
-                                .annotatedWith(Names.named(parameterName))
-                                .toInstance(value),
-                child);
+        super(values, binding, child);
         this.parameterName = parameterName;
         this.parameterValueFunction = parameterValueFunction;
     }
diff --git 
a/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
 
b/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
index 490848b09..add516f50 100644
--- 
a/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
+++ 
b/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
@@ -20,6 +20,8 @@ package org.apache.axiom.ts.saaj;
 
 import jakarta.xml.soap.SAAJMetaFactory;
 
+import com.google.inject.name.Names;
+
 import org.apache.axiom.testing.multiton.Multiton;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.InjectorNode;
@@ -40,8 +42,11 @@ public class SAAJTestSuite {
                         binder.bind(SAAJImplementation.class)
                                 .toInstance(new 
SAAJImplementation(metaFactory)),
                 new ParameterFanOutNode<>(
-                        SOAPSpec.class,
                         Multiton.getInstances(SOAPSpec.class),
+                        (binder, value) ->
+                                binder.bind(SOAPSpec.class)
+                                        .annotatedWith(Names.named("spec"))
+                                        .toInstance(value),
                         "spec",
                         SOAPSpec::getName,
                         new ParentNode(
diff --git 
a/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
 
b/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
index 29c1ce7e2..f40249cd3 100644
--- 
a/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
+++ 
b/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
@@ -41,6 +41,7 @@ import 
org.apache.axiom.ts.springws.soap.messagefactory.TestCreateWebServiceMess
 import 
org.apache.axiom.ts.springws.soap.messagefactory.TestCreateWebServiceMessageFromInputStreamVersionMismatch;
 
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 
 public class SpringWSTestSuite {
     public static MatrixTestNode create(
@@ -54,8 +55,11 @@ public class SpringWSTestSuite {
         }
 
         return new ParameterFanOutNode<>(
-                SOAPSpec.class,
                 Multiton.getInstances(SOAPSpec.class),
+                (binder, value) ->
+                        binder.bind(SOAPSpec.class)
+                                .annotatedWith(Names.named("soapVersion"))
+                                .toInstance(value),
                 "soapVersion",
                 spec -> 
spec.getAdapter(SOAPSpecAdapter.class).getSoapVersion(),
                 new ParentNode(
@@ -76,9 +80,10 @@ public class SpringWSTestSuite {
                                                 new MatrixTest(
                                                         
TestCreateWebServiceMessageFromInputStreamMTOM
                                                                 .class)))),
-                        new DimensionFanOutNode<>(
-                                ScenarioConfig.class,
+                        new DimensionFanOutNode<ScenarioConfig>(
                                 configs.build(),
+                                (binder, value) ->
+                                        
binder.bind(ScenarioConfig.class).toInstance(value),
                                 new ParentNode(
                                         new MatrixTest(ClientServerTest.class),
                                         new 
MatrixTest(WSAddressingDOMTest.class),
diff --git 
a/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java 
b/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
index c9c7f5a13..9debe6075 100644
--- 
a/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
+++ 
b/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
@@ -28,28 +28,43 @@ import org.junit.jupiter.api.DynamicNode;
 import org.junit.jupiter.api.TestFactory;
 
 import com.google.common.collect.ImmutableList;
+import com.google.inject.name.Names;
 
 public class CompareTest {
     @TestFactory
     public Stream<DynamicNode> tests() {
         return new ParameterFanOutNode<>(
-                        XMLSample.class,
                         Multiton.getInstances(XMLSample.class),
+                        (binder, value) ->
+                                binder.bind(XMLSample.class)
+                                        .annotatedWith(Names.named("sample"))
+                                        .toInstance(value),
                         "sample",
                         XMLSample::getName,
                         new ParameterFanOutNode<>(
-                                XMLObjectFactory.class,
                                 Multiton.getInstances(XMLObjectFactory.class),
+                                (binder, value) ->
+                                        binder.bind(XMLObjectFactory.class)
+                                                
.annotatedWith(Names.named("left"))
+                                                .toInstance(value),
                                 "left",
                                 XMLObjectFactory::getName,
                                 new ParameterFanOutNode<>(
-                                        XMLObjectFactory.class,
                                         
Multiton.getInstances(XMLObjectFactory.class),
+                                        (binder, value) ->
+                                                
binder.bind(XMLObjectFactory.class)
+                                                        
.annotatedWith(Names.named("right"))
+                                                        .toInstance(value),
                                         "right",
                                         XMLObjectFactory::getName,
                                         new ParameterFanOutNode<>(
-                                                Boolean.class,
                                                 ImmutableList.of(true, false),
+                                                (binder, value) ->
+                                                        
binder.bind(Boolean.class)
+                                                                .annotatedWith(
+                                                                        
Names.named(
+                                                                               
 "expandEntityReferences"))
+                                                                
.toInstance(value),
                                                 "expandEntityReferences",
                                                 String::valueOf,
                                                 new 
MatrixTest(CompareTestCase.class)))))

Reply via email to