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).