Blog myBlog = BlogFactory.getWordPressBlog();
Java
Billets concernant les développements Java (et J2EE).
Revue de presse du monde Java
19/05/09
Mise à jour le 4 juin 2009 :
Il suffit que je m’éloigne de ce blog deux semaines pour que les informations soient devenues complètement obsolètes… Voici donc des actualités un peu plus fraiches :
- la future version d’Eclipse est passée en Release Candidate 3, et la version finale est maintenant prévue pour dans moins de 3 semaines ;
- la nouvelle interface des rubriques de Developpez.com se propage : elle a maintenant contaminé une grande partie des rubriques (Java, Eclipse, etc.) ;
- L’update 14 de Java 6 viens de paraître, incluant (entre autres) une version de test du futur “Garbage Collector” G1 ;
Concernant plus spécifiquement Talend :
- J’ai développé un composant optimisé tFileList, permettant d’utiliser une liste de masques de fichiers exclus (un seul masque était disponible dans le composant original) ;
- une FAQ francophone devrait bientôt voir le jour sur le forum Talend de Developpez.com qui est assez actif (les forums officiels de Talend étant intégralement anglophones) ;
Version originale obsolète :
Une rapide revue des sorties récentes dans le monde Java/J2EE :
- sortie de la “Milestone 7” de la future version d’Eclipse. J’ai testé cette version, et elle est prometteuse. Cependant, elle n’est à mon avis pas encore assez stable pour être utilisée en entreprise (j’ai en particulier rencontré des problèmes graves lors de la validation de fichiers ?XML et de pages JSP) ;
- nouvelle interface “web 2.0” sur le portail Java de Developpez.com ;
- sortie de la version 3.1.1 de Talend Open Studio (version de maintenance) ;
Nouveaux composants pour Talend Open Studio
11/05/09
Avec la version 3.1.0 de Talend Open Studio, le composant “tBufferInput” a fait son apparition.
C’est en étudiant celui-ci (ainsi que le tBufferOutput qui fonctionne avec), que j’ai développé 4 nouveaux composants, qui viennent compléter les composants déjà développés. Voici la liste des nouveaux composants :
- tBufferOutput, une évolution du composant original ;
- tRunJob2 (qui est très rapidement devenu obsolète avec son évolution, le tRunJobRow) ;
- tBufferCopyInput ;
- tRunJobRow ;
Ouverture du support
Cela fait maintenant en tout 11 composants développés pour Talend Open Studio. J’ouvre donc un site de support Mantis, afin de recueillir les avis des utilisateurs de ces composants, et de corriger les bugs rencontrés.
Sun est racheté par Oracle
20/04/09
Dans ce billet, je parlais des rumeurs de rachat de Sun par IBM.
Après un désaccord, les négociations exclusives avec IBM avaient été élargies à d’autres racheteurs potentiels, puis avaient été abandonnées avec IBM. Dernier épisode de cette saga financière : c’est finalement Oracle qui devrait cet été racheter Sun, pour 7,4 milliards de dollars.
Oracle est également un géant de l’industrie informatique, au même titre qu’IBM ou SAP. Pour mémoire :
- Le produit historique d’Oracle est sa base de données du même nom, qui est un des leaders du monde professionnel ;
- Ayant racheté BEA, Oracle édite ses différents produits, dont le serveur d’application Java/J2EE Weblogic ;
- Oracle édite le logiciel ERP PeopleSoft, concurrent de la solution de SAP ;
- Oracle édite de nombreux autres produits, dont la liste est simplement sur la page d’accueil du site ;
Je me réjouis donc que ce rachat règle les problèmes financiers de Sun, mais je garde pour l’instant les mêmes réserves que pour IBM, en espérant que les produits historiques de Sun qui font “doublon” avec ceux d’Oracle (MySQL, Glassfish, etc.) ne disparaitront pas.
Mise à jour le 21 avril 2009 :
- Vous pouvez trouver l’historique complet des négociations (coupures de presse à l’appui), et plus de 8 pages de commentaires sur le site de la communauté Java developpez.com ;
- Oracle vient de publier une FAQ expliquant sa stratégie par rapport aux différents produits de Sun qui viendront enrichir sa gamme suite à cette fusion : on apprend ainsi que MySQL et Solaris ne devraient pas être abandonnés (par contre, aucune information n’est donnée sur Glassfish).
Bundle Eclipse + Glassfish
2/04/09
J’ai eu cette information sur un post caché au fond du forum Eclipse du site Developpez, qui lui-même renvoyait à l’annonce officielle faite sur le blog d’Alexis Moussine-Pouchkine : Sun a développé un Bundle “Eclipse + Glassfish 2.1 + Glassfish 3” préconfigurés, qui est actuellement en version 0.9.9RC (et bientôt dans une version 1.0).
Ce bundle va certainement faciliter le travail des développeurs sous Eclipse. En effet, il va faciliter l’installation de Glassfish 3 (qui n’est pourtant pas d’une complexité insurmontable), qui est un serveur très efficace pour développer et tester rapidement les applications J2EE. C’est d’ailleurs le serveur que j’utilise en développement lorsque j’ai le choix :
- il est léger, et (re-)démarre très rapidement lorsque nécessaire ;
- en phase de développement, il peut se re-déployer automatiquement à chaque modification de code (sources Java, pages JSP, JSF, etc.), tout en conservant la session. Ainsi, lorsqu’on développe/teste une fonction précise, on n’es pas obligé de recommencer le scénario de test du début (en se ré-identifiant, par exemple) ;
Indépendemment de la sortie de ce pack, Glassfish sera normalement l’implémentation de référence des serveurs J2EE 6, comme cela a été annoncé et présenté lors du tout récent “Aquarium de Printemps” (qui s’est déroulé dans le cadre des journées “Solutions Linux”).
Contribution à l’ETL Open Source Talend Open Studio [Mise à jour]
28/03/09
Il y a maintenant de cela exactement un mois, j’ai suivi une formation sur l’ETL Talend Open Studio, et je dois dire qu’il m’a séduit :
- il est Open Source (dans sa version de base : on peut souscrire à une version professionnelle “Talend Integration Suite” disposant de fonctionnalités supplémentaires) ;
- le code généré peut être exporté sous la forme de batchs autonomes écrits en Java (ou en Perl, mais cette fonctionnalité m’intéresse moins), qui ne nécessitent pas de plateforme spécifique (autre qu’une JVM Sun).
Dans le cadre du projet sur lequel je travaille, les bases de données sont de type Informix. Or, Talend Open Studio disposait de peu de composants pour ce type de bases. En particulier, il était gênant de ne pas pouvoir utiliser ces bases en mode transactionnel.
Le produit étant Open Source, j’ai développé ces fonctionnalités, et avec l’autorisation de ma société, qui a sponsorisé ces développements, je les ai livrés à la communauté Talend.
Vous trouverez donc ces différents composants sur Talend Exchange :
- tInformixConnection, permettant d’initialiser une connexion à une base de données Informix ;
- tInformixCommit, permettant de faire un “commit” des opérations effectuées sur une connexion ;
- tInformixRollback, permettant de faire un “rollback” des opérations effectuées sur une connexion ;
- tInformixInput, évolution du composant original permettant de récupérer des données à partir d’une connexion existante ;
- tInformixOutput, évolution du composant original permettant d’insérer des données dans une table en utilisant une connexion existante ;
- tInformixRow, évolution du composant original permettant d’exécuter une requête SQL quelconque en utilisant une connexion existante ;
Mise à jour du 28/03/2009 : Les composants ci-dessus ont subi une mise à jour (correction de bugs, mise à jour des drivers JDBC d’Informix, etc.). De plus, deux nouveaux composants ont été développés :
- tInformixSP, qui n’est pas encore totalement stable. Ce composant permet d’exécuter des procédures stockées et fonctions d’une base de données Informix ;
- tFileDigester, qui permet d’obtenir le “checksum” d’un fichier par différents algorithmes de hachage (MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512) ;
Mise à jour du 11/05/2009 : 4 nouveaux composants développés, et ouverture du support dédié aux composants Talend.
Rumeurs de rachat de Sun par IBM
23/03/09
Depuis quelques jours, une rumeur circule sur Internet (ici, par exemple, et à plein d’autres endroits que l’on trouve avec Google).
Suite à cette nouvelle, un sujet-débat intéressant a été ouvert sur developpez.com.
Dans le cas où cette rumeur serait avérée, il se pose évidemment la question de l’avenir des produits développés/supportés par Sun, alors qu’IBM soutient des produits “concurrents” :
- Netbeans, alors qu’IBM soutient Eclipse ;
- MySQL, alors qu’IBM développe les bases de données DB2 (et dans une moindre mesure Informix)
- Glassfish, alors qu’IBM développe Geronimo, et surtout Websphere
Je ne peux pas faire de pronostics sur la décision que prendra (si les rumeurs sont avérées) IBM, mais j’espère que Sun continuera d’effectuer ses développements.
Tout d’abord, même si Sun et IBM font de l’Open Source, ils ne le font pas de la même façon. Les deux façons de faire sont défendables :
- Sun développe ses produits Open Source sous une licence proche de la GNU/GPL, et vend du service autour
- IBM développe ses produits sous une licence proche de celles d’Apache : la base d’Eclipse, par exemple, sera embarquée dans tous les produits de la gamme payante Websphere. Je comparerais ça avec Fedora, qui est la version de test des futures distributions Red Hat.
Ensuite, les différents produits sont complémentaires. La majorité de la communauté Java s’accorde à dire qu’Eclipse et Netbeans ont chacun ses avantages et ses défauts. Même si la fusion de ces deux IDE est faite en intégrant les avantages de chacun, la disparition d’un des deux seuls acteurs libres du marché risque à terme de ralentir les développements.
Mais attendons donc de voir ce qui va arriver…
Mise à jour le 20 avril 2009 : Finalement, c’est Oracle qui rachètera Sun cet été.
Réinventer la roue carrée
14/03/09
De temps en temps, dans le cadre du travail, on voit des choses amusantes, comme certaines offres d’emploi que l’on reçoit… ou encore des morceaux de code ! J’ai régulièrement l’occasion de faire des audits qualité du code de diverses applications… et récemment, il y en a une avec laquelle je me suis bien amusé.
J’aurais pu choisir de publier ce billet dans la catégorie Humour, un peu à la manière des articles de The daily WTF mais le sujet est malheureusement sérieux : le code en question est réel, il a été développé par une SSII (qui n’est pas celle qui m’emploie, mais dont je tairai tout de même le nom), et est déployé chez un de ses clients… qui se demandait pourquoi l’application avait des problèmes de stabilité et de performance.
Il est facile de critiquer et de se moquer si on n’a rien de mieux à proposer… C’est pourquoi, (avec l’aimable autorisation du propriétaire pour recopier ce code qui, vous allez le voir, n’a rien de confidentiel), je vais développer (ce qui est un bien grand mot pour les quelques lignes que je vais taper) la même fonctionnalité :
- avec les fonctionnalités natives du langage (Java) ;
- en obtenant de meilleures performances.
Mon premier Paris JUG
12/03/09
Après ce compte-rendu de ma deuxième participation à une conférence OpenDay, voici celui de la soirée web au Paris JUG.
Installer un serveur dédié
10/03/09
Le développement, ce n’est pas seulement un travail… c’est aussi une passion : ce sont juste les projets et les technologies qui changent ! Il y a quelques temps, je me suis dit qu’il n’y avait pas de raison pour que mes projets personnels soient moins bien développés que ceux sur lesquels je travaille dans un contexte professionnel. J’ai donc décidé de sécuriser mes développements personnels :
- utilisation d’un gestionnaire de configuration ;
- intégration continue, tests et déploiements automatisés des builds réussis ;
- etc.
Pour cela, il me fallait un serveur, distinct de ma machine de développement.
Sortie de Lyria Leonardi 4.2
19/02/09
Je me permet de reprendre un billet du blog java de developpez.com pour signaler la sortie de la nouvelle version de l’outil Leonardi.
Les principales nouveautés de ce produit sont décrites dans le billet que je site : je ne les recopierai donc pas. En revanche, je ferai une (très) rapide présentation de l’outil (un résumé des informations que l’on peut trouver sur le site de Lyria) ainsi que du paradigme MDA auquel il se rattache, pour ceux qui ne le connaissent pas du tout.
Pour simplifier, Leonardi est un générateur d’IHM, qui se base sur le MCD de l’application : on lui donne en entrée le modèle de données, ainsi qu’un certain nombre de paramètres, et il conçoit l’interface de l’application.
C’est cette idée de générer des IHM (voire de manière plus générale du code) à partir du modèle de données qu’on appelle le “paradigme MDA”, qui a maintenant quelques années.
Des outils pour le mettre en pratique arrivent à maturité : même en omettant les solutions propriétaires, Leonardi n’est pas le seul acteur libre sur ce marché : il en existe au moins deux autres que sont AndroMDA et Appfuse.
Cependant, même si ces produits ont le même but, ils n’ont pas la même approche technique :
- Leonardi génère un code spécifique, le “MMI Model” (sous forme XML). Celui-ci est embarqué dans l’application finale, et est parsé dynamiquement à l’exécution par un MMI Engine, qui générera l’interface. Le “MMI Model” est générique, il existe plusieurs “MMI Engines”, spécifiques à la cible désirée (client riche, PDA, application web…).
- AndroMDA et Appfuse sont tous deux basés sur Maven. Chacun dispose de plusieurs “connecteurs” de sortie (JSF, Struts, SpringMVC), et en fonction de celui qui est choisi, ils génèrent le code correspondant. Aucun moteur spécifique à ces produits n’est nécessaire à l’exécution.
Je ne connais pas suffisamment ces différents produits pour pouvoir rentrer finement dans la présentation de leurs différences fonctionnelles. J’espère avoir l’occasion de les tester et de les comparer, mais au vu de mon emploi du temps, j’ai peur que ce souhait soit utopique…
Note : à côté de ces solutions gratuites, il existe plusieurs autres solutions MDA payantes, telles que Celerio de Jaxio. Il semblerait que cette solution offre beaucoup plus de fonctionnalités qu’un Appfuse (par exemple), mais le prix du “ticket d’entrée” n’est pas du tout le même.