Changelog for Groovy 1.7.2
Bug
- [GROOVY-1034] - running groovy.bat does not return exit status on windows
- [GROOVY-1455] - CliBuilder incorrectly handles unexpected options
- [GROOVY-2717] - Groovyc ignores includeAntRuntime when not forked.
- [GROOVY-2790] - Groovy Console load is broken.
- [GROOVY-2959] - Deprecations warnings issues for Ant 1.7.0 -> 1.7.1 upgrade
- [GROOVY-3064] - ant task setContextClassloader
- [GROOVY-3186] - ConfigSlurper only allows a single block for any given name
- [GROOVY-3384] - XML NodeList.add(index, Node) does not work as expected
- [GROOVY-3466] - MetaClassCreationHandle.create() should not be final
- [GROOVY-3657] - Category annotation results in Groovy Builder error
- [GROOVY-3783] - Need groovydoc command
- [GROOVY-3832] - groovy.sql.Sql.close should empty statement cache
- [GROOVY-3922] - finally block executed twice if exception throw in this block
- [GROOVY-4025] - Groovy interfaces allow methods with full body?
- [GROOVY-4038] - Closure meta class respondsTo(closure, "doCall") does not work
- [GROOVY-4058] - Unexpected compilation error with MapEntryExpression usage - groovy grammar issue?
- [GROOVY-4066] - Groovy clibuilder doesn't take the parameter when the longOpt name ends with character "s"
- [GROOVY-4069] - Custom constructors added via metaclass are sometimes not cleaned up
- [GROOVY-4070] - Wrong value returned for "Attribute.name()" when iterating over GPath Attributes
- [GROOVY-4072] - finally block not called if exception rethrown in catch block
- [GROOVY-4075] - shouldFailWithCause no longer works for unchecked exceptions
- [GROOVY-4078] - Number.step incorrectly believes there is an infinite loop
- [GROOVY-4079] - @Grab fails with ClassCastException
- [GROOVY-4080] - Invalid class generated for an annotation when @Grab is used with it.
- [GROOVY-4081] - Compiler should not allow enum constructor calls from outside the enum
- [GROOVY-4086] - ClassCastException on every()
- [GROOVY-4096] - GroovyConsole cosmetic annoyances
- [GROOVY-4098] - setter and getter destroy meta properties
- [GROOVY-4099] - @Immutable annotation does not allow untyped static fields
- [GROOVY-4100] - clearTime() fails for times in the afternoon
- [GROOVY-4104] - MethodClosure for a protected method in a super class not working properly
- [GROOVY-4106] - ExpandoMetaClassCreationHandle does infinite recursion for ExpandoMetaClass
- [GROOVY-4107] - ResolveVisitor falsely resolves an import against itself
- [GROOVY-4108] - Possible NPE in Groovy Ant task
- [GROOVY-4116] - Call to an interface method results in IllegalAccessError when not implemented as "public"
- [GROOVY-4117] - org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl#registerMethods should not call System.exit
- [GROOVY-4120] - Non static inner class usage fails with MethodSelectionException
- [GROOVY-4121] - Compiler fails to do assignment-to-final-fields checks on fields made final by @Immutable (was: @Immutable does not make fields immutable)
- [GROOVY-4129] - Implicit 'this' reference not being passed if inner class instance is created in outer class instance initializer
- [GROOVY-4131] - Compiler allows 2 main methods in a script
- [GROOVY-4133] - @Delegate does not handle native methods correctly
- [GROOVY-4134] - Closure default values cannot be static constants
- [GROOVY-4137] - Default constructor added by groovy does not have source information set on it
- [GROOVY-4138] - Groovy JDK File.eachFileMatch insufficient documentation to use the method.
- [GROOVY-4139] - Assigning with empty String as hash key (i.e. a['']=t) yields StringIndexOutOfBoundsException
- [GROOVY-4140] - Groovy JDK documentation has mismatch between signatures and explanation
- [GROOVY-4145] - Statically imported fields & properties
- [GROOVY-4147] - Timecategory strange format (too many '-' signs) when printing 'negative' date
- [GROOVY-4179] - finally block is not executed
Improvement
- [GROOVY-1178] - Add a Utility Method for Converting GPathResults to XML
- [GROOVY-2214] - clearly state the implicit variables used with groovy command -p -n and -a options
- [GROOVY-2727] - improve CliBuilder/OptAccessor's long command line opts handling
- [GROOVY-3197] - change CliBuilder to be independent of CommonsCLI
- [GROOVY-3597] - Improve CliBuilder to support header info of Apache CLI HelpFormatter
- [GROOVY-3923] - update license text in file headers
- [GROOVY-3992] - Add a reverse method to Map
- [GROOVY-4019] - Enhance the named argument constructors related to @Immutable to throw MissingPropertyException
- [GROOVY-4033] - Stateful metaclass mixins are completely undocumented
- [GROOVY-4059] - Groovyc: taking file.encoding property over from parent process when forked
- [GROOVY-4073] - Add extra DOM manipulation methods to DOMCategory
- [GROOVY-4074] - Add DGM#getAt(Iterator, int) method
- [GROOVY-4087] - It would be useful to have DGM convenience methods which work with Object[] for Collection bulk methods like addAll
- [GROOVY-4088] - DGM convenience method for String.tokenize(Character)
- [GROOVY-4089] - Groovydoc Ant task should provide a way to set the extensions of files to process
- [GROOVY-4090] - Improve CliBuilder short option syntax and customization features
- [GROOVY-4103] - It would be useful for groovy.sql.Sql to support a map-based newInstance method
- [GROOVY-4111] - The compiler can reject invalid code (constructor call on an abstract type) earlier than it does
- [GROOVY-4115] - StreamingMarkupBuilder should provide an option for using double quotes around attributes
- [GROOVY-4126] - @Immutable should support URI as one of the known immutable types
- [GROOVY-4132] - Groovy should support 'as Interface' shorthand syntax on normal Objects not just Maps and Closures
New Feature
- [GROOVY-2597] - Map or Property Sort
- [GROOVY-3649] - SQL named parameters in Sql.executeUpdate
- [GROOVY-4092] - DGM methods to filter a collection in place without creating a new collection
- [GROOVY-4144] - Closures should have rcurry and ncurry as well as curry
- [GROOVY-4146] - Groovy's Sql classes could support batch operations by leveraging the java.sql.Statement.executeBatch() command.
- [GROOVY-4148] - CliBuilder should support @argumentFile processing similar to what javadoc has
Sub-task
- [GROOVY-3065] - Document MarkupBuilder and StreamingMarkupBuilder and StaxBuilder