unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [elpa] Excorporate: Exchange integration package
@ 2015-02-08 21:21 Thomas Fitzsimmons
  2015-02-09  4:08 ` Stefan Monnier
                   ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Thomas Fitzsimmons @ 2015-02-08 21:21 UTC (permalink / raw)
  To: emacs-devel

Hi,

I wrote a library called Excorporate that allows Emacs to talk to an
Exchange server over the Exchange Web Services API.  I would like to
release it as a GNU ELPA package.  In the meantime, you can try it out
like this:

Download:
http://melpa.org/packages/calfw-20150206.1648.tar
http://www.fitzsim.org/emacs/excorporate-0.5.4.tar

M-x package-install-file calfw-20150206.1648.tar
M-x package-initialize
M-x package-install-file excorporate-0.5.4.tar

M-x excorporate
Follow prompts and enter Exchange credentials twice.

M-x calendar
Press 'e' to show today's meetings.

Alexandru Harsanyi provided lots of guidance and help extending
soap-client.el to support the full Exchange Web Services API.

Features
========

The core library has the following features:

- Fully asynchronous -- it never blocks redisplay except for one rare
  error recovery condition

- General API for making Exchange Web Services calls -- the entire EWS
  API is supported (i.e., the entire WSDL file is properly parsed by
  soap-client)

- Pure Emacs Lisp, using the built-in url and soap-client packages

- Support for all Emacs versions that support packages -- tested on
  versions 24.1 through 24.4 on GNU/Linux and MS-Windows

- Autodiscovery of configuration starting from only an email address

- NTLMv2 authentication

Proof of Concept
================

I've included a proof of concept that fetches today's meetings upon
request, and displays them using a calfw component.  I use this daily
and find it very convenient.  There's no support for week, two week or
month views since there's no caching.  Only read-only operations are
supported (e.g., you can't create meetings or respond to meeting
requests yet).

Mainly this release is to confirm all the tricky plumbing works for
people: autodiscovery, authentication, WSDL parsing.  Possible future
extensions include Gnus, Diary, EUDC and Org integration.

API
===

The API is simple for now.  The hard part of using it is figuring out
which Exchange Web Services operations to invoke, and their arguments.

(exco-api-version)
(exco-connect IDENTIFIER)
(exco-operate IDENTIFIER NAME ARGUMENTS CALLBACK)
(exco-disconnect IDENTIFIER)
(exco-extract-value PATH RESULT)
(exco-extend-timezone DATE-TIME-STRING)
(exco-format-date-time TIME-INTERNAL)

GNU ELPA Release Prerequisites
==============================

If the package is OK to go into GNU ELPA I'll need someone to confirm
copyright assignment for the following bundled dependencies:

url-http-ntlm.el (core library dependency):
Tom Schutzer-Weissmann <tom@schutzer-weissmann.net>

Tom may not have paperwork on file; need confirmation.  I can rewrite
this if necessary.  I want to generalize it a little anyway.

fsm.el (core library dependency):
Magnus Henoch <mange@freemail.hu>

Seems to have paperwork done, need confirmation.  fsm.el should probably
be its own ELPA package or bundled in Emacs.

emacs-calfw (proof-of-concept dependency, could be split out):
SAKURAI Masashi <m.sakurai at kiwanami.net>

Seems to have paperwork done, need confirmation.  calfw should probably
be its own ELPA package.

Bugs
====

- I bundled a patch to url-http-parse-headers to clear Authorization
  elements from url-http-extra-headers prior to executing a redirect,
  otherwise NTLM authentication doesn't work across redirects.  The
  implemented behaviour is backward compatible and should probably be
  committed to master (after review by a URL expert).

- On master only (24.1 through 24.4 are not affected) setting url-debug
  to 't causes url-retrieve to hang when contacting the server.  I'm not
  sure why yet.

Thomas



^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2015-02-11 15:01 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-08 21:21 [elpa] Excorporate: Exchange integration package Thomas Fitzsimmons
2015-02-09  4:08 ` Stefan Monnier
2015-02-09  6:56   ` Achim Gratz
2015-02-09  8:05   ` Michael Albinus
2015-02-09  9:05     ` joakim
2015-02-09 11:00   ` Daniel Colascione
2015-02-09 12:24   ` Thomas Fitzsimmons
2015-02-09 12:40     ` David Kastrup
2015-02-09 14:16     ` Stefan Monnier
2015-02-10 20:23       ` Stefan Monnier
2015-02-11  1:24         ` Thomas Fitzsimmons
2015-02-11  6:55           ` Tassilo Horn
2015-02-11  9:42             ` David Kastrup
2015-02-11 12:59               ` Tassilo Horn
2015-02-11 13:07                 ` Dmitry Gutov
2015-02-11 13:53                   ` Michael Albinus
2015-02-11 15:01                   ` Tassilo Horn
2015-02-09 22:07   ` Richard Stallman
2015-02-09  8:14 ` Michael Albinus
2015-02-09 12:41   ` Thomas Fitzsimmons
2015-02-09 13:02     ` Michael Albinus
2015-02-09 13:21       ` Thomas Fitzsimmons
2015-02-09 13:34         ` Michael Albinus
2015-02-09 17:22           ` SOAP, WSDL Ivan Shmakov
2015-02-09 18:38             ` Michael Albinus
2015-02-09 18:50               ` Ivan Shmakov
2015-02-09 14:09     ` [elpa] Excorporate: Exchange integration package Stefan Monnier
2015-02-09 10:06 ` SAKURAI Masashi

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).