Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

You can change the default lifecycle model configuration by editing the configurations.xml file using the information given below.

File Details

...

Make sure to go through the following lifecycle configuration definitions when adding a new custom lifecycle via the ES Management Console. When a lifecycle is added, ES stores the corresponding definition in the <ES_HOME>/repository/deployment/server/jaggeryapps/publisher/extensions directory.

XML elements  

Click on an element to view its details along with sub element details if any.

Anchor
Top
Top

  • <aspect>
  •       <configuration>
  •            <lifecycle>
  •                <scxml>
  •                     <state>
  •                          <datamodel>
  •                               <data>
  •                                     <item>
  •                                           <permissions>
  •                                                 <permission>
  •                                           <validations>
  •                                                 <validation>
  •                                                       <parameter>
  •                                     <js>
  •                                           <console>
  •                                                 <script>
  •                                           <server>
  •                                                 <script>
  •                                     <execution>
  •                                           <parameter>
  •                                     <ui>
  •                          <transition>

 

...

Anchor
aspect
aspect

<aspect> 

XML Syntax<aspect name="" class="">
DescriptionThis element defines the various aspects of the lifecycle.
Mandatory/OptionalMandatory
Attributes
AttributeDescriptionDefault ValuesFixed ValuesMandatory/
Optional
Notes 
nameDefines 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 
classDefines the class that is associated with the lifecycle.

