Rob Gordon is a seasoned Java developer and a big fan of open source. Oddjob is his own open source project to make job scheduling and task automation in Java much much easier. Rob is based in London. Rob is a DZone MVB and is not an employee of DZone and has posted 17 posts at DZone. You can read more from them at their website. View Full User Profile

Oddjob 1.2 New Features – Part 3

  • submit to reddit

Properties in Oddjob

Two cool things have happened to properties in Oddjob 1.2. First is that nested property expansion is now supported. This allows us to resolve expressions like


with properties such as:



Let’s see it working:
Properties Demo Running From Console
First running from the console, and now below running in Oddjob Explorer:

Properties Demo Running in Oddjob Explorer

Here’s the configuration:

            <file file="" />
            <input-text prompt="Profile" property="our.profile" />
        <echo><![CDATA[Host is: ${somesys.${our.profile}.host}]]></echo>

The demo is made up of three jobs

Loads the properties file into Oddjob.
Creates a text field prompt that sets the property our.profile

When running from Oddjob Explorer the prompt looks like this:
Profile Property Prompt

Displays the message on the console. Oddjob resolves the property before it is injected into the echo job bean.

The properties job displays all the properties it’s loaded in the properties tab:
Properties Job PropertiesThis brings us nicely on to the second cool feature for properties in Oddjob 1.2, which is that a properties job without any input displays all the properties available at that point in an Oddjob configuration and where they have come from.

If I copy this configuration:



And drop it onto our sequential job in the above example, and then run it. We see:
All Properties
In addition to all the System Properties availble we see our two somesys properties, and our our.profile property. The square brackets show us where the property has come from, which is the name of the job. In our case we did not provide the properties and input jobs with a name and so the default name is used.

And that is two cool new property features in Oddjob 1.2.


Published at DZone with permission of Rob Gordon, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)