Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-12-05 Par sujet Matthieu Baechler
Bonjour,

Le jeudi 29 novembre 2012 à 12:02 +0100, Francois Goudal a écrit :
 On 29/11/12 11:55, Matthieu Baechler wrote:

[...]

  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 :)
  Effectivement, nous avons plutôt pour habitude de compiler opush sur
  notre poste de développement avec des commandes maven. Je vais prendre
  le temps de détailler les étapes de cette compilation et de son
  déploiement sur notre wiki et je vous envoie le lien dès que ce sera
  fait.
 
 Formidable, merci !

Désolé pour le délais, mais la doc est en ligne maintenant :
http://www.obm.org/wiki/work-test-and-debug

C'est assez court, n'hésitez pas à nous faire part de vos difficultés si
vous en rencontrez.


-- 
Matthieu Baechler matthieu.baech...@linagora.com

___
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm


Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-12-04 Par sujet Francois Goudal
On 29/11/12 11:55, Matthieu Baechler wrote:
 Bonjour,

 Le mardi 27 novembre 2012 à 14:57 +0100, Francois Goudal a écrit :
 On 27/11/12 11:54, Matthieu Baechler wrote:
 [...]

 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 :
 J'ai tenté de faire exactement la même chose pour analyser les erreurs à
 la compilation, mais je n'obtient pas le même résultat.

 Quelle dépôt obm utilisez vous ?
Voila mon sources.list (j'utilise les miroirs debian NL car le serveur 
est hoste a amsterdam) :

root@obm:~# cat /etc/apt/sources.list
# deb http://mirrors.nl.kernel.org/debian/ squeeze main

deb http://mirrors.nl.kernel.org/debian/ squeeze main non-free contrib
deb-src http://mirrors.nl.kernel.org/debian/ squeeze main non-free contrib

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

deb http://mirrors.nl.kernel.org/debian/ squeeze-updates main contrib 
non-free
deb-src http://mirrors.nl.kernel.org/debian/ squeeze-updates main 
contrib non-free

# Stable repository with current version 2.4.1:
deb http://deb.obm.org/24/contrib squeeze obm
deb http://deb.obm.org/24/stable obm obm

deb-src http://deb.obm.org/24/stable obm obm

 Quelle est la sortie de la commande update-alternatives --display
 java ?

root@obm:~# update-alternatives --display java
java - auto mode
   link currently points to /usr/lib/jvm/java-6-openjdk/jre/bin/java
/usr/lib/jvm/java-6-openjdk/jre/bin/java - priority 1061
   slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
/usr/lib/jvm/java-6-sun/jre/bin/java - priority 63
   slave java.1.gz: /usr/lib/jvm/java-6-sun/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-6-openjdk/jre/bin/java'.


 [...]

 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 :)
 Effectivement, nous avons plutôt pour habitude de compiler opush sur
 notre poste de développement avec des commandes maven. Je vais prendre
 le temps de détailler les étapes de cette compilation et de son
 déploiement sur notre wiki et je vous envoie le lien dès que ce sera
 fait.

Formidable, merci !

___
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm


Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-11-29 Par sujet Matthieu Baechler
Bonjour,

Le mardi 27 novembre 2012 à 14:57 +0100, Francois Goudal a écrit :
 On 27/11/12 11:54, Matthieu Baechler wrote:

[...]

 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 :

J'ai tenté de faire exactement la même chose pour analyser les erreurs à
la compilation, mais je n'obtient pas le même résultat.

Quelle dépôt obm utilisez vous ?
Quelle est la sortie de la commande update-alternatives --display
java ?

[...]

 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 :)

Effectivement, nous avons plutôt pour habitude de compiler opush sur
notre poste de développement avec des commandes maven. Je vais prendre
le temps de détailler les étapes de cette compilation et de son
déploiement sur notre wiki et je vous envoie le lien dès que ce sera
fait.

-- 
Matthieu Baechler matthieu.baech...@linagora.com

___
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm


Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-11-27 Par sujet Matthieu Baechler
Le mardi 27 novembre 2012 à 10:36 +0100, Francois Goudal a écrit :
 Bonjour Matthieu,

[...]

 De plus, Si j'essaie de connecter un iPhone avec ActiveSync, je le vois 
 bien faire des requetes autodiscover dans les logs Apache, mais pour 
 autant, l'iPhone n'obtient pas l'information necessaire, puisqu'il finit 
 par me demander l'adresse du serveur (ce qu'il est justement normalement 
 cense recevoir via autodiscover). Donc cela confirme que l'autodiscover 
 ne fonctionne pas.
 
 J'aimerais bien continuer a debugguer cela, mais je ne sais plus 
 vraiment ou regarder.
   - Je ne peux pas vraiment sniffer le traffic pour voir la requete et 
 la reponse, puisque c'est du SSL

Le lien entre le serveur apache et le serveur opush ne doit pas être en
SSL, vous pouvez faire un tcpdump à ce niveau.

   - Je ne trouve pas d'exemple de requete POST que je pourrais 
 eventuellement envoyer moi meme

Vous pouvez essayer avec ce morceau de XML :

Autodiscover
xmlns=http://schemas.microsoft.com/exchange/autodiscover/mobilesync/requestschema/2006;
Request
EMailAddressVOTRE_ADRESSE_EMAIL/EMailAddress
AcceptableResponseSchemahttp://schemas.microsoft.com/exchange/autodiscover/mobilesync/responseschema/2006/AcceptableResponseSchema
/Request
/Autodiscover

   - Je ne vois pas ou trouver des logs qui pourraient m'interesser sur 
 le serveur OBM

Voir la page : http://www.obm.org/wiki/logs
Vous pouvez activer REQUEST.FULL et vous devriez avoir les logs de
l'autodiscover.

 Auriez-vous une idee de comment je peux essayer de progresser pour faire 
 fonctionner cela ?

N'hésitez pas à nous communiquer plus d'infos si vous êtes toujours
bloqué.

-- 
Matthieu Baechler matthieu.baech...@linagora.com

___
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm


Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-11-27 Par sujet Matthieu Baechler
Le mardi 27 novembre 2012 à 11:16 +0100, Francois Goudal a écrit :
 Re-bonjour,
 
 Merci pour ces informations, qui m'ont permis de progresser dans mes
 tests.
 
[...]

 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. 

 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,

-- 
Matthieu Baechler matthieu.baech...@linagora.com

___
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm


Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3

2012-11-27 Par sujet Francois Goudal
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