samedi, mai 09, 2009

JUG Poitou-Charentes : technologies RIA / RDA

Le JUG Poitou-Charentes pour sa deuxième session organise un événement IHM autour des technologies RIA (Rich Internet Applications) et RDA (Rich Development Applications). Les technologies présentées seront GWT, Flex et Eclipse RCP.

L'événement a lieu le jeudi 14 main à Niort (Salle de la place du port). Donc, si vous êtes dans le coin, n'hésitez pas (lien pour les détails et l'inscription).

J'y serai bien entendu et je vous ferai un compte rendu de la soirée.

vendredi, mai 08, 2009

Premier essai avec Tycho

Ce billet a pour but de mettre en œuvre l'outil de build Tycho qui est une sorte de portage de Maven 2 pour les applications basées sur OSGi. Dans ce cadre précis le développement de plugins Eclipse est concerné.

Je tiens à préciser que Tycho est en cours de développement. Je me suis fortement basé sur le billet de Jason Van Zyl de Sonatype. Cette mise en oeuvre a été réalisée sous Windows XP.

Installation de Tycho
  • Télécharger Tycho à l'adresse suivante : http://repository.sonatype.org/content/repositories/tycho-pseudo-releases/org/codehaus/tycho/tycho-distribution/0.4.0-DEV-2233/ . Parmi la multitude de fichiers, j'ai choisi l'archive ZIP.
  • Décompresser l'archive (c:\tycho).
  • En regardant la structure des répertoires obtenue, vous remarquerez que cela ressemble fortement à la structure d'une installation Maven.
  • Ajouter une variable d'environnement TYCHO_HOME qui pointe sur le répertoire d'installation de Tycho (TYCHO_HOME=C:\tycho).
  • Si vous avez déjà installé Maven, modifier la variable d'environnement M2_HOME pour pointer également sur le répertoire d'installation de Tycho (M2_HOME=c:\tycho).
Télécharger l'exemple RCP
  • Créer un nouveau répertoire qui contiendra les sources de l'exemple RCP (c:\RCPExample).
  • Récupérer à partir d'un client SVN, les sources de l'exemple RCP à l'adresse suivante (http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-demo/itp01). Par exemple, en ligne de commande svn co http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-demo/itp01.
Démarrer le Build
  • Se placer à la racine du répertoire c:\RCPExample\itp01
  • Exécuter la ligne de commande %TYCHO%\bin\mvn clean install -Dtycho.resolver=p2
Ce premier Build est très long puisque toutes les dépendances nécessaires à la compilation de RCPExample sont téléchargées dans le référentiel local. Pour information et par défaut, le référentiel Tycho est positionné dans c:\Documents and settings\[user]\.m2\repository

A la fin du téléchargement, nous remarquons plusieurs étapes
  • Démarrage du conteneur OSGi à partir du Bundle org.eclipse.equinox.app
  • Compilation de RCPExample.
  • Installation de l'example dans le référentiel local (un des aspects le plus important, le plugin est construit et est disponible).
  • Compilation des tests de RCPExample.
  • Exécution des tests. Ici, le test consiste à activer une action de l'exemple. Pour se faire, un Workbench Window est ouvert puis réalisation de l'action (toutes les dépendances sont ainsi réalisées puisqu'un "mini Eclipse" a pu s'exécuter). A préciser finalement que le jar de RCPExample est situé dans le référentiel local et que le plugin de test effectue sans problème la dépendance.
Bilan

Ce première tentative est une bonne nouvelle
  • Dépendance vers les plugins Eclipse;
  • Téléchargement des plugins Eclipse dans le référentiel local;
  • Installation des plugins construits dans le référentiel distant.
Toutefois, j'ai de nombreuses interrogations
  • Un Product Eclipse sera-il considéré comme une sorte d'Assembly Maven ? Comment générer mon exécutable et choisir ma plateforme cible.
  • Choisir la version de la distribution de la plateforme Eclipse. Faire un build sur Europa, Ganymede ou Gallileo est-ce possible ? je l'espère très fortement.
  • Intégration de Tycho dans un outil d'intégration continue comme Hudson par exemple.
  • Tycho par rapport à Maven 2 ? Tycho est-il le futur Maven 3 ? Les plugins Tycho suivent quel modèle ?
  • Qu'en pense la fondation Eclipse ? A part sur les groupes de discutions de la fondation qui en parle, il n'y a pas à mon avis de volonté d'intégrer un outil de Build type Maven pour la conception de plugins.
En tout cas, je vais suivre ce projet avec attention ...

mardi, avril 28, 2009

Les dangers du PaintListener ...

Pour information, lorsque vous utilisez l'écouteur PaintListener pour ajouter des éléments graphiques à des composants, faites attention lorsque vous souhaitez avoir accès aux dimensions du cadre de la zone de dessin.

Il y a deux façons d'obtenir la taille de cette zone de dessin :
  • Soit en utilisant les attributs width et height de l'objet PaintEvent, passé en paramètre de la méthode paintControl.
  • Soit en utilisant la source de l'écouteur qui devrait être normalement de type Control. Ainsi par l'intermédiaire de la propriété bounds, il y a possibilité d'avoir accès à la hauteur et à la largeur.
On pourrait penser que les valeurs obtenues sont identiques, et bien non. Dans le premier cas, la taille de la zone de dessin peut changer lors de mise à jour de l'affichage. Le cas classique quand une fenêtre superpose la fenêtre contenant la zone de dessin. On peut obtenir des résultats assez catastrophiques. On se rend compte que la largeur et la hauteur peuvent prendre des valeurs incohérentes (voir capture ci-dessous).


Pour résoudre ce problème, je vous recommande de passer par les dimensions de la source pour déterminer les limites de la zone de dessin.

Pour résumer, il ne faut pas utiliser le code ci-dessous (où e est de type PaintEvent) :
int width = e.width;
int height = e.height;
Mais le code ci-dessous pour déterminer la hauteur et la largeur de la zone de dessin :
int width = 0;
int height = 0;
if (e.getSource() != null) {
Control currentSource = (Control)e.getSource();
Rectangle bounds = currentSource.getBounds();
width = bounds.width;
height = bounds.height;
}
Tout ça pour dire que je ne faisais pas attention depuis un certain moment et j'utilisais bêtement les dimensions fournis par l'objet PaintEvent.

PS : les codes sources du support de cours concernant la partie SWT vont être modifiés.

lundi, avril 27, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Angello Zerr propose un billet qui explique comment développer un éditeur de Workflow XML. En d'autres termes, si vous avez envie de développer un éditeur de type naviagation-rules pour les pages JSF, ce billet est pour vous.
  • Un exemple qui montre comment détacher une vue de manière programmatique, encore une histoire d'API interne.
Java
  • C'est fait, Oracle a racheter Sun. Je ne m'y attendais pas. Faut voir maintenant ce qui va se passer entre Netbeans et Eclipse. Oracle a des liens avec la fondation Eclipse. Toplink a été offert à la fondation Eclipse et est devenu EclipseLink, attendons de voir ce qui va se passer.
  • Un article intéressant concernant JUnit 4.

lundi, avril 20, 2009

Introduction au langage de description Schema XML

Un nouveau support de cours est disponible concernant le langage de description Schema XML. Il s'agit d'une mini-introduction que j'avais écrit pour le cours sur les extensions d'Eclipse.

Au menu de ce support de cours :
  • Généralités sur le langage de description Schema XML
  • Définition des types simples (Element, Attributs et Restrictions)
  • Définition des types complexes à partir de quatre combinaisons (éléments vides qui ne contiennent que des attributs, éléments de type simple qui contiennent des attributs, éléments qui peuvent contenir des sous éléments et des attributs, éléments qui contiennent des attributs, des sous éléments et du texte)
  • Annotations
Tout ce qui concerne le Schema XML n'a pas été traité.

Le lien du support de cours et les exemples peuvent être trouvés ici.

vendredi, avril 17, 2009

Supports de cours en préparation ...

Voici un état sur l'écriture des supports de cours en préparation.
  • Le support de cours sur le Workbench Eclipse. Les plus grosses parties ont été écrites. Les parties encore à traiter sont les UI Forms, les Actions et la customisation. Je vous prépare une surprise pour le mode de distribution de ce nouveau support de cours ...
  • Le support de cours sur Schema XML (transfuge du cours sur les points d'extension). Il est prêt depuis longtemps et devrait être publié dans quelques jours.
  • Un support de cours sur l'industrialisation avec les outils suivant Maven 2, SVN, Hudson, Nexus. Il s'agit d'un retour d'expérience.

samedi, avril 11, 2009

JUG Poitou-Charentes

Un nouveau JUG vient d'ouvrir, le JUG Poitou-Charentes, la première session était le vendredi 10 avril. A la différence des autres JUG qui reste fixé à une ville, le JUG Poitou-Charentes a pour vocation de présenter des sessions autour du monde Java dans les principales villes de la région Poitou-Charentes. La première était dans l'agglomération de Poitiers et il est question de déplacements à Niort, à la Rochelle, Angoulème, ...


Pour la première, j'y étais puisque c'est ma région, l'événement était dans ma ville et c'était juste à côté de mon lieu de travail, que demander de plus.

Le premier thème était consacré à Maven 2 présenté par Nicolas De Loof.

J'ai eu l'occasion de discuter avec Nicolas sur mes petits problèmes d'utilisation de Maven 2 pour la conception de plugin Eclipse. Il m'a rassuré sur le fait que pour l'instant ce n'est pas possible du fait qu'OSGi fait un peu la même chose. Des pistes ont été données concernant l'outil Tycho.

Un grand merci à l'équipe du JUG Poitou-Charentes pour cet événement et ceux à venir et merci pour le cadeau de la soirée. J'ai gagné le livre d'Antonio Goncalves : les Cahiers du Programmeur Java EE 5 2ème édition.

Mise à jour (09 mai 2009) : Nicolas a rendu disponible les transparents et la vidéo de la présentation (lien).

PS : Voici enfin un billet qui ne traite pas des liens pratiques de la semaine ;-)

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Google fournit le support de Java pour Google App Engine. Pourquoi dans la section Eclipse ? Tout simplement car un plugin est disponible pour assister le développeur.
  • Toujours sur le sujet Google App Engine, il semblerait que le support OSGi soit supporté.

dimanche, avril 05, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un exemple de code qui montre comment fournir un outil de changement de perspectives pour vos applications Eclipse RCP.
  • Un article sur comment utiliser le projet RIENA (rien à voir avec la chanteuse). Voir précédent billet.
  • Second millestone pour e4, voir ici pour les nouveautés et ici pour le téléchargement.
  • Un support de cours sur le sujet les WebTools pour mettre en œuvre les standards du W3C (source EclipseTotale).
  • Une nouvelle version du composant graphique Nebula Gallery.

vendredi, mars 27, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • EclipseCon 2009 est maintenant terminé. Je prépare un billet pour regrouper les ressources des différentes sessions. J'en profite également pour féliciter Benjamin Cabé qui a été élus TOP Contributors.
  • Amazon fournit une suite logicielle sous Eclipse, appelée AWS pour développer, déployer et débugguer des applications Java qui utilisent les Web Services Amazon.
Divers

samedi, mars 21, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Eclipse 3.5 M6 est sortie (page pour son téléchargement et page pour examiner la liste des nouveautés). Un mini résumé des importantes modifications peut être trouvé ici.
  • Angelo Zerr continue sa lancée (billet 1, billet 2, billet 3 et billet 4) et s'ouvre à l'international en proposant maintenant des billets sur le wiki de la fondation d'Eclipse (SSE et Rhino [avec la participation de Jawher Moussa un des responsables de la rubrique Eclipse chez Developpez.com]).
  • Un moteur de recherche (en incubation) dédié à la base Bugzilla d'Eclipse.
  • Un exemple de code source mettant en oeuvre une barre de progression pour chaque vue d'une application Eclipse RCP. L'auteur a simulé un glasspane à la Swing pour son exemple. L'idée est assez similaire à ce que j'avais présenté ici. Toutefois à l'époque l'API de la Shell SWT ne permettait pas de modifier la valeur alpha de la fenêtre. Je passais par un appel JNI, ça c'était du sport ;-).
Divers
  • Un excellent article qui parle de prolétarisation dans les sociétés de services (source Didier Girard).

dimanche, mars 15, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse

vendredi, février 27, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
Java
  • La version Maven 2.0.10 est sortie (billet sur blog de Sonatype). Un excellent outil de Build qui malheureusement est très mal supporté pour le développement de plugins Eclipse.
Divers
  • Un article sur le TDD (Test Driven Design)
  • Un billet qui présente l'évolution des ventes de livre de programmation des éditions O'Reilly. Au travers de cette présentation, on peut constater l'intérêt des lecteurs pour tel ou tel langage. Un point à constater : Java diminue ...

lundi, février 16, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Angelo Zerr a proposé un nouveau billet sur le sujet SSE. C'est assez technique mais Angelo ose parlé de sujet très peu documenté
  • Un billet qui propose de customiser les boîtes "A Propos ..." via les nouveautés apportées par Eclipse 3.5
  • Un article qui tente de lister le Pourquoi et le Comment d'OSGi

vendredi, février 13, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Le premier milestone pour la version e4 est sorti (nouveautés et page de téléchargement). Un détail en français est disponible sur le blog de Benjamin Cabé
  • Connaissiez-vous le Local History ? Il s'agit d'un historique en local (emplacement physique) de l'ensemble de vos modifications. En d'autres mots, il s'agit d'un outil qui viendra en complément de votre outils de gestion de source (billet 1).
  • Un article qui explique comment déployer une application Eclipse RCP via Java Web Start
  • Un billet qui détaille la façon d'utiliser le composant Barre de Progression.
  • Angelo Zerr revient et propose un nouveau billet sur l'utilisation de SSE (Structured Source Editing) un sous projet de WTP.

vendredi, février 06, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un billet qui explique comment modifier l'apparence d'une WorkbenchWindow. Le billet n'est pas très jeune mais très intéressant.
  • Angelo Zerr propose deux billets sur le sujet d'EMF, GEF et WST (billet 1 et billet 2). A noter également qu'Angelo participe au projet E4 (la suite d'Eclipse).
  • Nouvelle version pour Eclipse 3.5 Galileo Milestone 5 (page pour son téléchargement et page pour examiner la liste des nouveautés). Si vous désirez discuter de ces nouveautés, un forum est disponible sur le site de Developpez.com.

vendredi, janvier 30, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Une fiche de référence sur OSGi sur le site de DZone (source Benjamin Cabé)
  • Un article sur l'activation des Actions suivant l'état d'une perspective
  • 10 erreurs à éviter pour le développement d'application Eclipse RCP
Divers

dimanche, janvier 11, 2009

Modification du support de cours sur les Extensions et les Points d'extensions

Le support de cours concernant les Extensions et Points d'extensions a été réduit. En effet, la partie concernant l'explication sur le Schema XML a été supprimée. J'ai considéré que cette partie n'avait pas sa place.

Cette partie sur le Schema XML sera transférée prochainement dans un nouveau support de cours.

samedi, janvier 10, 2009

Licence d'utilisation ... Creative Commons

Je viens d'effectuer une mise à jour sur l'intégralité de mes supports de cours qui intègre dés à présent une licence d'utilisation de type Creative Commons imposant les contrats suivants :
  • Paternité : vous devez citer le nom de l'auteur original par conséquent Mickael BARON
  • Partage des Conditions Initiales à l'Identique : Si vous modifiez, transformez ou adaptez les supports de cours, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci.
Sous ces conditions, cette licence vous donne le droit de :
  • de reproduire, distribuer et communiquer cette création au public.
  • de modifier cette création.
Pourquoi une licence ? Je reçois de nombreuses demandes pour l'utilisation des supports de cours et je vous propose maintenant un contrat d'utilisation.

mercredi, janvier 07, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un article qui explique comment créer des templates pour faciliter la création des plugins.
  • Un billet qui décrit l'utilisation de JFace DataBinding sur un exemple simple.
  • La troisième édition de livre Eclipse Plug-ins est disponible.
  • Une série de billets sur l'utilisation de l'outil de debug d'Eclipse (partie 1, partie 2 et partie 3).
  • Dans la série des mises à jour de livre, la nouvelle version du livre consacré à EMF est disponible.