How to set Lifecycle Checkpoints(aka Time in Lifecycle)

Some SOA Governance tools let you know the amount of hours spent on the development of a specific service and calculate how much time you have to deliver it. This is a very useful feature to calculate approximate amount of time/money that was also saved or spent. WSO2 Governance Registry support you to do this by Lifecycle checkpoints (aka 'Time in lifecycle' as we call it at WSO2).


First to get a basic idea about WSO2 GReg Lifecycles please go through Lifecycle Sample documentation. If you have fair knowledge about LC tags and attributes you can straightaway add the first checkpoint to LC. You can find the official GReg documentation for this from here.


Lets add <checkpoints> tag just after <transition event="Promote" target="Tested" /> line


<checkpoints>
   <checkpoint id="DevelopmentOne" durationColour="green">
     <boundary min="0d:0h:0m:0s" max="0d:0h:60m:00s" />
   </checkpoint>
</checkpoints>


Kindly find the explanation below,


checkpoints : Inside of this tag user can define 1 or more checkpoints. This is a mandatory tag.
checkpoint : Denote an individual checkpoint. This is a mandatory tag.
  • id : An identifier for the checkpoint, This is a user defined mandatory attribute.
  • durationColour : color name of the duration. blue, green, red like wise all the single word color names works here. to see the full list of color names please visit here. This is a mandatory attribute.


boundary : This tag is only to define min and max times of the checkpoint. This is a mandatory tag.
  • min : Specify the minimum or start time of the checkpoint. This is a mandatory attribute.
  • max : Specify the maximum or end time of the checkpoint. This is a mandatory attribute.


Let's say you wanted to add 3 checkpoints with 3 different duration colors, The state configuration will be something like below.




<state id="Development">
  <datamodel>
     <data name="checkItems">
        <item name="Code Completed" forEvent="Promote" />
        <item name="WSDL, Schema Created" forEvent="Promote" />
        <item name="QoS Created" forEvent="Promote" />
     </data>
  </datamodel>
  <transition event="Promote" target="Tested" />
  <checkpoints>
     <checkpoint id="DevelopmentOne" durationColour="green">
        <boundary min="0d:0h:0m:0s" max="0d:0h:00m:20s" />
     </checkpoint>
     <checkpoint id="DevelopmentTwo" durationColour="blue">
        <boundary min="0d:0h:00m:20s" max="0d:0h:00m:40s" />
     </checkpoint>
     <checkpoint id="DevelopmentThree" durationColour="red">
        <boundary min="0d:0h:00m:40s" max="0d:0h:04m:00s" />
     </checkpoint>
  </checkpoints>
</state>


Please download the SampleLifeCycle.xml.

Thats it from here. If you have any questions please create a stackoverflow question and attached it as a comment below.

Comments