Jabberwocky Glassfish Custom Container
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 project.......
JAXenter: You recently announced a new project: Jabberwocky. What is Jabberwocky?
Chuk Munn Lee: In short, Jabberwocky is a Glassfish 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 their components.
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 tools.
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 releases?
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 well.
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 after that.
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 applications.