Cernunnos 1.0.0 Released

drew's picture

Those of you who have read my previous blogs probably know that I've been working on an open source Java project called Cernunnos for some time now (okay -- in this case "some time" is a bit over two years). I'm happy to report that yesterday The Cernunnos Project announced its first release: version 1.0.0.

Cernunnos embodies software industry best practices based on innovative design principals. It dramatically reduces time and effort in Java development by effectively promoting reuse in common programming tasks. The Cernunnos Project is hosted by Google Code and is available freely under the Apache License, Version 2.0.

Here's is the full text I posted yesterday to the Cernunnos Discussion Group announcing the release:

Hey folks,

I'm immensely pleased, at last, to announce the availability of the
Cernunnos 1.0.0 release. This moment has been something like two
years in the making, and I'm deeply relieved to be here at last.

This release owes everything to the interest, feedback, energy, and
innovations of some talented people that I'm proud to know and work
with. I'd like to congratulate everyone who contributed, and
especially I want to offer my deep gratitude to Eric Dalquist, Andy
Gherna, Chris Doyle, Andrew Petro, Tim Carroll, Jen Bourey, and Susan
Bramhall. Thank you for helping Cernunnos to come this far.

I also want to thank Yale University, Johns Hopkins University, The
University of Illinois, California State University Chico, The
University of Colorado, California Polytechnic University, Unicon, and
JA-SIG for their dedication to innovation and their support.

This release includes a great many new features and fixes since the
last milestone release (M8, tagged 2008/03/24). Here is just a
high-level summary:

  • Added support for caching expensive objects, which improved the
    scalability of Cernunnos dramatically

  • Added new Tasks & Phrases
    • <prompt>
    • <thread-pool>
    • <concurrent>
    • <cvs-add>
    • <cvs-checkout>
    • <cvs-client>
    • <cvs-commit>
    • <cvs-remove>
    • <cache>
    • ${js}
    • <js>
    • <download> (for CernunnosServlet)
  • Added a system for deprecating Tasks, Phrases, and Reagents, including runtime warnings and documentation in the manual
  • Deprecated several unneeded, obsolete, and/or dangerous Tasks & Phrases
  • Enhanced error feedback by reporting the source of the error in the stack trace
  • Enhanced {x}Attributes-series request attributes to play nice with JSR-223 (Scripting for the Java Platform)
  • Enhanced the CernunnosPortlet
    • Provided the ability to specify the location of Cernunnos XML in portlet preferences
    • Included baked-in support for file submissions (miltipart/form-data)
  • Added a CernunnosServlet with features similar to the portlet
  • Refactored the XmlGrammar to lazy-load entries, making the dependencies of unused entries no longer required
  • Added ScriptRunner.evaluate() methods for convenience
  • Added JavaScript support via rhino
  • Updated Groovy support to version 1.5.6
  • Updated other dependencies to newer versions
  • Made lots of small, localized changes for improved performance
  • Enhanced many Tasks and Phrases with new flexibility
  • Fixed numerous bugs
  • Refactored some implementation code for easier maintainability
  • Eliminated several misspellings and compile-time warnings
  • Added dozens of examples and a new page called 'Anatomy of a Task' to the Cernunnos Manual

In the coming days I hope to update the information on the main
project site and in the wiki quite a bit. I also expect to start
developing the road map for releases 1.0.1 and 1.1.0! Lastly, I'll be
looking for new opportunities to speak about Cernunnos; if you know
of a Java Users Group or other gathering where I can find an
appropriate audience, please send that information my way.

Thanks again and cheers,

drew wills