[Evolution-hackers] Creating a new server type



Hi,

We (as me and Laurent Belmonte, the monkey bubble maintainer) are in the
process of writing e-book and e-cal backends for OBM, our company
web-based groupware/management solution. OBM is already GPLed and so
will the evolution connector.

Right now we have a working e-book backend, providing to ebooks, one for
the obm users, and one for the contacts (users have an obm login and
calendar).

To test our backend, we are using a separate executable doing some
e_source_new sorcery. We are aiming for a better integration : we want
"O.B.M." to be available in the "server type" list when we create a new
account.

What we figured out :
 - we need a camel provider to appear in the server list
 - we need a listener to listen to the account_(changed|removed|added)
and create the ebook and ecal sources

I don't know if it is relevant but our provider differs from the one in
the evo source because it only does contact and calendars.

Our problem is : O.B.M. does not appear in the server list.

What we've done :

we installed libcamelobm.urls and libcamelobm.so
in /usr/lib/evolution/2.0/camel-providers (where the other providers
are).

This is a piece of my camel-obm-provider.c :

static CamelProvider obm_provider = {
    "obm",
    N_("Aliacom O.B.M."),

    N_("For contacts and multi-user calendering"),

    "obm",

    CAMEL_PROVIDER_IS_REMOTE | CAMEL_PROVIDER_IS_EXTERNAL |
    CAMEL_PROVIDER_SUPPORTS_SSL,

    CAMEL_URL_NEED_USER | CAMEL_URL_NEED_HOST |
    CAMEL_URL_ALLOW_PASSWORD | CAMEL_URL_ALLOW_AUTH,

    obm_conf_entries

    /* ... */
};

[.....]

void
camel_provider_module_init (void)
{
    
    g_print("*************** Trying to start camel provider for OBM **************\n");

    obm_provider.authtypes =
	g_list_prepend (NULL, &camel_obm_password_authtype);
    obm_provider.url_hash = obm_url_hash;
    obm_provider.url_equal = obm_url_equal;

    bindtextdomain (GETTEXT_PACKAGE, CONNECTOR_LOCALEDIR);
    obm_provider.translation_domain = GETTEXT_PACKAGE;

    camel_provider_register (&obm_provider);

    g_print("obm camel provider registered\n");
}


Can anyone see what we are missing ?






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]