Slackbot
01/10/2024, 1:33 AMthadhouse
01/10/2024, 2:12 AMclass DirectMetadataAccessVariantRule implements ComponentMetadataRule {
@javax.inject.Inject
ObjectFactory getObjects() { }
void execute(ComponentMetadataContext context) {
def id = context.details.id
context.details.addVariant("moduleMetadata") {
attributes {
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.REGULAR_PLATFORM))
attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "platform-metadata"))
}
withFiles {
removeAllFiles()
addFile("${id.name}-${id.version}.module")
}
}
}
}
repositories {
mavenCentral()
}
dependencies {
components {
all(DirectMetadataAccessVariantRule)
}
}
task runThing {
doLast {
def dep = project.dependencies.create('org.junit:junit-bom:5.10.1')
def detached = project.configurations.detachedConfiguration(dep)
def view = detached.getIncoming().artifactView(viewConfiguration -> {
viewConfiguration.withVariantReselection()
viewConfiguration.lenient = true
viewConfiguration.attributes(attributeContainer -> {
attributeContainer.attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "platform-metadata"));
});
});
// Actually fails here
view.files.each {
println it
}
view = detached.getIncoming().artifactView(viewConfiguration -> {
viewConfiguration.withVariantReselection()
viewConfiguration.attributes(attributeContainer -> {
attributeContainer.attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "platform-metadata"));
});
});
// Would expect failure here
view.files.each {
println it
}
}
}
Reproducing example. I would expect the failure to happen at line marked would expect failure here, but it actually occurs at actually fails hereVampire
01/10/2024, 7:46 AM