Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Woden should be easy to extend with new assertion checks. For example, it should not be necessary to recompile Woden to add a new assertion check. This will lower the barrier of entry for Woden contributors and also allow Woden to be extended for new profiles, e.g. WS-I if a WSDL 2.0 profile is defined.
Here is a candidate design:
1. The set of assertions is controlled by an XML config file that lists assertion names, possibly scoped to components.
2. Each assertion check is implemented by a class whose name equals the assertion and whose interface contains a validate() method that takes a component and error reporter.
3. At startup, Woden reads the config file and lazily pages in the classes. If a class if not found, the assertion is skipped.
4. At validation time, Woden walks the component tree and calls the in-scope assertion checking classes.