"KDE Address Book = KDE Contacts = addressbook = contacts = kde-contacts\n"
                                     "   vCard 2.1 (default) = text/x-vcard\n"
                                     "   vCard 3.0 = text/vcard\n"
                                     "   The later is the internal format of KDE and preferred with\n"
                                     "   servers that support it. One such server is ScheduleWorld\n"
                                     "   together with the \"card3\" uri.\n"
                                     "KDE Calendar = calendar = events = kde-events\n"
                                     "   iCalendar 2.0 (default) = text/calendar\n"
                                     "   vCalendar 1.0 = text/x-calendar\n"
                                     "KDE Task List = KDE Tasks = todo = tasks = kde-tasks\n"
                                     "   iCalendar 2.0 (default) = text/calendar\n"
                                     "   vCalendar 1.0 = text/x-calendar\n"
                                     "KDE Memos = memo = memos = kde-memos\n"
                                     "   plain text in UTF-8 (default) = text/plain\n",				     
                                     Values() +
                                     (Aliases("KDE Address Book") + "KDE Contacts" + "kde-contacts") +
                                     (Aliases("KDE Calendar") + "kde-calendar") +
                                     (Aliases("KDE Task List") + "KDE Tasks" + "kde-tasks") +
                                     (Aliases("KDE Memos") + "kde-memos"));

#ifdef ENABLE_AKONADI
#ifdef ENABLE_UNIT_TESTS

class AkonadiTest : public CppUnit::TestFixture {
    CPPUNIT_TEST_SUITE(AkonadiTest);
    CPPUNIT_TEST(testInstantiate);

    // There is no default database in Akonadi:
    // CPPUNIT_TEST(testOpenDefaultCalendar);
    // CPPUNIT_TEST(testOpenDefaultTodo);
    // CPPUNIT_TEST(testOpenDefaultMemo);
    }
    return NULL;
#endif
}

static RegisterSyncSource registerMe("XMLRPC interface for data exchange",
#ifdef ENABLE_XMLRPC
                                     true,
#else
                                     false,
#endif
                                     createSource,
                                     "XMLRPC interface = xmlrpc\n"
                                     "   Data exchange is done via an XMLRPC interface on the datastore.\n",
                                     Values() +
                                     (Aliases("XMLRPC interface") + "xmlrpc"));

#ifdef ENABLE_XMLRPC
#ifdef ENABLE_UNIT_TESTS

class XMLRPCSyncSourceUnitTest : public CppUnit::TestFixture {
    CPPUNIT_TEST_SUITE(XMLRPCSyncSourceUnitTest);
    CPPUNIT_TEST(testInstantiate);
    CPPUNIT_TEST_SUITE_END();

protected:
    void testInstantiate() {
        boost::shared_ptr<SyncSource> source;
        source.reset(SyncSource::createTestingSource("xmlrpc", "xmlrpc:text/vcard:3.0", true));
        source.reset(SyncSource::createTestingSource("xmlrpc", "xmlrpc:text/plain:1.0", true));
        source.reset(SyncSource::createTestingSource("xmlrpc", "XMLRPC interface:text/x-vcard:2.1", true));