public interface SmithyBuildPlugin
Plugins are used to contribute artifacts to SmithyBuild by writing
 files to the FileManifest stored in the provided
 PluginContext via the PluginContext.getFileManifest().
| Modifier and Type | Method and Description | 
|---|---|
static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> | 
createServiceFactory()
Creates a SmithyBuildPlugin factory function using SPI and the current
 Thread's context class loader. 
 | 
static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> | 
createServiceFactory(java.lang.ClassLoader classLoader)
Creates a SmithyBuildPlugin factory function using SPI. 
 | 
static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> | 
createServiceFactory(java.lang.Iterable<SmithyBuildPlugin> plugins)
Creates a factory function used that creates SmithyBuildPlugins using
 a list of resolved plugins. 
 | 
void | 
execute(PluginContext context)
Executes the plugin, creating any number of artifacts. 
 | 
java.lang.String | 
getName()
Gets the name of the plugin. 
 | 
default boolean | 
isSerial()
Plugins can choose whether or not projections they are in can be run in
 parallel with other projections. 
 | 
default boolean | 
requiresValidModel()
Plugins can choose whether or not to create artifacts based on whether
 or not the projection encountered error or unsuppressed danger events. 
 | 
java.lang.String getName()
default boolean requiresValidModel()
By default plugins require that there are no errors or danger events for a given projected model.
default boolean isSerial()
By default plugins allow parallel execution.
void execute(PluginContext context)
context - Plugin context for build execution.static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> createServiceFactory(java.lang.Iterable<SmithyBuildPlugin> plugins)
plugins - Plugins to lookup by name in the factory function.static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> createServiceFactory()
Thread.getContextClassLoader()static java.util.function.Function<java.lang.String,java.util.Optional<SmithyBuildPlugin>> createServiceFactory(java.lang.ClassLoader classLoader)
This factory is used in SmithyBuild to create plugins
 from configuration names.
classLoader - Class loader used to find plugin implementations.