Re: [Evolution-hackers] Fwd: Re: [Evo and Kolab2 - a fresh attempt] Evo/EDS and The Big Picture

2010-06-24 Thread Matthew Barnes
On Thu, 2010-06-24 at 15:10 +0200, Christian Hilberg wrote:
 By the way, are there any known pitfalls using multiple instances of Camel 
 simultaneously? I think I've read something about Camel not being 
 multithreading-safe (can't seem to find the link just now), but our backends 
 will likely be async ones. Will multiple Camel.Provider-instances interfere 
 with one another at any point?

Don't know for sure, you're kind of in new territory.  As long as the
instances are partitioned into different processes and aren't sharing
files you should be fine.

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Fwd: Re: [Evo and Kolab2 - a fresh attempt] Evo/EDS and The Big Picture

2010-06-21 Thread Matthew Barnes
On Mon, 2010-06-21 at 18:28 +0200, Christian Hilberg wrote:
   Does the front-end process refer to Evolution, i.e. is a Camel.Provider 
 running inside Evolution instead of EDS? I was hoping that all non-UI-related 
 stuff could be run inside EDS, so we would facilitate Evo only for account 
 setup and displaying purposes. Now, if Camel.Provider would run inside Evo, 
 this would complicate matters. Or maybe, we could get along without a 
 Camel.Provider for IMAP access?

I should have been clearer about this because it is confusing at first.

Everything email-related runs in the Evolution process.  The Camel
library is bundled in the Evolution-Data-Server source package, but has
nothing to do with the contact and calendar D-Bus services provided by
Evolution-Data-Server.

That said, I see no reason why you couldn't reuse Camel's IMAP provider
from your EBookBackend and ECalBackend if that works out to be the best
approach for your needs.  Certainly reinventing IMAP access yourself
would not be my first recommendation.


   This means, at least part of the calendar backend will reside in 
 Evolution. We will have a helper lib which will convert Kolab2 XML format to 
 Evolution data structures. This lib was planned to live within the EDS 
 backend 
 code. Now that I know that the Camel.Provider runs inside Evo, I'm not fully 
 sure whether putting the conversion lib inside our EDS plugin would be the 
 Right Thing(tm) to do.

Contact and calendar data residing on the Kolab2 server needs to be
accessible through the D-Bus services alone, even in the absence of
Evolution.  Remember, Evolution is just a front-end for those D-Bus
services -- not a required component.

Here's a vague idea -- not sure if this is feasible but it's probably
how I would approach the problem initially:

Each instance of a CamelProvider creates its own directory on the local
host for cached data.  Instead of setting up one CamelProvider instance
to be shared by all three processes, set up three instances and let each
process manage one of them: Evolution will manage the one for mail (like
any other CamelProvider), e-addressbook-factory will manage the one for
contact data, and e-calendar-factory will manage the one for calendar
data.  That way the three processes aren't stepping on each others' toes
trying to share a single local data cache.

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers