I am trying to extend a non-managed implementation of a BinarySpec using @Managed.
The non managed layout looks like:
MyBinarySpec (interface)
MyBinarySpecInternal extends MyBinarySpec
DefaultBinarySpecSpec (implements MyBinarySpecInternal)
My managed layout looks like:
ExtraBinarySpec extends MyBinarySpec (interface)
ExtraBinarySpecInternal extends ExtraBinarySpec (interface)
When I did this I get
Factory registration for 'ExtraBinarySpec' is invalid because the default implementation type 'org.gradle.platform.base.binary.BaseBinarySpec' does not implement unmanaged internal view 'MyBinarySpec', internal view was registered by MyRuleSource#register
I register MyBinarySpec like
@BinaryType
public void register(BinaryTypeBuilder<ExtraBinarySpec> builder) {
builder.internalView(ExtraBinarySpecInternal.class);
}
I apply the plugin that registers MyBinarySpec, its internal view and default implementation before my plugin.
Can anyone point me at what I’m missing?