create arrays by passing a collection and closure to the json builder. The (builder) closure will be called for each object in the collection
cleanup.
simplified loops.
optimized array handling, removed double clone().
GROOVY-6314 ResourceGroovyMethods uses BufferedWriter/BufferedOutputStream
Update version number of @since to 2.3
Groovy NIO module first commit [GROOVY-6377]
Excluding the groovy dependency by the Spock module
Make the module description generated by the build process
Updated tests
Port Griffon's ConfigReader enhancements back to Groovy's ConfigSlurper.

configSlurper now has the ability to support multiple conditional blocks, not just 'environments'.
The 'environments' block is still set as the default conditional if none is specified. These patch
also allows for nested conditionals, for example

    projects { // conditional
        sample {
            environments { // conditional
                test { ... }
                prod { ... }
            }
        }
        experimental { ... }
    }

The aforementioned script can be parsed with

    ConfigSlurper slurper = new ConfigSlurper()
    slurper.registerConditionalBlock('projects', 'sample')
    slurper.registerConditionalBlock('environments', 'prod')
    ConfigObject config = slurper.parse(theScript)
More tests
GROOVY-5014: Syntax highlighting problem in groovy.ui.Console text editor on empty string expression entering
GROOVY-3328: Automatic imports for selected text execution

Created pull request to of suggested solution by Jose Osinde and test by Sergey Bondarenko
GROOVY-4639: Add isSet()/hasValue()/similar method to ConfigObject
GROOVY-6303: Add ability to use a different font for groovyConsole
GROOVY-4639: Add isSet()/hasValue()/similar method to ConfigObject

refactored and added java doc
GROOVY-6401: Fixed inference when method call is "call" on a closure
GROOVY-6080: IncompatibleClassChangeError: the number of constructors during runtime and compile time
   * switched to a hash based approach
   * kept the old algorithm for binary compatibility with previously generated Groovy classes
GROOVY-6402: Receiver evaluated twice if using null-safe operator in static compilation