Groovy - News

Blog: Groovy (GROOVY) (RSS 0.91)
()
JavaPolis slides of our Groovy talk available

On the Articles page is the JavaPolis 2004 presentation from James and Dion along with a snap of James rambling  

Groovy Beta 8 is released

I'm proud and happy to announce the release of Groovy 1.0 beta 8!
We've put a lot of energy to improve the stability and the user experience. I hope you will like it!

A lot of issues were fixed, among the most important and interesting ones:
  • groovyConsole and the streaming builders are back in the distribution
  • lighter error messages in groovysh (no more huge stacktraces)
  • a better experience with JDK 5.0
  • no more memory leaks when evaluating thousands of scripts with GroovyShell
  • MarkupBuilder can now generate <a href="groovy">stuff</a>
  • on certain windows platform, the classpath flag was not working
  • possibility to use a groovy namespace in ant build files without
    defining a taskdef for the groovyc ant task

I want to thank all the great guys who helped me make this release!
Particularly, let me thank:
  • Jochen Theodorou for Spring cleaning a lot of JIRA issues with me,
  • Russel Winder for his efforts in making Groovy build and run on JDK 1.5,
  • Dierk Koenig for his work on the Ant builder,
  • Sam Pullara for the lighter error messages in the Groovy shell,
    and all the others who contributed with their help and support whether
    in code or patches, (Jeremy Rayner, Scott Stirling, Steven Devijver,
    Marc Hedlund, Gary Furash, Kim Pilho, etc)

You can download Groovy there:
http://groovy.codehaus.org/Download

NB: depending on your platform, you may have to chmod +x the shell scripts.

Enjoy!

Guillaume Laforge
and the Groovy Team

PS : here are the precise release notes from JIRA
OSCon Groovy presentation available

Having fun here at OSCon, lots of interesting folks to chat to. Gonna be hanging around the interesting looking Ruby talks today.

The slides of our Groovy talk are here
Groovy 1.0-beta-6 released

I'm pleased to announce that Groovy 1.0-beta-6 has been released! Many thanks to all those who've submitted or applied patches, hacked code, made suggestions or just hung out in the groovy mail lists, wikis or IRC channel.

You can download a distribution from the usual place

There's a large number of new features, fixes, better diagnostics and performance enhancements in this release (including Bing's cool new type inference engine for using static method dispatch when the compiler can figure out the right thing to do).

Here's a the full list of changes

Enjoy!

Post on functional programming in Java - maybe a tad verbose

This is a good post which tries to demostrate the power of closures and functors.

It also helps illustrate how noisy things can be in Java. e.g.
import org.apache.commons.functor.*;
import org.apache.commons.functor.core.composite.*;
import org.apache.commons.functor.adapter.*;
import org.apache.commons.functor.UnaryFunction;
import org.apache.commons.functor.core.Constant;
import org.apache.commons.functor.core.IsEqual;
import org.apache.commons.functor.core.comparator.IsGreaterThanOrEqual;
import org.apache.commons.functor.core.comparator.Min;
import org.apache.commons.functor.core.Identity;

...

     UnaryFunction getItemCat = 
        new UnaryFunction()
        {
        public Object evaluate (Object obj)
        {
                return ((SETLItem)obj).getCategory();
}
         };
         
        UnaryFunction getItemPrice = 
        new UnaryFunction()
        {
        public Object evaluate  (Object obj)
        {
                return new Double(((SETLItem)obj).getPrice());
}
         };
                
        Constant catA = new Constant("A");
        Constant usd200 = new Constant(new Double(200));
                
        BinaryPredicateUnaryPredicate belongsToCatA = new BinaryPredicateUnaryPredicate
          (new UnaryCompositeBinaryPredicate(new IsEqual(), getItemCat, catA));
                
        BinaryPredicateUnaryPredicate moreThanUSD200 = new BinaryPredicateUnaryPredicate
          (new UnaryCompositeBinaryPredicate(new IsGreaterThanOrEqual(), getItemPrice, usd200));
                
        UnaryOr isEligibleForDiscount = new UnaryOr(new UnaryAnd(belongsToCatA, moreThanUSD100), 
          new UnaryAnd(belongsToCatB, moreThanUSD200));

        if (isEligibleForDiscount.test(item1))
          System.out.println("Item #1 is eligible for discount!");
        else
          System.out.println("Item #1 is not eligible for discount!");

whereas we could do something like this in Groovy

isEligibleForDiscount = { it.category == "A" && it.price > 200}
if (isEligibleForDiscount(item1) {
  println "Item #1 is eligible for discount!"
}
else {
  println "Item #1 is not eligible for discount!"
}

In IT you can usually use any tool to solve any problem. However sometimes switching tools makes things much easier & simpler.

GroovyOne tonight - come along and say hi

If you're at JavaOne or in the San Francisco area do pop along to GroovyOne tonight which is at the Thirsty Bear from 6:30pm onwards. As well as GroovyOne there's gonna be GeronimoOne and JakartaOne too, so it should be fun

Groovy wins JCP Award

Last night Groovy won the Most Innovative JSR award at the JCP dinner. The other winners were Josh Bloch & Doug Lea - so its a great honour to be in such company.

I'd like to dedicate this award to everyone in the Groovy community - lets keep up the good work
GroovyOne at JavaOne

For those who are gonna be at JavaOne, Rod Cope and I will be presenting a talk on Groovy

If folks fancy meeting up and sharing a beer; I'll be at the JavaBlogs meetup on Monday evening from 6:30pm onwards. Then we could have another Groovy meetup on Wednesday Evening in the Thirsty Bear
GroovyOne at JavaOne?

For those who are gonna be at JavaOne, Rod Cope and I will be presenting a talk on Groovy

If folks fancy meeting up and sharing a beer; I'll be at the JavaBlogs meetup on Monday evening from 6:30pm onwards. Then we could have another Groovy meetup on Wednesday Evening in the Thirsty Bear
Groovy 1.0-beta-5 released

The new 1.0-beta5 release is out today.

http://groovy.codehaus.org/Download

This release includes large amounts of fixes to the parser (thanks Chris!) and heaps of issues resolved with the bytecode generation (thanks Bing!) together with lots of new features and helper methods (thanks everyone else!)

For more details please refer to the changelog

Enjoy!

CVS Repository has moved

As part of essential codehaus migration work to a new server, the CVS repository has now moved. Please see this page for the latest details (you might have to refresh your browser).

It might be a good idea to do a clean checkout with the new CVS root. You could tinker with your CVS/Root files to point CVS at the new location.

Also as you might have noticed by now, we've got the Groovy blog up and running now

Groovy blog is up and running

We've now got a project blog where we can post groovy-related things to.

We can use this blog to announce changes & releases and significant events in the Groovy project.


Syndicate this site via RSS