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.