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 139f1814d Add helper methods to LabelBinding for common single-label 
cases
139f1814d is described below

commit 139f1814d2259a4e784e381531a10740653143a5
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 29 22:00:56 2026 +0100

    Add helper methods to LabelBinding for common single-label cases
    
    Add simpleString, simpleBoolean and simpleInt factory methods to
    LabelBinding that create a binding for a single label with a value
    computed from the fan-out value. Each method has a two-argument form
    (label name + function) and a one-argument identity form for when the
    fan-out value is already the label value.
    
    Migrate all existing call sites to use the new helpers and update the
    matrix-testsuite README accordingly.
---
 .../apache/axiom/util/sax/XMLReaderTestSuite.java  |   3 +-
 .../axiom/util/stax/dialect/DialectTestSuite.java  |  52 +++----
 .../om/impl/jaxp/StreamSourceToOMResultTest.java   |   6 +-
 .../axiom/blob/suite/WritableBlobTestSuite.java    |   2 +-
 .../serializer/SerializerConformanceTest.java      |   3 +-
 .../stax/pull/output/StAXPivotTransformerTest.java |   6 +-
 .../java/org/apache/axiom/ts/om/OMTestSuite.java   | 173 ++++++++++-----------
 .../org/apache/axiom/ts/omdom/OMDOMTestSuite.java  |   7 +-
 .../org/apache/axiom/ts/soap/SOAPTestSuite.java    |  76 ++++-----
 .../apache/axiom/ts/soapdom/SOAPDOMTestSuite.java  |   3 +-
 .../java/org/apache/axiom/ts/dom/DOMTestSuite.java |  15 +-
 testing/matrix-testsuite/README.md                 |  33 +++-
 .../apache/axiom/testutils/suite/LabelBinding.java |  28 ++++
 .../org/apache/axiom/ts/saaj/SAAJTestSuite.java    |   3 +-
 .../axiom/ts/springws/SpringWSTestSuite.java       |   6 +-
 .../org/apache/axiom/truth/xml/CompareTest.java    |  16 +-
 16 files changed, 220 insertions(+), 212 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 5bd7c5492..f062ddf3b 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
@@ -20,6 +20,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTestNode;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.FanOutNode;
@@ -39,7 +40,7 @@ public class XMLReaderTestSuite {
                                 
"http://xml.org/sax/features/namespace-prefixes";,
                                 
"http://xml.org/sax/features/external-general-entities";),
                         Binding.singleton(Key.get(String.class, 
Names.named("feature"))),
-                        (injector, value, labels) -> 
labels.addLabel("feature", value),
+                        LabelBinding.simpleString("feature"),
                         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 382661b55..396b893b0 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
@@ -26,6 +26,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.MatrixTestFilters;
 import org.apache.axiom.testutils.suite.MatrixTestNode;
