提高Groovy品質 Groovy 1.5.2釋出

老魚筆記發表於2008-01-31
Groovy1.5.2是Groovy1.5.0釋出後的第二bug修正版本(類似於JDK1.5update2),旨在進一步提高Groovy的品質,除了Groovy1.5.1和Groovy1.5.2這兩個bug修正版本外,還有最後一個bug修正版本Groovy1.5.3。

最近Groovy Team正致力於提升Groovy的效能,他們研發出了call site快取技術,能顯著提升Groovy的整體效能,
部分測試顯示Groovy的效能提升了2~4倍,這與應用場景相關。
這些最佳化我們將在Groovy1.6中便可體驗到 :)

下載:

下面是Groovy1.5.2修正和改進的內容:

Release Notes - groovy - Version 1.5.2 - HTML format

Bug

  • [] - java.lang.ClassFormatError running groovy script. from shell (bash)
  • [] - println invoked on a writer object still prints to System.out and not to the given writer
  • [] - Strange behavior. on property setter
  • [] - If one constructor calls another, instance variables may be initialized incorrectly
  • [] - getParameters and asSql process / strip nulls incorrectly
  • [] - Parsing quoted method name fails if there is no modifier
  • [] - Optional interface modifier
  • [] - Default method parameters
  • [] - Repeating superinterface in implements clause
  • [] - Incorrect behaviour of a parse error.
  • [] - 'as' not allowed as namespace in embedding Groovy-code
  • [] - String minus() fails in case of regex chars in operand [minor breaking change]
  • [GROOVY-1684] - MarkupBuilder throws NPE if element content or attribute values are null
  • [] - Windows start scripts have problems with -Dfoo=bar parameters
  • [] - OrderBy Comparable Check
  • [] - Why in script. I can define variable with access modifiers private public protected simultaniously?
  • [] - Code completion does not find all Java classes
  • [] - Can't insert null values into database
  • [] - mysql: class of result columns from "show full processlist" is byte array, should be java.lang.String
  • [] - groovyc documentation needs update!!!
  • [] - ConcurrentModificationException when accessing iterator variable in nested iterator
  • [] - Code completion throws NPE when Groovy nature is not enabled
  • [] - Can't reflect groovy script. annotations in java
  • [] - Processing XML with XQuery Example not working
  • [] - [].sum() should return 0 not null.
  • [] - Stackoverflow with groovy & ant
  • [] - Cannot resolve which method to invoke with extended interfaces
  • [] - Addition to ProjectExplorer needs to much System-Performance
  • [] - New TestNG-Test Wizard forget to inherit from superclass
  • [] - NPE in codecompletion if underlying type is null
  • [] - fail to lauch groovysh with cygwin
  • [] - Range of enum not working
  • [] - list of string output format changed between 1.5.0 and 1.5.1
  • [] - Groovy XML-RPC uses ISO-8859-1 for the XML-RPC response even if it is declared as UTF-8
  • [] - groovy hangs if enum range includes last value
  • [] - Enum range works only for Groovy enums and not for Java enums
  • [] - regex with / and \ causes compilation error on 1.5.1
  • [] - 'in' with an array always returns false
  • [] - Groovy does not enforce implementation contract on interface that extends interface
  • [] - Qualified static property reference from static method of qualified class causes infinate recursion
  • [] - VerifyError instead of compilation error
  • [] - StreamingMarkupBuilder assumes that the encoding is always known
  • [] - More problems with covariant return types
  • [] - performance issue with collections operations when numbers are elements of the collections
  • [] - A labelled continue statement does not appear to correctly imitate its Java counterpart.
  • [] - getAt calls not selecting right implementation
  • [] - Static properties are not overriden correctly in the byte code
  • [] - java.lang.IllegalAccessError: tried to access method org.codehaus.groovy.reflection.CachedClass.coerceArgument(Ljava/lang/Object;)Ljava/lang/Object; from class org.codehaus.groovy.runtime.dgm$328
  • [] - MissingMethodExceptions in highly concurrent environments
  • [] - assertEquals() raises IllegalAccessError for Lists
  • [] - Swingbuilder table content gets mixed up when columns are re-ordered by dragging.
  • [] - Java.lang.VerifyError... signature: (Ljavax/swing/JTable;Ljava/lang/Object;Lboolean;Lboolean;Lint;Lint;)Ljava/awt/Component;)
  • [] - ExpandoMetaClass returns expando properties twice
  • [] - Command line option -D does not work in Windows XP but does in MacOSX
  • [] - GString should be serializable
  • [] - Expression with "as int" fails (regression)

Improvement

  • [] - Allow junit.framework.TestCase to be run by groovy command
  • [] - provide GString versions for Sql.rows and Sql.firstRow() [minor breaking change]
  • [] - Patch to provide acess to Script. Object in GroovyScriptEngine
  • [] - Error message when trying to execute a directory should be improved
  • [] - Improve docs for Collection.groupBy and add new Collection.collate(Closure) [Small breaking change]
  • [GROOVY-1681] - null.setProperty yields confusing error message
  • [] - Change compiler error message "Closure expression looks like it may be an isolated open block" to make it more clear
  • [] - Errors in templates syntax produce not so helpful error messages
  • [] - Add 1 argument constructor to groovy.util.Node, and corresponding groovy.util.XmlParser appendNode('someElementName') method
  • [] - Provide a reverseEach method for arrays
  • [] - Provide an enhanced each() method for subclasses of java.lang.Enum
  • [] - Allow JUnit 4 tests to be run by the groovy command
  • [] - Code completion import improvements
  • [] - Hover link improvements
  • [] - Change all withXXX methods to return the value returned by their closure instead of void
  • [] - Add a Groovy version of the JavaPluginImages to simplify access to common icons
  • [] - Allow Map.eachWithIndex to be called with a three-arg closure
  • [] - superfluous checked exception: IOException in Script#evaluate(String)

New Feature

  • [] - groovy SQL needs to create updateable rowsets
  • [] - Provide size() on StringBuilder
  • [] - List#indexOf(groovy.lang.Closure closure) and friends to groovy jdk
  • [] - improve the org.w3c.dom.Node support with List and Map methods
  • [] - Provide a collectAll() method for lists (WAS: Provide a 'SpreadAllDot' operator)
  • [] - Add support for coercing strings to enum classes with "as" keyword
  • [] - Add newInputStream and withInputStream to java.net.URL for dealing with binary files
  • [] - Add support for JavaDocs
  • [] - Adding support for code-templates
  • [] - Implement a Quick-Outline

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11310314/viewspace-166527/,如需轉載,請註明出處,否則將追究法律責任。

相關文章