New capabilities.xml format

The format of capabilities.xml has been changed. I have looked at the http://code.google.com/intl/da/apis/wave/extensions/robots/ and it is now possible to also specify the profile.

The new code looks like the following.

<w:robot xmlns:w="http://wave.google.com/extensions/robots/1.0">
<w:version>0.1</w:version>
<w:capabilities>
  <w:capability name="BLIP_SUBMITTED"/>
  <w:capability name="DOCUMENT_CHANGED"/>
</w:capabilities>
<w:profile name="Cartoony" imageurl="http://cartoonybot.appspot.com/public/avatar.png" profileurl="http://cartoonybot.appspot.com"/>
</w:robot>

This is much nicer than using the profile servlet, which served the same informations. With the help of this new XML format you can delete your profile servlet. I cannot imagine a time, where the profile image needs to change dependant of which user is calling it. I don’t think you have the informaiton in the request sendt to get the profile informaiton. So thise values will always be hardcoded.

It does not provide much of a change in Python, since python already generates the document. Then we just need the Java API also to follow the python, so it also can create the cababilites based on configuration in a class file.

Bookmark and Share

New Robot API

Just found that a new JAVA API of the robots is available on the download site. The difference in the code can be seen on the changes page.

One interesting concept is the AbstractRobot which has been added. From my look at it this class gives is able to create the capabilities XML and the profile information. So you only need to implement one class and then you can have all the information you need one place. This will make it much easier to program robots. The Rave Ruby frameworks has something like this, you just implement the methods for each event you want to have. Then the framework can manage to create the capabilities XML file. The AbstractRobotServlet and ProfileServlet was not changed, this could lead to thoughts about deprecation of these classes.

Of other changes the Annotations and Range has better toString functions, which was missing when you needed to debug applications.

I hope there will be posted a change to the tutorial, so we can start using the AbstractRobot instead.

Bookmark and Share