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)))))