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",

Reply via email to