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.