Appian Plug-ins simplify the creation and deployment of common Appian extensions, such as Custom Functions, Custom Data Types, and Smart Services. Appian's Plug-in architecture is based on an industry-standard architecture called OSGI.
See also:
Plug-ins are located in APPIAN_INSTALL/_admin/plugins/
. Deploy a plug-in by copying it to this directory.
On application server start-up, Appian attempts to deploy all plug-ins. If, on start-up, a plug-in fails to deploy due to a timeout, Appian will retry the deployment, but if the plug-in continues to timeout, the application server will fail to start. This guardrail is in place to ensure that Appian does not start with missing dependencies that could cause errors in running processes.
Plug-in deployment supports hot deployment. Changes in the Plug-ins directory are read at the polling interval conf.plugins.poll-interval
specified in the custom.properties
file. If this interval is set to 0 (zero), hot deployment is disabled.
In order for a plug-in to be authorized to use the EncryptionService
, the plug-in must be granted access to it via the Plug-ins page of the Admin Console.
See also: Admin Console
Every Appian Plug-in must have an appian-plugin.xml
at the root of the Plug-in jar. If this file is not present, the Plug-in is ignored.
Plug-in Key: The unique identifier for a Plug-in.
1
2
3
4
5
<appian-plugin key="acme.sample.key" name="Sample Plugin">
<plugin-info>
...
</plugin-info>
</appian-plugin>
Best Practice: As a best practice, use a namespace for your Plug-in. The appian-system namespace is reserved.
Plug-in Name: A readable name for the Plug-in. Internationalization of this name is recommended.
1
2
3
4
5
<appian-plugin key="acme.sample.key" name="Sample Plugin">
<plugin-info>
...
</plugin-info>
</appian-plugin>
Plug-in Version
The version of the plug-in. When updating a plug-in custom data type, the version number of the plug-in must be incremented for the changes to take effect.
The recommended format for plug-in version number is two digits (X.X) or three digits (X.X.X).
1
2
3
4
5
<plugin-info>
...
<version>6.2</version>
...
</plugin-info>
Best Practice: As a best practice, increment the version number any time you change a plug-in that has been released.
Appian version dependencies
1
2
3
4
5
<plugin-info>
...
<application-version min="6.0.2" max="6.2.0"/>
...
</plugin-info>
Java version dependencies
1
2
3
4
5
<plugin-info>
...
<java-version min="1.6"/>
...
</plugin-info>
Plug-in Description: Description for the Plug-in. Internationalization of this description is recommended.
1
2
3
4
5
<plugin-info>
...
<description>A Sample appian-plugin.xml</description>
...
</plugin-info>
Vendor name and URL
1
2
3
4
5
<plugin-info>
...
<vendor name="Appian Corporation" url="http://www.appian.com" />
...
</plugin-info>
Include the log4j
library from deployment/web.war/WEB-INF/lib/
in the build path of the project and your plug-in's META-INF/lib/
directory. Any logging settings specific to the plug-in should be added to appian_log4j.properties
.
See also: Customizing Application Logging
Appian provides plug-ins with access to certain libraries, like Appian's public Java API, and these libraries do not need to be included in your plug-in package. The full list of provided libraries can be found on the Custom Plug-in Packages page.
Appian Suite Plug-ins