corda / net.corda.node.services / NotaryChange / Plugin

# Plugin

`class Plugin : CordaPluginRegistry`

### Constructors

<init> | `Plugin()`

### Properties

servicePlugins | `val servicePlugins: List<Function<PluginServiceHub, Service>>` List of lambdas constructing additional long lived services to be hosted within the node. They expect a single PluginServiceHub parameter as input. The PluginServiceHub will be fully constructed before the plugin service is created and will allow access to the Flow factory and Flow initiation entry points there.

### Inherited Properties

requiredFlows | `open val requiredFlows: Map<String, Set<String>>` A Map with an entry for each consumed Flow used by the webAPIs. The key of each map entry should contain the FlowLogic class name. The associated map values are the union of all concrete class names passed to the Flow constructor. Standard java.lang.* and kotlin.* types do not need to be included explicitly. This is used to extend the white listed Flows that can be initiated from the ServiceHub invokeFlowAsync method.
staticServeDirs | `open val staticServeDirs: Map<String, String>` Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()
webApis | `open val webApis: List<Function<CordaRPCOps, out Any>>` List of lambdas returning JAX-RS objects. They may only depend on the RPC interface, as the webserver should potentially be able to live in a process separate from the node itself.

### Inherited Functions

customizeSerialization | `open fun customizeSerialization(custom: SerializationCustomization): Boolean` Optionally whitelist types for use in object serialization, as we lock down the types that can be serialized.