[Evolution-hackers] Creating a new server type
- From: Thomas Cataldo <thomas cataldo aliacom fr>
- To: evolution-hackers ML <evolution-hackers lists ximian com>
- Subject: [Evolution-hackers] Creating a new server type
- Date: Wed, 06 Oct 2004 15:10:10 +0200
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]