Gaelyk 1.1 released


Gaelyk 1.1 has just been released!

Gaelyk is a lightweight toolkit for writing and deploying Groovy apps on Google App Engine. 

In this version, all the components have been updated to their latest versions:
This blog is now running Gaelyk 1.1 pretty happily!

You should be able to see the announcement on the Gaelyk Google group for the details, but here's the list of changes:
  • Upgraded to Groovy 1.8.4 and App Engine SDK 1.6.0
  • Added an unindexed property on entities to set unindexed properties: person.unindexed.bio = "..."
  • Part of the work with the async datastore get(), whenever you have a Future to deal with, for example when the async datastore returns a Future, you can call any property on the Future object, and it will proxy those property access to the underlying object returned by the get() call on the future.
  • In addition to datastore.query{} and datastore.execute{}, there is now a datastore.iterate{} method that returns an Iterator instead of a list, which is friendlier when your queries return a large number of results.
  • Added the prospective search service to the binding
I'll just highlight one of the nice little additions mentioned above, which is the refinement of the POGO / Entity coercion mechanism. You can now use three annotations to further customize that conversion: @Key, @Unindexed and @Ignore, to respectively specify the key property, properties that should not be indexed by the datastore, and properties that should be ignored and not saved in the datastore.

Here's what a class annotated with those annotations could look like:
@Canonical
class Person {
    @Key String login
    String firstName
    String lastName
    @Unindexed String bio
    @Ignore String getFullName() { "$firstName $lastName" } 
}
And then you can use the as operator to convert between beans and entities.

If you've read thus far, it's time to go download Gaelyk and have fun!

 

 
© 2012 Guillaume Laforge | The views and opinions expressed here are mine and don't reflect the ones from my employer.