ActionPluginConfiguration classes are annotated with data which describes their behaviour in Enterprise and JEF.
Example:
ActionPluginConfiguration(async = true, description = "Email details needed by the Notification-Email-Action")
public class EmailActionConfiguration implements ActionConfiguration {
Field | Default Value | Description |
---|---|---|
description | string | The description of the action plugin. |
async | false | Whether or not the action plugin is asynchronous. |
autoRetrySupported | false | Whether or not the action plugin will auto-retry after failing. |
ignoreFailureSupported | false | Whether or not the action plugin will ignore a failure. |
The action and resource configuration in JEF are “plain old java objects” (POJOs) and are serialised into Dalet Flex metadata definitions for the purposes of native Enterprise importing.
Java properties can be extended in order to define any additional metadata that is required by metadata definitions. For this purpose, JEF provides a metadata annotation library to augment java properties into configuration parameters that can be used in Enterprise.
Example:
@ConfigField( displayName = "Script Content", required = true, multiplicity = Multiplicity.MULTI, supportsExpression = true )
ConfigField
Java configuration class properties can be extended using java annotations, in order to define metadata definition property parameters.
Example:
// BuiltIn Configuration classes</span>
@ConfigField(displayName = "Source File", description = "Details of the source file to import. If not specified, no media file will be imported into the asset. This can be used to create placeholder assets.", required = true )
private VFSLocation builtInClassVfsLocation;
@ConfigField(displayName = "Colour Field", required = true)
private Colour builtInClassColour;
Properties for the ConfigField annotation:
Field | Default Value | Description |
---|---|---|
displayName | string | The name of the field. Example: profileName = "Profile Name", |
description | string | This usually tells a user the purpose of the field, as well as the value that must be entered. Example: description = "This is a description field." |
required | false | Whether or not the field is mandatory. Some plugins have mandatory configuration fields that must be filled out. If a value is not entered in a mandatory field, the plugin cannot be saved and enabled. Example: required = true |
multiplicity | SINGLE | This is how many times a field can be replicated. Some fields can be created multiple times. The possible values are as follows: SINGLE ZERO_TO_ONE ZERO_TO_MANY ONE_TO_MANY |
expressionEnabled | false | This lets you specify whether or not the field supports scripting. |
defaultValue | string | If you do not specify a value, Dalet Flex automatically populates the field with a default. |
The following additional annotation properties are available:
Java properties are converted into metadata definition properties:
Metadata annotation libraries provide preset built-in types:
List<Asset>
).All of the properties listed above can be combined to produce both simple and complex metadata definition configurations.
Example:
A valid action configuration could be as follows:
public class MetadataAnnotationE2EActionConfiguration implements ActionConfiguration {
private String stringFieldWithoutFieldAnnotation;
private boolean primitiveBooleanFieldWithoutFieldAnnotation;
private PojoWithoutFieldAnnotation pojoWithoutFieldAnnotation;
...
@ConfigField(displayName = "Long Field Displayname", description = "Description", expressionEnabled = true)
private Long primitiveLongFieldWithAnnotation;
...
@ConfigField(displayName = "Pojo Object With ConfigField", description = "To test ConfigField Annotation on a Pojo object")
private PojoWithFieldAnnotation pojoObjectWithAnnotation;
...
@ConfigField(displayName = "Enum Object with ConfigField", description = "To test ConfigField Annotation and OptionField as type Multi on Enum object")
@OptionField(type = OptionTypes.MULTI)
@ObjectField(formType = FormType.MULTI_SELECT, objectType = "")
private EnumStatus enumWithAnnotation;
....