Blueprint Developer Manual / Version 2107
Table Of ContentsA plugin is a (zipped) folder with the following structure:
- classes/
The classes of your plugin
- lib/
Third-party dependencies (JAR files) used by your plugin
- plugin.properties
File for plugin configuration and metadata
The plugin.properties
file provides metadata of your plugin. Most importantly, the
properties give your plugin
an identifier and configure a Spring configuration class that will be registered with the
application context. These are the supported properties:
- plugin.id
The ID of the plugin, must be unique, for example,
MyPlugin
- plugin.version
The version of the plugin following the Semantic Versioning Specification, for example,
1.2.3
or1.0.0-SNAPSHOT
- plugin.configuration-class
The Spring Configuration class, for example,
com.acme.myplugin.MyPluginConfiguration
- plugin.provider
The provider/author of the plugin, for example,
ACME
- plugin.dependencies
(optional): Comma-separated list of plugin IDs, for example,
some-plugin,some-other-plugin
. See Section 4.1.6.1.9, “Plugin Dependencies” for details.- plugin.add-on-for
(optional): The plugin ID of the plugin that this plugin is an add-on for, for example,
some-plugin
- plugin.requires
A version range of supported CMS versions (a single version means greater or equal to that version), for example,
10.2010.1
,>=10.2010.2 & <10.2101.1
Example
plugin.id=MyPlugin plugin.version=1.2.3 plugin.configuration-class=com.acme.myplugin.MyPluginConfiguration plugin.provider=ACME
Example 4.4. plugin.properties
@Import("SomePluginBeansConfig.class") @Configuration(proxyBeanMethods = false) public class MyPluginConfiguration { @Bean public MyExtension myExtension(SomeBean someBean) { return new MyExtension(someBean); } }
Example 4.5. com.acme.myplugin.MyPluginConfiguration
public class MyExtension implements SomeCoremediaExtensionPoint { public MyExtension(SomeBean someBean) { ... } ... }
Example 4.6. com.acme.myplugin.MyExtension