Archives de la Catégorie ‘Java’
Par Cédric Vidal • 20 avr, 2010 • Catégorie: Eclipse RCP, Java, Model Driven
Je viens de découvrir Actifsource, un environnement commercial de modélisation et de génération de code. Les captures d’écran sur le site de l’outil ont immédiatement attiré mon attention car elles montrent l’éditeur positionné sur un template de génération de code Java avec coloration syntaxique des mots clefs du langage !
Hors, le saint graal de la génération de code, du point de vue de l’auteur de templates, c’est justement de pouvoir éditer un template de génération de code de la même manière qu’il écrirait le code avec son éditeur moderne favori (le JDT par exemple). Avec un éditeur de template traditionnel moderne comme Acceleo, on bénéficie de la complétion des éléments du méta-modèle d’entrée mais les mots clefs du langage cible sont de simples caractères ASCII, ce ne sont pas des éléments de modèle reconnus par l’éditeur.
J’ai donc suivi le tutorial de création d’un service simple. Le premier point remarquable est que l’environnement permet d’éditer le méta-modèle ET le modèle dans le même diagramme:
Cette possibilité offre une grande souplesse, cela permet d’instancier le modèle et de vérifier le méta-modèle au fur et à mesure que le méta-modèle est conçu.
Par contre, comme EMF (le framework de méta-modélisation de prédilection …
Par Grégory Levilain • 13 avr, 2010 • Catégorie: Java, Java EE, Non classé, Productivité, Test, news
Un ch’ti Mockito ?
C’est avec grand plaisir que nous vous convions à la prochaine session du CH’TI JUG, qui se déroulera le mardi 20 avril prochain, à 18h30 à la Maison des Associations de Lille.
David Gageot, directeur technique d’Algodeal, nous présentera deux sujet lors de cette session : GIT et Mockito.
De nouveaux paradigmes de développement collaboratif émergent ces temps-ci et GIT constitue l’une des avancées techniques les plus remarquables dans ce domaine.
Mockito, quant à lui, parvient à s’imposer, dans un écosystème pourtant déjà richement fourni en frameworks de mocking, par la simplicité qu’il confère en matière de développement de tests unitaires.
Tous les détails concernant cette soirée sont sur chtijug.org.
Par Cédric Vidal • 8 avr, 2010 • Catégorie: DSL, Eclipse RCP, Model Driven, news
En Janvier 2009, Arnaud Buisine et moi-même co-écrivions un article de fond sur le Model-Driven intitulé “MDSD, MDD, ou MDA : quel outil choisir ?” paru dans le dossier “La modélisation de A à Z” du magazine Programmez n°115 de Janvier 2009 dans lequel nous évoquions l’un des frameworks les plus novateurs du monde du Model Driven: Obeo Designer, permettant de créer très simplement des DSLs graphiques. Je vous invite maintenant à découvrir un autre de ces framework novateurs: Xtext. Ce framework de création de DSLs textuelles s’est vu attribué le prix de la meilleure innovation Eclipse 2010.
Donc, si vous souhaitez créer votre propre langage textuel, qu’il soit généraliste (General Purpose Language) ou spécifique (Domain Specific Language DSL) ainsi que son éditeur sous Eclipse, je vous invite à lire mon introduction à la création d’une DSL avec Xtext qui vient de paraître dans le magazine Programmez! n°129 d’Avril 2010. Ce premier article constitue l’introduction d’une série sur les DSL, MDSD et Eclipse RCP.
Le magazine est actuellement disponible en kiosque en ce moment même, mais vous pouvez aussi l’acquérir en ligne.
En vous souhaitant bonne lecture.
Par Cédric Vidal • 8 mar, 2010 • Catégorie: Java, Performances, Test
En ce moment, je réalise des tests de montée en charge du serveur de reporting JasperServer. Je souhaite pouvoir corréler le niveau de stress (nombre de tirs simultanés) appliqué au SUT, le System Under Test, avec des métriques internes du serveur, à la fois système comme la charge CPU du process Java et la quantité de HEAP utilisée mais je souhaite aussi pouvoir mesurer des métriques propres à la librairie JasperReports comme le nombre de rapports en cours de calcul ou la vitesse de remplissage des rapports.
J’utilise JMeter pour effectuer les tirs. Cet outil permet de simuler plusieurs clients simultanés et de visualiser l’évolution des temps de réponse en fonction du temps et du nombre de clients qui tirent. C’est une vision boite noire, externe au SUT.
JMeter ne permet pas de visualiser des métriques propres au SUT comme la charge CPU, le nombre de transactions en cours, le nombre de requêtes SQL en cours ou dans le cas qui m’intéresse le nombre de rapports en cours de calcul.
Il existe plusieurs outils qui permettent de monitorer en temps différé ces informations comme par exemple HypericHQ ou l’une de ses nombreuses variantes, ils sont conçus pour du …
Par Arnaud Buisine • 16 fév, 2010 • Catégorie: Java, news
De passage hier chez nos amis de Zenika, Cédric Vidal et moi-même avons eu le plaisir de faire la connaissance de Eric Evans, la référence mondiale du Domain Driven Design. A noter que Eric Evans fera une conférence sur ce sujet ce mercredi soir, 17 février, chez Zenika à Paris.
C’est surtout pour une rencontre tripartite ProxiAD / Zenika / Eclipse Foundation planifiée avec Ralph Mueller, Directeur Ecosystème pour l’Europe au sein de la Fondation Eclipse, que Cédric et moi avons fait le court trajet à pied de ProxiAD Ile de France à Zenika. Côté Zenika, Laurent Delvaux, cofondateur, Pierre Queinnec, cofondateur et directeur technique et Ophélie Rudent, responsable marketing, ont été nos hôtes pour cette réunion tout à fait passionnante, lors de laquelle nous avons notamment évoqué la stratégie de la Fondation Eclipse vis-à-vis du marché.
D’autres sujets brulants étaient à l’ordre du jour, mais il serait prématuré de les aborder aujourd’hui. Restez à l’écoute : nous devrions avoir d’ici quelques semaines de super nouvelles pour vous.
En attendant voici la traditionnelle photo souvenir avec …
Par Pascal Leclercq • 16 fév, 2010 • Catégorie: Build, Eclipse RCP, Java
Il y a de cela un peu plus d’un an, lorsque je cherchais un moyen de construire un plugin Eclipse avec Maven, je tombais presque par hasard sur une réponse laconique de Jason Van Zyl (le papa de maven): “Tycho”.
Mais, me diriez-vous : On ne pouvait pas contruire de plugin Eclipse avec Maven avant ???
Eh bien, en pratique, on pouvait parvenir à compiler des sources, à générer des fichiers manifest.mf voire à construire des “product” mais à quel prix ! A titre d’illustration, je vous invite à lire l’excellent article de Cyril Lakech et vous aurez une mince idée de la sueur et des larmes qu’il fallait accepter de verser pour mettre en place Maven sur des plugins avant d’apercevoir le graal.
Une autre alternative consistait à développer et maintenir ses propres “Mojo”; Grégory Levilain a ces dernières années ainsi développé et déployé sur de nombreux projets un ensemble de plugins Maven permettant d’adopter une optique “POM-FIRST”. Cette approche laisse à Maven le soin de gérer les versions des éléments du projet (plugins, fragments, features, update-sites, products), et de leurs dépendances. Ces travaux ont été initiés en 2006 lors de la mise en open-source du projet Wazaabi.
Mais alors …
Par Pascal Leclercq • 15 fév, 2010 • Catégorie: Eclipse RCP, Java, news
Afin de résoudre une problématique complexe, il suffit presque toujours de la découper en autant de problèmes simples que nécessaire. Ce principe qui a fait ses preuves dans les sciences, qu’elles soient exactes ou non, prend tout son sens dans nos métiers.
Car, qu’on le veuille ou non, les attentes des utilisateurs sont là : les besoins en termes d’ergonomie, d’interopérabilité et d’évolutivité s’accroissent un peu plus chaque jour. Tout ceci contribue à rendre les systèmes d’information de plus en plus complexes. C’est aussi là que se trouve ce que j’aime faire : inventer des solutions simples et élégantes pour satisfaire des besoins toujours grandissant.
Développeur Java et architecte logiciel, mes thèmes de prédilection sont la modularité, l’évolutivité et l’extensibilité des Systèmes d’informations. Plus particulièrement, je m’intéresse aux cas d’utilisation de la norme OSGi et au développement de plugins Eclipse RCP.
La tête dans les étoiles, c’est préparer aujourd’hui les réponses aux problèmes de demain.
Par Arnaud Buisine • 10 fév, 2010 • Catégorie: .Net, Build, Cloud, Java, Microsoft, PHP, Productivité, Qualité
Voici comme promis hier un focus sur les thématiques que j’ai privilégiées lors de mon passage aux TechDays 2010.
En fait, je ne m’attarderai pas sur Office 2010. Cela fait maintenant 2 mois que j’utilise la version beta et cela marche plutôt bien. Sharepoint 2010 ammène également son lot de nouveautés avec en particulier un support avancé des ressources multimédia (videos notamment). Mais je m’écarte de mon sujet.
Il y a vraiment deux sujets que je veux mettre en valeur cette année.
Même pour un œil peu averti, il apparait évident que Microsoft continue son rapprochement vers les autres plateformes de développement. Ainsi n’ai je pas été le seul à relever hier les nombreuses références à PHP et à Java.
C’est d’abord avec le support souligné de PHP et Java sur Windows Azure dès la plénière du matin que le sujet est venu sur le tapis. Puis, dans l’après midi, une session, notamment, dédiée à l’industrialisation en environnements de développement hétérogènes a confirmé la tendance.
L’événement significatif en ce sens est le rachat par Microsoft fin 2009 de Teamprise de SourceGear. Teamprise est une suite d’outils qui permet à …
Par Grégory Levilain • 8 fév, 2010 • Catégorie: Agilité, Java, Productivité, Qualité, Test
1) Introduction
2) Développement “piloté par les tests” vs “assisté par les tests”
3) Tests unitaires “en isolation” ou “contextuels” ?
4) Gestion des données de tests et choix des outils
5) Conclusion
Il va de soit que les tests représentent un gage de qualité pour un projet. Leur adoption dépend à mon avis de deux aspects :
- une bonne méthodologie ;
- une infrastructure adaptée.
Si les méthodes agiles et le TDD représentent un facteur de motivation, il serait dommage de ne pas les mettre en œuvre. Si ce n’est pas le cas, ou que le projet ne s’y prête pas, l’important à mon sens est de créer un besoin. L’un des aspects essentiels du développement assisté par les tests est de fournir un maximum de confort et de possibilités aux développeurs, afin de faire du test unitaire un outil de développement apprécié et indispensable.
Quelque soit la solution choisie, sa pérennité dépend fortement de la mise en place de l’infrastructure et de l’outillage nécessaires. L’intégration continue, notamment, est capitale.
Enfin, une solution de tests fonctionnels complètera efficacement l’une ou l’autre des méthodes citées.
Par Grégory Levilain • 8 fév, 2010 • Catégorie: Agilité, Java, Productivité, Qualité, Test
1) Introduction
2) Développement “piloté par les tests” vs “assisté par les tests”
3) Tests unitaires “en isolation” ou “contextuels” ?
4) Gestion des données de tests et choix des outils
5) Conclusion
Gestion des données
Pour résumer, l’objectif est ici de placer la BDD dans un état prédéfini avant le test, de façon automatique, afin d’assurer sa reproductibilité. De plus, cette initialisation doit se faire :
- de façon suffisamment rapide pour que la durée d’exécution des tests ne devienne pas une contrainte ;
- de façon suffisamment souple pour injecter facilement toutes sortes de données. En outre, une méthode d’insertion dynamique permettra par exemple de créer des listes volumineuses pour tester un composant de pagination ou de tri.
Les tests contextuels nécessitent des jeux de données plus conséquents que les tests en isolation. Malgré tout, il est important que ceux-ci restent suffisamment légers pour conserver des performances acceptables.
Pour organiser ces jeux de données de façon optimale, nous distinguerons :
La structure de la BDD ;
Les données de référence, qui se trouvent dans des tables qui ne sont jamais modifiées lors de l’utilisation habituelle de l’application. Exemples: Table “CIVILITE” (Mr, Mme, Mlle), …
|