[Registry-dev] Multiple lifecycles and renaming "Lifeycle"

Glen Daniels glen at wso2.com
Mon Mar 17 10:11:18 PDT 2008


Hi Deepal, team:

Regarding multiple lifecycles...

Deepal wrote:
>> Sure - for instance, every resource on the system might be in a 
>> lifecycle involving editorial review to watch for spelling and 
>> profanity which has "needs-review" and "ok" states.  In addition, 
>> different departments might have their own development lifecycles of 
>> the built/tested/deployed variety.
> Well as I can understand you are talking lifecycle + lifecycle 
> conditions.  So in any given lifecycle phase there may be many stages 
> (or conditions), but at any given time a resource can not be in two 
> lifecycle phases. As an example for QA state to be satisfied , there 
> might have a number of scenario checking (different JDKs , different OS 
> and etc... ) , so once all done it will move to some other state (say 
> production ). Then the resource is in production state.

No, you didn't quite get me.  I'm talking about the case where one 
designer has written the "development" lifecycle (which has 
built/tested/deployed states), and a completely different designer has 
written the "editorial-review" lifecycle (as described above).  The 
end-user / admin should be able to associate BOTH of these lifecycles 
with a given Resource.  In particular, whether a resource is 
built/tested/deployed has nothing to do with whether it has been 
spell-checked in my example - they're orthogonal.

I just want to note this again also; the notion of "phases" or "states" 
is completely implementation-specific within a particular Lifecycle! 
The Lifecycle class only processes actions and offers up a list of 
available actions.  It's totally up to the implementation how, and if, 
it wants to manage state.

The "Lifecycle" concept we have now is very powerful, and very abstract. 
   I was talking to Paul about using it in another case to add some 
custom UI which enables associating a "contact" with a given Resource 
(will start another thread here).  It took a little explaining to get 
Paul to grok quite how generic the current stuff is, and I think part of 
the problem (as it seems to be with Deepal) is the name.  So, I'd like 
to propose we rename "Lifecycle" to "Aspect", which I think is a bit 
clearer - an Aspect is simply a custom class which understands/offers 
custom behaviors that you associate with a Resource.  You can have n 
Aspects on a given Resource.  Some Aspects will be stateful 
("in-review"/"reviewed") and some may just be behavioral (an action 
which emails the Resource content to Joe).

OK with everyone?

--Glen



More information about the Registry-dev mailing list