[Registry-dev] Resource lifecycle handling

Deepal Jayasinghe deepal at wso2.com
Wed Mar 5 01:16:00 PST 2008


Hi all,

Following are the what I am planing to do for lifecycle handling.

 - Lifecycle consists of five pre-difined phases ( Created ,Developed 
,Tested ,Deployed and Retired)
 - Phases can move only forward not backward , eg we can move from 
Created  to Developed.
 - There will be four directory in the root level to represent all those 
phases except Created   (something similar to SVN trunk , branch and tags)
 - When moving from one phase to another resource will be copied into 
the correct location

For example say we create a resource like
 /products/webservices/Axis2/1.4
then that will be in the Created  state. When we move it will go into 
the Developed  state and all the resources under the above path will be 
copied into
 /Developed/webservices/Axis2/1.4 .

To have the state of the resource we need to add a new flag to the 
databases , so need to change the database as well.

Thoughts  .....

Thank you,
Deepal
> One more thing ,
>
> I think we can have a set of pre-defined phases and provide ability to 
> chose set of them for a given resource. Then in registry.xml we define 
> all the available lifecycle phases and add an ability to define them 
> from the UI.
>
> Thanks
> Deepal
>> Hi all,
>>
>> Now we have full support resource copy and rename we can implement 
>> resource lifecycle management. But we need to think how we are going 
>> to do that , and we need to find out what are the phases we are going 
>> to have in our lifecycle management.
>>
>> So I am thinking to implement something similar to SVN branching as a 
>> way of lifecycle handling , for example when going from QA to 
>> production there will be new branch created for the production phase 
>> , and it will get a new URL so that we can set the permission as well.
>>
>> When it come to implementation are we going to add a new method into 
>> Registry interface or are we going to introduce new class to handle 
>> the lifecycle. I would rather like to come up with a new class for 
>> lifecycle (LifeCycleManger) and separate tab in the GUI as well.
>>
>> One other thing we need to have is custom code running support when a 
>> resource state changes. Say someone tries to move a Resource from QA 
>> phase to production phase then  there should be some set of 
>> pre-conditions and post conditions so we need to have the support for 
>> them as well. This is somewhat  similar to media type handling we 
>> have in the current implementation.
>>
>> I think we have to have a section in registry.xml for lifecycle 
>> handling , and which may contains configurations such as ;
>>  - What are the phases in the lifecycle (Development , QA ,Production 
>> and etc...) , and which should be configurable as well
>> - A way to register handlers for state changes
>> - Associate URL name (suffix) for the phase
>> - Permission based on the lifecycle, (who can change the resource 
>> lifecycle states. )
>>
>> Thoughts ... ?
>>
>> Thanks
>> Deepal
>>
>>
>>





More information about the Registry-dev mailing list