chain Overview
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="fbb8974e-b975-492b-bc29-18434e41ca36"><ac:plain-text-body><![CDATA[ {{ http://jakarta.apache.org/commons/chain/images/chain-logo-white.png}} | [http://jakarta.apache.org/commons/chain/ Commons-chain] A popular technique for organizing the execution of complex processing flows is the "Chain of Responsibility" pattern, as described (among many other places) in the classic "Gang of Four" design patterns book. Although the fundamental API contracts required to implement this design patten are extremely simple, it is useful to have a base API that facilitates using the pattern, and (more importantly) encouraging composition of command implementations from multiple diverse sources.]]></ac:plain-text-body></ac:structured-macro> |
Towards that end, the Chain API models a computation as a series of "commands" that can be combined into a "chain". The API for a command consists of a single method (execute()), which is passed a "context" parameter containing the dynamic state of the computation, and whose return value is a boolean that determines whether or not processing for the current chain has been completed (true), or whether processing should be delegated to the next command in the chain (false).unmigrated-wiki-markup
[BR] A lot of information is available on the \[http://jakarta.apache.org/commons/chain/ chain website\]. If you don't find the information you need you can always contact us using one of the \[http://jakarta.apache.org/site/mail2.html#Commons mailing lists\]. |
External Resources
One potential discussion is for a change of the Context interface in v1.1 or later. [MatthewSgarlata] suggests use of the \[http://morph.sourceforge.net Morph\] framework. Wiki Markup
The text based MMORPG Novamyth uses Chain. Some basic examples of using Chain can be found at the \[http://novamyth.com/blog/static.php?page=static041231-190158 Novamyth website\]. Wiki Markup
FAQ
How can I use commons-chain with the Spring Framework?
...