<?xml version="1.0"?>
<document>
    <properties>
        <title>Jackrabbit Extension Framework - Loose Ends</title>
    </properties>
    <body>
        <section name="Dependencies">
            <p>
                The Jackrabbit Extension Framework itself has no provision of
                defining dependencies amongst extensions of a certain
                type. This has to be implemented in the application of
                the extension framework.
            </p>
            <p>
                Some examples of how this might be accomplished follow.
            </p>
            <subsection name="Priorities">
                <p>
                    If the extensions define sort of a operations chain,
                    a priority may be specified which defines the order
                    in which the operations are executed. The priority
                    may be stored in the extension node as an additional
                    property, which is read by the extension
                    constructor.
                </p>
            </subsection>
            <subsection name="Dependencies">
                <p>
                    If the extensions define services provided which may
                    have dependencies amongst each other, the respective
                    dependencies may be stored in an additional property
                    in the descriptor node, which is read by the
                    extension constructor. Before actually activating
                    the services, the dependencies may be handled by the
                    application to define an activation order.
                </p>
            </subsection>
        </section>
    </body>
</document>