JETT Changelog

What's new in JETT 0.4.0 Beta

Dec 8, 2012
  • New tag: "style" to dynamically change the style on the Cells in the body of the tag, e.g. ${expr}.
  • New tag: "formula" to dynamically create Excel formulas unaffected by JETT formula processing.
  • New attributes on the "agg" tag to support rollups, cubes, and grouping sets.
  • New attribute on the "span" tag to make an adjustment to the size of a merged region, adding a number to the size.
  • A new POI bean is exposed: "cell" that represents the Cell that contains the expression.
  • One can now reference static Java methods in JEXL directly, e.g. ${java.lang.String.format("%d / %d", numerator, denominator)}
  • New JETT functionality presented as registered functions, e.g. ${jett:cellRef(1, 2)} => "C2", and ${jett:cellRef(1, 2, 2, 2)} => "C2:D3".
  • Bug fix: If an expression was repeated more than once, and is present with other expresssions in a Cell, then the value replacement wasn't working right. This is now fixed.
  • Bug fix: Boolean values were being populated as the strings "true" and "false". Now they are properly populated as the Excel boolean values TRUE and FALSE. Boolean expressions within strings will still yield "true" and "false".
  • Lots of JUnit test cases have been added for all the new features.
  • There is a new "readme.txt" file.

New in JETT 0.3.0 Beta (Oct 30, 2012)

  • gListeners may now be created, which get called when any tag is finished processing. All Tags that subclass BaseTag now support the onProcessed attribute for specifying TagListeners.
  • TagLoopListeners may now be created, which get called when every loop of a looping tag (Tags that subclass BaseLoopTag) is finished processing. All Tags that subclass BaseLoopTag now support the onLoopProcessed attribute for specifying TagLoopListeners.
  • There are 2 new attributes for forEach tags:
  • groupBy supports separating the collection into separate groups with identical properties for further processing.
  • orderBy supports ordering the collection items before displaying them.
  • For Implicit Collections Processing, 4 additional metadata keys are added:
  • indexVar supports a zero-based looping variable name that works just like the same-named attribute on the multiForEach tag.
  • limit supports a limit to the number of collection items processed that works like the same-named attribute on the multiForEach tag.
  • onProcessed supports TagListeners just the same as all BaseTags do.
  • onLoopProcessed supports TagLoopListeners just the same as all looping tags do.
  • A bug was fixed in Formulas processing. If a JETT formula is specified in the middle of a Cell's text, because tag text preceded it, JETT will no longer throw an uncaught Exception.
  • Lots of JUnit test cases have been added for all the new features.
  • This is the first JETT release to be submitted to the Sonatype OSS Maven Repository, which will make JETT available in the Maven Central Repository.

New in JETT 0.2.0 Beta (Aug 9, 2012)

  • New tags: "comment" to create Excel Comments on Cells, "group" to define Excel Groups (Outlines), and "hyperlink" to create Hyperlinks on Cells.
  • It is now possible to create Excel Groups (Outlines) on dynamically placed data using looping tags such as the forEach tag. It is also possible to specify new metadata to create Excel Groups using Implicit Collections Processing.
  • JETT has supported Rich Text using Expressions, but now it supports Rich Text inside certain appropriate tag attributes that are used as actual Cell contents.
  • It is now possible to supply custom functions into a custom JEXL namespace, which can result in such Expressions as ${custom:method(param)}.
  • Additional convenience "transform" methods in the ExcelTransformer class allow the developer to specify input and output filenames, and to let JETT handle the reading and writing of the Excel files.
  • Lots of JUnit test cases have been added for all the new features, and for lots of old features that needed them.
  • Two bugs are fixed relating to JETT Formulas. One bug did not pick up the cell reference if it was at the end of the JETT Formula, and another bug did not allow negative default values to be supplied in a formula cell reference. Both bugs are now fixed.