@@ -52,15 +53,13 @@ public class DialectTestSuite {
                                 binder.bind(StAXImplementationAdapter.class)
                                         .toInstance(
                                                 
value.getAdapter(StAXImplementationAdapter.class)),
-                        (injector, value, labels) ->
-                                labels.addLabel("implementation", 
value.getName()),
+                        LabelBinding.simpleString("implementation", 
StAXImplementation::getName),
                         new ParentNode(
                                 new FanOutNode<>(
                                         
Multiton.getInstances(StreamType.class),
                                         
Binding.singleton(Key.get(StreamType.class)),
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "type", 
value.getType().getSimpleName()),
+                                        LabelBinding.simpleString(
+                                                "type", v -> 
v.getType().getSimpleName()),
                                         new MatrixTest(TestClose.class)),
                                 new 
MatrixTest(TestCreateXMLEventWriterWithNullEncoding.class),
                                 new 
MatrixTest(TestCreateXMLStreamReaderThreadSafety.class),
@@ -106,8 +105,7 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("xmlEncodings"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                
labels.addLabel("javaEncoding", value.getLeft()),
+                                        
LabelBinding.simpleString("javaEncoding", Pair::getLeft),
                                         new 
MatrixTest(TestGetEncodingFromDetection.class)),
                                 new MatrixTest(TestGetEncoding.class),
                                 new 
MatrixTest(TestGetEncodingWithCharacterStream.class),
@@ -134,11 +132,9 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("expectException"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "event",
-                                                        
XMLEventUtils.getEventTypeString(
-                                                                
value.getLeft())),
+                                        LabelBinding.simpleString(
+                                                "event",
+                                                v -> 
XMLEventUtils.getEventTypeString(v.getLeft())),
                                         new MatrixTest(
                                                 
TestGetLocalNameIllegalStateException.class)),
                                 new FanOutNode<>(
@@ -164,11 +160,9 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("expectException"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "event",
-                                                        
XMLEventUtils.getEventTypeString(
-                                                                
value.getLeft())),
+                                        LabelBinding.simpleString(
+                                                "event",
+                                                v -> 
XMLEventUtils.getEventTypeString(v.getLeft())),
                                         new ParentNode(
                                                 new MatrixTest(
                                                         
TestGetNameIllegalStateException.class),
@@ -207,11 +201,9 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("expected"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "event",
-                                                        
XMLEventUtils.getEventTypeString(
-                                                                
value.getLeft())),
+                                        LabelBinding.simpleString(
+                                                "event",
+                                                v -> 
XMLEventUtils.getEventTypeString(v.getLeft())),
                                         new MatrixTest(TestHasName.class)),
                                 new FanOutNode<>(
                                         ImmutableList.of(
@@ -242,11 +234,9 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("expected"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "event",
-                                                        
XMLEventUtils.getEventTypeString(
-                                                                
value.getLeft())),
+                                        LabelBinding.simpleString(
+                                                "event",
+                                                v -> 
XMLEventUtils.getEventTypeString(v.getLeft())),
                                         new MatrixTest(TestHasText.class)),
                                 new 
MatrixTest(TestIsCharactersOnCDATASection.class),
                                 new FanOutNode<>(
@@ -272,11 +262,9 @@ public class DialectTestSuite {
                                                     
.annotatedWith(Names.named("expected"))
                                                     
.toInstance(value.getRight());
                                         },
-                                        (injector, value, labels) ->
-                                                labels.addLabel(
-                                                        "event",
-                                                        
XMLEventUtils.getEventTypeString(
-                                                                
value.getLeft())),
+                                        LabelBinding.simpleString(
+                                                "event",
+                                                v -> 
XMLEventUtils.getEventTypeString(v.getLeft())),
                                         new 
MatrixTest(TestIsCharacters.class)),
                                 new MatrixTest(TestIsStandalone.class),
                                 new MatrixTest(TestNextAfterEndDocument.class),
diff --git 
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
 
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
index 2e65a3a81..25f55d25f 100644
--- 
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
+++ 
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
 import org.apache.axiom.testing.multiton.Multiton;
 import org.apache.axiom.testutils.suite.Binding;
 import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.MatrixTestFilters;
 import org.apache.axiom.ts.xml.XMLSample;
@@ -44,12 +45,11 @@ public class StreamSourceToOMResultTest {
                         ImmutableList.of("default", "dom"),
                         Binding.singleton(
                                 Key.get(String.class, 
Names.named("axiomImplementation"))),
-                        (injector, value, labels) -> 
labels.addLabel("axiomImplementation", value),
+                        LabelBinding.simpleString("axiomImplementation"),
                         new FanOutNode<>(
                                 Multiton.getInstances(XMLSample.class),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("file", 
value.getName()),
+                                LabelBinding.simpleString("file", 
XMLSample::getName),
                                 new 
MatrixTest(StreamSourceToOMResultTestCase.class)))
                 .toDynamicNodes(excludes);
     }
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 03a4c4b54..13723481e 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
@@ -72,7 +72,7 @@ public class WritableBlobTestSuite {
                         new FanOutNode<>(
                                 sizes,
                                 Binding.singleton(Key.get(Integer.class, 
Names.named("size"))),
-                                (injector, v, labels) -> 
labels.addLabel("size", v),
+                                LabelBinding.simpleInt("size"),
                                 new ParentNode(
                                         new MatrixTest(TestMarkReset.class),
                                         new MatrixTest(TestReadFrom.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 8ca3716ba..12b86c58a 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
@@ -23,6 +23,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.ts.xml.XMLSample;
 import org.junit.jupiter.api.DynamicNode;
@@ -36,7 +37,7 @@ public class SerializerConformanceTest {
         return new FanOutNode<>(
                         Multiton.getInstances(XMLSample.class),
                         Binding.singleton(Key.get(XMLSample.class)),
-                        (injector, value, labels) -> labels.addLabel("sample", 
value.getName()),
+                        LabelBinding.simpleString("sample", 
XMLSample::getName),
                         new MatrixTest(SerializerConformanceTestCase.class))
                 .toDynamicNodes();
     }
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 48b989964..eaaa13f57 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
@@ -23,6 +23,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.ts.jaxp.xslt.XSLTImplementation;
 import org.apache.axiom.ts.xml.XMLSample;
@@ -40,14 +41,13 @@ public class StAXPivotTransformerTest {
                                 .filter(XSLTImplementation::supportsStAXSource)
                                 .collect(ImmutableList.toImmutableList()),
                         Binding.singleton(Key.get(XSLTImplementation.class)),
-                        (injector, value, labels) -> labels.addLabel("xslt", 
value.getName()),
+                        LabelBinding.simpleString("xslt", 
XSLTImplementation::getName),
                         new FanOutNode<>(
                                 Multiton.getInstances(XMLSample.class).stream()
                                         .filter(s -> !s.hasDTD())
                                         
.collect(ImmutableList.toImmutableList()),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("sample", 
value.getName()),
+                                LabelBinding.simpleString("sample", 
XMLSample::getName),
                                 new 
MatrixTest(StAXPivotTransformerTestCase.class)))
                 .toDynamicNodes();
     }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
index 19f4127db..9eeebd78c 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
@@ -129,7 +129,7 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 getInstances(StreamType.class),
                                 Binding.singleton(Key.get(StreamType.class)),
-                                (inj, v, l) -> l.addLabel("type", 
v.getType().getSimpleName()),
+                                LabelBinding.simpleString("type", v -> 
v.getType().getSimpleName()),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.om.builder.TestCloseWithStream.class)),
                         new 
MatrixTest(org.apache.axiom.ts.om.builder.TestCloseWithSystemId.class),
@@ -138,13 +138,14 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 getInstances(XMLSample.class),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (inj, v, l) -> l.addLabel("file", v.getName()),
+                                LabelBinding.simpleString("file", 
XMLSample::getName),
                                 new ParentNode(
                                         new FanOutNode<>(
                                                 
getInstances(DOMImplementation.class),
                                                 
Binding.singleton(Key.get(DOMImplementation.class)),
-                                                (inj, v, l) ->
-                                                        
l.addLabel("implementation", v.getName()),
+                                                LabelBinding.simpleString(
+                                                        "implementation",
+                                                        
DOMImplementation::getName),
                                                 new FanOutNode<>(
                                                         injector ->
                                                                 Arrays.asList(
@@ -159,10 +160,9 @@ public class OMTestSuite {
                                                                         
.toProvider(
                                                                                
 Providers.of(
                                                                                
         value)),
-                                                        (inj, v, l) ->
-                                                                l.addLabel(
-                                                                        
"expandEntityReferences",
-                                                                        
String.valueOf(v)),
+                                                        
LabelBinding.simpleString(
+                                                                
"expandEntityReferences",
+                                                                
String::valueOf),
                                                         new MatrixTest(
                                                                 
org.apache.axiom.ts.om.builder
                                                                         
.TestCreateOMBuilderFromDOM
@@ -170,8 +170,9 @@ public class OMTestSuite {
                                         new FanOutNode<>(
                                                 
getInstances(SAXImplementation.class),
                                                 
Binding.singleton(Key.get(SAXImplementation.class)),
-                                                (inj, v, l) ->
-                                                        
l.addLabel("implementation", v.getName()),
+                                                LabelBinding.simpleString(
+                                                        "implementation",
+                                                        
SAXImplementation::getName),
                                                 new ConditionalNode(
                                                         injector -> {
                                                             XMLSample file =
@@ -200,10 +201,9 @@ public class OMTestSuite {
                                                                                
         Providers
                                                                                
                 .of(
                                                                                
                         value)),
-                                                                (inj, v, l) ->
-                                                                        
l.addLabel(
-                                                                               
 "expandEntityReferences",
-                                                                               
 String.valueOf(v)),
+                                                                
LabelBinding.simpleString(
+                                                                        
"expandEntityReferences",
+                                                                        
String::valueOf),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.om
                                                                                
 .builder
@@ -215,7 +215,7 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 ImmutableList.of("", "p"),
                                 Binding.singleton(Key.get(String.class, 
Names.named("prefix"))),
-                                (inj, v, l) -> l.addLabel("prefix", v),
+                                LabelBinding.simpleString("prefix"),
                                 new MatrixTest(
                                         org.apache.axiom.ts.om.builder
                                                 
.TestCreateOMBuilderFromDOMWithNSUnawareNamespaceDeclaration
@@ -231,12 +231,12 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 getInstances(XOPSample.class),
                                 Binding.singleton(Key.get(XOPSample.class)),
-                                (inj, v, l) -> l.addLabel("file", v.getName()),
+                                LabelBinding.simpleString("file", 
XOPSample::getName),
                                 new FanOutNode<>(
                                         ImmutableList.of(false, true),
                                         Binding.singleton(
                                                 Key.get(Boolean.class, 
Names.named("build"))),
-                                        (inj, v, l) -> l.addLabel("build", 
String.valueOf(v)),
+                                        LabelBinding.simpleBoolean("build"),
                                         new MatrixTest(
                                                 org.apache.axiom.ts.om.builder
                                                         
.TestCreateOMBuilderXOP.class))),
@@ -259,22 +259,21 @@ public class OMTestSuite {
                                 ImmutableList.of(false, true),
                                 Binding.singleton(
                                         Key.get(Boolean.class, 
Names.named("useDOMSource"))),
-                                (inj, v, l) -> l.addLabel("useDOMSource", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("useDOMSource"),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.om.builder.TestDetachWithDOM.class)),
                         new FanOutNode<>(
                                 getInstances(StreamType.class),
                                 Binding.singleton(Key.get(StreamType.class)),
-                                (inj, v, l) ->
-                                        l.addLabel("streamType", 
v.getType().getSimpleName()),
+                                LabelBinding.simpleString(
+                                        "streamType", v -> 
v.getType().getSimpleName()),
                                 new FanOutNode<>(
                                         ImmutableList.of(false, true),
                                         Binding.singleton(
                                                 Key.get(
                                                         Boolean.class,
                                                         
Names.named("useStreamSource"))),
-                                        (inj, v, l) ->
-                                                l.addLabel("useStreamSource", 
String.valueOf(v)),
+                                        
LabelBinding.simpleBoolean("useStreamSource"),
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.om.builder.TestDetachWithStream
                                                         .class))),
@@ -292,8 +291,8 @@ public class OMTestSuite {
                                                         .annotatedWith(
                                                                 
Names.named("discardDocument"))
                                                         
.toProvider(Providers.of(value)),
-                                        (inj, v, l) ->
-                                                l.addLabel("discardDocument", 
String.valueOf(v)),
+                                        LabelBinding.simpleString(
+                                                "discardDocument", 
String::valueOf),
                                         new MatrixTest(
                                                 org.apache.axiom.ts.om.builder
                                                         
.TestGetDocumentElement.class))),
@@ -364,7 +363,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         getInstances(XMLSample.class),
                         Binding.singleton(Key.get(XMLSample.class)),
-                        (inj, v, l) -> l.addLabel("file", v.getName()),
+                        LabelBinding.simpleString("file", XMLSample::getName),
                         new FanOutNode<>(
                                 getInstances(OMContainerExtractor.class),
                                 
Binding.singleton(Key.get(OMContainerExtractor.class)),
@@ -391,10 +390,7 @@ public class OMTestSuite {
                                                                                
 Boolean.class,
                                                                                
 Names.named(
                                                                                
         "cache"))),
-                                                                (inj, v, l) ->
-                                                                        
l.addLabel(
-                                                                               
 "cache",
-                                                                               
 String.valueOf(v)),
+                                                                
LabelBinding.simpleBoolean("cache"),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.om
                                                                                
 .container
@@ -451,7 +447,7 @@ public class OMTestSuite {
                                         ImmutableList.of(false, true),
                                         Binding.singleton(
                                                 Key.get(Boolean.class, 
Names.named("includeSelf"))),
-                                        (inj, v, l) -> 
l.addLabel("includeSelf", String.valueOf(v)),
+                                        
LabelBinding.simpleBoolean("includeSelf"),
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.om.container.TestGetDescendants
                                                         .class)))));
@@ -467,13 +463,14 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         getInstances(XMLSample.class),
                         Binding.singleton(Key.get(XMLSample.class)),
-                        (inj, v, l) -> l.addLabel("file", v.getName()),
+                        LabelBinding.simpleString("file", XMLSample::getName),
                         new 
MatrixTest(org.apache.axiom.ts.om.document.TestClone.class)),
                 new FanOutNode<>(
                         org.apache.axiom.ts.om.document.TestDigest.PARAMS,
                         Binding.singleton(
                                 
Key.get(org.apache.axiom.ts.om.document.TestDigest.Params.class)),
-                        (inj, v, l) -> l.addLabel("file", v.file()),
+                        LabelBinding.simpleString(
+                                "file", 
org.apache.axiom.ts.om.document.TestDigest.Params::file),
                         new 
MatrixTest(org.apache.axiom.ts.om.document.TestDigest.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.document.TestGetOMDocumentElement.class),
                 new MatrixTest(
@@ -483,7 +480,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         getInstances(XSLTImplementation.class),
                         Binding.singleton(Key.get(XSLTImplementation.class)),
-                        (inj, v, l) -> l.addLabel("xslt", v.getName()),
+                        LabelBinding.simpleString("xslt", 
XSLTImplementation::getName),
                         new ConditionalNode(
                                 injector ->
                                         
injector.getInstance(XSLTImplementation.class)
@@ -491,18 +488,18 @@ public class OMTestSuite {
                                 new FanOutNode<>(
                                         getInstances(XMLSample.class),
                                         
Binding.singleton(Key.get(XMLSample.class)),
-                                        (inj, v, l) -> l.addLabel("file", 
v.getName()),
+                                        LabelBinding.simpleString("file", 
XMLSample::getName),
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.om.document.TestGetSAXResult
                                                         .class)))),
                 new FanOutNode<>(
                         getInstances(SAXImplementation.class),
                         Binding.singleton(Key.get(SAXImplementation.class)),
-                        (inj, v, l) -> l.addLabel("parser", v.getName()),
+                        LabelBinding.simpleString("parser", 
SAXImplementation::getName),
                         new FanOutNode<>(
                                 getInstances(XMLSample.class),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (inj, v, l) -> l.addLabel("file", v.getName()),
+                                LabelBinding.simpleString("file", 
XMLSample::getName),
                                 new ConditionalNode(
                                         injector -> {
                                             XMLSample file = 
injector.getInstance(XMLSample.class);
@@ -521,15 +518,14 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("complete"))),
-                        (inj, v, l) -> l.addLabel("complete", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("complete"),
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(
                                         Key.get(
                                                 Boolean.class,
                                                 
Names.named("accessDocumentElement"))),
-                                (inj, v, l) ->
-                                        l.addLabel("accessDocumentElement", 
String.valueOf(v)),
+                                
LabelBinding.simpleBoolean("accessDocumentElement"),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.om.document.TestRemoveChildren.class))),
                 new 
MatrixTest(org.apache.axiom.ts.om.document.TestSerializeAndConsume.class),
@@ -551,7 +547,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.document.sr.TestCharacterDataReaderFromParser
                                         .class)),
@@ -560,7 +556,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("build"))),
-                        (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("build"),
                         new FanOutNode<>(
                                 injector ->
                                         injector.getInstance(
@@ -570,7 +566,7 @@ public class OMTestSuite {
                                                 ? ImmutableList.of(true)
                                                 : ImmutableList.of(true, 
false),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.om.document.sr.TestDTDReaderFromParser
                                                 .class))));
@@ -587,7 +583,7 @@ public class OMTestSuite {
                         ImmutableList.of(false, true),
                         Binding.singleton(
                                 Key.get(Boolean.class, 
Names.named("defaultNamespaceInScope"))),
-                        (inj, v, l) -> l.addLabel("defaultNamespaceInScope", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("defaultNamespaceInScope"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.TestAddAttributeGeneratedPrefix
                                         .class)),
@@ -639,7 +635,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("build"))),
-                        (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("build"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.TestAddChildWithSameParent.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.element.TestBuildDiscarded.class),
@@ -655,7 +651,7 @@ public class OMTestSuite {
                                         .filter(f -> !f.hasEntityReferences())
                                         
.collect(ImmutableList.toImmutableList()),
                         Binding.singleton(Key.get(XMLSample.class)),
-                        (inj, v, l) -> l.addLabel("file", v.getName()),
+                        LabelBinding.simpleString("file", XMLSample::getName),
                         new 
MatrixTest(org.apache.axiom.ts.om.element.TestCloneOMElement2.class)),
                 new MatrixTest(
                         
org.apache.axiom.ts.om.element.TestCloneOMElementNamespaceRepairing.class),
@@ -734,7 +730,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("includeSelf"))),
-                        (inj, v, l) -> l.addLabel("includeSelf", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("includeSelf"),
                         new 
MatrixTest(org.apache.axiom.ts.om.element.TestGetDescendants.class)),
                 new MatrixTest(
                         
org.apache.axiom.ts.om.element.TestGetDescendantsRemoveSubtree.class),
@@ -749,13 +745,13 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("detached"))),
-                        (inj, v, l) -> l.addLabel("detached", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("detached"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.TestGetNamespaceContext.class)),
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("useNull"))),
-                        (inj, v, l) -> l.addLabel("useNull", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("useNull"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.TestGetNamespaceNormalized.class)),
                 new MatrixTest(
@@ -787,11 +783,11 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         getInstances(XSLTImplementation.class),
                         Binding.singleton(Key.get(XSLTImplementation.class)),
-                        (inj, v, l) -> l.addLabel("xslt", v.getName()),
+                        LabelBinding.simpleString("xslt", 
XSLTImplementation::getName),
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new ParentNode(
                                         new MatrixTest(
                                                 org.apache.axiom.ts.om.element
@@ -816,7 +812,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("compact"))),
-                        (inj, v, l) -> l.addLabel("compact", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("compact"),
                         new 
MatrixTest(org.apache.axiom.ts.om.element.TestGetTextBinary.class)),
                 new MatrixTest(
                         
org.apache.axiom.ts.om.element.TestGetTextWithCDATASectionChild.class),
@@ -831,18 +827,18 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 org.apache.axiom.ts.om.element
                                         
.TestGetXMLStreamReaderOnNonRootElement.class)),
                 new FanOutNode<>(
                         ImmutableList.of(0, 1, 2, 3, 4),
                         Binding.singleton(Key.get(Integer.class, 
Names.named("build"))),
-                        (inj, v, l) -> l.addLabel("build", v),
+                        LabelBinding.simpleInt("build"),
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new MatrixTest(
                                         org.apache.axiom.ts.om.element
                                                 
.TestGetXMLStreamReaderOnNonRootElementPartiallyBuilt
@@ -852,7 +848,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 org.apache.axiom.ts.om.element
                                         
.TestGetXMLStreamReaderWithIncompleteDescendant.class)),
@@ -869,11 +865,11 @@ public class OMTestSuite {
                         ImmutableList.of(false, true),
                         Binding.singleton(
                                 Key.get(Boolean.class, 
Names.named("preserveNamespaceContext"))),
-                        (inj, v, l) -> l.addLabel("preserveNamespaceContext", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("preserveNamespaceContext"),
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new MatrixTest(
                                         org.apache.axiom.ts.om.element
                                                 
.TestGetXMLStreamReaderWithPreserveNamespaceContext
@@ -893,7 +889,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("complete"))),
-                        (inj, v, l) -> l.addLabel("complete", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("complete"),
                         new 
MatrixTest(org.apache.axiom.ts.om.element.TestRemoveChildren.class)),
                 new MatrixTest(
                         
org.apache.axiom.ts.om.element.TestResolveQNameWithDefaultNamespace.class),
@@ -962,7 +958,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.sr.TestCloseAndContinueBuilding
                                         .class)),
