June 21, 2011
This is a bug fix release, many done by Udo Borkowski. Download ST v4 here
- Major overhaul of template names:
- '/' allowed as starting ID letter like </a/b()>
- getInstanceOf names must be fully qualified. If you don't put / on
front, one is added for you. - template refs in expr are relative to location of surrounding template
unless prefixed with /. In that case they are relative to root of group. - import statement no longer allows fully qualified file name.
- Changed all unit tests to use fully qualified names and see results that way.
- Also note that import statement no longer interprets fully qualified path to location on disk. A fully qualified path is now interpreted as relative to group root to be consistent.
- {} wasn't allowed as a template
- STGroup.unload() calls unload() on each group in the imports list
instead of clearing the list. (Thanks to Sam...wait, did Udo already
try this?) - STRuntimeMessage got NPE upon ST.impl == null
- ctor ST() is protected; not for users. bad users!
- Removed warning (access static member through instance)
- Fixed and added tests
- Fixed test case for <\n> to handle different line.separator sizes
- BUG: On Windows wrapped lines are separated with \r\r\n
- made tests run on Windows and non-US locales
- STGroupDir.load(String name) no longer checks for (parent) group file when name specifies no parent (no '/')
- unload in STGroup now also unloads the import relationships
- Fixed test testRendererWithPredefinedFormat2 to also work in non-PDT timezones
- Fixed tests testArg1, testArg2 in TestGroupSyntaxErrors
- Fixed "URI is not hierarchical" issue when STGroupFile is imported from jar file
- Added getTemplateNames to STGroup
- passthru() didn't watch for empty formal args
- fixed bug raising a NullPointerException when a formalArg's default value has a syntax error.
Example: main(a={(<"")>}) ::= "" - STGroupFile.getName() returns group name also for imported groups (was null before).
Labels: