Skip to content


Subversion checkout URL

You can clone with
Download ZIP
[RETIRED -- now in SVN trunk] XEP-0060 extension to the Smack XMPP client library
Java Shell
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.hgignore Ignore target
README - changed all groupIds from smack to jivesoftware
smack-src-3.1.0.jar Debug and source, to help with debugging
smackx-debug.jar Debug and source, to help with debugging


* XEP-0060 (PubSub) extensions to Smack

*NB*: smackx-pubsub is now in IgniteRealtime's SVN repository, and is
actively maintained there:

That should be considered the canonical source repository; I'm leaving
this here in case there's stuff that hasn't made it into SVN, and for
the notes on ejabberd compatibility below.

Original code by rcollier:
Posted at

Modifications by Michael Bridgen <>, including

** Building

This is a straight-forward Maven build.  Except that it depends on
newer versions of the smack jars than I can find anywhere in a Maven
repo, so I have included them here, along with a script for installing
them.  There are plans to have an igniterealtime Maven repo:  Until then
we'll have to make do.

Note that many of the tests fail with OpenFire, because the library
follows v1.12 of XEP-0060, while OpenFire implements v1.8.

Most tests fail with ejabberd, because of its idiosyncratic node
scheme (see;
but this may be fixable to some extent, and I'm trying it.

$ sh
$ mvn -DskipTests install

This makes a jar file in target/, and installs it to your local Maven

** Debugging

Use the system property smack.debugEnabled to tell smack to show the
XMPP debugger.  I've put it in NetBeans's Actions tab (Project

** Using with ejabberd

The tests will run into ejabberd's registration timeout, giving a 500
Resource Constraint error.  To avoid this, you can put an global
option in ejabberd.cfg:

%% Allow fast regiatrations for testing
{registration_timeout, infinity}.

The 3.10 Smack release also has an error in the SASL implementation,
which results in a NullPointException.  This needs a patch, which I've
included in the JAR for the time being.

(thanks and

Most tests still fail with ejabberd; I've started making the tests use
ejabberd's /home/ node structure, which ought also to work with
Something went wrong with that request. Please try again.