[windup-dev] POST pipeline exploration

Rebecca Searls rsearls at redhat.com
Wed Sep 11 10:36:57 EDT 2013


As a means of not polluting the existing framework too much but to add some needed 
flow of control functionality for post processing, I've been playing around with 
adding a new pipeline, POST.  The intent of pipeline POST is to provide a place 
to add a defined order of post processing of rules flagged during the analysis
phase.  I've added attribute "id" to the xpath-value rule.  The 'id' is ref-ed
by rules in POST.  Within POST "action" rules are provided with 0 or more ids 
to be associated with an action.  A list of actions are processed in the order they
are defined.

The problem I am encountering with this design is that all POST pipeline contents are
merged into a single POST pipeline class for the analysis phase.  This can be
a problem if there is more than 1 POST pipeline acting upon the same ref ID.
For example if switchyard and airport both altered some_common.xml file the
last one who touched it wins.  I don't see any easy way to instruct Windup
to only run switchyard if there are multiple POST pipelines present.

There is the same last-in problem if the action is associated directly with the xpath-value rule
and there is some product specific information being placed in the file. 


I suppose I could add a cmd-line option and require the user to point to the file containing the POST pipeline to run.
I really hate to require that of the user however.

I'm open to suggestions.


Here is a general idea of what the pipeline would look like.

<windup:pipeline type="POST"  id="My Switchyard Post Processor Pipeline">

    <windup:post-process  class="org.jboss.post.process.switchyard.SwitchyardController">

        <windup:decorators>
            <windup:action class="org.jboss.post.process.switchyard.Service">
                <property name="references">
                    <list>
                        <value>switchyard:Action:create service</value>
                        <value>switchyard:Action:set ref</value>
                    </list>
                </property>
            </windup:action>

            <windup:action class="org.jboss.post.process.switchyard.Binding">
                <property name="references">
                    <list>
                        <value>switchyard:Action:binding config jms-bus</value>
                        <value>switchyard:Action:binding config camel</value>
                    </list>
                </property>
            </windup:action>

            <!-- 
            <windup:action class="org.jboss.post.process.common.ConfigUpdate">
                <property name="references">
                    <list>
                        <value>Adjust:some_common.xml file</value>
                    </list>
                </property>
            </windup:action>

        <windup:decorators>
    </windup:post-process>

</windup:pipeline>



More information about the windup-dev mailing list