First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0
          在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
          posted on 2007-05-01 13:43 山風小子 閱讀(2128) 評論(0)  編輯  收藏 所屬分類: Groovy & GrailsOthers
          主站蜘蛛池模板: 衡山县| 镇雄县| 旅游| 渑池县| 麻栗坡县| 普安县| 青州市| 靖远县| 枣庄市| 林芝县| 莫力| 泌阳县| 化州市| 巩留县| 长治市| 多伦县| 建昌县| 行唐县| 新河县| 宁武县| 安康市| 鲁甸县| 岳西县| 景宁| 和政县| 新邵县| 陈巴尔虎旗| 武威市| 安宁市| 通辽市| 开平市| 河东区| 纳雍县| 北川| 马龙县| 延川县| 赤城县| 衡水市| 丹东市| 准格尔旗| 高青县|