Capabilities.xml

As I was creating my first robot, I wasn’t surprised on how little the number of resources available in the internet were, specially about capabilities.xml. I didn’t find any documentation on its schema yet. So, I decided to write about what I’ve learned.

My robot only needs the “document_changed” and “wavelet_self_added” events but I wanted to know what possible tags  I can add up to the file for my robot settings. As of now I only know two properties that you can set in the file, the capabilities/events and the version of the file.

Here’s my capabilities.xml

<?xml version="1.0" encoding="utf-8"?>
<w:robot xmlns:w="http://wave.google.com/extensions/robots/1.0">
  <w:capabilities>
    <w:capability name="document_changed"/>
    <w:capability name="WAVELET_SELF_ADDED" content="true" />
  </w:capabilities>
  <w:version>1</w:version>
</w:robot>

Notice that it is not case sensitive and you don’t have to set the content=true attribute. Just add the event that you wanted to have for your robot and you can already support it in your servlet. You can see the supported  list of events here.

Now about the version tag, you might be wondering how it is different from the version tag in your appengine-web.xml.

The version in capabilities.xml is to set (configure) what capabilities your robot can support. Every time you remove or add capabilities, you need to increment your capabilities version so that your changes will reflect on the server or else it would still be using the old capabilities. You don’t need to change the version when editing other parts of the project. While the version in appengine-web.xml is to tag all the releases of your robot.

Resources

http://groups.google.com/group/google-wave-api

http://code.google.com/apis/wave/extensions/robots/index.html

Bookmark and Share

8 thoughts on “Capabilities.xml”

  1. When I’ve been developing robots, I haven’t kept my version numbers for appEngine and robots the same at all. In fact they’ve been completely different.

    On AppEngine I’ve set up an app for just testing all my different robots. I just change the value on there when I try a different robot. So version 1 is the tutorial, 2 was another robot, 3 another etc…

    I change the robot version a lot more often to reflect each of the changes I make etc. I just keep consistency by using .’s in the robot version. So 2.1 might be the first modification of robot 2.

    Hopefully that makes some sense!

  2. Thanks for the comment.

    With regard to your question, your capabilities.xml version doesn’t need to be the same with your appengine-web.xml version. But when you deploy a new version of your appengine-web.xml, you must change the default application version in your goggle apps account.

  3. Hi Lee and melissa,
    Thanks for the clarification on the version numbering.
    I’ll create a link from graversen.org to this page.
    /daniel

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>