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