use of org.gradle.internal.component.model.ConfigurationMetadata in project gradle by gradle.
the class RealisedMavenModuleResolveMetadata method addVariantsFromRules.
private static List<ConfigurationMetadata> addVariantsFromRules(ModuleComponentResolveMetadata componentMetadata, ImmutableList<ConfigurationMetadata> derivedVariants, VariantMetadataRules variantMetadataRules) {
List<AdditionalVariant> additionalVariants = variantMetadataRules.getAdditionalVariants();
if (additionalVariants.isEmpty()) {
return derivedVariants;
}
ImmutableList.Builder<ConfigurationMetadata> builder = new ImmutableList.Builder<>();
builder.addAll(derivedVariants);
Map<String, ConfigurationMetadata> variantsByName = derivedVariants.stream().collect(Collectors.toMap(ConfigurationMetadata::getName, Function.identity()));
for (AdditionalVariant additionalVariant : additionalVariants) {
String name = additionalVariant.getName();
String baseName = additionalVariant.getBase();
ImmutableAttributes attributes;
ImmutableCapabilities capabilities;
List<? extends ModuleDependencyMetadata> dependencies;
ImmutableList<? extends ModuleComponentArtifactMetadata> artifacts;
ConfigurationMetadata baseConf = variantsByName.get(baseName);
if (baseConf == null) {
attributes = componentMetadata.getAttributes();
capabilities = ImmutableCapabilities.EMPTY;
dependencies = ImmutableList.of();
artifacts = ImmutableList.of();
} else {
attributes = baseConf.getAttributes();
capabilities = (ImmutableCapabilities) baseConf.getCapabilities();
dependencies = ((ModuleConfigurationMetadata) baseConf).getDependencies();
artifacts = Cast.uncheckedCast(baseConf.getArtifacts());
}
if (baseName == null || baseConf != null) {
builder.add(applyRules(componentMetadata.getId(), name, variantMetadataRules, attributes, capabilities, dependencies, artifacts, true, true, ImmutableSet.of(), true, false));
} else if (!additionalVariant.isLenient()) {
throw new InvalidUserDataException("Variant '" + baseName + "' not defined in module " + componentMetadata.getId().getDisplayName());
}
}
return builder.build();
}
use of org.gradle.internal.component.model.ConfigurationMetadata in project gradle by gradle.
the class RealisedMavenModuleResolveMetadataSerializationHelper method writeDerivedVariants.
private void writeDerivedVariants(Encoder encoder, RealisedMavenModuleResolveMetadata metadata, Map<ExternalDependencyDescriptor, Integer> deduplicationDependencyCache) throws IOException {
ImmutableList<? extends ConfigurationMetadata> derivedVariants = metadata.getDerivedVariants();
encoder.writeSmallInt(derivedVariants.size());
for (ConfigurationMetadata derivedVariant : derivedVariants) {
writeConfiguration(encoder, derivedVariant);
writeFiles(encoder, derivedVariant.getArtifacts());
writeDerivedVariantExtra(encoder, derivedVariant, deduplicationDependencyCache);
}
}
Aggregations