The container eases developing Jabber components by providing the underlying plumbing.
Chuk Munn Lee recently announced a new container for writing
Jabber components in Java. JAXenter caught up with the technology
evangelist at Oracle, to find out more about this new
JAXenter: You recently announced a new project:
Jabberwocky. What is Jabberwocky?
Chuk Munn Lee: In short, Jabberwocky is a
application server custom container for running Jabber
components. Like most Java application servers, Glassfish has
containers like web container (for servlets/jsp), EJB container,
Grails container, etc.
JAXenter: How does this container ease the pain
of writing Jabber components in Java?
Chuk Munn Lee: The container eases developing
Jabber components by providing the underlying plumbing so that
developers don’t have to worry about them and just concentrate on
The underlying plumbing that I’m refereing to here is things
like managing connections, secret keys, lifecycle management,
integration with other services, collecting statistics, etc. This
was in fact one of the main reason why I started Jabberwocky.
So as a developer, all you have to do is to write your component
is by either implementing org.xmpp.component.Component interface or
extending org.xmpp.component.AbstractComponent class, package the
component in a JAR file along with a small XML descriptor file and
deploy it to Jabberwocky using standard Glassfish deployment
JAXenter: What functionality can users
currently can get their hands on?
Chuk Munn Lee: As I mentioned in the previous
question, Jabberwocky will now deploy and
run any existing Jabber components that are based on either
Component interface or AbstractComponent class. There is also a set
of commands to define shared secret and map that to subdomains.
I’ve actually just published the current supported features.
JAXenter: What’s planned for future Jabberwocky
Chuk Munn Lee: I don’t have specific features
so let me give you what I’m hoping to do:
0. Short term is to get more management controls and get
Jabberwocky to publish statistics about Jabber components. This is
done through Glassfish’s JMX framework. I’m halfway there on this.
Also to make sure that Jabberwocky is solid and scales reasonabally
1. I hope to create a framework for creating Jabber components
and to introduce newer Java features like annotations, injections,
POJO, etc into this framework. I really like the JAX-RS RESTful API so I’ll try to model the framework
2. One of the great things about being in an application server
especially a modular application server like Glassfish is that you
can leverage other container and services in Glassfish. So one of
the first container/feature that I’m going to try to get into
Jabberwocky is CDI and JPA support. I think these two techologies
from the JavaEE world will really bring a lot of benefits to Jabber