the txt format in attachment.
appreciate the reply...
Turbin 3.0 core Specification
------nirvana edtion
Contents
Status
.................................................................................................
Changes in this document since
v3.0...........................................
Preface
...............................................................................................
Who should read this document
..................................................
API Reference
.............................................................................
Other Java?Platform
Specifications..........................................
Other Important References
........................................................
Providing
Feedback.....................................................................
Acknowledgements
.....................................................................
Chapter 1:
Overview..........................................................................
What is a
Pipeline?........................................................................
What is a Valve? .......................................................
What is a Rundata? .......................................................
An
Example.................................................................................
Relationship to turbine3.x Platform .....................
Chapter 2: The RunData Interface
......................................................
Parameters
...................................................................................
Attributes
.....................................................................................
RunData Life Cycle ......................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Valve Handling
...............................................................
Chapter 3: The Valve Interface
......................................................
Service Handling Methods
.........................................................
Controller valve support
...................................................
Condition valve support
If valve
Case valve
While valve
Terminal valve support
Break valve
Continue valve
Exit vavle
Functional valve support
Valve Life Cycle
........................................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Service Handling
...............................................................
Chapter 4: The Pipeline Interface
......................................................
Status Methods .........................................................
Pipeline Life Cycle
........................................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Status
Changes in this document since v3.0
because this is the first nirvana specification...
no changs take place...
welcom join the specification team
members:
[EMAIL PROTECTED]
Preface
***target
***Who should read this document
�� Nirvana target to establish a software component specification .
The principle based on the composition.Throgh pipelines,user compose the
sigle function components to complication components to solve problems.
This document is intended for consumption by:
�� Nirvana developer and others who take care of component tech
that want to provide pipeline implementation...
�� turbine3.x users that want to undstand the principle of nirvana.
Please note that this specification is not a User��s Guide and is not
intended to be used as
such.
***API Reference
The Nirvana API Reference, v3.0 provides the complete description of
all
the interfaces,
classes, exceptions, and methods that compose the Nirvana API. This
document contains the
full specification of class, interfaces, method signatures and
accompanying javadoc that
defines the Servlet API.
***Other Java?Platform Specifications
lack
***Other Important References
lack
***Providing Feedback
The success of the Java Community Process depends on your
participation
in the community.
We welcome any and all feedback about this specification. Please e-mail
your comments to:
[EMAIL PROTECTED]
Please note that due to the volume of feedback that we receive, you will
not normally receive
a reply from an engineer. However, each and every comment is read,
evaluated, and archived
by the specification team.
***Acknowledgements
Chapter 1: Overview
//login.xml
<map>
<valveListener className="ValidationValve.class" id="validation"/>
<valveListener className="WriteLogValve.class" id="writeLog"/>
<valveListener className="LoginSuccessValve.class" id="loginSuccess"/>
<valveListener className="LoginFailurValve.class" id="loginFailure"/>
<pipeline id="login" >
<valve type="FUNCTION" bindId="validation"/>
<valve type="IF" parameter="login.flag==true">
<pipelineRef id="loginSuccess"/>
<valve type="ELSE"/>
<pipelineRef id="loginFailure"/>
<valve type="EXIT"/>
</valve>
<valve type="FUNCTION" bindId="getUserInfo"/>
<valve type="SWITCH" parameter="user.sex">
<valve type="CASE" value="0">
<pipelineRef id="sex0"/>
<valve type="EXIT"/>
<valve type="BREAK"/>
</valve>
<valve type="CASE" value="1">
<pipelineRef id="sex1"/>
<valve type="BREAK"/>
</valve>
</valve>
<valve type="FUNCTION" bindId="writeLog">
</pipeline>
<pipeline id="loginSuccess">
<valve type="FUNCTION" bindId="loginSuccess,writeLog"/>
</pipeline>
<pipeline id="loginFailure">
<valve type="FUNCTION" bindId="loginFailure">
</pipeline>
</map>
<map>
//turbine.xml
<pipeline id="turbine">
<valve type="FUNCTION" bindId="sessionValidaor"/>
<valve type="IF" parameter="flag.hasLogin==false">
<valve type="FUNCTION" bindId="doLogin"/>
<valve type="EXIT"/>
</valve>
<valve type="IF" parameter="hasAction==true">
<pipelineRef id="ActionLoder"/>
</valve>
<valve type="IF" parameter="hasPage==true">
<pipeline id="PageLoader"/>
</vavle>
</pipeline>
</map>
//progrm
nirvana.Map map = new nirvana.Map("login.xml");
nirvana.Pipeline.transport(runData,map);
String html = render.render(runData);
when u want to transport a RunData Object through a Pipeline according
a
map,
what happend:
first a Pipeline gets the map,and puts the RunData object into
itself.then
according the map, routes the Rundata Object to first valve and finds it
is a Function Valve,so
invokes the valve's service method,which invokes the listeners service
method ,then
continue go and find the next valve and find it is a IF valve,get the
condition is
login.flag,so check the login.flag in pipeline's status whether it is
true,if true,then
put the next valves or pipeline into IF valve's true line(true line like a
vector)
until find a ELSE valve or end of this IF valve,
then it execute the IF valve's true line's valve or pipleline one by one.
if find the login.flag is false,
it ommits valves until it finds a ELSE valve or end of the IF valve,then
put the valve or pipeline
between the ELSE valve and the end of IF valve into it's false line(false
line like vector)
when meeting the
end IF valve and execute the false line valves one by one. next find a
EXIT valve,then
the rundata exit the pipeline
if the login.flag is true, next valve will encounter.it is a funcation
valve invoke the valve and
get the next valve,it is a swith valve...
***What is a Pipeline?
The idea of a pipeline is being taken from Catalina in its entirety :-) I
would like to take
the idea further and implement Valves instead of hardcoding particular
methods in a pipeline.
It would be more flexible to specify Valves for a pipeline in an XML file
(we can also rip off
the digester rules from T4) and have transport() as part of the interface.
So a set of Valves
would be added to the pipeline and the pipeline would 'invoke' each valve.
In the case
Turbine each Valve would produce some output to be sent out the pipe. I
think with another
days work this can be fully working.
***What is a Valve?
lack
***What is a Rundata?
lack
***An Example
lack
***Relationship to turbine3.x Platform
lack
Chapter 2: The RunData Interface
***Parameters
lack
***Attributes
lack
RunData Life Cycle
lack
Loading and Instantiation
lack
Initialization
lack
Valve Handling
lack
Chapter 2: The Valve Interface
lack
***Service Handling Methods
lack
***Controller valve support
lack
***Condition valve support
lack
***If valve
lack
***Case valve
lack
***While valve
lack
***Terminal valve support
lack
***Break valve
lack
***Continue valve
lack
***Exit vavle
lack
***Functional valve support
lack
***Valve Life Cycle
lack
***Loading and Instantiation
lack
***Initialization
lack
***Service Handling
lack
Chapter 2: The Pipeline Interface
***Status Methods
lack
***Pipeline Life Cycle
lack
***Loading and Instantiation
lack
Initialization
lack
_________________________________________________________________
������� MSN Explorer��http://explorer.msn.com/lccn/intl.asp
Turbin 3.0 core Specification
------nirvana edtion
Contents
Status
.................................................................................................
Changes in this document since
v3.0...........................................
Preface
...............................................................................................
Who should read this document
..................................................
API Reference
.............................................................................
Other Java� Platform
Specifications..........................................
Other Important References
........................................................
Providing
Feedback.....................................................................
Acknowledgements
.....................................................................
Chapter 1:
Overview..........................................................................
What is a
Pipeline?........................................................................
What is a Valve? .......................................................
What is a Rundata? .......................................................
An
Example.................................................................................
Relationship to turbine3.x Platform .....................
Chapter 2: The RunData Interface
......................................................
Parameters
...................................................................................
Attributes
.....................................................................................
RunData Life Cycle ......................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Valve Handling
...............................................................
Chapter 3: The Valve Interface
......................................................
Service Handling Methods
.........................................................
Controller valve support
...................................................
Condition valve support
If valve
Case valve
While valve
Terminal valve support
Break valve
Continue valve
Exit vavle
Functional valve support
Valve Life Cycle
........................................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Service Handling
...............................................................
Chapter 4: The Pipeline Interface
......................................................
Status Methods .........................................................
Pipeline Life Cycle
........................................................................
Loading and Instantiation
...................................................
Initialization........................................................................
Status
Changes in this document since v3.0
because this is the first nirvana specification...
no changs take place...
welcom join the specification team
members:
[EMAIL PROTECTED]
Preface
***target
***Who should read this document
�� Nirvana target to establish a software component specification .
The principle based on the composition.Throgh pipelines,user compose the
sigle function components to complication components to solve problems.
This document is intended for consumption by:
�� Nirvana developer and others who take care of component tech
that want to provide pipeline implementation...
�� turbine3.x users that want to undstand the principle of nirvana.
Please note that this specification is not a User��s Guide and is not
intended to be used as
such.
***API Reference
The Nirvana API Reference, v3.0 provides the complete description of
all
the interfaces,
classes, exceptions, and methods that compose the Nirvana API. This
document contains the
full specification of class, interfaces, method signatures and accompanying
javadoc that
defines the Servlet API.
***Other Java� Platform Specifications
lack
***Other Important References
lack
***Providing Feedback
The success of the Java Community Process depends on your
participation in
the community.
We welcome any and all feedback about this specification. Please e-mail
your comments to:
[EMAIL PROTECTED]
Please note that due to the volume of feedback that we receive, you will
not normally receive
a reply from an engineer. However, each and every comment is read,
evaluated, and archived
by the specification team.
***Acknowledgements
Chapter 1: Overview
//login.xml
<map>
<valveListener className="ValidationValve.class" id="validation"/>
<valveListener className="WriteLogValve.class" id="writeLog"/>
<valveListener className="LoginSuccessValve.class" id="loginSuccess"/>
<valveListener className="LoginFailurValve.class" id="loginFailure"/>
<pipeline id="login" >
<valve type="FUNCTION" bindId="validation"/>
<valve type="IF" parameter="login.flag==true">
<pipelineRef id="loginSuccess"/>
<valve type="ELSE"/>
<pipelineRef id="loginFailure"/>
<valve type="EXIT"/>
</valve>
<valve type="FUNCTION" bindId="getUserInfo"/>
<valve type="SWITCH" parameter="user.sex">
<valve type="CASE" value="0">
<pipelineRef id="sex0"/>
<valve type="EXIT"/>
<valve type="BREAK"/>
</valve>
<valve type="CASE" value="1">
<pipelineRef id="sex1"/>
<valve type="BREAK"/>
</valve>
</valve>
<valve type="FUNCTION" bindId="writeLog">
</pipeline>
<pipeline id="loginSuccess">
<valve type="FUNCTION" bindId="loginSuccess,writeLog"/>
</pipeline>
<pipeline id="loginFailure">
<valve type="FUNCTION" bindId="loginFailure">
</pipeline>
</map>
<map>
//turbine.xml
<pipeline id="turbine">
<valve type="FUNCTION" bindId="sessionValidaor"/>
<valve type="IF" parameter="flag.hasLogin==false">
<valve type="FUNCTION" bindId="doLogin"/>
<valve type="EXIT"/>
</valve>
<valve type="IF" parameter="hasAction==true">
<pipelineRef id="ActionLoder"/>
</valve>
<valve type="IF" parameter="hasPage==true">
<pipeline id="PageLoader"/>
</vavle>
</pipeline>
</map>
//progrm
nirvana.Map map = new nirvana.Map("login.xml");
nirvana.Pipeline.transport(runData,map);
String html = render.render(runData);
when u want to transport a RunData Object through a Pipeline according
a
map,
what happend:
first a Pipeline gets the map,and puts the RunData object into
itself.then
according the map, routes the Rundata Object to first valve and finds it is
a Function Valve,so
invokes the valve's service method,which invokes the listeners service
method ,then
continue go and find the next valve and find it is a IF valve,get the
condition is
login.flag,so check the login.flag in pipeline's status whether it is
true,if true,then
put the next valves or pipeline into IF valve's true line(true line like a
vector)
until find a ELSE valve or end of this IF valve,
then it execute the IF valve's true line's valve or pipleline one by one.
if find the login.flag is false,
it ommits valves until it finds a ELSE valve or end of the IF valve,then
put the valve or pipeline
between the ELSE valve and the end of IF valve into it's false line(false
line like vector)
when meeting the
end IF valve and execute the false line valves one by one. next find a EXIT
valve,then
the rundata exit the pipeline
if the login.flag is true, next valve will encounter.it is a funcation
valve invoke the valve and
get the next valve,it is a swith valve...
***What is a Pipeline?
The idea of a pipeline is being taken from Catalina in its entirety :-) I
would like to take
the idea further and implement Valves instead of hardcoding particular
methods in a pipeline.
It would be more flexible to specify Valves for a pipeline in an XML file
(we can also rip off
the digester rules from T4) and have transport() as part of the interface.
So a set of Valves
would be added to the pipeline and the pipeline would 'invoke' each valve.
In the case
Turbine each Valve would produce some output to be sent out the pipe. I
think with another
days work this can be fully working.
***What is a Valve?
lack
***What is a Rundata?
lack
***An Example
lack
***Relationship to turbine3.x Platform
lack
Chapter 2: The RunData Interface
***Parameters
lack
***Attributes
lack
RunData Life Cycle
lack
Loading and Instantiation
lack
Initialization
lack
Valve Handling
lack
Chapter 2: The Valve Interface
lack
***Service Handling Methods
lack
***Controller valve support
lack
***Condition valve support
lack
***If valve
lack
***Case valve
lack
***While valve
lack
***Terminal valve support
lack
***Break valve
lack
***Continue valve
lack
***Exit vavle
lack
***Functional valve support
lack
***Valve Life Cycle
lack
***Loading and Instantiation
lack
***Initialization
lack
***Service Handling
lack
Chapter 2: The Pipeline Interface
***Status Methods
lack
***Pipeline Life Cycle
lack
***Loading and Instantiation
lack
Initialization
lack
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>