lundi 10 août 2009

gwt-user.jar issue with javax.servlet java files

EDIT: I wrote this entry before google commit the modification in the trunk to solve this issue. Now, this article is deprecated because this morning scottb change the build.xml file of gwt-user to remove the javax.servelet java file. Here is the details about the commit : http://gwt-code-reviews.appspot.com/56813

In gwt-user.jar of GWT there are some java files of javax.servlet and since we need to add this jar in the classpath during compilation, maven compile these files into class file and package these class files into the war of the GWT application.

Every web server and application server provide those files too and if we deploy a war with javax.servlet class file on a server we get a linkagerror because the class are provided twice.

There are different solutions:
1/ Google remove java files from gwt-user (and optionnaly provide a gwt-user-sources)
2/ You remove javax.servlet class from you war after compilation (with a antrun remove script)
3/ You use a special gwt-user without the java files and you upload it to your company repository (gwt-user-mycompany)
4/ what else ?

So there are 2 issues in the gwt bug tracker dealing with this problem.

remove javax.servlet java files from gwt-user: NeedsInfo/Enhancement

Remove or change timestamp of javax.servlet source files in gwt-user.jar: Fixed/Defect

The official google answers are below.
1-scottb from Google says : "This is a maven compiler issue. The java files from javax.servlet should not be compiled and packaged." Here
2-scottb from Google says : "The solution is to ask to the Maven central repository maintainer (ndeloof) to changed each gwt-user release to remove the javax.servlet java files." Here
3-scottb from Google says : "The source is provided as a convenience for debugging." Here

I don't know which of those 3 answers is the best. Please vote for you favorite one.

In this topic we have gwt guest like fredsa or diaz.salvador. I hope this issue would be solved before the GWT 2.0 in a way or another.

This topic was discussed in the gwt maven plugin too: http://jira.codehaus.org/browse/MGWT-48

dimanche 2 août 2009

Université du SI - Résumé du Jour 1 : USI-J1 (partie 2)

Je rentre de vacances et il est temps de continuer ce que j'ai commencé dans le billet précédant.

Azure: L'informatique dans les nuages par Microsoft

Après Firefox, je fonce à la session sur le nuage selon Microsoft par Guy Barrette qui compare l'arrivée du cloud à l'électrification dans le monde il n'y a pas si longtemps. Bientôt le nuage sera la norme il parait, on est tous septiques mais il semblerait qu'à l'époque ou les ampoules sont arrivés, les gens qui s'éclairaient à la bougie voyaient ca d'un oeil septique également... à suivre.
La comparaison va plus loin puisque maintenant quand on branche son laptop sur une prise murale car la batterie ne tient plus la route on ne pose pas la question de savoir d'où vient le courant, il est là et puis c'est tout. Et bien il en sera de même avec le cloud, actuellement on se demande ou va se retrouver physiquement ce qu'on l'on pose sur le nuage mais bientôt toutes ces questions ne se poseront plus... le nuage sera la est puis c'est tout.

La solution de cloud Microsoft est Azure et elle se découpe en compute, storage et management. Coté storage on retrouve blob, table, queue respectivement une solution de stockage de fichiers, la solution de base de données non relationnelle sur le nuage et un gestionnaire de message à la JMS. Et il existe SQL Service qui correspond à une solution de base de données relationnelle sur le cloud... et qui fonctionne très bien avec de un térabit de données !!! la seule solution de ce genre existante actuellement ?!

La plateforme Azure est compatible JAVA, Ruby et PHP ! Quoi ? Mais qu'est ce qu'il raconte ? Et oui, Microsoft propose les outils nécessaires pour déployer des applications dans d'autres technologies que les leurs. Déroutant ? Pas tant que ca quand on sait que si Microsoft veut rester dans la course, il leur faut s'ouvrir au reste du monde.

