[Obm] ActiveSync autodiscover - Opush - OBM 2.3

Francois Goudal fg at satcom1.com
Tue Nov 27 14:57:56 CET 2012


On 27/11/12 11:54, Matthieu Baechler wrote:
> [...]
>> On voit donc bien la reponse ici. Par rapport au message d'erreur
>> retourne par l'outil de microsoft, il semblerait que :
>> <Autodiscover>
>> ne soit pas valide, et qu'il s'attende en fait a avoir un xmlns qui
>> soit specifie.
> C'est peut-être un problème, effectivement. Quel périphérique
> utilisez-vous ?
>
> Nous avions testé plusieurs téléphone avec succès dans cette version.
>
Ce test a ete fait en utilisant l'outil de microsoft qui permet de 
tester le bon fonctionnement du service autodiscover d'un serveur exchange.
https://www.testexchangeconnectivity.com
Il ne s'agit donc pas d'un "vrai" client, mais d'un outil de test 
officiel, donc j'en conclus que si lui ne fonctionne pas, il y a de 
fortes chances que certains autres clients echouent egalement pour la 
meme raison.

Mon objectif ultime, derriere ces tests, serait d'utiliser Outlook 2013 
comme client. Une des nouveautes d'Outlook 2013 est l'ajout du support 
du protocole ActiveSync. J'ai donc voulu tenter de le faire synchroniser 
avec mon OBM via OPush. En faisant quelques traces wireshark, j'ai pu 
voir que ce client essaie systematiquement de faire un Autodiscover, et 
si jamais il n'y arrive pas, il n'essaie meme pas de se connecter a un 
serveur via ActiveSync, c'est donc pour cela que j'essaie de faire en 
sort que l'Autodiscover fonctionne correctement sur mon serveur OBM (et 
que l'implementation de microsoft fonctionne avec, ce qui pour le 
moment, ne semble pas etre le cas, d'apres leur outil de test).

>> Cette page web de microsoft semble egalement indiquer cela :
>> http://blogs.msdn.com/b/exchangedev/archive/2011/07/08/autodiscover-for-exchange-activesync-developers.aspx
>>
>>
>> Si je voulais faire des modifs dans le code d'opush pour adapter le
>> format de la reponse XML afin qu'elle soit consideree valide par
>> l'outil, par ou me conseillez-vous de commencer a regarder ?
> C'est relativement simple :
>
> - la classe AutodiscoverHandler prend en charge les requêtes
> d'autodiscover
>
> - la classe AutodiscoverProtocol prend en charge la partie XML des
> requêtes et réponses, dans encodeResponse, vous verrez la ligne
> suivante :
> Document autodiscover = DOMUtils.createDoc(null, "Autodiscover");
> Le premier paramètre est le namespace à utiliser.
>
> - enfin, je vous conseille de mettre également à jour le code de test
> dans AutodiscoverHandlerTest. Attention, ces tests sont annotés comme
> étant "@Slow", ils ne s'exécutent que lors de la phase
> "integration-test" de maven
>
> N'hésitez pas à nous solliciter si vous avez besoin d'aide pour cette
> modification, nous nous efforcerons de vous guider et de l'intégrer au
> plus vite.
>
> Cordialement,
>
La ou j'aurai effectivement besoin d'un peu d'aide, c'est pour etre 
capable de recompiler opush et le deployer sur mon serveur. Modifier le 
code ne devrait pas etre un probleme, mais je ne suis pas familier avec 
le java, et en particulier son environnement de compilation et le 
deploiement de servlets. Dommage que ca ne soit pas ecrit en C/C++ ;)

En gros, pour resumer, voila ce que j'ai fait pour l'instant :

Sur ma machine j'ai recupere le paquet source pour obm-opush :

apt-get source obm-opush

Cela m'a donc recupere l'ensemble des sources du paquet obm-java. J'ai 
ensuite installe les build dependancies :

apt-get build-dep obm-java

Puis j'ai essaye, sans modifier le code, pour le moment, de generer les 
paquets debs (donc, entre autres, obm-opush) :

dpkg-buildpackage -us -uc -rfakeroot

Malheureusement, cela ne fonctionne pas :

Tests in error:
   testClosedSession(com.linagora.obm.sync.TestQueueManager): Server not 
started
   testDurableSubscription(com.linagora.obm.sync.TestQueueManager): 
Server not started
   testDurableSubscription2(com.linagora.obm.sync.TestQueueManager): 
Server not started
   testConsumeLater(com.linagora.obm.sync.TestQueueManager): Server not 
started
   testTwoConsumers(com.linagora.obm.sync.TestQueueManager): Server not 
started

Tests run: 6, Failures: 0, Errors: 5, Skipped: 0

[INFO] 
------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] 
------------------------------------------------------------------------
[INFO] There are test failures.

Please refer to 
/root/obm-java-2.4.1.2/message-queue/target/surefire-reports for the 
individual test results.
[INFO] 
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] 
------------------------------------------------------------------------
[INFO] Total time: 58 seconds
[INFO] Finished at: Tue Nov 27 15:03:03 CET 2012
[INFO] Final Memory: 25M/60M
[INFO] 
------------------------------------------------------------------------
make: *** [build] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2




De plus, cette solution n'est pas ideale pour tester facilement des 
modifications, car on recompile tout a chaque fois, donc ca prend 
beaucoup de temps pour tester la moindre modification. Si vous aviez une 
petite procedure pour juste recompiler le module opush a la main, et le 
deployer, je pense que ca m'aiderait pas mal :)

Pour information, je teste cela sur une debian squeeze fraichement 
installee, et sur laquelle j'ai fait un apt-get install obm-full tout 
simplement.

Cordialement.



More information about the Obm mailing list