Oddjob 1.3 Released

This release would best be described as a ‘Consolidation Release’. The biggest improvements are under the hood and result in an Oddjob that runs much better but in an almost indiscernible way. There are however a few new and noteworthy features. These include:

Setting a Time Next Due Date

This can now be changed while the timer is running. No need to stop, reconfigure, and restart.

Timer Set Next DueFor Each

The For Each job has been improved. The run window (The number of jobs loaded at any one time) is now also used in parallel execution mode. The ability to use Oddjob designer on the nested configuration has also been added.

For Each Configuration EditAnd finally…

One under the hood improvement worth a brief mention is Bean Bus. Bean Bus is Oddjob’s internal Pipes and Filters framework, and was previously only used by SQLJob to transform String queries into Streams of Magic Beans (BeanUtils DynaBeans really – but doesn’t Magic Beans sound cool?). Bean Bus has now been given a polish and bought above the hood with the introduction of a bean-bus job that allows arbitrary pipelines to be assembled. A Bean Bus starts with a Bus Driver that is a Java Runnable that drives Beans to a series of destinations that are just Java Collections. The idea being to create a framework that is as non-invasive as possible.
Here’s a Simple Bean Bus:
Bean Bus ExampleAnd here’s how this looks as configuration:

<oddjob>
    <job>
        <bean-bus>
            <parts>
                <bus:iterable-driver id="bean-bus" xmlns:bus="oddjob:beanbus">
                    <beans>
                        <list>
                            <values>
                                <value value="Apple"/>
                                <value value="Orange"/>
                                <value value="Pear"/>
                                <value value="Kiwi"/>
                                <value value="Banana"/>
                            </values>
                        </list>
                    </beans>
                </bus:iterable-driver>
                <bean batchSize="2" class="org.oddjob.beanbus.destinations.Batcher" id="batcher"/>
                <bus:bean-capture id="results" xmlns:bus="oddjob:beanbus"/>
            </parts>
        </bean-bus>
    </job>
</oddjob>

Bean Bus is very much a work in progress. There will be more on Bean Bus in the coming months.

And…

That is pretty much it for Oddjob 1.3. For a full list of fixes and enhancements please see the README.txt, download details are here, and I hope you enjoy using it.

Comments are closed.