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 7da843953 Add Binding.singleton() helper and use it across the codebase
7da843953 is described below
commit 7da843953ae1ea25d9440204aa78e6e60ea63edc
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 22 12:58:23 2026 +0000
Add Binding.singleton() helper and use it across the codebase
Add a static helper method Binding.singleton(Key<T>) that creates a Binding
which calls binder.bind(key).toInstance(value). This covers the most common
binding pattern used in FanOutNode declarations and eliminates repetitive
lambda boilerplate.
Replace all eligible (binder, value) -> binder.bind(...).toInstance(value)
lambdas with Binding.singleton(Key.get(...)) calls across 14 test suite
files.
Update README.md and migration.md to document the new helper and use it in
code examples.
---
.../apache/axiom/util/sax/XMLReaderTestSuite.java | 7 +-
.../axiom/util/stax/dialect/DialectTestSuite.java | 5 +-
.../om/impl/jaxp/StreamSourceToOMResultTest.java | 17 +--
.../axiom/blob/suite/WritableBlobTestSuite.java | 11 +-
.../serializer/SerializerConformanceTest.java | 7 +-
.../stax/pull/output/StAXPivotTransformerTest.java | 8 +-
.../apache/axiom/ts/om/cross/CrossOMTestSuite.java | 9 +-
.../org/apache/axiom/ts/omdom/OMDOMTestSuite.java | 9 +-
.../org/apache/axiom/ts/soap/SOAPTestSuite.java | 135 +++++++--------------
.../apache/axiom/ts/soapdom/SOAPDOMTestSuite.java | 5 +-
.../java/org/apache/axiom/ts/dom/DOMTestSuite.java | 26 ++--
testing/matrix-testsuite/README.md | 18 ++-
testing/matrix-testsuite/migration.md | 12 +-
.../org/apache/axiom/testutils/suite/Binding.java | 5 +
.../org/apache/axiom/ts/saaj/SAAJTestSuite.java | 5 +-
.../axiom/ts/springws/SpringWSTestSuite.java | 7 +-
.../org/apache/axiom/truth/xml/CompareTest.java | 32 +++--
17 files changed, 147 insertions(+), 171 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 4347d13bb..2fd6dd5ec 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
@@ -18,12 +18,14 @@
*/
package org.apache.axiom.util.sax;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.xml.sax.XMLReader;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.name.Names;
public class XMLReaderTestSuite {
@@ -35,10 +37,7 @@ public class XMLReaderTestSuite {
"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),
+ Binding.singleton(Key.get(String.class,
Names.named("feature"))),
(injector, value, params) ->
params.addTestParameter("feature", value),
new MatrixTest(TestGetSetFeature.class)));
}
diff --git
a/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
b/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
index 251df3388..e03d3e3a6 100644
---
a/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
+++
b/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
@@ -24,6 +24,7 @@ import java.util.stream.Stream;
import javax.xml.stream.XMLStreamConstants;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.MatrixTestFilters;
@@ -37,6 +38,7 @@ import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.google.inject.name.Names;
@@ -55,8 +57,7 @@ public class DialectTestSuite {
new ParentNode(
new FanOutNode<>(
Multiton.getInstances(StreamType.class),
- (binder, value) ->
-
binder.bind(StreamType.class).toInstance(value),
+
Binding.singleton(Key.get(StreamType.class)),
(injector, value, params) ->
params.addTestParameter(
"type",
value.getType().getSimpleName()),
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 171beb797..86cfe5e56 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
@@ -21,15 +21,18 @@ package org.apache.axiom.om.impl.jaxp;
import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
+import org.apache.axiom.testutils.suite.FanOutNode;
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.FanOutNode;
import org.apache.axiom.ts.xml.XMLSample;
import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
+import com.google.inject.name.Names;
+
public class StreamSourceToOMResultTest {
@TestFactory
public Stream<DynamicNode> tests() {
@@ -39,15 +42,13 @@ public class StreamSourceToOMResultTest {
.build();
return new FanOutNode<>(
ImmutableList.of("default", "dom"),
- (binder, value) ->
- binder.bind(String.class)
-
.annotatedWith(Names.named("axiomImplementation"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(String.class,
Names.named("axiomImplementation"))),
(injector, value, params) ->
params.addTestParameter("axiomImplementation",
value),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("file",
value.getName()),
new
MatrixTest(StreamSourceToOMResultTestCase.class)))
diff --git
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
index a6b99fc2f..34e037a18 100644
---
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
+++
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
@@ -19,6 +19,7 @@
package org.apache.axiom.blob.suite;
import org.apache.axiom.blob.WritableBlobFactory;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.ConditionalNode;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
@@ -27,6 +28,7 @@ import org.apache.axiom.testutils.suite.ParameterBinding;
import org.apache.axiom.testutils.suite.ParentNode;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.google.inject.name.Names;
@@ -52,7 +54,7 @@ public class WritableBlobTestSuite {
new MatrixTest(TestWriteAfterCommit.class),
new FanOutNode<>(
ImmutableList.of(State.NEW, State.UNCOMMITTED,
State.RELEASED),
- (binder, v) ->
binder.bind(State.class).toInstance(v),
+ Binding.singleton(Key.get(State.class)),
ParameterBinding.DIMENSION,
new ParentNode(
new
MatrixTest(TestGetInputStreamIllegalState.class),
@@ -61,17 +63,14 @@ public class WritableBlobTestSuite {
new FanOutNode<>(
ImmutableList.of(
State.UNCOMMITTED, State.COMMITTED,
State.RELEASED),
- (binder, v) ->
binder.bind(State.class).toInstance(v),
+ Binding.singleton(Key.get(State.class)),
ParameterBinding.DIMENSION,
new ParentNode(
new
MatrixTest(TestGetOutputStreamIllegalState.class),
new
MatrixTest(TestReadFromIllegalState.class))),
new FanOutNode<>(
sizes,
- (binder, v) ->
- binder.bindConstant()
-
.annotatedWith(Names.named("size"))
- .to(v),
+ Binding.singleton(Key.get(Integer.class,
Names.named("size"))),
(injector, v, params) ->
params.addTestParameter("size", v),
new ParentNode(
new MatrixTest(TestMarkReset.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 860a030bf..cef549a69 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
@@ -21,18 +21,21 @@ package org.apache.axiom.core.stream.serializer;
import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
-import org.apache.axiom.testutils.suite.MatrixTest;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.ts.xml.XMLSample;
import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
+import com.google.inject.Key;
+
public class SerializerConformanceTest {
@TestFactory
public Stream<DynamicNode> tests() {
return new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("sample",
value.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 98fc965f2..70264765d 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
@@ -21,14 +21,16 @@ package org.apache.axiom.core.stream.stax.pull.output;
import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
-import org.apache.axiom.testutils.suite.MatrixTest;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.ts.jaxp.xslt.XSLTImplementation;
import org.apache.axiom.ts.xml.XMLSample;
import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
public class StAXPivotTransformerTest {
@TestFactory
@@ -37,14 +39,14 @@ public class StAXPivotTransformerTest {
Multiton.getInstances(XSLTImplementation.class).stream()
.filter(XSLTImplementation::supportsStAXSource)
.collect(ImmutableList.toImmutableList()),
- (binder, value) ->
binder.bind(XSLTImplementation.class).toInstance(value),
+ Binding.singleton(Key.get(XSLTImplementation.class)),
(injector, value, params) ->
params.addTestParameter("xslt",
value.getName()),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class).stream()
.filter(s -> !s.hasDTD())
.collect(ImmutableList.toImmutableList()),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("sample",
value.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 e4e0da5f6..de646cf05 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
@@ -20,6 +20,7 @@ package org.apache.axiom.ts.om.cross;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.ParentNode;
@@ -27,6 +28,7 @@ import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.ts.xml.XMLSample;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.name.Names;
public class CrossOMTestSuite {
@@ -44,16 +46,13 @@ public class CrossOMTestSuite {
new MatrixTest(TestAddChild.class),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("file",
value.getName()),
new
MatrixTest(TestImportInformationItem.class)),
new FanOutNode<>(
ImmutableList.of(false, true),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("before"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("before"))),
(injector, value, params) ->
params.addTestParameter("before",
String.valueOf(value)),
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 03622da2a..b4c7a0508 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
@@ -20,6 +20,7 @@ package org.apache.axiom.ts.omdom;
import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.ParentNode;
@@ -27,6 +28,7 @@ import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.ts.xml.XMLSample;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.name.Names;
/**
@@ -46,10 +48,7 @@ public class OMDOMTestSuite {
.class),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("build"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
(injector, value, params) ->
params.addTestParameter("build",
String.valueOf(value)),
new ParentNode(
@@ -66,7 +65,7 @@ public class OMDOMTestSuite {
new
MatrixTest(org.apache.axiom.ts.omdom.document.TestGetOMFactory2.class),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("file",
value.getName()),
new MatrixTest(
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
index e35f0599b..6d0929462 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
@@ -29,6 +29,7 @@ import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPConstants;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.ConditionalNode;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
@@ -118,24 +119,21 @@ public class SOAPTestSuite {
// Per-spec tests (SOAP11 + SOAP12)
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
- (binder, value) ->
binder.bind(SOAPSpec.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSpec.class)),
(injector, value, params) ->
params.addTestParameter("spec",
value.getName()),
specTests()),
// Bad SOAP files (spec-independent)
new FanOutNode<>(
badSOAPFiles,
- (binder, value) ->
- binder.bind(String.class)
-
.annotatedWith(Names.named("file"))
- .toInstance(value),
+ Binding.singleton(Key.get(String.class,
Names.named("file"))),
(injector, value, params) ->
params.addTestParameter("file", value),
new MatrixTest(
org.apache.axiom.ts.soap.builder.BadInputTest.class)),
// Good SOAP files (spec-independent)
new FanOutNode<>(
goodSOAPFiles,
- (binder, value) ->
binder.bind(SOAPSample.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSample.class)),
(injector, value, params) ->
params.addTestParameter("message",
value.getName()),
new ParentNode(
@@ -148,17 +146,14 @@ public class SOAPTestSuite {
org.apache.axiom.ts.soap.envelope.TestClone.class),
new FanOutNode<>(
getInstances(ExpansionStrategy.class),
- (binder, value) ->
-
binder.bind(ExpansionStrategy.class)
-
.toInstance(value),
+
Binding.singleton(Key.get(ExpansionStrategy.class)),
ParameterBinding.DIMENSION,
new FanOutNode<>(
getInstances(SerializationStrategy.class),
- (binder, value) ->
- binder.bind(
-
SerializationStrategy
-
.class)
-
.toInstance(value),
+ Binding.singleton(
+ Key.get(
+
SerializationStrategy
+
.class)),
ParameterBinding.DIMENSION,
new ParentNode(
new MatrixTest(
@@ -188,7 +183,7 @@ public class SOAPTestSuite {
new
MatrixTest(org.apache.axiom.ts.soap.body.TestGetFaultWithParser.class),
new FanOutNode<>(
generalQNames,
- (binder, value) ->
binder.bind(QName.class).toInstance(value),
+ Binding.singleton(Key.get(QName.class)),
QNAME_PARAMS,
new ParentNode(
new MatrixTest(
@@ -199,10 +194,7 @@ public class SOAPTestSuite {
.TestGetFirstElementNSWithParser.class))),
new FanOutNode<>(
ImmutableList.of(false, true),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("buildPayload"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("buildPayload"))),
(injector, value, params) ->
params.addTestParameter("buildPayload",
String.valueOf(value)),
new MatrixTest(
@@ -213,7 +205,7 @@ public class SOAPTestSuite {
.TestGetFirstElementLocalNameWithParserNoLookahead.class),
new FanOutNode<>(
noFaultQNames,
- (binder, value) ->
binder.bind(QName.class).toInstance(value),
+ Binding.singleton(Key.get(QName.class)),
QNAME_PARAMS,
new ParentNode(
new MatrixTest(
@@ -236,8 +228,7 @@ public class SOAPTestSuite {
new
MatrixTest(org.apache.axiom.ts.soap.body.TestHasFaultWithParser.class),
new FanOutNode<>(
getInstances(SerializationStrategy.class),
- (binder, value) ->
-
binder.bind(SerializationStrategy.class).toInstance(value),
+
Binding.singleton(Key.get(SerializationStrategy.class)),
ParameterBinding.DIMENSION,
new MatrixTest(
org.apache.axiom.ts.soap.body.TestSerializeWithXSITypeAttribute
@@ -262,10 +253,7 @@ public class SOAPTestSuite {
// ── envelope package ──
new FanOutNode<>(
ImmutableList.of(false, true),
- (binder, value) ->
- binder.bind(Boolean.class)
- .annotatedWith(Names.named("header"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("header"))),
(injector, value, params) ->
params.addTestParameter("header",
String.valueOf(value)),
new MatrixTest(
@@ -294,7 +282,7 @@ public class SOAPTestSuite {
.class),
new FanOutNode<>(
generalQNames,
- (binder, value) ->
binder.bind(QName.class).toInstance(value),
+ Binding.singleton(Key.get(QName.class)),
QNAME_PARAMS,
new ParentNode(
new MatrixTest(
@@ -322,10 +310,7 @@ public class SOAPTestSuite {
factoryElementTypeTests(),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("withParent"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("withParent"))),
(injector, value, params) ->
params.addTestParameter("withParent",
String.valueOf(value)),
new MatrixTest(
@@ -342,8 +327,7 @@ public class SOAPTestSuite {
// ── fault package ──
new FanOutNode<>(
getInstances(SerializationStrategy.class),
- (binder, value) ->
-
binder.bind(SerializationStrategy.class).toInstance(value),
+
Binding.singleton(Key.get(SerializationStrategy.class)),
ParameterBinding.DIMENSION,
new FanOutNode<>(
ImmutableList.of(
@@ -356,10 +340,8 @@ public class SOAPTestSuite {
SOAPFaultChild.DETAIL,
SOAPFaultChild.REASON
}),
- (binder, value) ->
- binder.bind(SOAPFaultChild[].class)
-
.annotatedWith(Names.named("inputOrder"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(SOAPFaultChild[].class,
Names.named("inputOrder"))),
(injector, value, params) -> {
StringBuilder buffer = new StringBuilder();
for (int i = 0; i < value.length; i++) {
@@ -469,10 +451,7 @@ public class SOAPTestSuite {
new
MatrixTest(org.apache.axiom.ts.soap.headerblock.TestBlobOMDataSource.class),
new FanOutNode<>(
ImmutableList.<Boolean>of(Boolean.TRUE, Boolean.FALSE),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("processed"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("processed"))),
(injector, value, params) ->
params.addTestParameter("processed",
String.valueOf(value)),
new
MatrixTest(org.apache.axiom.ts.soap.headerblock.TestClone.class)),
@@ -495,10 +474,7 @@ public class SOAPTestSuite {
// ── message package ──
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("preserveModel"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("preserveModel"))),
(injector, value, params) ->
params.addTestParameter("preserveModel",
String.valueOf(value)),
new ParentNode(
@@ -518,10 +494,7 @@ public class SOAPTestSuite {
// ── xpath package ──
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("createDocument"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("createDocument"))),
(injector, value, params) ->
params.addTestParameter("createDocument",
String.valueOf(value)),
new MatrixTest(
@@ -532,10 +505,7 @@ public class SOAPTestSuite {
private static MatrixTestNode factoryElementTypeTests() {
return new FanOutNode<>(
ImmutableList.copyOf(SOAPElementType.getAll()),
- (binder, value) ->
- binder.bind(SOAPElementType.class)
- .annotatedWith(Names.named("type"))
- .toInstance(value),
+ Binding.singleton(Key.get(SOAPElementType.class,
Names.named("type"))),
(injector, value, params) ->
value.getAdapter(SOAPElementTypeAdapter.class).addTestParameters(params),
new ParentNode(
@@ -549,10 +519,8 @@ public class SOAPTestSuite {
SOAPElementType.class,
Names.named("type")))
.getChildTypes()),
- (binder, value) ->
- binder.bind(SOAPElementType.class)
-
.annotatedWith(Names.named("childType"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(SOAPElementType.class,
Names.named("childType"))),
(injector, value, params) ->
params.addTestParameter(
"childType",
@@ -588,10 +556,7 @@ public class SOAPTestSuite {
.filter(type -> type.getQName(spec) != null)
.collect(ImmutableList.toImmutableList());
},
- (binder, value) ->
- binder.bind(SOAPElementType.class)
- .annotatedWith(Names.named("type"))
- .toInstance(value),
+ Binding.singleton(Key.get(SOAPElementType.class,
Names.named("type"))),
(injector, value, params) ->
params.addTestParameter(
"type",
@@ -608,10 +573,7 @@ public class SOAPTestSuite {
.filter(childType ->
childType.getQName(spec) != null)
.collect(ImmutableList.toImmutableList());
},
- (binder, value) ->
- binder.bind(SOAPElementType.class)
-
.annotatedWith(Names.named("childType"))
- .toInstance(value),
+ Binding.singleton(Key.get(SOAPElementType.class,
Names.named("childType"))),
(injector, value, params) ->
params.addTestParameter(
"childType",
@@ -676,7 +638,7 @@ public class SOAPTestSuite {
private static MatrixTestNode headerBlockAttributeTests() {
return new FanOutNode<>(
getInstances(HeaderBlockAttribute.class),
- (binder, value) ->
binder.bind(HeaderBlockAttribute.class).toInstance(value),
+ Binding.singleton(Key.get(HeaderBlockAttribute.class)),
(injector, value, params) ->
params.addTestParameter(
"attribute",
value.getName(injector.getInstance(SOAPSpec.class))),
@@ -708,11 +670,10 @@ public class SOAPTestSuite {
SOAPSpec
.class)
.getBooleanLiterals()),
- (binder,
value) ->
-
binder.bind(
-
BooleanLiteral
-
.class)
-
.toInstance(value),
+
Binding.singleton(
+
Key.get(
+
BooleanLiteral
+
.class)),
(injector,
value, params) ->
params.addTestParameter(
"literal",
@@ -734,12 +695,11 @@ public class SOAPTestSuite {
SOAPSpec
.class)
.getInvalidBooleanLiterals()),
- (binder,
value) ->
-
binder.bind(String.class)
-
.annotatedWith(
-
Names.named(
-
"value"))
-
.toInstance(value),
+
Binding.singleton(
+
Key.get(
+
String.class,
+
Names.named(
+
"value"))),
(injector,
value, params) ->
params.addTestParameter(
"value", value),
@@ -750,12 +710,11 @@ public class SOAPTestSuite {
.class)),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder,
value) ->
-
binder.bind(Boolean.class)
-
.annotatedWith(
-
Names.named(
-
"value"))
-
.toInstance(value),
+
Binding.singleton(
+
Key.get(
+
Boolean.class,
+
Names.named(
+
"value"))),
(injector,
value, params) ->
params.addTestParameter(
"value",
@@ -816,10 +775,7 @@ public class SOAPTestSuite {
new
MatrixTest(org.apache.axiom.ts.soap12.envelope.TestBuildWithAttachments.class),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("buildSOAPPart"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("buildSOAPPart"))),
(injector, value, params) ->
params.addTestParameter("buildSOAPPart",
String.valueOf(value)),
new MatrixTest(
@@ -875,10 +831,7 @@ public class SOAPTestSuite {
new
MatrixTest(org.apache.axiom.ts.soap12.mtom.TestBuilderDetach.class),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
- .annotatedWith(Names.named("cache"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
(injector, value, params) ->
params.addTestParameter("cache",
String.valueOf(value)),
new MatrixTest(
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
index 1fc6e7c3b..01c9af7c0 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
@@ -21,19 +21,22 @@ package org.apache.axiom.ts.soapdom;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.ParentNode;
import org.apache.axiom.ts.soap.SOAPSpec;
+import com.google.inject.Key;
+
public class SOAPDOMTestSuite {
public static InjectorNode create(DOMMetaFactory metaFactory) {
return new InjectorNode(
binder ->
binder.bind(OMMetaFactory.class).toInstance(metaFactory),
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
- (binder, value) ->
binder.bind(SOAPSpec.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSpec.class)),
(injector, value, params) ->
params.addTestParameter("spec",
value.getName()),
new ParentNode(
diff --git
a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
index 81f450040..46a76988e 100644
---
a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
+++
b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
@@ -23,6 +23,7 @@ import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
@@ -33,6 +34,7 @@ import org.apache.axiom.ts.jaxp.xslt.XSLTImplementation;
import org.apache.axiom.ts.xml.XMLSample;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.name.Names;
public class DOMTestSuite {
@@ -304,10 +306,7 @@ public class DOMTestSuite {
org.apache.axiom.ts.dom.text.TestSplitTextWithoutParent.class),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("deep"))
- .toInstance(value),
+ Binding.singleton(Key.get(Boolean.class,
Names.named("deep"))),
(injector, value, params) ->
params.addTestParameter("deep", value),
new ParentNode(
new MatrixTest(
@@ -317,10 +316,8 @@ public class DOMTestSuite {
.TestCloneNodeWithAttributes.class))),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
- binder.bind(Boolean.class)
-
.annotatedWith(Names.named("newChildHasSiblings"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(Boolean.class,
Names.named("newChildHasSiblings"))),
(injector, value, params) ->
params.addTestParameter("newChildHasSiblings", value),
new ParentNode(
@@ -338,7 +335,7 @@ public class DOMTestSuite {
.TestReplaceChildSingle.class))),
new FanOutNode<>(
VALID_ATTR_QNAMES,
- (binder, value) ->
binder.bind(QName.class).toInstance(value),
+ Binding.singleton(Key.get(QName.class)),
QNAME_PARAMS,
new ParentNode(
new MatrixTest(
@@ -349,7 +346,7 @@ public class DOMTestSuite {
.class))),
new FanOutNode<>(
INVALID_ATTR_QNAMES,
- (binder, value) ->
binder.bind(QName.class).toInstance(value),
+ Binding.singleton(Key.get(QName.class)),
QNAME_PARAMS,
new ParentNode(
new MatrixTest(
@@ -360,7 +357,7 @@ public class DOMTestSuite {
.TestSetAttributeNSInvalid.class))),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(injector, value, params) ->
params.addTestParameter("file",
value.getName()),
new ParentNode(
@@ -369,9 +366,7 @@ public class DOMTestSuite {
.class),
new FanOutNode<>(
Multiton.getInstances(DOMImplementation.class),
- (binder, value) ->
-
binder.bind(DOMImplementation.class)
-
.toInstance(value),
+
Binding.singleton(Key.get(DOMImplementation.class)),
(injector, value, params) ->
params.addTestParameter(
"from",
value.getName()),
@@ -380,8 +375,7 @@ public class DOMTestSuite {
.TestImportNode.class)))),
new FanOutNode<>(
Multiton.getInstances(XSLTImplementation.class),
- (binder, value) ->
-
binder.bind(XSLTImplementation.class).toInstance(value),
+
Binding.singleton(Key.get(XSLTImplementation.class)),
(injector, value, params) ->
params.addTestParameter("xslt",
value.getName()),
new ParentNode(
diff --git a/testing/matrix-testsuite/README.md
b/testing/matrix-testsuite/README.md
index b7c5e84f9..88c3e0a32 100644
--- a/testing/matrix-testsuite/README.md
+++ b/testing/matrix-testsuite/README.md
@@ -66,6 +66,18 @@ that supports LDAP-style filter expressions optionally
scoped to a test class.
## Classes
+### `Binding<T>`
+
+Functional interface that configures a Guice binding for a value of type `T`.
+Defines a single method `void configure(Binder binder, T value)`. Typically
used
+as a lambda passed to `FanOutNode`.
+
+Provides a static helper `Binding.singleton(Key<T> key)` that returns a binding
+which calls `binder.bind(key).toInstance(value)`. This covers the most common
+case and avoids repetitive lambda boilerplate. Use `Key.get(MyType.class)` for
+simple types, or `Key.get(Boolean.class, Names.named("flag"))` when a `@Named`
+qualifier is needed.
+
### `MatrixTestNode`
Abstract base class for all nodes in the test tree. Defines a single method:
@@ -92,8 +104,8 @@ Holds exactly one child node. When multiple children are
needed, wrap them in a
`ParentNode`.
The `Binding<T>` lambda receives a `Binder` and the current value, and
-configures the Guice binding (e.g.
-`(binder, value) -> binder.bind(MyType.class).toInstance(value)`). The
+configures the Guice binding. For the common case of binding the value as a
+singleton, use `Binding.singleton(Key.get(MyType.class))`. The
`ParameterBinding<? super T>` lambda registers test parameters for display and
filtering (e.g.
`(params, value) -> params.addTestParameter("name", value.getName())`).
@@ -171,7 +183,7 @@ public class MyTestSuite {
FanOutNode<SomeDimension> dimensions = new FanOutNode<>(
Multiton.getInstances(SomeDimension.class),
- (binder, value) ->
binder.bind(SomeDimension.class).toInstance(value),
+ Binding.singleton(Key.get(SomeDimension.class)),
(params, value) -> params.addTestParameter("dimension",
value.getName()),
new ParentNode(
new MatrixTest(TestSomeBehavior.class),
diff --git a/testing/matrix-testsuite/migration.md
b/testing/matrix-testsuite/migration.md
index 598409c56..69727b70c 100644
--- a/testing/matrix-testsuite/migration.md
+++ b/testing/matrix-testsuite/migration.md
@@ -202,7 +202,7 @@ public class SAAJTestSuite {
.toInstance(new
SAAJImplementation(metaFactory)),
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
- (binder, value) ->
binder.bind(SOAPSpec.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSpec.class)),
(params, value) -> params.addTestParameter("spec",
value.getName()),
new ParentNode(
new
MatrixTest(TestAddChildElementReification.class),
@@ -381,11 +381,11 @@ public class StAXPivotTransformerTest {
public Stream<DynamicNode> tests() {
return new FanOutNode<>(
Multiton.getInstances(XSLTImplementation.class),
- (binder, value) ->
binder.bind(XSLTImplementation.class).toInstance(value),
+ Binding.singleton(Key.get(XSLTImplementation.class)),
(params, value) -> params.addTestParameter("xslt",
value.getName()),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
binder.bind(XMLSample.class).toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class)),
(params, value) ->
params.addTestParameter("sample",
value.getName()),
new
MatrixTest(StAXPivotTransformerTestCase.class)))
@@ -408,6 +408,12 @@ Guice can inject primitive types such as `boolean`
directly — there is no need
to use the boxed wrapper type. On the binding side, use the boxed type
(`Boolean.class`) since `boolean.class` is not a valid Guice key:
+```java
+Binding.singleton(Key.get(Boolean.class, Names.named("deep")))
+```
+
+Or, if you need to write the binding manually:
+
```java
binder.bind(Boolean.class)
.annotatedWith(Names.named("deep"))
diff --git
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/Binding.java
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/Binding.java
index deb65746b..01b4ba760 100644
---
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/Binding.java
+++
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/Binding.java
@@ -19,7 +19,12 @@
package org.apache.axiom.testutils.suite;
import com.google.inject.Binder;
+import com.google.inject.Key;
public interface Binding<T> {
void configure(Binder binder, T value);
+
+ static <T> Binding<T> singleton(Key<T> key) {
+ return (binder, value) -> binder.bind(key).toInstance(value);
+ }
}
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 fc799aec3..04934bcc5 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
@@ -21,6 +21,7 @@ package org.apache.axiom.ts.saaj;
import jakarta.xml.soap.SAAJMetaFactory;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.ParentNode;
@@ -33,6 +34,8 @@ import org.apache.axiom.ts.saaj.element.TestSetParentElement;
import org.apache.axiom.ts.saaj.header.TestExamineMustUnderstandHeaderElements;
import org.apache.axiom.ts.soap.SOAPSpec;
+import com.google.inject.Key;
+
public class SAAJTestSuite {
public static InjectorNode create(SAAJMetaFactory metaFactory) {
return new InjectorNode(
@@ -41,7 +44,7 @@ public class SAAJTestSuite {
.toInstance(new
SAAJImplementation(metaFactory)),
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
- (binder, value) ->
binder.bind(SOAPSpec.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSpec.class)),
(injector, value, params) ->
params.addTestParameter("spec",
value.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 ff2a18bc9..226d90fa6 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
@@ -19,6 +19,7 @@
package org.apache.axiom.ts.springws;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
import org.apache.axiom.testutils.suite.MatrixTest;
@@ -41,6 +42,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.Key;
public class SpringWSTestSuite {
public static MatrixTestNode create(
@@ -55,7 +57,7 @@ public class SpringWSTestSuite {
return new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
- (binder, value) ->
binder.bind(SOAPSpec.class).toInstance(value),
+ Binding.singleton(Key.get(SOAPSpec.class)),
(injector, value, params) ->
params.addTestParameter(
"soapVersion",
@@ -80,8 +82,7 @@ public class SpringWSTestSuite {
.class)))),
new FanOutNode<>(
configs.build(),
- (binder, value) ->
-
binder.bind(ScenarioConfig.class).toInstance(value),
+
Binding.singleton(Key.get(ScenarioConfig.class)),
ParameterBinding.DIMENSION,
new ParentNode(
new MatrixTest(ClientServerTest.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 04709529b..dc1142173 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
@@ -21,6 +21,7 @@ package org.apache.axiom.truth.xml;
import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.ts.xml.XMLSample;
@@ -28,6 +29,7 @@ import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
import com.google.common.collect.ImmutableList;
+import com.google.inject.Key;
import com.google.inject.name.Names;
public class CompareTest {
@@ -35,36 +37,30 @@ public class CompareTest {
public Stream<DynamicNode> tests() {
return new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
- (binder, value) ->
- binder.bind(XMLSample.class)
- .annotatedWith(Names.named("sample"))
- .toInstance(value),
+ Binding.singleton(Key.get(XMLSample.class,
Names.named("sample"))),
(injector, value, params) ->
params.addTestParameter("sample",
value.getName()),
new FanOutNode<>(
Multiton.getInstances(XMLObjectFactory.class),
- (binder, value) ->
- binder.bind(XMLObjectFactory.class)
-
.annotatedWith(Names.named("left"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(XMLObjectFactory.class,
Names.named("left"))),
(injector, value, params) ->
params.addTestParameter("left",
value.getName()),
new FanOutNode<>(
Multiton.getInstances(XMLObjectFactory.class),
- (binder, value) ->
-
binder.bind(XMLObjectFactory.class)
-
.annotatedWith(Names.named("right"))
- .toInstance(value),
+ Binding.singleton(
+ Key.get(
+ XMLObjectFactory.class,
+ Names.named("right"))),
(injector, value, params) ->
params.addTestParameter("right", value.getName()),
new FanOutNode<>(
ImmutableList.of(true, false),
- (binder, value) ->
-
binder.bind(Boolean.class)
- .annotatedWith(
-
Names.named(
-
"expandEntityReferences"))
-
.toInstance(value),
+ Binding.singleton(
+ Key.get(
+ Boolean.class,
+ Names.named(
+
"expandEntityReferences"))),
(injector, value, params) ->
params.addTestParameter(
"expandEntityReferences",