
An embedded wave.
As announced on Grails.org last week, I’ve released the first version (actually 0.3) of the Google Wave plugin for Grails. The plugin enables you to embed waves in your views (Wave Embed API) or to code your own Wave robot using the Robots API by avoiding tedious servlet mappings and configuration files. Support for gadgets and installers will follow soon, as far it makes sense as plugin feature.
If you are new to Grails there is only one option. Okay there is a second one.
If you are new to Wave development here is a list of some resources to start with:
- Watch the Google IO Keynote (and see what’s possible)
- Read the Wave API Docs. Knowing the basic concepts and terms should be enough to work with the plugin. But it’s handy to have the Wave Client JavaDoc bookmarked.
- There is also a Wave API group but discussion is pretty scattered as lots of dev-talk is going on in Wave itself. If you are lucky and have a sandbox account you can use it to find some good developer discussions.
- Find public discussions by searching with:public or with:public@a.gwave.com
- Something worked before and now doesn’t – check the Wave issue-tracker: code.google.com/p/google-wave-resources

A crashed wave: Dr. Wave wants your diagnosis
- Look at the official samples gallery to find code snippets and live demos. Try the grails-wave sample app and talk to the Groovy:Bot
- Embedding Wave: Note that only published waves can be embedded. Make a wave public by clicking the “+” on the left bottom and add
public@a.gwave.com
as a contact. You may get an error that this user doesn’t exist – just keep hitting return. Now add it as participant to your wave.

publishing waves can be tricky.
Embedded Waves are referenced by their wave id. On the sandbox instance there is a debug tool which gives you the id for the current wave. On preview you have to manually extract the id from the URL. The segment after “wave:” is the actual id:
https://wave.google.com/wave/?pli=1#restored:wave:googlewave.com!w%252Bh4UDikrUI
But keep in mind that the URL is double-encoded and that’s why you have to replace the “%252B” by “+” and you have a valid wave id:
googlewave.com!w+h4UDikrUI
- Robots will currently work only when deployed to AppEngine (Wave preview limitation)
- Read the plugin docs and get started:
grails install-plugin wave
Groovy wave-ing!
Thanks to @spidie for moving and reviewing the docs and @xymor for the shiny cap’n screen.










[...] enables you to pass an URL to a wave instead of a wave-id. This avoids the error-prone process to manually extract the id from the encoded wave URL. The embedding of waves is now even easier than before – just copy [...]