use of org.gradle.api.internal.DocumentationRegistry in project gradle by gradle.
the class PublicationErrorChecker method checkForUnpublishableAttributes.
/**
* Checks that the given component does not have any attributes that are not allowed to be published.
*
* @param component the component to check
* @param documentationRegistry for creating helpful links in error messages upon failing the check
* @throws PublishException if the component uses attributes invalid for publication
*/
public static void checkForUnpublishableAttributes(SoftwareComponentInternal component, DocumentationRegistry documentationRegistry) {
for (final UsageContext usageContext : component.getUsages()) {
Optional<Attribute<?>> category = usageContext.getAttributes().keySet().stream().filter(a -> Category.CATEGORY_ATTRIBUTE.getName().equals(a.getName())).findFirst();
category.ifPresent(c -> {
Object value = usageContext.getAttributes().getAttribute(c);
if (value != null && Category.VERIFICATION.equals(value.toString())) {
throw new PublishException("Cannot publish module metadata for component '" + component.getName() + "' which would include a variant '" + usageContext.getName() + "' that contains a '" + Category.CATEGORY_ATTRIBUTE.getName() + "' attribute with a value of '" + Category.VERIFICATION + "'. This attribute is reserved for test verification output and is not publishable. See: " + documentationRegistry.getDocumentationFor("variant_attributes.html", "sec:verification_category"));
}
});
}
}
use of org.gradle.api.internal.DocumentationRegistry in project gradle by gradle.
the class DefaultFileOperations method createSimple.
public static DefaultFileOperations createSimple(FileResolver fileResolver, FileCollectionFactory fileTreeFactory, ServiceRegistry services) {
Instantiator instantiator = services.get(Instantiator.class);
ObjectFactory objectFactory = services.get(ObjectFactory.class);
FileSystem fileSystem = services.get(FileSystem.class);
DirectoryFileTreeFactory directoryFileTreeFactory = services.get(DirectoryFileTreeFactory.class);
StreamHasher streamHasher = services.get(StreamHasher.class);
FileHasher fileHasher = services.get(FileHasher.class);
ApiTextResourceAdapter.Factory textResourceAdapterFactory = services.get(ApiTextResourceAdapter.Factory.class);
Factory<PatternSet> patternSetFactory = services.getFactory(PatternSet.class);
Deleter deleter = services.get(Deleter.class);
DocumentationRegistry documentationRegistry = services.get(DocumentationRegistry.class);
ProviderFactory providers = services.get(ProviderFactory.class);
DefaultResourceHandler.Factory resourceHandlerFactory = DefaultResourceHandler.Factory.from(fileResolver, fileSystem, null, textResourceAdapterFactory);
return new DefaultFileOperations(fileResolver, null, instantiator, directoryFileTreeFactory, streamHasher, fileHasher, resourceHandlerFactory, fileTreeFactory, objectFactory, fileSystem, patternSetFactory, deleter, documentationRegistry, providers);
}
Aggregations