Changelog for Groovy 1.9.0-beta-1

Bug

  • [GROOVY-2177] - Groovysh 'history recall' seems to be picking the wrong entry (off by 1)
  • [GROOVY-2914] - LoadConfiguration fails to load *.jar
  • [GROOVY-4306] - Groovy Console Icon for Mac OS X broken
  • [GROOVY-4480] - Parsing seems to have changed in 1.8
  • [GROOVY-4498] - Only the root exception in a script is printed
  • [GROOVY-4504] - Groovy compilation results in warnings in generated code
  • [GROOVY-4601] - Stub generator doesn't escape strings with mixed single and double quotes
  • [GROOVY-4609] - Using log variable created with @Log or @Log4j causes compiler error if used in static method
  • [GROOVY-4691] - Grails 1.3.7 breaks bean-fields plugin
  • [GROOVY-4695] - anonymous classes InnerClassNode has -1 for line numbers
  • [GROOVY-4707] - Scripts' class nodes didn't have correct source positions
  • [GROOVY-4709] - @Interrupt AST transformations should not be applied on abstract methods
  • [GROOVY-4719] - Groovy build fails in tests - test RedundantCastInStubTest fails
  • [GROOVY-4720] - Method overriding with ExpandoMetaClass is partially broken
  • [GROOVY-4746] - broken @link in MetaObjectProtocol.java's javadoc
  • [GROOVY-4748] - javadoc comment problems which breaks generated HTMLs
  • [GROOVY-4781] - @WithReadLock and @WithWriteLock creates the wrong locks
  • [GROOVY-4782] - @Singleton(lazy=true) does not perform the correct double checked locking for Java
  • [GROOVY-4806] - Sql.eachRow documentation: actual GroovyResultSet vs. documentation GroovyRowResult
  • [GROOVY-4813] - GroovyScriptEngine does not use configured ImportCustomizer
  • [GROOVY-4818] - JsonSlurper's methods are package private
  • [GROOVY-4833] - @Field AST Transformation looses annotations
  • [GROOVY-4840] - LogASTTransformation fails if super class defines a private log field
  • [GROOVY-4854] - MyEnum.values() bombs out on AppEngine
  • [GROOVY-4866] - Documentation incorrect for Object#with
  • [GROOVY-4881] - JsonSlurper does not handle backslash
  • [GROOVY-4903] - StackOverflowError when parsing JSON text with JsonSlurper().parseText()
  • [GROOVY-4915] - Wrong access modifiers in JsonSlurper
  • [GROOVY-5551] - CLONE - StackOverflowError when parsing JSON text with JsonSlurper().parseText()

Improvement

  • [GROOVY-1570] - Truncate string when when generating MissingMethodException
  • [GROOVY-3401] - Ternary operator ?: does not handle newline before ":" gracefully
  • [GROOVY-4595] - Project Coin underscore placeholder in numbers
  • [GROOVY-4664] - Add @ThreadInterrupt to console scripts automatically
  • [GROOVY-4671] - DGM#inject can be generified
  • [GROOVY-4675] - Prefer ClassHelper.make(Class) over new ClassNode(Class)
  • [GROOVY-4690] - Allow PrimaryClassNodeOperations to be added to CompilerConfiguration
  • [GROOVY-4693] - GDK groovydocs for String.padXXX are not very clear [new wording attached]
  • [GROOVY-4703] - Improve FactoryBuilderSupport exception messages
  • [GROOVY-4713] - typo( lists -> maps ) in GDK doc comment
  • [GROOVY-4724] - add support for overriding package-, doc- or class-templates in Groovydoc descendant classes
  • [GROOVY-4779] - add syntax highlighting to the AST Browser decompiled source view
  • [GROOVY-4785] - Improve Closure javadoc for resolution strategy
  • [GROOVY-4800] - Avoid too many temporary arrays with each and eachWithIndex
  • [GROOVY-4814] - When working with ClassNodes, sometimes need to call getFields() before getField() will work (lazy init)
  • [GROOVY-4815] - force annotations on variables to be included in ast transforms
  • [GROOVY-4824] - groovyConsole should support more common file types: .story, .gpp, and .grunit
  • [GROOVY-4830] - GroovyConsole: Decompiled View should show method and class annotations
  • [GROOVY-4842] - Make @ThreadInterrupt optional in Groovy console
  • [GROOVY-4860] - Enable JsonBuilder to work with objects recursively
  • [GROOVY-4897] - better tab completions for GroovyShell
  • [GROOVY-4925] - JsonBuilder with Writer support would be handy

New Feature

  • [GROOVY-1512] - When executing command-line scripts it should be possible to execute a BEGIN and an END method (akin to AWK or Perl)
  • [GROOVY-1984] - Shorther syntax for catching multiple exceptions at once
  • [GROOVY-4594] - Project Coin binary literals
  • [GROOVY-4865] - Add a take method to Collections, Iterators, Arrays
  • [GROOVY-4885] - groupBy with a list or an array of closures as it's parameter for nested grouping