Groovy1.1 beta-1以及Grails 0.5 发布

Groovy1.1 beta-1以及Grails 0.5 发布
在Groovy1.1 beta-1中,最大的亮点是支持Java的Annotation,今后我们在Groovy中可以方便地使用Guice, Hibernate等利用Annotation简化开发的框架了。另外Groovy1.1 beta-1中也支持了Java的静态导入(static import)。

点击下载


下面是Release Notes:

Release Notes - groovy - Version 1.1-beta-1 - HTML format

Bug

  • [GROOVY-393] - cannot update a write-only property
  • [GROOVY-446] - cvs tags are wrong in two files in groovy.ant package
  • [GROOVY-554] - a Node created with no value can not have children added to it.
  • [GROOVY-571] - Groovy fails to complie against latest Xalan 2.6.0
  • [GROOVY-737] - Aliasing problem
  • [GROOVY-912] - Setting protected field using named arguments in constructor silently fails
  • [GROOVY-929] - Setting private field in Bean constructor fails sliently
  • [GROOVY-1048] - MetaClass.setProperty() tries to access protected fields instead of a given setter Method
  • [GROOVY-1061] - try..catch can't be in the middle of a method
  • [GROOVY-1167] - Object.collect(Collection,Closure) fails to work with Set parameter
  • [GROOVY-1173] - When importing a class that's not on the classpath, the import fails silently.
  • [GROOVY-1191] - -cp and Caller/Call example
  • [GROOVY-1300] - ClassFormatError: Invalid method Code ... thrown when using JOGL
  • [GROOVY-1322] - RangeExpression doesn't implement Expression not allowing it to be the target of an assert
  • [GROOVY-1383] - DOMBuilder class raises NPE if value is null
  • [GROOVY-1476] - Variable arity method problem
  • [GROOVY-1492] - Setting property value via GString causes VerifyError
  • [GROOVY-1518] - VerifyError
  • [GROOVY-1522] - catch block without explicit exception type results in VerifyError
  • [GROOVY-1530] - stack overflow error when supplying insufficient number of argments
  • [GROOVY-1539] - java.lang.VerifyError
  • [GROOVY-1551] - each invocation of run on GroovyScriptEngine don't share same GroovyClassLoader
  • [GROOVY-1566] - problems with if statements not returning correctly
  • [GROOVY-1598] - Access an element in a Map
  • [GROOVY-1602] - Using the groovy task in ant, my tasks run twice
  • [GROOVY-1615] - "Class is declared in a dynamic context"
  • [GROOVY-1618] - Groovy SQL insertion failing against SQL Server using JTDS
  • [GROOVY-1626] - Inconsitent stack height when using super
  • [GROOVY-1629] - (null as String) should return null but throws NullPointerException
  • [GROOVY-1634] - Can't set the delagate on a curried closure
  • [GROOVY-1645] - r4814 fails to build under Java SE 6
  • [GROOVY-1651] - Bitwise OR and AND operators with left operand inverted (!) cause VerifyError
  • [GROOVY-1655] - Subscript operator semantics on Map different to property operator
  • [GROOVY-1657] - XmlNodePrinter fails to print GString attribute values correctly
  • [GROOVY-1663] - try-finally block creates a VerifyError when used in methods with return values
  • [GROOVY-1664] - Case with Interface
  • [GROOVY-1668] - replace not thread safe reference map implementation with thread safe version
  • [GROOVY-1670] - toString() on NullObject does not throw a NPE
  • [GROOVY-1675] - Outline view throws exception when clicking on import statment
  • [GROOVY-1682] - polymorphic static methods
  • [GROOVY-1697] - MemoryAwareConcurrentReadMap drops entries which are still live.
  • [GROOVY-1703] - error in wiki example
  • [GROOVY-1730] - curried closure: getParameterTypes() doesn't work
  • [GROOVY-1747] - Compiler doesn't recognize fully qualified class name in method
  • [GROOVY-1749] - java.lang.VerifyError with nested closures
  • [GROOVY-1760] - Static methods on a extending class are just ignored and hidden by the extended class
  • [GROOVY-1761] - NPE when the () after a method name are missing
  • [GROOVY-1774] - Problem when using primitive return type inside a try block
  • [GROOVY-1777] - Inconsistent stack height error
  • [GROOVY-1787] - GroovyClassLoader fails to load a script from a file whose absolute name contains spaces
  • [GROOVY-1788] - Can't execute Thread.setDefaultUncaughtExceptionHandler
  • [GROOVY-1789] - problem with packages.
  • [GROOVY-1790] - Calling back into java base class method inside an if statement causes java.lang.VerifyError: Inconsistent stack height 1 != 0
  • [GROOVY-1792] - Non writeable properties witreable
  • [GROOVY-1799] - this() does not work
  • [GROOVY-1800] - Inconsistent stack height 0 != 1
  • [GROOVY-1805] - SwingBuilder does not intialzie properties in code order
  • [GROOVY-1806] - import static not supported
  • [GROOVY-1810] - size() not supported on two-dimensional boolean arrays
  • [GROOVY-1815] - import doesn't allow inner classes
  • [GROOVY-1816] - Closure Listener does not work with method events that have more than one parameter
  • [GROOVY-1817] - JTable ColumnModel not set in SwingBuilder
  • [GROOVY-1821] - Expecting to find object/array on stack
  • [GROOVY-1822] - Fallthrough in Switch Statements doesn't work for Patterns
  • [GROOVY-1824] - map.class returns null
  • [GROOVY-1829] - Problem with GString as names of the method call inside a closure.
  • [GROOVY-1833] - blank in path makes calling one groovy file from another fail
  • [GROOVY-1837] - Groovy console broken with NPE on Mac OS X
  • [GROOVY-1839] - Fully qualified annotations are not parsed properly
  • [GROOVY-1844] - Subclasses of groovy.lang.Closure can't be invoked like closures
  • [GROOVY-1846] - Referencing a method closures should work with GStrings
  • [GROOVY-1848] - GCL does not close input stream when using URL to parseClass
  • [GROOVY-1852] - Closure constant on interface not callable without call()
  • [GROOVY-1854] - DefaultGroovyMethods File[] null check
  • [GROOVY-1856] - Error while selecting appropriate method
  • [GROOVY-1862] - Resource leak in ResolveVisitor.isSourceNewer()

