||
Skip to end of metadata
Go to start of metadata

The configuration model of the WSO2 Governance Registry lifecycles gives users the ability to define custom behavior to a registry lifecycle operation. This model is capable of defining the following custom behaviors:

  • Define permissions for each check item
  • Define custom validations for each check item
  • Define a set of check items for each state transition
  • Define a custom colour for the current lifecycle state
  • Define permissions for each state transition
  • Define custom validations for each state transition
  • Define state duration in the dd:hh:mm:ss format for each lifecycle state
  • Define programmable executions for each state transition
  • Define custom UIs accepting user input for each state transition
  • Define a lifecycle approval for state transition

Configuration Model

<aspect name="SampleLifeCycle" class="org.wso2.carbon.governance.registry.extensions.aspects.DefaultLifeCycle">
    <configuration type="literal">
        <lifecycle>
            <scxml xmlns="http://www.w3.org/2005/07/scxml"
                   version="1.0"
                   initialstate="Development">
                <state id="Development">
                    <datamodel>
                        <data name="checkItems">
                            <item name="Code Completed" forEvent="">
                                <!--<permissions>
                                    <permission roles=""/>
                                </permissions>
                                <validations>
                                    <validation forEvent="" class="">
                                        <parameter name="" value=""/>
                                    </validation>
                                </validations>-->
                            </item>
                            <item name="WSDL, Schema Created" forEvent="">
                            </item>
                            <item name="QoS Created" forEvent="">
                            </item>
                        </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="transitionApproval">
                            <approval forEvent="Promote" roles="" votes="2"/>
                        </data>-->
                    </datamodel>
                    <transition event="Promote" target="Tested"/>                  
                    <checkpoints>
                           <checkpoint id="DevelopmentOne" durationColour="green">
                               <boundary min="0d:0h:0m:0s" max="1d:0h:00m:20s"/>
                           </checkpoint>
                           <checkpoint id="DevelopmentTwo" durationColour="red">
                               <boundary min="1d:0h:00m:20s" max="23d:2h:5m:52s"/>
                           </checkpoint>
                    </checkpoints>
                </state>
                <state id="Tested">
                    <datamodel>
                        <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>
                    </datamodel>
                    <transition event="Promote" target="Production"/>
                    <transition event="Demote" target="Development"/>
                </state>
                <state id="Production">  
                    <transition event="Demote" target="Tested"/>
                </state>                
            </scxml>
        </lifecycle>
    </configuration>
</aspect>

For details of each element of the configuration, see Lifecycle Configuration Elements. For a sample of lifecycle configurations in actions, see the Lifecycle Sample.

 
  • No labels