I’ve created a plugin that has a set of nested extensions, using a NamedDomainObjectContainer on the parent extension to hold the child extensions, like so:
class TestExtension {
final NamedDomainObjectContainer<NestedExtension> data
public TestExtension(Project project) {
data = project.container(NestedExtension)
}
public data(Closure config) {
this.data.configure(config)
}
}
Where “NestedExtension” is just:
@Canonical
class NestedExtension {
final String name
String data
}
However, using a String literal as the name without a configuration closure does not allow the object to be created. Using the following example, only “foo” and “foo bar baz” are created.
test {
data {
foo
"bar"
"bar baz"
"foo bar baz" {}
}
}
I’ve tested this in 2.14.1 and 3.3 and it presents in both places. I’m not sure if this is a bug or just a misunderstanding on my part of how the named objects are created when a NamedDomainObjectContainer is configured–figured I’d ask here first to see if there’s something silly I’m doing.