Improvement

  • [GROOVY-1109] - provide method rows() and firstRow() on groovy.sql.DataSet
  • [GROOVY-1311] - make Groovy Stubs and Mocks deal with property access same as with method calls
  • [GROOVY-1376] - rename (or alias) assertArrayEquals to assertEquals
  • [GROOVY-1542] - Implement groupBy() for Maps as well as for Lists
  • [GROOVY-1619] - Allow the addition of MetaBeanProperty instances to MetaClassImpl
  • [GROOVY-1640] - Add "".hasText() method
  • [GROOVY-1647] - Improve Groovy Truth for CharSequence and arrays
  • [GROOVY-1750] - printf should work with any PrintStream and support sprintf
  • [GROOVY-1752] - Add arg types and return types to error messages
  • [GROOVY-1770] - use(category){closure} should propagate the value returned by its closure
  • [GROOVY-1818] - Option to remove the GroovyObject dependency and compile to 'pure' Java
  • [GROOVY-1849] - Add the ability to assign before and after interceptors to groovy shell and groovy console to hook into script execution

New Feature

  • [GROOVY-1665] - Allow Closures to be lazily evaluated in GStrings
  • [GROOVY-1676] - Implement literal Map addition/concatenation like "[a:1, b:2] + [c:3]"
  • [GROOVY-1695] - Add (new|with)(Object|Data)(Input|Output)Stream
  • [GROOVY-1745] - DefaultGroovyStaticMethods addShutdownHook( Object obj, Closure closure)
  • [GROOVY-1828] - GDK: Add eachDirMatch and eachDirRecurse on File
  • [GROOVY-1834] - Migrate ExpandoMetaClass from Grails into Groovy

Task

  • [GROOVY-8] - Map/List expressions as last expression of new object exprs.
  • [GROOVY-974] - remove transformName() hack in MarkupBuilder
  • [GROOVY-1711] - New Build System
  • [GROOVY-1772] - Upgrade Ant to 1.7.0

Wish

  • [GROOVY-301] - consider adding neater syntax for getters/setters maybe using closure-like syntax
  • [GROOVY-1287] - use(category, closure) should return the closures return value.
  • [GROOVY-1636] - Support as SortedSet

Grails 0.5的性能提升了40%~50%,至于新特性等请看下面release notes

引自 agile_boy的部分翻译:

新特性
  • 自定义的URL映射(对我来说是个不错的特性)
  • 命令对象(Command objects)和 form 校验 (没有玩过,看Login的示例还是不错的,考虑改进一下现有系统的Login)
  • GORM新增List和Map的支持
  • GORM新增组件对象(Hibernate的component)的支持 (呵呵,越来越完善了)
  • Base64 codec
  • 使用lvy(???)解决依赖问题
  • 新增项目配置信息,比如版本 (好像用处不大?)
  • 用于插件开发的新的Artefact API (以后开发插件再说)
  加强
  • 性能提升(40-50% faster)  (早就期待了)
  • Taglib的完善
  • I18n的加强
  • 。。。。


点击下载

Grails 0.5 Release Notes

30 April 2007

The Grails development team has reached another milestone and is pleased to announce the release of version 0.5 of the Grails web-application development framework.

Grails is a dynamic web-application framework built in Java and Groovy, leveraging best of breed APIs from the J2EE sphere including Spring, Hibernate and SiteMesh. Grails brings to Java and Groovy developers the joys of convention-based rapid development while allowing them to leverage their existing knowledge and capitalize on the proven and performant APIs Java developers have been using for years.

Development has been intense since the release of 0.4.2 at the end of February, tackling over 190 issues in this period. This release has seen exciting contributions from new team members and users and significant functionality enhancements.

Thank you to all the team members, patch contributors and users. A lot of hard work has gone into this release - we hope you enjoy using this latest installment of the Grails adventure.

New Features

  • Custom URL Mappings
  • Command objects / form validation
  • List & Map support in GORM
  • Support for composition in domain class (Hibernate "components")
  • Base64 codec
  • Dependency resolution with Ivy
  • Project metadata and versioning support, smarter scripts and upgrade processes
  • Script event hooks
  • Automatic addition of log objects to all artefacts
  • New Artefact API available to Plugins

Improvements

  • Major improvements to artefact reloading
  • Improved relationship management methods in GORM
  • Cascading validation
  • Retrieving multiple objects with Book.getAll(1,2,3)
  • Using named HQL parameters in find() methods
  • Clean up of some legacy constraints issues
  • Performance improvements (40-50% faster)
  • Taglib optimisations
  • Improvements to scaffolding (sortable columns, pagination of large resultsets, etc.)
  • I18N improvements
  • Overhauled GSP view loading
  • Even greater test coverage of the core Grails code
  • Many many bug fixes



附: 朝花夕拾——Groovy & Grails

你可能感兴趣的:(Groovy1.1 beta-1以及Grails 0.5 发布)