org.wso2.jaggery.scxml.aspects.
JaggeryTravellingPermissionLifeCycle

  • org.wso2.carbon.governance.registry.
    extensions.aspects.DefaultLifeCycle 
  •  

     MandatoryYou can define your 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.
    Sample implementations
    Code Block
    languagehtml/xml
    <aspect name="Test" class="org.wso2.jaggery.scxml.aspects.JaggeryTravellingPermissionLifeCycle">

    Back to Top ^

    ...

    Anchor
    configuration
    configuration

    <configuration> 

    XML Syntax<configuration type="">
    DescriptionThis element describes the way in which the lifecycle configurations are setup.
    Mandatory/OptionalMandatory
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    typeDefines how the lifecycle is configured.N/A
    • literal - Use this option when the lifecycle configurations are setup using the ES Management Console.
    • resource - Use this option when the lifecycle configurations are setup via the registry.xml file.
    Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <configuration type="resourceliteral">

    Back to Top ^

    ...

    Anchor
    scxml
    scxml

    <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 subsequent elements are the actual SCXML configuration.

    Mandatory/OptionalMandatory
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/OptionalNotes
    xmlnsState Chart XML (SCXML) specification. 
    http://www.w3.org/2005/07/scxml
    Mandatory 
    versionVersion number of the State Chart XML (SCXML). 1.0Optional 
    initialstate

    Defines the initial state of the lifecycle. The initial state does not have to be the first state of the configuration. Furthermore, by changing the value of this attribute, you can easily modify the initial state and the flow of the lifecycle.

        
    Sample implementations
    Code Block
    languagehtml/xml
    <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initialstate="">

    Back to Top ^

    ...

    Anchor
    state
    state

    <state> 

    XML Syntax<state id="">
    Description

    Defines the states of the lifecycle. A lifecycle can have multiple states and if needed, you can define more than one state element in the configuration.

    Mandatory/OptionalMandatory
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    idDefines the name of the lifecycle state.N/A Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <state id="Development"></state>
    Info

    ES does not support multiple lifecycle states with the same name. Therefore, make sure to have unique names for all the lifecycle state names.

    Back to Top ^

    ...

    Anchor
    datamodel
    datamodel

    <datamodel> 

    XML Syntax<datamodel>
    Description

    This element contains all the custom elements, which are defined in the lifecycle model. Based on the SCXML specification, you can define a data model to a lifecycle state and you can use this extension to define custom elements.

    Mandatory/OptionalOptional

    This element has no attributes.

    Back to Top ^

    ...

    Anchor
    data
    data

    <data> 

    XML Syntax<data name="">
    Description

    Custom data elements (according to the SCXML specification) serve to define check items, transition permission, transition validations, transition scripts, transition executions and transition UIs. This element describes the data of its child elements.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    name

    Defines the extension point (e.g., Transition Validators, Transition Executors, Transition User Interfaces and Transition Scripts) that is used in the lifecycle.

    You can define only one extension point of a kind, because the underlined implementation ignores multiple elements and takes only one into consideration.

    For transitionApproval, the following rules apply regarding roles and votes:

      • roles="" - Any user can vote
      • roles="admin" - Only users with an admin role can vote
         
      • votes="2" - Two votes are required for approval.
     
    • checkItems - If the user is defining check items as its child elements.
    • transitionValidations - If the data element defines transition validations.
    • transitionPermission - If the data element defines transition permissions.
    • transitionScripts - If the data element describes the transition scripts.
    • transitionExecution - If the data element defines programmable executions for transitions.
    • transitionUI - If the data element defines custom UIs that accept user input for transitions.
    • transitionApproval - If the data element defines lifecycle transitions that need user approvals.
    Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <data name="checkItems">
    	<item name="Code Completed" forEvent="">
    	<item name="WSDL, Schema Created" forEvent="">
    </data>
    
    <data name="transitionValidation">
    	<validation forEvent="" class="">
    		<parameter name="" value=""/>
    	</validation>
    </data>
    
    <data name="transitionPermission">
    	<permission forEvent="" roles=""/>
    </data>
    
    <data name="transitionScripts">
        <js forEvent="">
            <console function="">
                <script type="text/javascript">
                </script>
            </console>
            <server function="">
                <script type="text/javascript"></script>
            </server>
        </js>
    </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>

     

    Back to Top ^

    ...

    <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/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    nameDefines the name of the check item. ES allows you to define check items for each transition.N/A Optional 
    forEventDefines 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. OptionalThe forEvent value is defined under the <transition> element with the event  attribute.
    Sample implementations
    Code Block
    languagehtml/xml
    <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>

     

    Back to Top ^

    ...

    <permissions> 

    XML Syntax<permissions>
    Description

    This element defines permissions for that specified action and holds more than one child element that defines permissions. Under check items, the permissions element defines the users that have the capability of checking (check/uncheck) that check item. If a user does not have permissions to check a check item, then the management console will display that specific item in disabled mode. Thereby, this helps a user to clearly identify what items he/she has the permission to check.

    Mandatory/OptionalOptional

    This element doesn't have any attributes.

    Back to Top ^

    ...

    <permission> 

    XML Syntax<permission roles=""/>
    Description

    This element is a child element of the permissions element and will define the roles that have permissions to do the specified action. Here, the attribute roles accepts a comma (",") separated list and these roles should be present in ES.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    rolesDefines the name of the user role to do the specified action.  MandatoryYou can define multiple user roles as comma (",") separated.
    Sample Implementations
    Code Block
    languagehtml/xml
    <permission roles="admin,manager"/>

     

    Back to Top ^

    ...

    <validations> 

    XML Syntax<validations>
    Description

    Defines the validations that ES completes for each action. This element can contain one or more validation elements. Check Item validators are one of many well-defined extension points supported by ES.

    Mandatory/OptionalOptional

    This element does not have any attributes.

    Back to Top ^

    ...

    <validation> 

    XML Syntax<validation forEvent="" class="">
    Description

    This element defines the event and the validation class that is invoked at runtime.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    forEvent

    Defines the event for which this validation should be performed. This gives you the flexibility to define validations for each event. As you have the ability to define validations for check items, it makes it easy to validate different things at different levels.

    N/A MandatoryThe forEvent value is defined under the <transition> element with the event  attribute.
    classDefines the class that is executed at runtime to perform the validation. You must give the full, qualified name of a class that implements the CustomValidations interface, as the value for the class attribute.N/A Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <validation forEvent="" class=""></validation>

    Back to Top ^

    ...

    <parameter> 

    XML Syntax<parameter name="" value=""/>
    Description

    The parameter elements are used to pass parameters to the validation and execution classes. It is up to the user to define the name value pairs. A validation element or an execution element can have more than one parameter element, and it is up to the user code to handle this. The underline implementation of the DefaultLifeCycle class will pass all the parameters in a map object.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    name

    Defines the name used to identify the parameter.

    N/A Mandatory 
    valueDefines the value of the defined parameter.N/A Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
     <parameter name="endpoint.mediatype" value="application/vnd.wso2.endpoint"/> forEvent="Demote" roles="admin" votes="5"/>
    </data>

     

    Back to Top ^

    ...

    Anchor

    ...

    item

    ...

    item

    ...

    <item> 

    XML Syntax<js <item name="" forEvent="">
    DescriptionES lifecycle configuration has the ability to allow JavaScript functions to execute on both the server-side and the client-side. The js element defines the scripts that is executed for different events
    Description

    These elements contain the check items for each state. There can be more than one of these elements.

    Mandatory/OptionalOptional
    Attributes
    the respective transition for which the JavaScript function is executed
    AttributeDescriptionDefault ValueFixed ValuesMandatory/OptionalNotes/
    Optional
    Notes
    nameDefines the name of the check item. ES allows you to define check items for each transition.N/A Optional 
    forEventDefines 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.  MandatoryOptionalThe forEvent value is defined under the <transition> element with the event  event  attribute.
    Sample implementations
    Code Block
    languagehtml/xml
    <js<data name="checkItems">
        <item name="Effective Inspection Completed" forEvent="">></item>
         <item name="Test Cases <consolePassed" functionforEvent="">....</console>></item>
        <item name="Smoke Test <serverPassed" functionforEvent="">....</server>></item>
    </js>data>

     

    Back to Top ^

    ...

    Anchor

    ...

    js

    ...

    js

    ...

    <js> 

    XML Syntax<console function<js forEvent=""/>
    Description

    Defines the JavaScript function that ES needs ES lifecycle configuration has the ability to allow JavaScript functions to execute on both the server-side and the client-side. The js element defines the scripts that is executed for different events.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/OptionalNotes
    functionforEvent

    Defines the name of the function that is executed when an asset moves from one lifecycle state to anotherrespective transition for which the JavaScript function is executed.

      MandatoryThe forEvent value is defined under the <transition> element with the event  attribute.
    Sample implementations
    Code Block
    languagehtml/xml
    <console function="">
    	<script type="text/javascript"> </script>
    </console><js forEvent="">
         <console function="">....</console>
         <server function="">....</server>
    </js>

     

    Back to Top ^

    ...

    Anchor

    ...

    console

    ...

    console

    ...

    <console> 

    XML Syntax<script type<console function=""text/javascript">
    Description

    Contains Defines the actual JavaScript code segment. You can use this section to define any code segmentJavaScript function that ES needs to execute on the client-side.

    Mandatory/OptionalOptional
    Attributes
    Set to text/javascript because at the time of this writing, ES only supports JavaScript as a scripting language.
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notestype

    The scripting language that is supported by ES.

     
    function

    Defines the name of the function that is executed when an asset moves from one lifecycle state to another.

      Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <console function="">
    	<script type="text/javascript"><> </script>
    </console>

    Back to Top ^

    ...

    Anchor
    server
    server

    <server> 

    XML Syntax<server function="">
    Description

    This is the same as the console function and the only difference is that this element defines the scripts that are executed on the server-side.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    function

    Defines the name of the function that is executed at an asset transition from one state to another.

      MandatoryThe function should be a ES supported scripting language.
    Sample implementations
    Code Block
    languagehtml/xml
    <server function="">
    	<script type="text/javascript"></script>
    </server>

     

    Back to Top ^

    ...

    Anchor
    execution
    execution

    <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 execution element defines the event and the execution class that is invoked at runtime.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    forEvent

    Defines the event for which this execution is performed. This gives you the flexibility to define executions for each event.

      MandatoryThe forEvent value is defined under the <transition> element with the event attribute.
    classDefines 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.   MandatoryThis 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.
    Sample implementations
    Code Block
    <execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.ServiceVersionExecutor">

     

    Back to Top ^

    ...

    Anchor
    execution
    execution

    <parameter> 

    XML Syntax<parameter name="" value=""/>
    Description

    The name attribute defines the name of the parameter and value attribute defines the corresponding value of the parameter. This parameter element is defined under the <execution> element.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    name

    This attribute defines the name of the parameter. 

     
    • currentEnvironment - This defines the fully qualified path of the underlying resource at its current state (before the transition takes place).

    • targetEnvironment - This parameter defines the fully qualified path to which the particular resource is transited when a particular state transition takes place which is defined in the "forevent" attribute of the <execution> element. 
       
    • service.mediatype - This parameter denotes the MIME mediatype of the given service under the state transition.

    • wsdl.mediatype - This parameter denotes the MIME mediatype of the WSDL file for the corresponding service under the state transition.

    • endpoint.mediatype - This parameter denotes the MIME mediatype of the endpoint for the given asset type when the particular state transition takes place.
    all these parameters are mandatory. 
    valueThis attribute defines the value held by the parameter.    
    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>

     

    Back to Top ^

    ...

    Anchor
    ui
    ui

    <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 allows you to pass inputs that would be utilized when performing a transition. Note that you can not define an external reference link as the href attribute value. Instead you need to provide a relative path in the Carbon server as the value of the href attribute.

    Mandatory/OptionalOptional
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    forEvent

    Defines the event for which the UI appears.

    N/A OptionalThe forEvent value is defined under the <transition> element with the event  attribute.
    hrefDefines the hyperlink that is opened and presented to the user, when a lifecycle transition operation is performed from the ES Management Console.N/A Optional 
    Sample implementations
    Code Block
    languagehtml/xml
    <ui forEvent="Promote" href="../lifecycles/pre_invoke_aspect_ajaxprocessor.jsp?currentEnvironment=/_system/governance/branches/testing/"/>

     

    Back to Top ^

    ...

    Anchor
    transition
    transition

    <transition> 

    XML Syntax<transition event="" target=""/>
    Description

    Defines the transitions, by specifying the name of the lifecycle state and the target lifecycle state, instead of using static transitions. Any number of transitions for one lifecycle state are supported.

    Mandatory/OptionalMandatory
    Attributes
    AttributeDescriptionDefault ValueFixed ValuesMandatory/
    Optional
    Notes
    event

    Defines the transition event name, e.g., Promote, Demote or any name that the user specifies.

    N/A MandatoryThis event name is used in the forEvent to trigger a specific event, before this transition this going on.
    targetDefines the target state of the transition.N/A Mandatory 
    Sample implementations
    Code Block
    languagehtml/xml
    <transition event="Promote" target="Tested"/>

    Back to Top ^