Wednesday, January 15, 2014

Evolution EWS: TimeZones operations

Long story short:
For those who are using evolution-ews from git master, calendar is  back to the game.

Long story:
With the changes I've made to add support for streaming notifications I've also introduced a big bug.
Calendar was not working anymore for Exchange servers newer than 2010.

Because newer versions of EWS do handle an event time in a completely different way than older versions and I had to add support to a new operation that was not supported from our side so far.
Why? I thought we were already using the proper server version to talk to EWS servers (damned, I would love have it blog posted, unfortunately I don't have).
Hmmm. Yes. Or better, not exactly. When I've made the changes to speak to the server using the proper server version, instead of use the oldest one, I didn't touch in the calendar part, because it would take a not small time to implement this operation and so on. With the streaming notifications code added, I had to do this changes (once it works only for EWS servers 2010_SP1 or newer). And ... Boom! ... I broke the calendar backend.

And now it is working again, right?
Yes, it is! :-)
The code is still not reviewed but can be used/seen from/on this branch.

By the way, tests were written and the calendar backend code was refactored in favor to reuse backend's code in our tests, and it took me considerably more time than adding the new operation itself. :-p

No comments:

Post a Comment