summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/abi-spec.json3
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/ConfigInstancePayloadTest.java28
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/ConfigInstanceUtilTest.java48
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java43
-rw-r--r--configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java1
-rw-r--r--configgen/src/test/resources/allfeatures.reference92
-rw-r--r--container-core/abi-spec.json14
-rw-r--r--container-disc/abi-spec.json2
-rw-r--r--container-search/abi-spec.json3
-rw-r--r--documentapi/abi-spec.json3
-rw-r--r--linguistics-components/abi-spec.json1
-rw-r--r--messagebus/abi-spec.json3
12 files changed, 190 insertions, 51 deletions
diff --git a/application/abi-spec.json b/application/abi-spec.json
index 2138f12854c..21eacb152c0 100644
--- a/application/abi-spec.json
+++ b/application/abi-spec.json
@@ -93,7 +93,9 @@
"public void <init>()",
"public void <init>(com.yahoo.application.MockApplicationConfig)",
"public com.yahoo.application.MockApplicationConfig$Builder mystruct(com.yahoo.application.MockApplicationConfig$Mystruct$Builder)",
+ "public com.yahoo.application.MockApplicationConfig$Builder mystruct(java.util.function.Consumer)",
"public com.yahoo.application.MockApplicationConfig$Builder mystructlist(com.yahoo.application.MockApplicationConfig$Mystructlist$Builder)",
+ "public com.yahoo.application.MockApplicationConfig$Builder mystructlist(java.util.function.Consumer)",
"public com.yahoo.application.MockApplicationConfig$Builder mystructlist(java.util.List)",
"public com.yahoo.application.MockApplicationConfig$Builder mylist(java.lang.String)",
"public com.yahoo.application.MockApplicationConfig$Builder mylist(java.util.Collection)",
@@ -101,6 +103,7 @@
"public com.yahoo.application.MockApplicationConfig$Builder mymap(java.util.Map)",
"public com.yahoo.application.MockApplicationConfig$Builder mymapstruct(java.lang.String, com.yahoo.application.MockApplicationConfig$Mymapstruct$Builder)",
"public com.yahoo.application.MockApplicationConfig$Builder mymapstruct(java.util.Map)",
+ "public com.yahoo.application.MockApplicationConfig$Builder mymapstruct(java.lang.String, java.util.function.Consumer)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigInstancePayloadTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigInstancePayloadTest.java
index 983113ab2bf..3dc0f7188e3 100644
--- a/config/src/test/java/com/yahoo/config/subscription/ConfigInstancePayloadTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/ConfigInstancePayloadTest.java
@@ -71,13 +71,10 @@ public class ConfigInstancePayloadTest {
intArr(310).intArr(311)).
rootStruct(new RootStruct.Builder().
- inner0(new RootStruct.Inner0.Builder().
- index(11)).
+ inner0(b -> b.index(11)).
inner1(new RootStruct.Inner1.Builder().
index(12)).
- innerArr(new RootStruct.InnerArr.Builder().
- boolVal(true).
- stringVal("deep")).
+ innerArr(b -> b.boolVal(true).stringVal("deep")).
innerArr(new RootStruct.InnerArr.Builder().
boolVal(false).
stringVal("blue a=\"escaped\""))).
@@ -89,32 +86,29 @@ public class ConfigInstancePayloadTest {
enumval(Myarray.Enumval.INNER).
refval(":parent:").
fileVal("file0").
- anotherarray(new Myarray.Anotherarray.Builder().
- foo(7)).
+ anotherarray(b -> b.foo(7)).
myStruct(new Myarray.MyStruct.Builder().
a(1).
b(2))).
- myarray(new Myarray.Builder().
+ myarray(b -> b.
intval(5).
enumval(Myarray.Enumval.INNER).
refval(":parent:").
fileVal("file1").
- anotherarray(new Myarray.Anotherarray.Builder().
- foo(1).
- foo(2)).
- myStruct(new Myarray.MyStruct.Builder().
- a(-1).
- b(-2))).
+ anotherarray(bb -> bb.foo(1).foo(2)).
+ myStruct(bb -> bb.
+ a(-1).
+ b(-2))).
myStructMap("one", new MyStructMap.Builder().
myInt(1).
myString("bull").
myIntDef(2).
myStringDef("bear").
- anotherMap("anotherOne", new MyStructMap.AnotherMap.Builder().
- anInt(3).
- anIntDef(4)));
+ anotherMap("anotherOne", b -> b.
+ anInt(3).
+ anIntDef(4)));
}
@Test
diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigInstanceUtilTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigInstanceUtilTest.java
index dabfbffef98..aaf6782a6ff 100644
--- a/config/src/test/java/com/yahoo/config/subscription/ConfigInstanceUtilTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/ConfigInstanceUtilTest.java
@@ -32,15 +32,12 @@ public class ConfigInstanceUtilTest {
.int_val(-1)
.intarr(0)
.doublearr(0.0)
- .basicStruct(new FunctionTestConfig.BasicStruct.Builder()
- .bar(-1)
- .intArr(0))
- .myarray(new FunctionTestConfig.Myarray.Builder()
+ .basicStruct(b -> b.bar(-1).intArr(0))
+ .myarray(b -> b
.intval(-1)
.refval("")
.fileVal("")
- .myStruct(new FunctionTestConfig.Myarray.MyStruct.Builder()
- .a(0)
+ .myStruct(bb -> bb.a(0)
));
ConfigInstanceUtil.setValues(destination, source);
@@ -105,47 +102,34 @@ public class ConfigInstanceUtilTest {
refarr(Arrays.asList(":parent:", ":parent", "parent:")). // test collection based setter
fileArr("bin").
- basicStruct(new FunctionTestConfig.BasicStruct.Builder().
+ basicStruct(b -> b.
foo("basicFoo").
bar(3).
intArr(310).intArr(311)).
- rootStruct(new FunctionTestConfig.RootStruct.Builder().
- inner0(new FunctionTestConfig.RootStruct.Inner0.Builder().
- index(11)).
- inner1(new FunctionTestConfig.RootStruct.Inner1.Builder().
- index(12)).
- innerArr(new FunctionTestConfig.RootStruct.InnerArr.Builder().
- boolVal(true).
- stringVal("deep")).
- innerArr(new FunctionTestConfig.RootStruct.InnerArr.Builder().
- boolVal(false).
- stringVal("blue a=\"escaped\""))).
-
- myarray(new FunctionTestConfig.Myarray.Builder().
+ rootStruct(b -> b.
+ inner0(bb -> bb.index(11)).
+ inner1(bb -> bb.index(12)).
+ innerArr(bb -> bb.boolVal(true).stringVal("deep")).
+ innerArr(bb -> bb.boolVal(false).stringVal("blue a=\"escaped\""))).
+
+ myarray(b -> b.
intval(-5).
stringval("baah").
stringval("yikes").
enumval(Myarray.Enumval.INNER).
refval(":parent:").
fileVal("file0").
- anotherarray(new FunctionTestConfig.Myarray.Anotherarray.Builder().
- foo(7)).
- myStruct(new FunctionTestConfig.Myarray.MyStruct.Builder().
- a(1).
- b(2))).
+ anotherarray(bb -> bb.foo(7)).
+ myStruct(bb -> bb.a(1).b(2))).
- myarray(new FunctionTestConfig.Myarray.Builder().
+ myarray(b -> b.
intval(5).
enumval(Myarray.Enumval.INNER).
refval(":parent:").
fileVal("file1").
- anotherarray(new FunctionTestConfig.Myarray.Anotherarray.Builder().
- foo(1).
- foo(2)).
- myStruct(new FunctionTestConfig.Myarray.MyStruct.Builder().
- a(-1).
- b(-2)));
+ anotherarray(bb -> bb.foo(1).foo(2)).
+ myStruct(bb -> bb.a(-1).b(-2)));
}
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
index 548bd14ccb3..937d04b35bd 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
@@ -142,7 +142,19 @@ public class BuilderGenerator {
return "public Builder " + n.getName() + "(" + builderType(n) + " " + INTERNAL_PREFIX + "builder) {\n" + //
" " + n.getName() + " = " + INTERNAL_PREFIX + "builder;\n" + //
" return this;\n" + //
+ "}\n" + //
+ "/**\n" + //
+ " * Make a new builder and run the supplied function on it before adding it to the list\n" + //
+ " * @param __func lambda that modifies the given builder\n" + //
+ " * @return this builder\n" + //
+ " */\n" + //
+ "public Builder " + n.getName() + "(java.util.function.Consumer<" + builderType(n) + "> __func) {\n" + //
+ " " + builderType(n) + " __inner = new " + builderType(n) +"();\n" + //
+ " __func.accept(__inner);\n" + //
+ " " + n.getName() + " = __inner;\n" + //
+ " return this;\n" + //
"}";
+
}
private static String innerArraySetters(InnerCNode n) {
@@ -157,6 +169,18 @@ public class BuilderGenerator {
"}\n" + //
"\n" + //
"/**\n" + //
+ " * Make a new builder and run the supplied function on it before adding it to the list\n" + //
+ " * @param __func lambda that modifies the given builder\n" + //
+ " * @return this builder\n" + //
+ " */\n" + //
+ "public Builder " + n.getName() + "(java.util.function.Consumer<" + builderType(n) + "> __func) {\n" + //
+ " " + builderType(n) + " __inner = new " + builderType(n) +"();\n" + //
+ " __func.accept(__inner);\n" + //
+ " " + n.getName() + ".add(__inner);\n" + //
+ " return this;\n" + //
+ "}\n" + //
+ "\n" + //
+ "/**\n" + //
" * Set the given list as this builder's list of " + nodeClass(n) + " builders\n" + //
" * @param __builders a list of builders\n" + //
" * @return this builder\n" + //
@@ -195,8 +219,7 @@ public class BuilderGenerator {
}
private static String innerMapSetters(CNode n) {
- return "public Builder " + n.getName() + "(String " + INTERNAL_PREFIX + "key, " + builderType(n) + " " + INTERNAL_PREFIX
- + "value) {\n" + //
+ String r = "public Builder " + n.getName() + "(String " + INTERNAL_PREFIX + "key, " + builderType(n) + " " + INTERNAL_PREFIX + "value) {\n" + //
" " + n.getName() + ".put(" + INTERNAL_PREFIX + "key, " + INTERNAL_PREFIX + "value);\n" + //
" return this;\n" + //
"}\n" + //
@@ -205,6 +228,22 @@ public class BuilderGenerator {
" " + n.getName() + ".putAll(" + INTERNAL_PREFIX + "values);\n" + //
" return this;\n" + //
"}";
+ if (n instanceof InnerCNode) {
+ r = r +
+ "\n\n" + //
+ "/**\n" + //
+ " * Make a new builder and run the supplied function on it before using it as the value\n" + //
+ " * @param __func lambda that modifies the given builder\n" + //
+ " * @return this builder\n" + //
+ " */\n" + //
+ "public Builder " + n.getName() + "(String __key, java.util.function.Consumer<" + builderType(n) + "> __func) {\n" + //
+ " " + builderType(n) + " __inner = new " + builderType(n) +"();\n" + //
+ " __func.accept(__inner);\n" + //
+ " " + n.getName() + ".put(__key, __inner);\n" + //
+ " return this;\n" + //
+ "}";
+ }
+ return r;
}
private static String privateLeafMapSetter(CNode n) {
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
index f9b36974e15..cce2d66b5f0 100644
--- a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
+++ b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
@@ -116,6 +116,7 @@ public class JavaClassBuilderTest {
JavaClassBuilder builder = new JavaClassBuilder(root, parser.getNormalizedDefinition(), null, null);
String[] configClassLines = builder.getConfigClass("AllfeaturesConfig").split("\n");
+ for (var line : configClassLines) { System.out.println(line); }
for (int i = 0; i < referenceClassLines.size(); i++) {
if (configClassLines.length <= i)
fail("Missing lines i generated config class. First missing line:\n" + referenceClassLines.get(i));
diff --git a/configgen/src/test/resources/allfeatures.reference b/configgen/src/test/resources/allfeatures.reference
index e0b6176efa2..7698ea6727c 100644
--- a/configgen/src/test/resources/allfeatures.reference
+++ b/configgen/src/test/resources/allfeatures.reference
@@ -565,11 +565,33 @@ public final class AllfeaturesConfig extends ConfigInstance {
basic_struct = __builder;
return this;
}
+ /**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder basic_struct(java.util.function.Consumer<Basic_struct.Builder> __func) {
+ Basic_struct.Builder __inner = new Basic_struct.Builder();
+ __func.accept(__inner);
+ basic_struct = __inner;
+ return this;
+ }
public Builder struct_of_struct(Struct_of_struct.Builder __builder) {
struct_of_struct = __builder;
return this;
}
+ /**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder struct_of_struct(java.util.function.Consumer<Struct_of_struct.Builder> __func) {
+ Struct_of_struct.Builder __inner = new Struct_of_struct.Builder();
+ __func.accept(__inner);
+ struct_of_struct = __inner;
+ return this;
+ }
/**
* Add the given builder to this builder's list of MyArray builders
@@ -582,6 +604,18 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder myArray(java.util.function.Consumer<MyArray.Builder> __func) {
+ MyArray.Builder __inner = new MyArray.Builder();
+ __func.accept(__inner);
+ myArray.add(__inner);
+ return this;
+ }
+
+ /**
* Set the given list as this builder's list of MyArray builders
* @param __builders a list of builders
* @return this builder
@@ -601,6 +635,18 @@ public final class AllfeaturesConfig extends ConfigInstance {
return this;
}
+ /**
+ * Make a new builder and run the supplied function on it before using it as the value
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder myMap(String __key, java.util.function.Consumer<MyMap.Builder> __func) {
+ MyMap.Builder __inner = new MyMap.Builder();
+ __func.accept(__inner);
+ myMap.put(__key, __inner);
+ return this;
+ }
+
private boolean _applyOnRestart = false;
@java.lang.Override
@@ -1305,11 +1351,33 @@ public final class AllfeaturesConfig extends ConfigInstance {
inner0 = __builder;
return this;
}
+ /**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder inner0(java.util.function.Consumer<Inner0.Builder> __func) {
+ Inner0.Builder __inner = new Inner0.Builder();
+ __func.accept(__inner);
+ inner0 = __inner;
+ return this;
+ }
public Builder inner1(Inner1.Builder __builder) {
inner1 = __builder;
return this;
}
+ /**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder inner1(java.util.function.Consumer<Inner1.Builder> __func) {
+ Inner1.Builder __inner = new Inner1.Builder();
+ __func.accept(__inner);
+ inner1 = __inner;
+ return this;
+ }
public Struct_of_struct build() {
return new Struct_of_struct(this);
@@ -1616,6 +1684,18 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder anotherArray(java.util.function.Consumer<AnotherArray.Builder> __func) {
+ AnotherArray.Builder __inner = new AnotherArray.Builder();
+ __func.accept(__inner);
+ anotherArray.add(__inner);
+ return this;
+ }
+
+ /**
* Set the given list as this builder's list of AnotherArray builders
* @param __builders a list of builders
* @return this builder
@@ -1914,6 +1994,18 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * Make a new builder and run the supplied function on it before adding it to the list
+ * @param __func lambda that modifies the given builder
+ * @return this builder
+ */
+ public Builder anotherArray(java.util.function.Consumer<AnotherArray.Builder> __func) {
+ AnotherArray.Builder __inner = new AnotherArray.Builder();
+ __func.accept(__inner);
+ anotherArray.add(__inner);
+ return this;
+ }
+
+ /**
* Set the given list as this builder's list of AnotherArray builders
* @param __builders a list of builders
* @return this builder
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index ed53543fcbc..a6783d1e5f5 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -1043,16 +1043,23 @@
"public com.yahoo.jdisc.http.ConnectorConfig$Builder tcpKeepAliveEnabled(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder tcpNoDelay(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder throttling(com.yahoo.jdisc.http.ConnectorConfig$Throttling$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder throttling(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder implicitTlsEnabled(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder ssl(com.yahoo.jdisc.http.ConnectorConfig$Ssl$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder ssl(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder tlsClientAuthEnforcer(com.yahoo.jdisc.http.ConnectorConfig$TlsClientAuthEnforcer$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder tlsClientAuthEnforcer(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder healthCheckProxy(com.yahoo.jdisc.http.ConnectorConfig$HealthCheckProxy$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder healthCheckProxy(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder proxyProtocol(com.yahoo.jdisc.http.ConnectorConfig$ProxyProtocol$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder proxyProtocol(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder secureRedirect(com.yahoo.jdisc.http.ConnectorConfig$SecureRedirect$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder secureRedirect(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder maxRequestsPerConnection(int)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder maxConnectionLife(double)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder http2Enabled(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder http2(com.yahoo.jdisc.http.ConnectorConfig$Http2$Builder)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder http2(java.util.function.Consumer)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
@@ -1812,17 +1819,23 @@
"public com.yahoo.jdisc.http.ServerConfig$Builder maxKeepAliveRequests(int)",
"public com.yahoo.jdisc.http.ServerConfig$Builder removeRawPostBodyForWwwUrlEncodedPost(boolean)",
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(com.yahoo.jdisc.http.ServerConfig$Filter$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder filter(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(java.util.List)",
"public com.yahoo.jdisc.http.ServerConfig$Builder defaultFilters(com.yahoo.jdisc.http.ServerConfig$DefaultFilters$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder defaultFilters(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ServerConfig$Builder defaultFilters(java.util.List)",
"public com.yahoo.jdisc.http.ServerConfig$Builder strictFiltering(boolean)",
"public com.yahoo.jdisc.http.ServerConfig$Builder maxWorkerThreads(int)",
"public com.yahoo.jdisc.http.ServerConfig$Builder minWorkerThreads(int)",
"public com.yahoo.jdisc.http.ServerConfig$Builder stopTimeout(double)",
"public com.yahoo.jdisc.http.ServerConfig$Builder jmx(com.yahoo.jdisc.http.ServerConfig$Jmx$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder jmx(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ServerConfig$Builder metric(com.yahoo.jdisc.http.ServerConfig$Metric$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder metric(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ServerConfig$Builder accessLog(com.yahoo.jdisc.http.ServerConfig$AccessLog$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder accessLog(java.util.function.Consumer)",
"public com.yahoo.jdisc.http.ServerConfig$Builder connectionLog(com.yahoo.jdisc.http.ServerConfig$ConnectionLog$Builder)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder connectionLog(java.util.function.Consumer)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
@@ -2067,6 +2080,7 @@
"public void <init>(com.yahoo.jdisc.http.ServletPathsConfig)",
"public com.yahoo.jdisc.http.ServletPathsConfig$Builder servlets(java.lang.String, com.yahoo.jdisc.http.ServletPathsConfig$Servlets$Builder)",
"public com.yahoo.jdisc.http.ServletPathsConfig$Builder servlets(java.util.Map)",
+ "public com.yahoo.jdisc.http.ServletPathsConfig$Builder servlets(java.lang.String, java.util.function.Consumer)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
diff --git a/container-disc/abi-spec.json b/container-disc/abi-spec.json
index 735211ff47c..d924d5196b9 100644
--- a/container-disc/abi-spec.json
+++ b/container-disc/abi-spec.json
@@ -109,8 +109,10 @@
"public void <init>()",
"public void <init>(com.yahoo.container.jdisc.secretstore.SecretStoreConfig)",
"public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder groups(com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Groups$Builder)",
+ "public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder groups(java.util.function.Consumer)",
"public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder groups(java.util.List)",
"public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder awsParameterStores(com.yahoo.container.jdisc.secretstore.SecretStoreConfig$AwsParameterStores$Builder)",
+ "public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder awsParameterStores(java.util.function.Consumer)",
"public com.yahoo.container.jdisc.secretstore.SecretStoreConfig$Builder awsParameterStores(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json
index f7176b0982a..9e3d165b81d 100644
--- a/container-search/abi-spec.json
+++ b/container-search/abi-spec.json
@@ -4674,6 +4674,7 @@
"public void <init>()",
"public void <init>(com.yahoo.search.pagetemplates.ResolversConfig)",
"public com.yahoo.search.pagetemplates.ResolversConfig$Builder component(com.yahoo.search.pagetemplates.ResolversConfig$Component$Builder)",
+ "public com.yahoo.search.pagetemplates.ResolversConfig$Builder component(java.util.function.Consumer)",
"public com.yahoo.search.pagetemplates.ResolversConfig$Builder component(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
@@ -6965,6 +6966,7 @@
"public void <init>()",
"public void <init>(com.yahoo.search.query.rewrite.RewritesConfig)",
"public com.yahoo.search.query.rewrite.RewritesConfig$Builder fsaDict(com.yahoo.search.query.rewrite.RewritesConfig$FsaDict$Builder)",
+ "public com.yahoo.search.query.rewrite.RewritesConfig$Builder fsaDict(java.util.function.Consumer)",
"public com.yahoo.search.query.rewrite.RewritesConfig$Builder fsaDict(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
@@ -8426,6 +8428,7 @@
"public void <init>()",
"public void <init>(com.yahoo.search.statistics.TimingSearcherConfig)",
"public com.yahoo.search.statistics.TimingSearcherConfig$Builder timer(com.yahoo.search.statistics.TimingSearcherConfig$Timer$Builder)",
+ "public com.yahoo.search.statistics.TimingSearcherConfig$Builder timer(java.util.function.Consumer)",
"public com.yahoo.search.statistics.TimingSearcherConfig$Builder timer(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json
index 78a58f24a65..88ec090d324 100644
--- a/documentapi/abi-spec.json
+++ b/documentapi/abi-spec.json
@@ -1912,6 +1912,7 @@
"public void <init>(com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Builder cluster(java.lang.String, com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Builder cluster(java.util.Map)",
+ "public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Builder cluster(java.lang.String, java.util.function.Consumer)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
@@ -1937,6 +1938,7 @@
"public void <init>(com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder defaultRoute(java.lang.String)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder route(com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Route$Builder)",
+ "public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder route(java.util.function.Consumer)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder route(java.util.List)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster$Builder selector(java.lang.String)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig$Cluster build()"
@@ -2133,6 +2135,7 @@
"public void <init>()",
"public void <init>(com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig$Builder route(com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig$Route$Builder)",
+ "public com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig$Builder route(java.util.function.Consumer)",
"public com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig$Builder route(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
diff --git a/linguistics-components/abi-spec.json b/linguistics-components/abi-spec.json
index 28025d84f25..f1deac67dc2 100644
--- a/linguistics-components/abi-spec.json
+++ b/linguistics-components/abi-spec.json
@@ -30,6 +30,7 @@
"public com.yahoo.language.sentencepiece.SentencePieceConfig$Builder collapseUnknowns(boolean)",
"public com.yahoo.language.sentencepiece.SentencePieceConfig$Builder scoring(com.yahoo.language.sentencepiece.SentencePieceConfig$Scoring$Enum)",
"public com.yahoo.language.sentencepiece.SentencePieceConfig$Builder model(com.yahoo.language.sentencepiece.SentencePieceConfig$Model$Builder)",
+ "public com.yahoo.language.sentencepiece.SentencePieceConfig$Builder model(java.util.function.Consumer)",
"public com.yahoo.language.sentencepiece.SentencePieceConfig$Builder model(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
diff --git a/messagebus/abi-spec.json b/messagebus/abi-spec.json
index 623904bef8d..bff28986119 100644
--- a/messagebus/abi-spec.json
+++ b/messagebus/abi-spec.json
@@ -413,6 +413,7 @@
"public void <init>()",
"public void <init>(com.yahoo.messagebus.MessagebusConfig)",
"public com.yahoo.messagebus.MessagebusConfig$Builder routingtable(com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder)",
+ "public com.yahoo.messagebus.MessagebusConfig$Builder routingtable(java.util.function.Consumer)",
"public com.yahoo.messagebus.MessagebusConfig$Builder routingtable(java.util.List)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
@@ -454,8 +455,10 @@
"public void <init>(com.yahoo.messagebus.MessagebusConfig$Routingtable)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder protocol(java.lang.String)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder hop(com.yahoo.messagebus.MessagebusConfig$Routingtable$Hop$Builder)",
+ "public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder hop(java.util.function.Consumer)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder hop(java.util.List)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder route(com.yahoo.messagebus.MessagebusConfig$Routingtable$Route$Builder)",
+ "public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder route(java.util.function.Consumer)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable$Builder route(java.util.List)",
"public com.yahoo.messagebus.MessagebusConfig$Routingtable build()"
],