@@ -973,13 +969,13 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.om.element.sr.TestCommentEvent.class))),
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.sr.TestGetBlobFromElement.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.element.sr.TestGetElementText.class),
@@ -990,7 +986,7 @@ public class OMTestSuite {
                         new FanOutNode<>(
                                 ImmutableList.of(true, false),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                                (inj, v, l) -> l.addLabel("cache", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("cache"),
                                 new FanOutNode<>(
                                         injector ->
                                                 injector.getInstance(
@@ -1001,14 +997,14 @@ public class OMTestSuite {
                                                         : ImmutableList.of(0, 
1, 2, 3, 4, 5),
                                         Binding.singleton(
                                                 Key.get(Integer.class, 
Names.named("build"))),
-                                        (inj, v, l) -> l.addLabel("build", v),
+                                        LabelBinding.simpleInt("build"),
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.om.element.sr
                                                         
.TestGetElementTextFromParser.class)))),
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.element.sr.TestGetNamespaceContext.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.element.sr.TestNextTag.class));
@@ -1058,7 +1054,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("nullContentId"))),
-                        (inj, v, l) -> l.addLabel("nullContentId", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("nullContentId"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.factory.TestCreateOMTextFromBlobProvider
                                         .class)),
@@ -1072,7 +1068,7 @@ public class OMTestSuite {
         return new FanOutNode<>(
                 ImmutableList.copyOf(CreateOMElementVariant.INSTANCES),
                 Binding.singleton(Key.get(CreateOMElementVariant.class)),
-                (inj, v, l) -> l.addLabel("variant", v.getName()),
+                LabelBinding.simpleString("variant", 
CreateOMElementVariant::getName),
                 new ParentNode(
                         new FanOutNode<>(
                                 injector -> {
@@ -1083,7 +1079,8 @@ public class OMTestSuite {
                                             
.collect(ImmutableList.toImmutableList());
                                 },
                                 
Binding.singleton(Key.get(CreateOMElementParentSupplier.class)),
-                                (inj, v, l) -> l.addLabel("parent", 
v.getName()),
+                                LabelBinding.simpleString(
+                                        "parent", 
CreateOMElementParentSupplier::getName),
                                 new ParentNode(
                                         new ConditionalNode(
                                                 injector ->
@@ -1159,17 +1156,17 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("document"))),
-                        (inj, v, l) -> l.addLabel("document", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("document"),
                         new FanOutNode<>(
                                 ImmutableList.of(false, true),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("build"))),
-                                (inj, v, l) -> l.addLabel("build", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("build"),
                                 new 
MatrixTest(org.apache.axiom.ts.om.node.TestDetach.class))),
                 new 
MatrixTest(org.apache.axiom.ts.om.node.TestDetachAfterBuilderClose.class),
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("build"))),
-                        (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("build"),
                         new 
MatrixTest(org.apache.axiom.ts.om.node.TestDetachFirstChild.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.node.TestGetNextOMSiblingAfterDiscard.class),
                 new 
MatrixTest(org.apache.axiom.ts.om.node.TestInsertSiblingAfter.class),
@@ -1226,7 +1223,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("copyOMDataSources"))),
-                        (inj, v, l) -> l.addLabel("copyOMDataSources", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("copyOMDataSources"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive
                                         .class)),
@@ -1267,7 +1264,7 @@ public class OMTestSuite {
                                 ImmutableList.of(false, true),
                                 Binding.singleton(
                                         Key.get(Boolean.class, 
Names.named("serializeParent"))),
-                                (inj, v, l) -> l.addLabel("serializeParent", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("serializeParent"),
                                 new MatrixTest(
                                         org.apache.axiom.ts.om.sourcedelement
                                                 
.TestGetSAXSourceWithPushOMDataSource.class))),
@@ -1314,7 +1311,7 @@ public class OMTestSuite {
                                 ImmutableList.of(false, true),
                                 Binding.singleton(
                                         Key.get(Boolean.class, 
Names.named("serializeParent"))),
-                                (inj, v, l) -> l.addLabel("serializeParent", 
String.valueOf(v)),
+                                LabelBinding.simpleBoolean("serializeParent"),
                                 new MatrixTest(
                                         org.apache.axiom.ts.om.sourcedelement
                                                 
.TestSerializeOMDataSourceWritingToOutputStream
@@ -1326,7 +1323,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("expand"))),
-                        (inj, v, l) -> l.addLabel("expand", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("expand"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.sourcedelement.TestSetLocalName.class)),
                 new MatrixTest(
@@ -1340,7 +1337,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(0, 1, 2, 3, 4, 5, 6),
                         Binding.singleton(Key.get(Integer.class, 
Names.named("events"))),
-                        (inj, v, l) -> l.addLabel("events", v),
+                        LabelBinding.simpleInt("events"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.om.sourcedelement.sr.TestCloseWithoutCaching
                                         .class)));
