Changelog for Groovy 2.1.0-beta-1
Bug
- [GROOVY-3153] - groovy, groovysh, groovyconsole, etc Cannot use spaces in supplied classpath -cp
- [GROOVY-4637] - XmlSlurper Unable to Access Attributes with Same Name but in Different Namespaces
- [GROOVY-4648] - Pasting into groovy console using shift+insert turns overwrite mode on.
- [GROOVY-4950] - ConfigSlurper broken on AppEngine
- [GROOVY-5191] - Running script with '--enoding' param and some script parameters
- [GROOVY-5394] - Grape's Grab ignores 'ext' when classifier is not set
- [GROOVY-5433] - Node is missing documentation
- [GROOVY-5439] - error: incompatible types on Java stubs returning generics
- [GROOVY-5468] - Documentation error for ExpandoMetaClass
- [GROOVY-5583] - Parsing problem of number literal 0x8000000000000000L
- [GROOVY-5590] - Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Cannot run program "find": java.io.IOException: error=24, Too many open files
- [GROOVY-5591] - groovy-all-2.0.0-sources.jar is missing lots of source files
- [GROOVY-5598] - Cannot use @CompileStatic with Thread.start method
- [GROOVY-5607] - @Compile static Sql.newInstance
- [GROOVY-5608] - @CompileStatic casting problem
- [GROOVY-5630] - Java stub generator generates wrong cast for return value of generic method
- [GROOVY-5635] - SyntaxException.getEndColumn() returns "getStartColumn() + 1"
- [GROOVY-5636] - java.lang.ArrayIndexOutOfBoundsException: size==0
- [GROOVY-5660] - JsonOutput Date formatting is not threadsafe
- [GROOVY-5665] - Groovyc ant task fails with nested javac when using generics
- [GROOVY-5666] - Incorrectly finding "where" in query string
- [GROOVY-5668] - Input stream not closed
- [GROOVY-5669] - DOMCategory should provide name() convenience method for Node's not just Element's
- [GROOVY-5675] - Stub compiler expands generic-inner-class variable declaration incorrectly
- [GROOVY-5687] - Constants defined in an interface not visible to implementing subclass in a static context
- [GROOVY-5691] - TimeoutException immediately thrown when using both TimedInterrupt and with {} closure on a Map
- [GROOVY-5695] - jarsigner fails because two duplicate objects exists in groovy-2.0.1.jar
- [GROOVY-5705] - STC: calling a closure stored in a property yields an NPE
- [GROOVY-5710] - Stub generator should not use raw types when casting default return values
- [GROOVY-5712] - @TypeChecked and "Charset ISO_8859_1_CHARSET = Charset.forName("ISO-8859-1")": Cannot assign value of type java.lang.Class to variable of type java.nio.charset.Charset
- [GROOVY-5723] - Problem with cached calls with GroovyServlet
- [GROOVY-5729] - Delegation to an interface with deprecated methods shows a compile error
- [GROOVY-5732] - Delegating to an abstract class hierarchy doesn't implement interfaces at a higher level
- [GROOVY-5737] - @Log won't compile with @CompileStatic if "log" is used in a Closure
- [GROOVY-5738] - The if(instanceof) block is not inferring type in a Closure
- [GROOVY-5739] - performance problem in DefaultGroovyMethods.removeAll()
- [GROOVY-5751] - Adding milliseconds with TimeCategory gives incorrect toString
- [GROOVY-5762] - Static compilation runtime error when using mapped constructor
- [GROOVY-5766] - Changes in groovy.json.JsonOutput require extensive permissions that aren't compatible with some web frameworks.
- [GROOVY-5779] - Static type checking - Color.red recognized as int
- [GROOVY-5792] - XmlNodePrinter uses quote variables for more than just attributes
- [GROOVY-5803] - wasted work in "ClassNode.addMixin"
- [GROOVY-5811] - InvokerInvocationException not being unwrapped *
- [GROOVY-5828] - No way to tell @Immutable that you're using an Immutable List structure already
- [GROOVY-5838] - groovydoc not working (ClassNotFoundException)
- [GROOVY-5844] - Copy/paste error in EmptyBorderFactory
- [GROOVY-5849] - wasted work in "ClassCompletionVerifier.checkMethodForWeakerAccessPrivileges"
- [GROOVY-5851] - wasted work in "SimpleGroovyClassDocAssembler.extractName"
- [GROOVY-5853] - wasted work in "DefaultGrailsDomainClassInjector.implementsMethod"
- [GROOVY-5854] - wasted work in the "ClassNode" constructor
Improvement
- [GROOVY-5472] - remove $getCallSiteArray for indy compilation
- [GROOVY-5509] - Add base script option to groovyc and its ant task
- [GROOVY-5553] - Provide a builder for compilation customizers
- [GROOVY-5554] - AST customizer working as a guard for another
- [GROOVY-5560] - Add DGM leftShift and other appropriate methods for java.lang.Appendable interface
- [GROOVY-5563] - Option to default to Static Compilation
- [GROOVY-5626] - Remove buildSrc's target and .gradle directories from the source distribution
- [GROOVY-5646] - Allow customization of @Singleton's instance getter name
- [GROOVY-5667] - upgrade to gradle 1.1
- [GROOVY-5680] - collectMany should have a map variant
- [GROOVY-5716] - @Immutable annotation should allow Cloneable fields
- [GROOVY-5745] - DGM should have a getAt method for Iterable
- [GROOVY-5767] - Support for DSL type checking
- [GROOVY-5794] - Upgrade junit to 4.11
- [GROOVY-5795] - Upgrade testng to 6.8
- [GROOVY-5796] - upgrade qdox to 1.12.1
- [GROOVY-5813] - array coercion missing for subarray assignment
- [GROOVY-5815] - The range interface should return the generic type T from getTo() and getFrom()
- [GROOVY-5840] - support jar: in addition to file: and http: for urls when running scripts on the command line
- [GROOVY-5845] - Add an includePackage attribute for the ToString AST transform
- [GROOVY-5862] - Pretty toString() for AnnotationConstantExpression
New Feature
- [GROOVY-5503] - Compiler flag for type checking most classes, and TypeUnchecked annotation override
- [GROOVY-5549] - add DGM variant for Map#subMap supporting an array of keys
- [GROOVY-5682] - Add clone or copy constructor to XML Node
- [GROOVY-5714] - @DelegatesTo annotation for IDEs/TypeChecker
Task
- [GROOVY-5718] - upgrade to gradle 1.2
- [GROOVY-5860] - Upgrade the GPars dependency to 1.0
Wish
- [GROOVY-5821] - Provide a way to assemble an annoation consisting of several other
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)