Action Plugin Configuration

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.
canAutoRetry false Whether or not the action plugin will auto-retry after failing.
canIgnoreFailure false Whether or not the action plugin will ignore a failure.

Action Plugin Configuration Properties: Metadata Annotations

The action and resource configuration in JEF are “plain old java objects” (POJOs) and are serialised into Ooyala 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.

Note: Action configurations in Enterprise are Ooyala Flex metadata definitions under the hood. Hence this metadata annotation library provides a code approach in order to generate Ooyala Flex action configurations with their properties.

Example:

			@ConfigField(displayName = "Script Content", required = true, multiplicity = Multiplicity.MULTI, supportsExpression = true )
		

Extendable Properties

ConfigField

Java configuration class properties can be extended using java annotations, in order to define metadata definition property parameters.

Example:

// BuiltIn Configuration classes
    @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.
Note: 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, Ooyala Flex automatically populates the field with a default.

The following additional annotation properties are available:

  • ObjectField: formType, objectType, classNames, objectTypedId, variantId.
Note: the ObjectField property is only applicable to built-in Ooyala Flex objects such as: Ooyala Flex objects, assets, and users.
  • OptionField (enum only): type (SINGLE, MULTI).
  • ValidationField: validation, validationDescription, validationHandler, and maxLength.

Java properties are converted into metadata definition properties:

  • Java primitives are mapped into metadata definition properties. These are as follows:  string, float, long, double, integer, and boolean.
  • Java wrappers are mapped into metadata definition properties. These are as follows:  string, float, long, double, integer, and boolean.
  • Java containers are mapped into metadata definition properties (list, map, and so on).
  • Enumerated types are mapped into metadata definition multi options.
  • Java POJO classes can be nested in a hierarchy.

Metadata annotation libraries provide preset builtin types:

  • Built-in metadata annotation classes provide the base metadata definition types. Adding them as properties in POJOs hides the complexity of the parameter definitions: Action, Asset, Colour, Email, File, Flex Object, Image Validation, Key Value, Password, Protocol, Script, Synchronous Execution Action, Time, Time Code, User, VFS Location.

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;
  ....
	

Was this article helpful?