@@ -1363,7 +1360,7 @@ public class OMTestSuite {
                                         ImmutableList.of(1, 2),
                                         Binding.singleton(
                                                 Key.get(Integer.class, 
Names.named("count"))),
-                                        (inj, v, l) -> l.addLabel("count", v),
+                                        LabelBinding.simpleInt("count"),
                                         new FanOutNode<>(
                                                 injector ->
                                                         injector.getInstance(
@@ -1376,8 +1373,7 @@ public class OMTestSuite {
                                                         Key.get(
                                                                 Boolean.class,
                                                                 
Names.named("push"))),
-                                                (inj, v, l) ->
-                                                        l.addLabel("push", 
String.valueOf(v)),
+                                                
LabelBinding.simpleBoolean("push"),
                                                 new FanOutNode<>(
                                                         
ImmutableList.of(false, true),
                                                         Binding.singleton(
@@ -1385,10 +1381,7 @@ public class OMTestSuite {
                                                                         
Boolean.class,
                                                                         
Names.named(
                                                                                
 "destructive"))),
-                                                        (inj, v, l) ->
-                                                                l.addLabel(
-                                                                        
"destructive",
-                                                                        
String.valueOf(v)),
+                                                        
LabelBinding.simpleBoolean("destructive"),
                                                         new FanOutNode<>(
                                                                 injector ->
                                                                         
injector.getInstance(
@@ -1405,10 +1398,8 @@ public class OMTestSuite {
                                                                                
 Boolean.class,
                                                                                
 Names.named(
                                                                                
         "serializeParent"))),
-                                                                (inj, v, l) ->
-                                                                        
l.addLabel(
-                                                                               
 "serializeParent",
-                                                                               
 String.valueOf(v)),
+                                                                
LabelBinding.simpleBoolean(
+                                                                        
"serializeParent"),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.om
                                                                                
 .sourcedelement
@@ -1424,7 +1415,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("fetch"))),
-                        (inj, v, l) -> l.addLabel("fetch", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("fetch"),
                         new 
MatrixTest(org.apache.axiom.ts.om.text.TestCloneBinary.class)),
                 new MatrixTest(org.apache.axiom.ts.om.text.TestDigest.class),
                 new 
MatrixTest(org.apache.axiom.ts.om.text.TestGetNamespace.class),
@@ -1437,7 +1428,7 @@ public class OMTestSuite {
                                 (int) OMNode.SPACE_NODE,
                                 (int) OMNode.CDATA_SECTION_NODE),
                         Binding.singleton(Key.get(Integer.class, 
Names.named("type"))),
-                        (inj, v, l) -> l.addLabel("type", 
XMLEventUtils.getEventTypeString(v)),
+                        LabelBinding.simpleString("type", 
XMLEventUtils::getEventTypeString),
                         new 
MatrixTest(org.apache.axiom.ts.om.text.TestSerialize.class)));
     }
 
