You can change the default lifecycle model configuration by editing configurations.xml file using the information given below.
File Details
- File Name: configurations.xml
- Location:
<ES_HOME>\repository\resources
- Purpose: Defines lifecycles, which are applied for asset types.
XML elements
Make sure to go through the following lifecycle configuration definitions when adding a new custom lifecycle via the ES Management Console.
Note |
---|
WSO2 Enterprise Store uses the lifecycle API provided by WSO2 Governance Registry, but does not support all the lifecycle elements provided by the WSO2 Governance Registry. |
XML elements
Click on an element to view its details along with sub-element details if any.
Anchor | ||||
---|---|---|---|---|
|
- <aspect>
- <configuration>
- <lifecycle>
- <scxml>
- <state>
- <datamodel>
- <data>
- <item>
- <permissions>
- <permission>
- <validations>
- <validation>
- <parameter>
- <js>
- <console>
- <script>
- <server>
- <script>
- <execution>
- <parameter>
- <ui>
- <execution>
- <parameter>
- <transition>
...
...
Anchor | ||||
---|---|---|---|---|
|
<aspect>
XML Syntax | <aspect name="" class=""> |
---|---|
Description | This element used defines lifecycles as aspects. |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Mandatory |
Samples |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
name | Contains the the various aspects of the lifecycle. | |||||
Mandatory/Optional | Mandatory |
Attributes
Attribute | Description | Default Values | Fixed Values | Mandatory/ Optional | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
name | Defines the name of the lifecycle. As ES does not allow you to create two lifecycles with the same name. | , the name of the lifecycle should be unique. | N/A | Mandatory | |||||||
class | Defines the class that is associated with the lifecycle. |
| Mandatory | A user has the ability to define his/her own class as shown here, but the default class provided with the ES distribution has the capability to handle any configuration that follows the above template.
|
| Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<aspect name="Test" class="org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle"> |
...
Anchor | ||||
---|---|---|---|---|
|
<configuration>
XML Syntax | <configuration type=""> |
---|---|
Description | This element describes the way of lifecycle configuration is setup |
Type | |
Default Value | N/A |
Fixed Values | |
in which the lifecycle configurations are setup. | |
Mandatory/Optional | Mandatory |
Attributes
...
Attribute | Description | TypeDefault Value | Fixed Values | Mandatory/ OptionalNotes | ||||
---|---|---|---|---|---|---|---|---|
type | Define Defines how the lifecycle configuration options | is configured. | N/A | literal - If the configuration is setup through the management console resource - If the configuration is setup through registry.xml | Mandatory | This option depicts that the lifecycle configurations are setup using the ES Management Console. | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<configuration type="resourceliteral"> |
...
Anchor | ||||
---|---|---|---|---|
|
<scxml>
XML Syntax | <scxml xmlns="" version="" initialstate="" /> | ||
---|---|---|---|
Description | This is the element that contains the new, SCXML-based configuration. State Chart XML (SCXML) is an open standard that ES supports. Up to this point of the configuration, there can be only one of each of the elements described above. They all provide metadata about the lifecycle (name, class, and other information). The elements that appear after this one contain subsequent elements are the actual SCXML configuration. | Type | |
Default Value | |||
Fixed Values | |||
Mandatory/Optional | Mandatory |
Attributes
...
Attribute | Description | TypeDefault Value | Fixed Values | Mandatory/Optional | Notes | |
---|---|---|---|---|---|---|
xmlns | State Chart XML (SCXML) specification. | http://www.w3.org/2005/07/scxml | Mandatory | |||
version | Version number of the State Chart XML (SCXML). | 1.0 | Optional | |||
initialstate | Defines the initial state of the lifecycle. The initial state does not have to be the first state of the configuration. AlsoFurthermore, by changing the value of this attribute, a user you can quickly easily modify the initial state and the flow of the your lifecycle. |
Sample implementations
Code Block | ||
---|---|---|
| ||
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initialstate=""> |
...
Anchor | ||||
---|---|---|---|---|
|
<state>
XML Syntax | <state id=""> |
---|---|
Description | The |
Type | |
Default Value | N/A |
Fixed Values | |
in the configuration. | |
Mandatory/Optional | Mandatory |
Attributes
...
Attribute | Description | TypeDefault Value | Fixed Values | Mandatory/ OptionalNotes | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
id | The ID attribute of the state element defines Defines the name of thatthe lifecycle state. | N/A | Mandatory |
| N/A | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<state id="Development"></state> |
Info |
---|
ES does not support multiple states with the same name. Therefore, make sure to have unique names for all the state names of a lifecycle. |
...
Anchor | ||||
---|---|---|---|---|
|
<datamodel>
XML Syntax | <datamodel> | ||
---|---|---|---|
Description | This element contains all the custom elements, which are defined in the lifecycles lifecycle model. The Based on the SCXML specification allows users to , you can define a data model to a lifecycle state and you can use this extension is used to define custom elements. | Type | |
Default Value | N/A | ||
Fixed Values | |||
Mandatory/Optional | Optional |
This element has no attributes.
...
Anchor | ||||
---|---|---|---|---|
|
<data>
XML Syntax | <data name="" /> |
---|---|
Description | Custom |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes
...
Attribute | Description | TypeDefault Value | Fixed Values | Mandatory/ Optional | Notes | |||
---|---|---|---|---|---|---|---|---|
name | Transition Validators, Transition Executors, Transition User Interfaces and Transition Scripts are one of many well-defined extension points supported by ESDefines the extension point (e.g., Transition Executors) that is used in the lifecycle. You can define only one such element extension point of each a kind as , because the underline underlined implementation ignores multiple elements and takes only one into consideration. For
|
| Mandatory |
Sample implementations
...
language | html/xml |
---|
...
| Mandatory |
Sample implementations
Code Block |
---|
<data name="checkItems"> <item name="Effective Inspection Completed" forEvent="" /> <item name="Test Cases Passed" forEvent="" /> <item name="WSDL,Smoke SchemaTest CreatedPassed" forEvent="" /> </data> <data name="transitionValidationtransitionExecution"> <validation <execution forEvent="Promote" class="org.wso2.jaggery.scxml.generic.GenericExecutor"> <parameter name="PERMISSION:get" value="http://www.wso2.org/projects/registry/actions/get" /> </validation> </data> <data name="transitionPermission"> <permission forEvent="" roles=""/> </data> <data name="transitionScripts"> <js forEvent="" <parameter name="PERMISSION:add" value="http://www.wso2.org/projects/registry/actions/add" /> <parameter <console functionname="PERMISSION:delete"> <script type="text/javascript" value="http://www.wso2.org/projects/registry/actions/delete" /> <parameter </script>name="PERMISSION:authorize" value="authorize" /> </console> <parameter name="STATE_RULE1:Created" value="Internal/private_{asset_author}:+get,+add,+delete,+authorize" /> <server function=""<parameter name="STATE_RULE2:Created" value="Internal/reviewer:-get,-add,-delete,-authorize" /> <script type="text/javascript"></script> </server> <parameter name="STATE_RULE3:Created" value="Internal/everyone:-get,-add,-delete,-authorize" /> </js>execution> </data> <data name="transitionExecution"> <execution forEvent="Promote" class="org.wso2.jaggery.scxml.generic.GenericExecutor"> </data> <data name="transitionUI"> <ui forEvent="Promote" href="../lifecycles/pre_invoke_aspect_ajaxprocessor.jsp?currentEnvironment=/_system/governance/trunk/"/> </data> <data name="transitionApproval"> <approval forEvent="Promote" roles="" votes="5"/> <approval forEvent="Demote" roles="admin" votes="5"/> </data> |
...
<item>
XML Syntax | <item name="" forEvent=""/> |
Description | These elements contain the check items for each state. There can be more than one of these elements. |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
...
...
Anchor | ||||
---|---|---|---|---|
|
<item>
XML Syntax | <item name="" forEvent=""> |
---|---|
Description | These elements contain the check items for each state. There can be more than one of these elements. |
Mandatory/Optional | Optional |
Attributes
Attribute | Description | Default Value | Fixed Values | Mandatory/ Optional | ||
---|---|---|---|---|---|---|
name | Defines the name of the check item. ES allows you to define check items for each transition. | N/A | Optional | |||
forEvent | Defines whether the check item is required for a specific transition. A check item may be needed for more than one event, in which case, you can provide a comma separated list for the
| Null - Keeping the forEvent attribute empty means that a specific check item is not required for any transition event. | Optional |
Sample implementations
Code Block | ||
---|---|---|
| ||
<data name="checkItems">
<item name="Effective Inspection Completed" forEvent="" />
<item name="Test Cases Passed" forEvent="" />
<item name="Smoke Test Passed" forEvent="" />
</data> |
The above code snippet based on checkItems renders as follows in the Publisher:
...
Anchor | ||||
---|---|---|---|---|
|
<execution>
XML Syntax | <execution forEvent="" class=""/> |
---|---|
Description | An executor is business logic that is executed once a state transition takes place in a lifecycle. The |
Mandatory/Optional | Optional |
Attributes
Attribute | Description | Default Value | Fixed Values | Mandatory/ Optional | Notes | |
---|---|---|---|---|---|---|
nameforEvent | Defines the name of the check item.ES allows you to define check items for each transition. | N/A | Optional | |||
forEvent | Defines whether the check item is required for a specific transition. A check item can be required for more than one event, in which case, a user can give a comma (",") separated list for the forEvent attribute. | Null : Keeping the forEvent attribute empty means that a specific check item is not required for any transition event. | Optional | The forEvent value is defined under the <transition> element with the "event" attribute. |
Sample implementations
Code Block | ||
---|---|---|
| ||
<data name="checkItems">
<item name="Effective Inspection Completed" forEvent=""></item>
<item name="Test Cases Passed" forEvent=""></item>
<item name="Smoke Test Passed" forEvent=""></item>
</data> |
...
<permissions>
XML Syntax | <permissions> |
Description | The |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
This element doesn't have any attributes.
...
<permission>
XML Syntax | <permission roles=""/> |
Description | This element is a child element of the |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
roles | Defines the name of the user role to do the specified action. | Mandatory | Multiple user roles can be define here with comma (",") separated |
Sample Implementations
Code Block | ||
---|---|---|
| ||
<permission roles="admin,manager"/> |
...
<validations>
XML Syntax | |
Description | Defines the validations that need to be completed for each action. This element can contain one or more |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
This element doesn't have any attributes.
...
<validation>
XML Syntax | <validation forEvent="" class=""/> |
Description | Validations are an important part of lifecycles. The |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
forEvent | Defines the event for which this validation should be performed. This gives user the flexibility to define validations for each event. The user has the ability to define validations for check items, which makes it easy to validate different things at different levels. | N/A | Mandatory | The forEvent value is defined under the <transition> element with the "event" attribute. | ||
class | Defines the class that needs to be executed at runtime to perform the validation. A user must give the full, qualified name of a class that implements the CustomValidations interface, as the value of the attribute class . | N/A | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<validation forEvent="" class=""></validation> |
...
<parameter>
XML Syntax | <parameter name="" value=""/> |
Description | The |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
name | User defined value to identify the parameter. | N/A | Mandatory | |||
value | Defines the value of user defined parameter. | N/A | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<parameter name="endpoint.mediatype" value="application/vnd.wso2.endpoint"/> |
...
<js>
XML Syntax | |
Description | ES lifecycle configuration has the ability to allow JavaScript functions to execute on both the server side and the client side. The |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
forEvent | Defines the transition action where this JavaScript function needs to be executed. | Mandatory | The forEvent value is defined under the <transition> element with the "event" attribute. |
Sample implementations
Code Block | ||
---|---|---|
| ||
<js forEvent="">
<console function="">....</console>
<server function="">....</server>
</js> |
...
<console>
XML Syntax | <console function=""/> |
Description | Defines the JavaScript function that needs to be executed on the client side. |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
function | Defines the name of the function which will be executed at a transition from one state to another. | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<console function="">
<script type="text/javascript"> </script>
</console> |
...
<script>
XML Syntax | <script type="text/javascript"/> |
Description | Contains the actual JavaScript code segment. A user has the ability to define any code segment here. |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
type | ES supports scripting language. | Set to text/javascript because at the time of this writing, ES only supports JavaScript as a scripting language. | Mandatory |
Sample implementations
Code Block | ||
---|---|---|
| ||
<script type="text/javascript"></script> |
...
<server>
XML Syntax | <server function=""/> |
Description | This is the same as the |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
function | Defines the name of the function which will be executed at a transition from one state to another. | Mandatory | The function should be a ES supported scripting language. |
Sample implementations
Code Block | ||
---|---|---|
| ||
<server function="">
<script type="text/javascript"></script>
</server> |
...
<Execution>
XML Syntax | <execution forEvent="" class=""/> |
Description | An executor is business logic that is executed once a state transition happens in a lifecycle. The |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
forEvent | Defines the event for which this execution should be performed. This gives user the flexibility to define executions for each event. | Mandatory | The forEvent value is defined under the <transition> element with the "event" attribute. | |||
class | Defines the class that needs to be executed at runtime. A user must give the full, qualified name of a class that implements the Execution interface, as the value of the attribute class . | Mandatory | This class defines the business logic that is executed when the specified event is taken place. This class manipulates the current and target environment of the underlying artifact when the state transition is performed on it. |
Sample implementations
Code Block |
---|
<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.ServiceVersionExecutor"> |
...
<parameter>
XML Syntax | <parameter name="" value=""/> |
Description | The name attribute defines the name of the parameter and value attribute defines that the value hold by the parameter. This parameter element defined under the <execution> element. |
Type | |
Default Value | |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
...
The name attribute defines the name of the parameter. This parameter element defined under the <execution> element.
...
Sample implementations
Code Block |
---|
<data name="transitionExecution">
<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.ServiceVersionExecutor">
<parameter name="currentEnvironment" value="/_system/governance/trunk/{@resourcePath}/{@resourceName}"/>
<parameter name="targetEnvironment" value="/_system/governance/branches/testing/{@resourcePath}/{@version}/{@resourceName}"/>
<parameter name="service.mediatype" value="application/vnd.wso2-service+xml"/>
<parameter name="wsdl.mediatype" value="application/wsdl+xml"/>
<parameter name="endpoint.mediatype" value="application/vnd.wso2.endpoint"/>
</execution>
</data> |
...
<ui>
XML Syntax | <ui forEvent="" href=""/> |
Description | A UI element is a mechanism to associate a user interface with a particular event during a given transition. This provides a convenient way for a user to pass input that would be utilized when performing a transition. Note that, for the value of href, it will not accept any external reference link for the value. It is required to provide a relative path in the carbon server as the value of href. |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Optional |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
forEvent | Defines the event for which this UI will be presented. | N/A | Optional | The forEvent value is defined under the <transition> element with the "event" attribute. | ||
href | Defines the hyperlink that will be opened and presented to the user, when a lifecycle transition operation is performed from the Management Console. | N/A | Optional |
Sample implementations
Code Block | ||
---|---|---|
| ||
<ui forEvent="Promote" href="../lifecycles/pre_invoke_aspect_ajaxprocessor.jsp?currentEnvironment=/_system/governance/branches/testing/"/> |
See also Transition UI Sample.
...
<transition>
XML Syntax | <transition event="" target=""/> |
Description | Defines the transitions of a state. In Governance Registry 4.1.1 onwards, users are allowed to define the transitions (the name and the target state) instead of using static transitions. Previously, the configuration did not have a direct method of defining the transition event names or, most importantly, the target of the transition. There were only two transitions that were supported by default. With the new, SCXML-based configuration model, any number of transitions from one state are supported. Also, this model has the capacity to define the target state of the transition and the name of the event as well. |
Type | |
Default Value | N/A |
Fixed Values | |
Mandatory/Optional | Mandatory |
Attributes of the element
Attribute | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes | |||
---|---|---|---|---|---|---|---|---|---|
event | Defines the transition event name, for example, to "Promote" or "Demote" or any name that the user specifies. | N/A | Mandatory | This event name is used inevent for which this execution is performed. This gives you the flexibility to define executions for each event. | Mandatory | ||||
class | Defines the class that is executed at runtime. A user must give the full, qualified name of a class that implements the Execution interface, as the value of the class attribute. This class defines the business logic that is executed when the specified event takes place. This class manipulates the current and target environment of the underlying artifact when the state transition is performed on it. | Mandatory |
Sample implementations
Code Block |
---|
<execution forEvent="Promote" class="org.wso2.jaggery.scxml.generic.GenericExecutor"> |
...
Anchor | ||||
---|---|---|---|---|
|
<parameter>
XML Syntax | <parameter name="" value=""/> |
---|---|
Description | The |
Mandatory/Optional | Optional |
Attributes
Attribute | Description | Default Value | Fixed Values | Mandatory/ Optional | ||||||
---|---|---|---|---|---|---|---|---|---|---|
name | This attribute defines the name of the parameter.
|
| The first four parameters are mandatory. | |||||||
value | This attribute defines the value held by the parameter.
For example:
|
|
Sample implementations
Code Block |
---|
<data name="transitionExecution">
<execution forEvent="Promote" class="org.wso2.jaggery.scxml.generic.GenericExecutor">
<parameter name="PERMISSION:get" value="http://www.wso2.org/projects/registry/actions/get" />
<parameter name="PERMISSION:add" value="http://www.wso2.org/projects/registry/actions/add" />
<parameter name="PERMISSION:delete" value="http://www.wso2.org/projects/registry/actions/delete" />
<parameter name="PERMISSION:authorize" value="authorize" />
<parameter name="STATE_RULE1:Created" value="Internal/private_{asset_author}:+get,+add,+delete,+authorize" />
<parameter name="STATE_RULE2:Created" value="Internal/reviewer:-get,-add,-delete,-authorize" />
<parameter name="STATE_RULE3:Created" value="Internal/everyone:-get,-add,-delete,-authorize" />
</execution>
</data> |
...
Anchor | ||||
---|---|---|---|---|
|
<transition>
XML Syntax | <transition event="" target=""/> |
---|---|
Description | Defines the transitions, by specifying the name of the lifecycle state and the target lifecycle state. Any number of transitions for one lifecycle state are supported. |
Mandatory/Optional | Mandatory |
Attributes
Attribute | Description | Default Value | Fixed Values | Mandatory/ Optional |
---|---|---|---|---|
event | Defines the transition event name (e.g., Promote, Demote or any name that you wish to specify). This event name is used in the | N/A | Mandatory | |
target | Defines the target state of the transition. | N/A | Mandatory |
Sample
...
implementations
Code Block | ||
---|---|---|
| ||
<transition event="Promote" target="Tested"/> |