What's new in Groovy 2.4
Jul 20, 2015
- [GROOVY-7018] - GroovyClassLoader addClasspath RegexPattern issue
- [GROOVY-7022] - invoking scripts using full path broken in cygwin
- [GROOVY-7097] - ScriptBase class can't be resolved if not in current directory even if CompilerConf classpath is set
- [GROOVY-7127] - Dates.isJsonDate only recognizes Javascript Date's toJSON() Format
- [GROOVY-7159] - STC claims non-existent Diamond in Anonymous Inner Class with Generics
- [GROOVY-7338] - URL getText(requestProperties) Map doesn't accept a GString
- [GROOVY-7365] - Compiler crash in the static type checker
- [GROOVY-7366] - Static imports are missing in generated stubs
- [GROOVY-7377] - Interpolated variable followed by asterisk in slashy-string causes compiler error
- [GROOVY-7381] - Setters with non-void return type fail at runtime when statically compiled
- [GROOVY-7386] - Packed Maven pom.xml reference commons-cli instead of groovy-all
- [GROOVY-7391] - Indy ignores custom invoker in meta class
- [GROOVY-7392] - JsonSlurper Fails on Valid JSON
- [GROOVY-7416] - Problem With CompileStatic And Interface Methods In Abstract Subclass
- [GROOVY-7424] - NPE in SecureASTCustomizer for interface method declarations
- [GROOVY-7448] - AbstractConcurrentMap performing rehash() on every insert
- [GROOVY-7453] - CompileStatic annotation should not support package target
- [GROOVY-7456] - Builders don't work in Traits
- [GROOVY-7461] - Groovy doesn't write BOM if UTF-16 alias is used
- [GROOVY-7462] - groovy.json.internal.Dates instantiates objects without explicitly specifying the miliseconds parameter
- [GROOVY-7474] - Difference between junit3 and junit 4 shouldFail {...} not described in docs
- [GROOVY-7476] - JsonSlurper sometimes does not parse escaped double quotes on parsing with JsonParsingUsingCharacterSource
- [GROOVY-7477] - CompileStatic-related "BUG! exception in phase 'instruction selection'"
- [GROOVY-7485] - BUG! exception in phase 'semantic analysis'... when trying to call instance method as default for a constructor parameter
- [GROOVY-7495] - Diamond inheritance of interfaces makes method return type incompatible
- [GROOVY-7504] - [CVE-2015-3253] Potential remote code execution
- Improvement:
- [GROOVY-7425] - Add 'getBytes(Map parameters)' method to the URL class
- Sub-task
- [GROOVY-4421] - Casts should have higher precedence than mathematical operators
- [GROOVY-5185] - Cast operator precedence is incorrect
- Task:
- [GROOVY-6268] - New documentation
- [GROOVY-7470] - Change license for adoc (guide) files to ASLv2
New in Groovy 2.2.1 (Dec 5, 2013)
- Bug:
- [GROOVY-5014] - Syntax highlighting problem in groovy.ui.Console text editor on empty string expression entering
- [GROOVY-5385] - StackOverflow Exception when calling super.method, which returns an instance of the corresponding class.
- [GROOVY-5740] - Cannot use ASTTransformationCustomizer with TimedInterrupt
- [GROOVY-6186] - Cannot invoke method next() on varible, which is initialized by default, in each\eachWithIndex
- [GROOVY-6191] - Memory leak in GroovyScriptEngineImpl
- [GROOVY-6374] - Verify error when coercing Map for a final class
- [GROOVY-6385] - groovy.bat: Can't use question mark in script parameters
- [GROOVY-6387] - groovysh completion vulnerable to map types with 'class' entry
- [GROOVY-6389] - groovysh flawed display of collections
- [GROOVY-6391] - groovysh: broken alias and register commands
- [GROOVY-6392] - Groovysh: filename completion of save command broken
- [GROOVY-6400] - Constructor call with @CompileStatic causes ArrayIndexOutOfBoundsException during compilation
- [GROOVY-6405] - AccessControlException with Google App Engine and indy version of the Groovy
- [GROOVY-6411] - Incorrect exception behavior when class has @CompileStatic
- [GROOVY-6419] - Groovy java.lang.VerifyError
- [GROOVY-6421] - Newify fails for local variable assignment
- [GROOVY-6424] - @GrabExclude's group element is documented as optional but the implementation requires it
- [GROOVY-6426] - groovysh not running using the groovy-all jar
- [GROOVY-6428] - AutoCloneStyle.SIMPLE doesn't play well with generics
- [GROOVY-6431] - method resolution with parameter BigInteger fails for argument extending BigInteger
- [GROOVY-6432] - ASTTransformationCustomizer should support raw Expressions for parameters
- [GROOVY-6434] - @Newify AST transformation doesn't work for closure
- [GROOVY-6435] - Static type checking error when assigning BigInteger child to BigInteger var from static context
- [GROOVY-6436] - Log annotations broken for Turkish locale
- [GROOVY-6444] - Closures are incorrectly coerced if a method call is done inside a closure
- Improvement:
- [GROOVY-6427] - The @Singleton transform should complain if other constructors are found
New in Groovy 2.2.0 (Nov 22, 2013)
- implicit closure coercion to single-method interfaces and abstract classes
- a @Memoized transformation to cache the result of side-effect-free method invocations
- a @BaseScript annotation to define the base script class used by a Groovy script
- a new DelegatingBaseScript class for easily delegating property access and method calls to a custom object
- a new log transformation for Log4J2
- precompiled custom type checking extensions
- various enhancements to Groovysh, the Groovy command-line shell
- and various other enhancements and minor improvements, as well as performance improvements
New in Groovy 2.1.0 (Jan 28, 2013)
- offers full support for the JDK 7 “invoke dynamic” bytecode instruction and API,
- goes beyond conventional static type checking capabilities with a special annotation to assist with documentation and type safety of DSLs and adds static type checker extensions,
- provides additional compilation customization options,
- features a meta-annotation facility for combining annotations elegantly,
- and provides various other enhancements and minor improvements.