Blog myBlog = BlogFactory.getWordPressBlog();
Article tagué Eclipse
IntelliJ IDEA 10 au secours de Spring Roo
16/12/10
J’ai déjà abordé rapidement le cas de Spring Roo, qui est depuis passé en version stable 1.1.0, proposant une génération de la couche graphique avec au choix Spring MVC ou GWT (en version 2.1, dont la version stable est parue le même jour).
J’ai actuellement l’occasion de travailler sur plusieurs projets dont l’architecture technique est imposée par les normes du client (Hibernate + JPA, Spring, etc.). Ces normes cadrent ce qu’il est possible de faire, et en particulier, elles excluent un certains nombre de frameworks « de productivité » (Grails, Play, etc.). C’est sur ces projets que Spring Roo présente tout son intérêt, car il permet d’appliquer les mêmes principes que ces frameworks, et de gagner en productivité.
De plus, la syntaxe des scripts Roo étant assez simple, il est possible de développer des plugins UML permettant de générer automatiquement ces scripts à partir du modèle de données (et voilà comment on reprend aussi les bonnes idées du MDA en plus).
C’est donc cette approche et ces outils que nous utilisons sur les projets de ce type (architecture imposée à base de Spring) : effectivement, c’est un framework qui permet de largement gagner en productivité. De plus, on peut se séparer de Roo quand on le souhaite (quand le projet est suffisamment mature) dans le cycle de développement.
La suite >
IDEA pour le développement de composants Talend
8/11/10
J’ai récemment été impressionné par la version « Community« d’IntelliJ IDEA pour le développement Java.
Même si j’ai depuis rencontré quelques problèmes avec cet IDE (au niveau de la gestion de configuration et de l’encodage des fichiers principalement), j’en suis très satisfait. J’ai donc testé la version « Ultimate« , qui m’a tout autant impressionné, et l’offre de mise à jour gratuite vers la version 10 a achevé de me convaincre : je me suis donc offert une licence de cette version.
Outre le développement Java-J2EE, j’ai voulu tester cet IDE pour le développement de composants Talend. Après quelques manipulations, il s’est avéré qu’il était beaucoup plus agréable à utiliser et puissant que le « Component Designer » fourni avec la suite Talend. Voici donc comment procéder pour avoir un très bon environnement de développement de composants :
La suite >
Découverte de IntelliJ IDEA
4/10/10
Je pourrais titrer ce billet « Confessions d’un éclipsien repenti », mais on m’accuserai de mauvais plagiat… et malgré la très bonne impression que m’a faite IntelliJ IDEA, j’apprécie toujours également mon fidèle Eclipse.
Mais revenons un tout petit peu en arrière… Depuis plus d’un an, j’entends parler de cet IDE : blogs, un récent comparatif, le Paris JUG, etc. J’avais donc décidé d’y regarder de plus près, mais sans jamais vraiment prendre le temps de m’y mettre. J’en ai eu récemment l’occasion, en testant le Play! Framework. Celui-ci dispose en effet d’une commande « idealize » permettant de générer le projet au format IDEA, qui n’a pas d’équivalent pour Eclipse. J’ai donc décidé de faire d’une pierre deux coups et de tester Play! en même temps qu’IntelliJ IDEA.
J’ai rapidement beaucoup apprécié les fonctionnalités de l’IDE, et j’ai donc étendu mon test à un projet Java/J2EE. Voici pas à pas le déroulement de ma découverte de l’IDE, pour les retardataires qui, comme moi, n’avaient pas encore franchi le pas…
La suite >
De SVN à Git sous Eclipse
31/08/10
Il y a maintenant quelques semaines, j’ai été frappé par le virus Git. Dans la foulée, j’ai migré la gestion de configuration de mes composants pour Talend Open Studio sous GitHub. Et depuis, pour mieux maitriser cet environnement, j’ai pris ProGit comme livre de chevet.
Plus récemment encore, j’ai décidé de passer également sous Git mon environnement de travail professionnel pour le développement Java. Mais cette fois, ce n’est plus aussi simple, car on ne peut pas remplacer comme ça le serveur SVN central utilisé par les différentes équipes de développement.
Mais Git et Subversion peuvent être utilisés ensemble. On travaille sous Git en local, profitant ainsi de tous ses avantages (passage rapide d’une branche à l’autre, pour bien découpler les différents travaux, etc.), et on synchronise ce travail sous Git avec le serveur SVN.
Ce mode de travail et ses avantages ont très bien été expliqués dans le dernier article de Nicolas de Loof. En particulier, ce qui m’intéresse, c’est la rapidité de mise en oeuvre sans avoir à faire évoluer la plate-forme de développement d’un iota.
Cet article expliquant tout ce qu’il y a à savoir pour débuter avec Git et SVN, je ne recommencerai pas. Je vais donc aborder l’étape suivante : l’intégration de cette nouvelle méthode de travail dans mon environnement de développement.
Mise à jour de mon environnement de développement
16/08/10
Comme à chaque sortie de version d’Eclipse, j’attendais pour Helios la disponibilité du plugin pour l’utilisation des serveurs Glassfish.
Le rachat de Sun par Oracle aura eu cet effet positif : le plugin n’a pas mis longtemps à sortir. Et Oracle a même fait mieux que ça : il a rafraîchi son IDE « Oracle Enterprise Pack for Eclipse » (OEPE de son petit nom), qui jusqu’à maintenant était toujours basé sur une (quand ce n’était deux) version de retard d’Eclipse. Je l’ai téléchargé et testé et je dois avouer qu’il m’a convaincu :
- il est basé sur la dernière version stable d’Eclipse, Helios
- il apporte d’un seul coup le support des deux serveurs d’Oracle, Weblogic et Glassfish
- il intègre un certain nombre d’outils dédiés au développement J2EE, comme le Oracle JSP Validator, ou encore la prévisualisation de ces mêmes pages JSP
Je l’ai donc adopté, et jusqu’à maintenant, je n’ai pas été déçu. C’est une petite surcouche à Eclipse, agréable sans pour autant être trop lourde. Je m’en suis donc servi comme base pour une réinstallation propre de mon environnement de développement habituel. Je vais donc profiter de celle-ci pour écrire un petit tutoriel (un de plus, par rapport à tous ceux que vous trouverez déjà grâce à Google) de mise en place de cet environnement.
La suite >
Quelques sorties dans le monde Java
29/06/10
L’annonce récente qu’Oracle a réussi à rendre Sun profitable (voir ici pour les détails) est assurément une bonne nouvelle pour la communauté Java !
Outre cette nouvelle, le mois de juin a encore été riche en sorties :
la nouvelle version d’Eclipse, nommée Helios.
Les différentes version (développement J2EE, pour mobiles, etc.) sont maintenant fournies en 2 versions pour Windows : 32 et 64 bits. Côté fonctionnalités, cette mise à jour apporte entre autres le support du SCM Git. Une liste plus complète peut être trouvée ici.
L’installation et le lancement de cette version se sont passés sans difficultés, comme d’habitude. Mes plugins usuels (Subclipse, M2Eclipse, etc.) se sont également installés sans aucune difficulté. Après quelques tests effectués depuis une semaine, je n’ai rencontré aucun problème bloquant. Mais comme pour la version précédente, le gros manque se situe aux niveaux des serveurs J2EE : ceux de Sun d’Oracle ne sont pas encore disponibles.
le logiciel de contrôle qualité Sonar
Le 20 mai, la version 2.1.2 de cet excellent produit est sorti ! Mais plus que la nouvelle version, ce sont les premières versions du projet Sonar IDEs qui ont attiré mon attention : depuis le début du mois, il est possible de redescendre les métriques calculées par Sonar dans certains IDEs, dont Eclipse. Même si ce plugin n’en est qu’à la version 0.1, il fonctionne déjà correctement et est un concurrent des autres plugins qualité (pour PMD, CheckStyle, FindBugs, etc.).
Une autre nouvelle appréciable pour les développeurs dans d’autres langages, de nombreux plugins Open Source ont été soumis sur la Forge afin de permettre l’utilisation de la plateforme Sonar pour vérifier la qualité de codes écrits en PHP, C#, etc. N’ayant pas testé ces plugins, je ne peux par contre que me contenter de constater leur existence mais pas les juger.
Le serveur Java Tomcat 7
Aujourd’hui même, Tomcat a annoncé la sortie officielle de Tomcat 7. Cette nouvelle version nécessite un JDK en version 6 minimum et implémente les spécifications JSP 2.1 et surtout Servlet 3.0. Cette dernière (finalisée en décembre 2009) change la manière de configurer les servlets, par annotations plutôt que par fichier XML (ce qui permettra, entre autres, l’ajout de servlets au Runtime), voit apparaître les “web fragment” ainsi que l’exécution asynchrone (voir sur le blog de Xebia par exemple, pour plus de détails sur cette spécification).
Talend Partner Submit – Partie 4
19/04/10
Twitter 14h36 : Conférence la plus attendue: les nouvelles fonctionalités de la version 4.0.0
Outre les nouveautés que j’avais déjà listées ici, voici celles de la version sous subscription, que nous avons pu découvrir lors de cette conférence :
- Les différents outils de la suite sont maintenant intégrés dans un même environnement de développement (sous la forme de plusieurs vues dans Eclipse)
- Intégration du moteur BRMS Drools Expert, avec un composant d’application des règles. Ce composant permet de décorréler le flux de données des règles métiers. Ces dernières peuvent ainsi être modifiées par les experts métiers sans avoir à redéployer le job
- Intégration du moteur BPM Bonita
- Fonctionnalité “d’analyse d’impact”, permettant de mesurer par avance l’impact sur les jobs d’une modification que l’on souhaite réaliser (sur la structure d’une table, par exemple)
- Fonctionnalité de comparaison de jobs (ou de plusieurs versions différentes d’un même job)
- Fonctions de Haute Disponibilité (clustering de la console d’administration et des serveurs d’exécution, reprise sur erreur, etc.)
- Nouveaux algorithmes pour la qualité de données (Jaro, Q-Grams, etc.
- Liens de rejets automatiques dans le tMap
- Possibilité de connecter l’identification sur un serveur LDAP
- Prise en compte du format IDOC pour SAP
- Lancement d’un job dans une JVM séparée
- Routines “SQL-Like”
- Notifications automatiques par email
Twitter 16h33 : Présentation de la version 5 de la suite BPM Bonita Soft
Après cette conférence sur les nouveautés de la version 4.0.0 de la suite, j’ai assisté à la conférence de présentation de la nouvelle version de Bonita.
Au niveau de l’interface de développement, c’est encore une fois un produit basé sur Eclipse RCP. La présentation ne s’est pas particulièrement appesantie sur les fonctionnalités BPM elles-mêmes : je n’ai donc pas noté de fonctionnalité extraordinaire, par rapport à d’autres outils BPM (Drools Flow, jBPM, Intalio, etc. pour ne citer que des produits Open Source).
En revanche, c’est une autre fonctionnalité qui a attiré mon attention ; la possibilité de générer automatique des IHM correspondant aux workflows qu’on a créé (ce qui fait gagner un temps non négligeable dans les développements, pour tester les processus développés). Il est ensuite possible de personnaliser ces interfaces générées : déplacement des champs du formulaire, styles, etc. Le produit peut donc directement générer les écrans de l’application finale, qui peut ensuite être utilisée directement ou dans un portail.
Le seul point que je regrette, dans cette fonctionnalité, c’est que le Framework graphique n’est pas paramétrable : il s’agit forcément de GWT.
Twitter 17h11 : Dernière conférence de la journée sur le positionnement commercial de Talend et pot final!
Je passerai rapidement sur cette dernière conférence, dont je résumerai le thème à “Quels sont les avantages de Talend sur les concurrents ?”, avec des exemples de “winbacks”. Toujours en résumant : le modèle de pricing prédictif et la flexibilité de l’outil, la panoplie complète de composants inclus…
Enfin, pour clore cette journée, un goûter final permettant une dernière fois des échanges intéressants avec les autres partenaires et les membres de l’équipe Talend.
Talend Partner Submit – Partie 3 : Talend MDM
17/04/10
Twitter 13h27 : Après déjeuner, reprise: conférence sur le nouveau Talend MDM.
Un bon déjeuner buffet nous permet de rencontrer les partenaires, ainsi que des membres de Talend, en particulier son Directeur Technique avec qui nous avons des échanges informels toujours intéressants.
Ensuite, nous arrivons à la partie de la journée qui m’intéresse la plus : les conférences de présentation. J’ai donc entamé cette après-midi avec Talend MDM.
Dans un SI, il est très fréquent que plusieurs applications utilisent les mêmes données (liste de client, etc.). Or, en fonctions des applications, les valeurs associées (adresse, numéro de téléphone, etc.) peuvent être différentes. Le MDM a pour but de palier à ce problème en étant la référence, pour toutes les applications ayant besoin de ces données, de la valeur considérée comme vraie.
Pour assurer cela, Talend MDM propose les outils suivants :
- définition des données de référence
- définition du “propriétaire” de chaque donnée, qui en est responsable
- définition de règles de gestions (le champ “sexe” n’a que deux valeurs possibles ‘M’ et ‘F’, le champ “numéroClient” est constitué de 10 chiffres et est unique, etc.)
- définition de workflows de validation des données (si une personne/application veut mettre à jour une donnée, cette mise à jour est soumise à approbation d’un responsable).
Concrètement, l’outil lorsqu’on le télécharge est constitué de deux parties :
- le serveur MDM lui-même
- le client lourd de configuration de ce serveur (basé sur Eclipse RCP)
Techniquement, le serveur expose des services web permettant d’accéder à ses fonctions. Pour gérer la configuration du serveur, le client utilise ces services.
Dans de nombreux cas (pour ne pas dire la plupart), la problématique d’avoir de la cohérence entre les données de plusieurs systèmes arrive très tard, alors que les systèmes existent. Or, la solution présentée peut être déployée de manière non-invasive et progressive pour les systèmes existants :
- Talend MDM peut se connecter aux différentes bases, et en extraire les données de référence (avec des règles de gestion permettant de déterminer quelle donnée est la plus fiable)
- Cette alimentation de la base de référence peut ensuite être planifiée (toutes les nuits par exemple) : lorsqu’une donnée varie dans une des bases applicatives, Talend MDM récupère cette information et la gère (en mettant, ou non, la donnée de référence à jour en fonction encore d’un certain nombre de règles et/ou validations)
A ce stade, les différents systèmes ne subissent aucun impact : vient maintenant le moment de redescendre la donnée de référence validée dans ces systèmes pour qu’ils la partagent.
La propagation de la donnée de référence peut être faite en attaquant directement la base du système cible. Cette mise à jour en base peut être complexe (impacter plusieurs tables, être faite de manière transactionnelle, etc.), puisque Talend MDM peut utiliser un job de Talend ETL (TOS ou TIS). Cette manière de procéder nécessite peu (voire aucun) développement sur le système cible : elle peut donc être mise en place pour un faible coût sur des systèmes existants.
Plus tard, ou dans des nouveaux développements, le référentiel MDM peut être intégré directement dans les développements, afin d’être connu et utilisé par les systèmes eux-mêmes :
- lors d’une mise à jour d’une donnée de référence dans le système, un appel WS du serveur MDM est effectué pour lui notifier cette mise à jour
- lors d’une opération nécessitant une donnée de référence dans le système, la valeur de celle-ci peut être vérifiée auprès du serveur MDM (toujours par WS)
- en allant encore plus loin, on peut imaginer que le système ne conserve même pas de copie des données de référence. Lorsqu’elle sont nécessaires, elles sont obtenues par un appel au MDM. Cette solution faisant évidemment apparaître d’autres problématiques (dépendance de l’application à un système externe, existence d’un mode dégradé en cas de panne du MDM, etc.)
Ces solutions intégrant plus directement le MDM, elles sont évidemment plus invasives dans les systèmes. Sur un existant qui ne le prévoyait pas, elles sont donc plus coûteuses à mettre en oeuvre. Elles sont donc peut-être plutôt dédiées à des nouvelles applications développées dans un environnement où le MDM est déjà en place.
La solution MDM par Talend offre donc une grande souplesse pour s’adapter aux systèmes existants comme aux nouveaux développements. Par ailleurs, cette solution s’interface très bien avec l’ETL de Talend. Ce sont ces deux points qui m’ont le plus séduit lors de cette présentation. Cependant, j’admets volontiers que le MDM n’est pas ma spécialité, et que cet intérêt que je porte à la solution manque (pour le moment) d’objectivité :
- je ne connais pas l’ensemble des problématiques liées au MDM
- je ne connais pas les différentes offres du marché, et suis donc incapable de donner le moindre élément de comparaison par rapport à l’offre de Talend
Mise à jour du bundle Glassfish de Sun
18/12/09
Suite à la parution successive de J2EE6 et de Glassfish-V3-final, son implémentation de référence, Sun vient de mettre à jour son bundle de développement “Eclipse + JDK + Glassfish” dans une version 1.2.
Voici son contenu :
- Eclipse Galileo SR1, version J2EE
- Serveur Glassfish V3 final, pré-configuré pour le développement sous Eclipse
- Sun JDK 6 (en option)
En rajoutant Subclipse (mon gestionnaire de configuration est Subversion) et M2Eclipse (mes builds étant gérés par Maven 2), j’obtiens ainsi un environnement de développement complètement fonctionnel !
Mise à jour le 18/01/2010 :
Après avoir réellement testé cette version, je me suis rendu compte que les plugins Subclipse et M2Eclipse étaient intégrés dans le bundle, qui est donc directement utilisable pour mes projets sans avoir à y rajouter quoi que ce soit !
Revue de presse
28/11/09
Voici une petite revue de presse des informations de ce mois qui m’ont particulièrement intéressées :
Côté Java
Le gros évènement de ce mois, c’était la Devoxx (anciennement Javapolis) qui a eu lieu du 16 au 20 novembre. Je n’ai pas pu y assister mais des reporters en ont fait des comptes-rendus, entre autres sur java.developpez.com et Xebia.
Du côté d’Eclipse, ma dernière réserve sur l’utilisabilité de Galileo vient d’être levée : le plugin pour Glassfish est maintenant compatible avec cette version d’Eclipse ! Au passage, le serveur Glassfish vient de publier une nouvelle version stable 2.1.1.
Côté Talend
La version 3.2.2 vient de paraître, corrigeant un certain nombre de bugs.