Changelog for Groovy 1.0.0-beta-4

Bug

  • [GROOVY-61] - full regex support
  • [GROOVY-64] - using a primitive type name causes OutOfMemoryException
  • [GROOVY-75] - overloading getter methods doesn't seem to work
  • [GROOVY-106] - support the \uxxxx style escapes for Unicode characters
  • [GROOVY-128] - Function with statically typed parameter generates bad bytecodes
  • [GROOVY-131] - Variable visibility issue within nested closures
  • [GROOVY-133] - Closure parameters can't be of static primative type
  • [GROOVY-143] - GString not replacing ${value} correctly
  • [GROOVY-153] - Statically typed static fields generates a bad class file
  • [GROOVY-155] - Can't test if a the value of a Character is greater than or less than a value
  • [GROOVY-159] - for in where the control variable id used in the range specification doesn't work
  • [GROOVY-160] - Use of control variable after a for loop generates bad bytecodes
  • [GROOVY-162] - Can't cast an Integer to a Character
  • [GROOVY-166] - Broken Links on Groovy website, possible example syntax error
  • [GROOVY-167] - should support getting of listener properties
  • [GROOVY-168] - for loop variable is not correctly passed into inner closure
  • [GROOVY-171] - Null pointer in groovysh on ctrl-D
  • [GROOVY-176] - A range between an integer and a character doesn'r work
  • [GROOVY-177] - fix build system so that the groovyConsole works again
  • [GROOVY-178] - Arithmetic characters held in dynamically trped variables doesn't work
  • [GROOVY-179] - Character doesn't support arithmetic operations
  • [GROOVY-181] - bad GroovyServlet link in Groovlets example
  • [GROOVY-182] - classes derived indirectly from Script don't work with Bindings
  • [GROOVY-183] - MarkupBuilder fails for embedded groovy
  • [GROOVY-184] - for loop fails for embedded groovy
  • [GROOVY-185] - setProperty() and now getProperty() do not throw MissingPropertyException
  • [GROOVY-188] - Trailing null when iterating StringTokenizer
  • [GROOVY-191] - 4 + 'x' causes error. most-general-type rule not applied
  • [GROOVY-194] - System.out.println() called in bsf.GroovyEngine#declareBean()
  • [GROOVY-195] - Unable to new arbitary script name for in BSFManager#exec()
  • [GROOVY-196] - java.lang.String.multiply(0) should return "" not throw exception
  • [GROOVY-206] - GroovyStrings are not always coerced to String
  • [GROOVY-209] - Empty try block causes VerifyError
  • [GROOVY-211] - Cand have a closure over the parameters of another closure
  • [GROOVY-212] - assigning to a class name should give a meaningful error message
  • [GROOVY-213] - (NegativeArraySizeException) cannot handle 128 variable expansions
  • [GROOVY-214] - nested closures seem to have a problem with variable passing
  • [GROOVY-216] - println "${1}${1}" prints 1 not 11
  • [GROOVY-224] - Variable declartion with type gets lost in closure
  • [GROOVY-227] - BigDecimal type does not behave as expected with operators (+, -, ...)
  • [GROOVY-230] - use of variable inside closure seems broken
  • [GROOVY-232] - inherited invokeMethod does not work
  • [GROOVY-234] - GroovyScripEngine is broken for Threads
  • [GROOVY-237] - Verify error when closure parameter is reused
  • [GROOVY-238] - Nested closure with the same parameter name generates bad bytecodes
  • [GROOVY-239] - Closures nested more than two deep can't access top level variables
  • [GROOVY-240] - Parser thows nullpointer exception for missing close brace
  • [GROOVY-241] - Currying a curried closure doesn't produce a new object
  • [GROOVY-243] - Closure#curry doesn't support multiple args (and ius supposed to)
  • [GROOVY-244] - Currying a Curried Closure changes base closure
  • [GROOVY-245] - Cloning a curried closure removes the currying
  • [GROOVY-249] - MarkupBuilder can't reference binding variables

Improvement

  • [GROOVY-147] - refactor GroovyShell.evaluate() to be simpler to use
  • [GROOVY-150] - Streamline exception hierarchy under SyntaxException
  • [GROOVY-154] - Improve Groovy methods' Javadoc comments
  • [GROOVY-156] - support next/previous, plus/minus and ranges of java.util.Date
  • [GROOVY-157] - support map.each { key, value | ... } notation for maps
  • [GROOVY-161] - Refactor some methods of GroovyShell
  • [GROOVY-180] - bug in DocGenerator.groovy
  • [GROOVY-189] - Groovysh double return should be replaced
  • [GROOVY-190] - Add way to configure classpath used by groovysh
  • [GROOVY-192] - AntBuilder should be able to access properties defined outside of its closures
  • [GROOVY-201] - new Groovy stream methods
  • [GROOVY-207] - rename queryEach to be eachRow for Groovy SQL
  • [GROOVY-208] - new readText() and maybe writeText() methods on File, InputStream, Reader
  • [GROOVY-218] - Support JDK 1.5 style for loop with optional type and use of ':' instead of 'in'
  • [GROOVY-219] - support currying when calling closures with too few parameters
  • [GROOVY-221] - Support """ as an alternative to here-docs
  • [GROOVY-222] - add a grep method on Object to perform a filter using a case expression (regex, range, class etc)
  • [GROOVY-228] - allow script base class to be specified on a GroovyShell or GroovyClassLoader
  • [GROOVY-229] - allow ~/.groovy/lib to provide libraries used for groovy shell & scripts
  • [GROOVY-231] - resolve the SomeClass.class versus SomeClass issue
  • [GROOVY-235] - TemplateEngine
  • [GROOVY-236] - use add/subtract operator overloading methods rather than plus/minus
  • [GROOVY-242] - rename map methods to collect to be more consistent
  • [GROOVY-248] - Groovy String's toString() method always returns the same string

New Feature

Task

Wish

  • [GROOVY-31] - Add MetaClass.getMethodClosure to allow analysis of 'does understand method'
  • [GROOVY-80] - Add neater python style import statements
  • [GROOVY-198] - it would be nice if conditional clauses could be coerced to a boolean