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:
Poor Oddjob, I thought as I read Craig Flichel’s Feature Comparison of Java Job Schedulers featuring Obsidian, Quartz, Cron4j and Spring. Yet again it hasn’t made the grade, it’s been passed over for the scheduling team.
Never mind I say, you’re just a little bit different and misunderstood. Let’s have a kick about in the back yard and see what you can do…
Life is, and always has been, about executing a sequence of jobs – hunt mammoth, skin mammoth, cook mammoth, make clothes from mammoth. In the beginning an individual would have done all these jobs, but it didn’t take long for ancient societies to realise that it was more efficient for people to specialise in one type of job and to offer the product of that job as a service. Two hundred thousand years later we have McDonald’s and Gap. Whether this is progress is for you to decide – but it is undeniable that this model has allowed vastly complex systems of millions of components (us) to function and thrive.
Spring is great for creating flexible applications by assembling loosely coupled components using XML. Here’s a simple Spring configuration file:
<bean id="hello" class="example.HelloWorldBean" />
Except that now you have to go back to your context assisted IDE and write some Java to launch it!
It’s done! That line in the sand has been drawn. Oddjob 1.2 is out.
In New Features Part 1, I mentioned that one of the biggest impediments to a release was the urge to implement that one last killer feature. Well I’m weak – I caved, I did another feature.
JMX With Oddjob
The new feature is the ability to get and set attributes and invoke operations of remote MBeans from within Oddjob.
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
One new features in Oddjob 1.2, took me ages – and it’s just two little buttons!
Here they are:
All they do is move a row up or down. Here we need to move our row up, so that
favourite.fruit is defined before it is needed to define
It’s coming to that time again. That time where I draw a line in the README file and call it a release. Being the only developer on a project that doesn’t have a large user base, a release is really just a state of mind. Like the flying ants that decide on mass to pour forth from their nests without the aid of any social media – it becomes time for a release.
Here’s my previous password passed to Spring example run from Oddjob:
Run as a GUI, Oddjob provides a simple form for entering properties including a password prompt.