Azure vient avec d'autres services appelés .Net Services: un service BUS (ESB/SOA) et l'access contrôle ou la gestion des comptes, du paramétrages et des habilitations). Et pour finir, on passe en revue les services additionnels appelés live services, qui sont une gestion de l'authentification, des utilisateurs, la synchronisation de fichiers, la recherche etc...

Une comparaison de la solution d'Amazon EC2 à Azure permet de voir que les solutions équivalentes sur le stockage et sur l'infrastructure. Une des différence est qu'avec Azure les services sont à la mode REST (accessible par une requête HTTP). La différence majeure vient du contrôle de l'OS car côté Azure on n'a pas accès à l'OS contrairement à EC2 mais côté Azure on assure que l'OS est mieux optimisé et un tableau de bord permet de gérer l'OS. En gros, avec Azure on n'a pas d'accès root mais une interface web pour modifier la configuration et un OS pré-optimizé et avec EC2 on a l'accès root mais pas encore d'interface équivalente...

Les bénéfices du Cloud sont pour les startup un moyen de diminuer les couts car créer une plateforme de cloud permettant de gérer autant de données est très onéreux. Pour les entreprises c'est un moyens d'externaliser la prod autrement.

Après une pause et quelques petits fours, je me dirige vers la session de Sami Jaber sur les portails et GWT.

Gestion de portails avec GWT par Sami Jaber.

Il nous explique qu'il n'a pas l'intention de nous faire une Nième présentation des portails avec les portlets etc... et c'est tant mieux.

Pour des besoins web simple, il préconise du PHP avec des outils CMS type joomla and co.

Dans les exemples on voit une application GWT intégré dans un portail type liferay avec une iframe.

Le NACL (native client) arrive sur la table avec la possibilité d'exécuter du code x86 natif depuis le web ! Un peu déroutant...

A la fin de la session je demande s'il est possible d'intégrer du GWT dans du portail sans passer par une iframe (un peu crado non ? et la communication avec les autres widget/portlet dans tout ca ?). Apparemment, il existe des linker GWT pour ce faire.

Démontez vos cloisons avec Leroy Merlin.

La journée se termine par la présentation d'ADEO (mon client) sur la manière d'ouvrir son SI, de le décloisonner pour optimiser sa puissance de feu. Je n'ai pas vraiment pris de note lors de cette présentation car j'y travaille depuis plus de 2 ans. La mise en place des différents outils et méthodes utilisés chez ADEO sont détaillés: les ateliers développeurs en sont un bon exemple. Mensuellement des réunions inter équipes sont organisées et des présentations sur des sujets techniques ont lieu pour bâtir une communauté au sein de la DSI.

Keynote : Daniel Cohen

On y a parlé de la crise qui touche 85% de la planète et qui ressemble à la crise de 29 mais sans les erreurs du passé. Les banques ont été sauvées et on hésite pas a avoir un budget en fort déficit pour lancer de gros projets qui maintiennent l'économie à flot. L'Allemagne en 29 avait tout fait pour avoir un budget à l'équilibre ce qui avait rendu très difficile la sortie de crise.

On y remarque que d'une innovation majeure ressort un cluster d'innovation. Les innovations majeures du passé sont la machine à vapeur, l'électricité puis l'informatique.

La crise des subprimes est détaillée : les organismes de crédit prêtent de l'argent, puis on convertit le tout en titre que l'on remet en bourse... bref la crise quoi.

Il est difficile de transmettre le savoir communiqué lors des keynotes, le mieux étant de les regarder directement, et ca tombe bien, ils sont en webcast.

La journée se clôture par un cocktail et des amuses bouche de très bon goût. Puis un petit groupe s'organise et direction un restaurant italien du quartier des Champs Élysée histoire de débriefer sur cette première journée extrêmement riche en information. Chacun raconte ses sessions favorites et on s'accorde pour dire qu'on a vraiment hâte de revenir le lendemain !

A bientôt pour la suite et la seconde journée de l'usi.