@@ -1446,12 +1437,12 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("base64"))),
-                        (inj, v, l) -> l.addLabel("base64", String.valueOf(v)),
+                        LabelBinding.simpleBoolean("base64"),
                         new 
MatrixTest(org.apache.axiom.ts.om.xop.TestSerialize.class)),
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("optimize"))),
-                        (inj, v, l) -> l.addLabel("optimize", 
String.valueOf(v)),
+                        LabelBinding.simpleBoolean("optimize"),
                         new 
MatrixTest(org.apache.axiom.ts.om.xop.TestSetOptimize.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.xop.TestSetOptimizePlainOMText.class),
                 new 
MatrixTest(org.apache.axiom.ts.om.xop.XOPRoundtripTest.class));
@@ -1467,7 +1458,7 @@ public class OMTestSuite {
                 new FanOutNode<>(
                         xpathMethods,
                         Binding.singleton(Key.get(String.class, 
Names.named("methodName"))),
-                        (inj, v, l) -> l.addLabel("test", v.substring(4)),
+                        LabelBinding.simpleString("test", v -> v.substring(4)),
                         new 
MatrixTest(org.apache.axiom.ts.om.xpath.TestAXIOMXPath.class)),
                 new 
MatrixTest(org.apache.axiom.ts.om.xpath.TestAddNamespaces.class),
                 new 
MatrixTest(org.apache.axiom.ts.om.xpath.TestAddNamespaces2.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 978090ceb..43ee228bd 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
@@ -22,6 +22,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTestNode;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.ParentNode;
@@ -50,8 +51,7 @@ public class OMDOMTestSuite {
                         new FanOutNode<>(
                                 ImmutableList.of(true, false),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("build"))),
-                                (injector, value, labels) ->
-                                        labels.addLabel("build", 
String.valueOf(value)),
+                                LabelBinding.simpleBoolean("build"),
                                 new ParentNode(
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.omdom.document
@@ -67,8 +67,7 @@ public class OMDOMTestSuite {
                         new FanOutNode<>(
                                 Multiton.getInstances(XMLSample.class),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("file", 
value.getName()),
+                                LabelBinding.simpleString("file", 
XMLSample::getName),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.omdom.document.TestImportNode.class)),
                         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 9c6c057c5..42a16bd26 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
@@ -121,22 +121,20 @@ public class SOAPTestSuite {
                         new FanOutNode<>(
                                 Multiton.getInstances(SOAPSpec.class),
                                 Binding.singleton(Key.get(SOAPSpec.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("spec", 
value.getName()),
+                                LabelBinding.simpleString("spec", 
SOAPSpec::getName),
                                 specTests()),
                         // Bad SOAP files (spec-independent)
                         new FanOutNode<>(
                                 badSOAPFiles,
                                 Binding.singleton(Key.get(String.class, 
Names.named("file"))),
-                                (injector, value, labels) -> 
labels.addLabel("file", value),
+                                LabelBinding.simpleString("file"),
                                 new MatrixTest(
                                         
org.apache.axiom.ts.soap.builder.BadInputTest.class)),
                         // Good SOAP files (spec-independent)
                         new FanOutNode<>(
                                 goodSOAPFiles,
                                 Binding.singleton(Key.get(SOAPSample.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("message", 
value.getName()),
+                                LabelBinding.simpleString("message", 
SOAPSample::getName),
                                 new ParentNode(
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.soap.builder.MessageTest.class),
@@ -196,8 +194,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("buildPayload"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("buildPayload", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("buildPayload"),
                         new MatrixTest(
                                 org.apache.axiom.ts.soap.body
                                         
.TestGetFirstElementLocalNameWithParser2.class)),
@@ -255,8 +252,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(false, true),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("header"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("header", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("header"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.soap.envelope.TestAddElementAfterBody.class)),
                 new MatrixTest(
@@ -312,8 +308,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(true, false),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("withParent"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("withParent", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("withParent"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.soap.factory.TestCreateSOAPFaultWithException
                                         .class)),
@@ -457,8 +452,7 @@ public class SOAPTestSuite {
                                 binder.bind(Boolean.class)
                                         
.annotatedWith(Names.named("processed"))
                                         .toProvider(Providers.of(value)),
-                        (injector, value, labels) ->
-                                labels.addLabel("processed", 
String.valueOf(value)),
+                        LabelBinding.simpleString("processed", 
String::valueOf),
                         new 
MatrixTest(org.apache.axiom.ts.soap.headerblock.TestClone.class)),
                 new MatrixTest(
                         org.apache.axiom.ts.soap.headerblock
@@ -479,8 +473,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(true, false),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("preserveModel"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("preserveModel", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("preserveModel"),
                         new ParentNode(
                                 new 
MatrixTest(org.apache.axiom.ts.soap.message.TestClone.class),
                                 new MatrixTest(
@@ -499,8 +492,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(true, false),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("createDocument"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("createDocument", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("createDocument"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope
                                         .class)));
@@ -525,10 +517,10 @@ public class SOAPTestSuite {
                                                         .getChildTypes()),
                                 Binding.singleton(
                                         Key.get(SOAPElementType.class, 
Names.named("childType"))),
-                                (injector, value, labels) ->
-                                        labels.addLabel(
-                                                "childType",
-                                                
value.getAdapter(SOAPElementTypeAdapter.class)
+                                LabelBinding.simpleString(
+                                        "childType",
+                                        v ->
+                                                
v.getAdapter(SOAPElementTypeAdapter.class)
                                                         .getType()
                                                         .getSimpleName()),
                                 new ParentNode(
@@ -561,12 +553,9 @@ public class SOAPTestSuite {
                             .collect(ImmutableList.toImmutableList());
                 },
                 Binding.singleton(Key.get(SOAPElementType.class, 
Names.named("type"))),
-                (injector, value, labels) ->
-                        labels.addLabel(
-                                "type",
-                                value.getAdapter(SOAPElementTypeAdapter.class)
-                                        .getType()
-                                        .getSimpleName()),
+                LabelBinding.simpleString(
+                        "type",
+                        v -> 
v.getAdapter(SOAPElementTypeAdapter.class).getType().getSimpleName()),
                 new FanOutNode<>(
                         injector -> {
                             SOAPSpec spec = 
injector.getInstance(SOAPSpec.class);
@@ -578,10 +567,10 @@ public class SOAPTestSuite {
                                     .collect(ImmutableList.toImmutableList());
                         },
                         Binding.singleton(Key.get(SOAPElementType.class, 
Names.named("childType"))),
-                        (injector, value, labels) ->
-                                labels.addLabel(
-                                        "childType",
-                                        
value.getAdapter(SOAPElementTypeAdapter.class)
+                        LabelBinding.simpleString(
+                                "childType",
+                                v ->
+                                        
v.getAdapter(SOAPElementTypeAdapter.class)
                                                 .getType()
                                                 .getSimpleName()),
                         new ParentNode(
@@ -678,11 +667,10 @@ public class SOAPTestSuite {
                                                                         
Key.get(
                                                                                
 BooleanLiteral
                                                                                
         .class)),
-                                                                (injector, 
value, labels) ->
-                                                                        
labels.addLabel(
-                                                                               
 "literal",
-                                                                               
 value
-                                                                               
         .getLexicalRepresentation()),
+                                                                
LabelBinding.simpleString(
+                                                                        
"literal",
+                                                                        
BooleanLiteral
+                                                                               
 ::getLexicalRepresentation),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.soap
                                                                                
 .headerblock
@@ -704,9 +692,7 @@ public class SOAPTestSuite {
                                                                                
 String.class,
                                                                                
 Names.named(
                                                                                
         "value"))),
-                                                                (injector, 
value, labels) ->
-                                                                        
labels.addLabel(
-                                                                               
 "value", value),
+                                                                
LabelBinding.simpleString("value"),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.soap
                                                                                
 .headerblock
@@ -719,11 +705,7 @@ public class SOAPTestSuite {
                                                                                
 Boolean.class,
                                                                                
 Names.named(
                                                                                
         "value"))),
-                                                                (injector, 
value, labels) ->
-                                                                        
labels.addLabel(
-                                                                               
 "value",
-                                                                               
 String.valueOf(
-                                                                               
         value)),
+                                                                
LabelBinding.simpleBoolean("value"),
                                                                 new MatrixTest(
                                                                         
org.apache.axiom.ts.soap
                                                                                
 .headerblock
@@ -767,8 +749,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(true, false),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("buildSOAPPart"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("buildSOAPPart", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("buildSOAPPart"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.soap12.envelope.TestMTOMForwardStreaming
                                         .class)),
@@ -823,8 +804,7 @@ public class SOAPTestSuite {
                 new FanOutNode<>(
                         ImmutableList.of(true, false),
                         Binding.singleton(Key.get(Boolean.class, 
Names.named("cache"))),
-                        (injector, value, labels) ->
-                                labels.addLabel("cache", 
String.valueOf(value)),
+                        LabelBinding.simpleBoolean("cache"),
                         new MatrixTest(
                                 
org.apache.axiom.ts.soap12.mtom.TestGetXMLStreamReaderMTOMEncoded
                                         .class)));
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 27ae3df32..0cea29d74 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
@@ -24,6 +24,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTestNode;
 import org.apache.axiom.testutils.suite.MatrixTest;
 import org.apache.axiom.testutils.suite.ParentNode;
@@ -38,7 +39,7 @@ public class SOAPDOMTestSuite {
                 new FanOutNode<>(
                         Multiton.getInstances(SOAPSpec.class),
                         Binding.singleton(Key.get(SOAPSpec.class)),
-                        (injector, value, labels) -> labels.addLabel("spec", 
value.getName()),
+                        LabelBinding.simpleString("spec", SOAPSpec::getName),
                         new ParentNode(
                                 new MatrixTest(
                                         org.apache.axiom.ts.soapdom.header
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 9769eb673..6ffa45ff1 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
@@ -308,7 +308,7 @@ public class DOMTestSuite {
                         new FanOutNode<>(
                                 ImmutableList.of(true, false),
                                 Binding.singleton(Key.get(Boolean.class, 
Names.named("deep"))),
-                                (injector, value, labels) -> 
labels.addLabel("deep", value),
+                                LabelBinding.simpleBoolean("deep"),
                                 new ParentNode(
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.dom.attr.TestCloneNode.class),
@@ -319,8 +319,7 @@ public class DOMTestSuite {
                                 ImmutableList.of(true, false),
                                 Binding.singleton(
                                         Key.get(Boolean.class, 
Names.named("newChildHasSiblings"))),
-                                (injector, value, labels) ->
-                                        labels.addLabel("newChildHasSiblings", 
value),
+                                
LabelBinding.simpleBoolean("newChildHasSiblings"),
                                 new ParentNode(
                                         new MatrixTest(
                                                 org.apache.axiom.ts.dom.element
@@ -359,8 +358,7 @@ public class DOMTestSuite {
                         new FanOutNode<>(
                                 Multiton.getInstances(XMLSample.class),
                                 Binding.singleton(Key.get(XMLSample.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("file", 
value.getName()),
+                                LabelBinding.simpleString("file", 
XMLSample::getName),
                                 new ParentNode(
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.dom.document.TestCloneNode
@@ -368,16 +366,15 @@ public class DOMTestSuite {
                                         new FanOutNode<>(
                                                 
Multiton.getInstances(DOMImplementation.class),
                                                 
Binding.singleton(Key.get(DOMImplementation.class)),
-                                                (injector, value, labels) ->
-                                                        
labels.addLabel("from", value.getName()),
+                                                LabelBinding.simpleString(
+                                                        "from", 
DOMImplementation::getName),
                                                 new MatrixTest(
                                                         
org.apache.axiom.ts.dom.element
                                                                 
.TestImportNode.class)))),
                         new FanOutNode<>(
                                 
Multiton.getInstances(XSLTImplementation.class),
                                 
Binding.singleton(Key.get(XSLTImplementation.class)),
-                                (injector, value, labels) ->
-                                        labels.addLabel("xslt", 
value.getName()),
+                                LabelBinding.simpleString("xslt", 
XSLTImplementation::getName),
                                 new ParentNode(
                                         new MatrixTest(
                                                 
org.apache.axiom.ts.dom.document
diff --git a/testing/matrix-testsuite/README.md 
b/testing/matrix-testsuite/README.md
index 65263f3a6..2a254f2ad 100644
--- a/testing/matrix-testsuite/README.md
+++ b/testing/matrix-testsuite/README.md
@@ -106,12 +106,37 @@ Holds exactly one child node. When multiple children are 
needed, wrap them in a
 The `Binding<T>` lambda receives a `Binder` and the current value, and
 configures the Guice binding. For the common case of binding the value as a
 singleton, use `Binding.singleton(Key.get(MyType.class))`. The
-`LabelBinding<? super T>` lambda registers labels for display and
-filtering (e.g.
-`(labels, value) -> labels.addLabel("name", value.getName())`).
+`LabelBinding<? super T>` registers labels for display and filtering.
+For the common case of a single label derived from the value, use one of the
+`LabelBinding.simpleString` / `simpleBoolean` / `simpleInt` factory methods
+(e.g. `LabelBinding.simpleString("name", MyType::getName)`).
 For types implementing `Dimension`, use the predefined
 `LabelBinding.DIMENSION` constant.
 
+### `LabelBinding<T>`
+
+Functional interface that registers labels for a fan-out value. Defines a 
single
+method `void addLabels(Injector injector, T value, LabelTarget labels)`. 
Provides
+several static factory methods for the common case of a single label:
+
+| Method | Value type | Example |
+|---|---|---|
+| `simpleString(label, fn)` | `String` | `LabelBinding.simpleString("name", 
MyType::getName)` |
+| `simpleBoolean(label, fn)` | `boolean` | `LabelBinding.simpleBoolean("flag", 
MyType::isEnabled)` |
+| `simpleInt(label, fn)` | `int` | `LabelBinding.simpleInt("size", 
MyType::getSize)` |
+
+Each of these also has an identity overload (no function argument) for use when
+the fan-out value is already the label value:
+
+| Method | Fan-out type | Example |
+|---|---|---|
+| `simpleString(label)` | `String` | `LabelBinding.simpleString("feature")` |
+| `simpleBoolean(label)` | `Boolean` | `LabelBinding.simpleBoolean("cache")` |
+| `simpleInt(label)` | `Integer` | `LabelBinding.simpleInt("count")` |
+
+For types implementing `Dimension` (which contribute multiple labels), use
+the predefined `LabelBinding.DIMENSION` constant.
+
 ### `MatrixTest`
 
 Leaf node. Instantiates a `junit.framework.TestCase` subclass via Guice and
@@ -184,7 +209,7 @@ public class MyTestSuite {
         FanOutNode<SomeDimension> dimensions = new FanOutNode<>(
                 Multiton.getInstances(SomeDimension.class),
                 Binding.singleton(Key.get(SomeDimension.class)),
-                (labels, value) -> labels.addLabel("dimension", 
value.getName()),
+                LabelBinding.simpleString("dimension", SomeDimension::getName),
                 new ParentNode(
                         new MatrixTest(TestSomeBehavior.class),
                         new MatrixTest(TestOtherBehavior.class)));
diff --git 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
index 507c61df4..ffa2f6e19 100644
--- 
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
+++ 
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
@@ -18,10 +18,38 @@
  */
 package org.apache.axiom.testutils.suite;
 
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.function.ToIntFunction;
+
 import com.google.inject.Injector;
 
 public interface LabelBinding<T> {
     LabelBinding<Dimension> DIMENSION = (injector, value, labels) -> 
value.addLabels(labels);
 
     void addLabels(Injector injector, T value, LabelTarget labels);
+
+    static <T> LabelBinding<T> simpleString(String label, Function<T, String> 
fn) {
+        return (injector, value, labels) -> labels.addLabel(label, 
fn.apply(value));
+    }
+
+    static <T> LabelBinding<T> simpleBoolean(String label, Predicate<T> fn) {
+        return (injector, value, labels) -> labels.addLabel(label, 
fn.test(value));
+    }
+
+    static <T> LabelBinding<T> simpleInt(String label, ToIntFunction<T> fn) {
+        return (injector, value, labels) -> labels.addLabel(label, 
fn.applyAsInt(value));
+    }
+
+    static LabelBinding<String> simpleString(String label) {
+        return simpleString(label, v -> v);
+    }
+
+    static LabelBinding<Boolean> simpleBoolean(String label) {
+        return simpleBoolean(label, v -> v);
+    }
+
+    static LabelBinding<Integer> simpleInt(String label) {
+        return simpleInt(label, v -> v);
+    }
 }
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 10f03c0c4..66452780f 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
@@ -24,6 +24,7 @@ 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.LabelBinding;
 import org.apache.axiom.testutils.suite.MatrixTestNode;
 import org.apache.axiom.testutils.suite.ParentNode;
 import org.apache.axiom.testutils.suite.FanOutNode;
@@ -46,7 +47,7 @@ public class SAAJTestSuite {
                 new FanOutNode<>(
                         Multiton.getInstances(SOAPSpec.class),
                         Binding.singleton(Key.get(SOAPSpec.class)),
-                        (injector, value, labels) -> labels.addLabel("spec", 
value.getName()),
+                        LabelBinding.simpleString("spec", SOAPSpec::getName),
                         new ParentNode(
                                 new 
MatrixTest(TestAddChildElementReification.class),
                                 new 
MatrixTest(TestExamineMustUnderstandHeaderElements.class),
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 c07f9f296..c946d6985 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
@@ -58,10 +58,8 @@ public class SpringWSTestSuite {
         return new FanOutNode<>(
                 Multiton.getInstances(SOAPSpec.class),
                 Binding.singleton(Key.get(SOAPSpec.class)),
-                (injector, value, labels) ->
-                        labels.addLabel(
-                                "soapVersion",
-                                
value.getAdapter(SOAPSpecAdapter.class).getSoapVersion()),
+                LabelBinding.simpleString(
+                        "soapVersion", v -> 
v.getAdapter(SOAPSpecAdapter.class).getSoapVersion()),
                 new ParentNode(
                         new InjectorNode(
                                 binder ->
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 2d91645dd..24f8a2fc9 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
@@ -24,6 +24,7 @@ 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.testutils.suite.LabelBinding;
 import org.apache.axiom.ts.xml.XMLSample;
 import org.junit.jupiter.api.DynamicNode;
 import org.junit.jupiter.api.TestFactory;
@@ -38,21 +39,20 @@ public class CompareTest {
         return new FanOutNode<>(
                         Multiton.getInstances(XMLSample.class),
                         Binding.singleton(Key.get(XMLSample.class, 
Names.named("sample"))),
-                        (injector, value, labels) -> labels.addLabel("sample", 
value.getName()),
+                        LabelBinding.simpleString("sample", 
XMLSample::getName),
                         new FanOutNode<>(
                                 Multiton.getInstances(XMLObjectFactory.class),
                                 Binding.singleton(
                                         Key.get(XMLObjectFactory.class, 
Names.named("left"))),
-                                (injector, value, labels) ->
-                                        labels.addLabel("left", 
value.getName()),
+                                LabelBinding.simpleString("left", 
XMLObjectFactory::getName),
                                 new FanOutNode<>(
                                         
Multiton.getInstances(XMLObjectFactory.class),
                                         Binding.singleton(
                                                 Key.get(
                                                         XMLObjectFactory.class,
                                                         Names.named("right"))),
-                                        (injector, value, labels) ->
-                                                labels.addLabel("right", 
value.getName()),
+                                        LabelBinding.simpleString(
+                                                "right", 
XMLObjectFactory::getName),
                                         new FanOutNode<>(
                                                 ImmutableList.of(true, false),
                                                 Binding.singleton(
@@ -60,10 +60,8 @@ public class CompareTest {
                                                                 Boolean.class,
                                                                 Names.named(
                                                                         
"expandEntityReferences"))),
-                                                (injector, value, labels) ->
-                                                        labels.addLabel(
-                                                                
"expandEntityReferences",
-                                                                
String.valueOf(value)),
+                                                LabelBinding.simpleBoolean(
+                                                        
"expandEntityReferences"),
                                                 new 
MatrixTest(CompareTestCase.class)))))
                 .toDynamicNodes();
     }


Reply via email to