Oddjob Changelog

What's new in Oddjob 1.4.0

Dec 5, 2014
  • Changes:
  • Timers can now be forced to complete.
  • Added a classPath property to AntJob.
  • Added the ability to set System properties via the system flag on the Properties Job.
  • StructuralJob's default state operator has been changed back to WORST from ACTIVE. It is felt this is more intuitive in most cases.
  • Support recursive directory wild card matching in Files Type with **.
  • Added flag to delete job to stop accidently deleting root and added extra logging.
  • A Map Type has been added. The keys must be strings but the values can be any type.
  • Structural jobs no longer attempt to Stop their children when destroyed. This allows child jobs to distinguish between being stopped and destroyed.
  • Timers now use a separate TimerState not a ParentState. This allows them to be STARTABLE like services.
  • Service states have been renamed from READY to STARTABLE and COMPLETE to STOPPED. These states have different icons which makes it easier to see the overview of a job sequence from Oddjob Explorer.
  • If job will now supports an asynchronous child job.
  • Added a new Service Finder to the Arooa Tools so that components can find services themselves.
  • Structural jobs (sequential/parallel) will not time out when stopping. The stop flag will remain true so that the job will eventually stop.
  • The List type will now accept elements being added on the fly via a new add property.
  • Repeat Job will now work with any Iterable set of values, i.e. A List.
  • There is a new Sequence Type that creates integer sequences as an iterable. This can be used with Repeat Job and For Each job for instance.
  • Tee type can now be used with an input stream to create a wire tap of what is read from the stream.
  • The Log Panel in Explorer will now show TRACE messages.
  • The ScriptJob class loader can now be set.
  • URLClassLoader type now just creates one class loader when it's configured, not a new one each time it was resolved.
  • AppendType is now configured with a file attribute like FileType and it also shares the same designer.
  • Invoke job has an addition Object[] configuration option for arguments that can be used with tokenizer to be more convenient for simple args.
  • Foreach now COMPLETEs when it has no values.
  • Deferred to A Later Version:
  • Add Parent Started State to User Guide. Document thread, and services.
  • Introduce a witheach job that behaves like foreach except that values are 'pushed' into it.
  • Document synthetic annotations in the Developer Guide.
  • Document conversions. Possibly include conversions in the Reference.
  • Add the ability to change the log level from the UI. Add LogLevel TRACE and NONE to match Log4j.
  • Add serialisation of services.
  • Use a server side file system for choosing files on server component designer forms.
  • Allow pasting and dragging Oddjobs onto the startup panel of Oddjob Explorer.
  • Look at what happens when there are exceptions in a timer. Should there be a haltOnException flag. Should an Exception in a timer be indicated as an exception state not an incomplete state?
  • Add Security to the WebApp (with a Read Only role).
  • Include a Jetty Oddball to allow connecting to an Oddjob server from a browser without the need for a separate Servlet Container.
  • Improve the AJAX JSF front end to be more AJAXy.
  • Introduce the idea of Read only configuration that can't be modified if it's been loaded from a non modifiable resource, i.e. from the class path.
  • Check a configuration hasn't been modified by someone else before a modification is saved back from designer.
  • Add Undo functionality to Oddjob configuration.
  • Improve the job. Follow Ant's lead of changing to a job and copy some of it's feature including; overwrite, force, failonerror, verbose, preservelastmodified. Add the ability to back up the moved files like Linux does.
  • Introduce a FilterType that can filter files by modified date, created date, or match against a regular expression.

New in Oddjob 1.3.0 (Feb 13, 2014)

  • Add a bean-bus element that supports constructing arbitrary bean busses.
  • Change SQLJob to support bean bus components allowing result beans to be streamed into any Collection.
  • Many improvements to the BeanBus framework including changing bean bus destinations to be any Collection.
  • Improve support for Magic Beans which are beans that can be created dynamically within Oddjob.
  • Upgraded HSQL lib to 2.2.9.
  • Add a zero length string check to Check Job. Also added a Designer.
  • Added a Grep Job that can search files or any other input for text or a regular expression.
  • The Date Type now supports the use of shortcuts for NOW, TODAY, TOMORROW and YESTERDAY.
  • The Timer job now supports setting the nextDue property to reschedule a job. Setting the reschedule property has been improved and documented.
  • A serializable wrapper around ImageIcon has been added to Iconic to solve serialization problems between different versions of Java 1.6 on client and server.
  • Added a Database Dialect to SQLJob. This allows result processing to be tailored for different databases if required.
  • Add SQL tests for Oracle. Add a database dialect based on column type that is needed for some Oracle column types.
  • Parallel and Sequential have been given a stateOperator property that allows how they interpret their child states to vary. The SERVICES state operator does what serviceman used to do and so it has been removed.
  • Parallel has been given a join property that restores the pre Version 1.0 behaviour of waiting for the parallel threads to complete before continuing. Note that it's use is discouraged!
  • A new Parent State of STARTED has been introduced to better reflect child service states. Timer and Retry now uses STARTED instead of ACTIVE.
  • Cascade now works correctly with the STARTED state of services.
  • Timer and Retry now allow the nextDue property to be set while the timer is running.
  • New Swing Panel is available that provides Oddjob jobs as simple Buttons. It is not yet an Oddjob element but can be added with
  • Change foreach so that a parallel foreach can have a run window (i.e. preLoad and purgeAfter properties). Also individual foreach jobs may now be configured with designer.
  • Developer Guide documentation has been improved especially around using Oddballs.

New in Oddjob 1.1.0 (Jan 30, 2012)

  • A new JSF AJAX Web frontend replaces the old Struts version.
  • The ability to force a failed job to complete has been added.

New in Oddjob 1.0.0 (Oct 26, 2011)

  • Improved scheduling, more intuitive configuration, and many more examples.
  • Oddjob Explorer now has the ability to open new windows, navigation is easier, and more accelerator keys have been added.
  • A read only role for the JMX client has been introduced, and a JMX server can now use the Platform MBean.
  • Many bugs have been fixed, extra tests have been added, and job documentation improved.

New in Oddjob 0.30.0 (May 3, 2011)

  • Adoption of the international date standard ISO 8601 for all configurations.
  • An input handler for prompting for user input.
  • An improved Reference Guide including many more examples.

New in Oddjob 0.29.0 (Aug 30, 2010)

  • Simple Archiving by taking a snapshot of a job's silhouette.
  • Support for distributing work across multiple servers by using a job that grabs for work.
  • Much improved SQL support, including running stored procedures and parameterised queries.

New in Oddjob 0.28.0 (Sep 29, 2009)

  • This release includes server security with JMX Simple Security, network failure detection in the JMX client, a cleaner core Oddjob achieved with more Oddballs, and a Simple services framework for auto wiring beans.