Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A java client library to superfeedr

This branch is 7 commits ahead, 14 commits behind mastooo:master

Merge pull request #1 from mojolly/master

Adds a few missing fields to the xmpp implementation
latest commit 3788098618 authored
Failed to load latest commit information.
build Adds getter for updated
distrib Adds getter for updated
examples adding more docs
javadoc some cosmetic stuff
lib support for sub/unsubscription. Add missing smackx.jar lib. Update th…
src Adds getter for updated
build.xml fixing the error which lead the notifications to not be treated corre…


Superfeedr XMPP API Java Wrapper

Thanks to

Thomas RICARD, July 2009

Dependency :

Smack 3.1 Smackx library Java 5+


To use the Superfeedr java library, just add the file ./distrib/superfeedr.jar to your classpath.

See the class org.superfeedr.test.Test to know how to use it.


You don't need that if you don't need to change the code. Please just use the built .jar file in /distrib

It you changed the code, you can rebuild the .jar file, by using ant in the wrapper directory or use maven clean install if you prefer to use Maven 2


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jivesoftware.smack.XMPPConnection;
import org.superfeedr.OnNotificationHandler;
import org.superfeedr.Superfeedr;
import org.superfeedr.OnResponseHandler;
import org.superfeedr.extension.notification.ItemExtension;
import org.superfeedr.extension.notification.SuperfeedrEventExtension;

Small Sample/example that you can start to use to track Superfeedr.
class ExampleProgram {
    public static void main(final String[] args) throws Exception {

        List<URL> urls = new ArrayList<URL>();
        // List of urls you want to track
        urls.add(new URL(""));
        urls.add(new URL(""));
        urls.add(new URL(""));

        // Debugging will display a window that allows you to see incoming/outcoming traffic
        XMPPConnection.DEBUG_ENABLED = true;
        // Use your Superfeedr credentials
        Superfeedr feedr = new Superfeedr("user", "password", "");

        // Adds notification Handler. The onNotification method will be called with a SuperfeedrEventExtension object.
        feedr.addOnNotificationHandler(new OnNotificationHandler() {
            public void onNotification(final SuperfeedrEventExtension event) {
                // Displays the feed url, the HTTP status and the Log. (See Superfeedr Doc for more info)
                // And now the items
                if (event.getItems().getItemsCount() == 0) {
                    System.out.println("No items");
                } else
                // For each item
                for (Iterator<ItemExtension> iterator = event.getItems().getItems(); iterator.hasNext();) {
                    ItemExtension item =;
                    // Display it's title and link

        // Actually perform the subscription, and calls the second argument when performed
        // You can obviously do 'unsubscribe' too.
        feedr.unsubscribe(urls, new OnResponseHandler() {
          public void onSuccess(Object response) {
            // TODO Auto-generated method stub
          public void onError(String infos) {
            // TODO Auto-generated method stub

        while (true) {


We know our limits and we know we can’t actively support wrappers in every languages. Like everybody, we have our favorite languages and platform, and there is little chance that we ever get a deep enough knownledge in all that languages that you guys use to offer great services. So, for us, the limit of what we can provide and support is our API (both XMPP and PubSubHubbub).

However, we’re not blind either and we know how these parsers are important for everybody to get started and integrate Superfeedr into their existing apps, so we take great care of them and try to help people use them or fix problems.

These libs are not ours, they wait for your input, your documentation, your testing, as well as_ your suggestions for new features_. We will just help gathering them and keeping track by connecting the people who made them with the people who use them.

Please, fork it and make it better!

Something went wrong with that request. Please try again.