vendredi, août 06, 2010

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 nombreuses dernières semaines (vous l'aurez remarqué, le long silence s'explique par les vacances ...).

Eclipse
  • Un billet de Lars Vogel qui montre comment charger une ressource (un fichier par exemple) à partir d'un plugin Eclipse.
  • Pour résoudre le problème de mémoire entre Java 6 update 21 et Eclipse (PermGen Space) soit vous modifiez les paramètres de votre eclipse.ini soit vous installez le dernier build de Java 6 update 21 (merci à Bruno Leroux d'EclipseTotale pour la coquille qui s'était glissée).
  • Migrer une application RCP de Galileo à Helios, l'équipe de Bonita Soft vous propose un billet de leur retour d'expérience.
  • Eclipse 4.0 est disponible. Cette version s'adresse pour l'instant aux développeurs d'applications de la plateforme Eclipse. Un schéma de la nouvelle architecture est présenté ici.
  • Un article qui présente les injections pour Eclipse 4.0.
  • Un tutoriel pour débuter le développement avec Eclipse 4.0.
  • Un des points forts d'Eclipse 4.0 est de faciliter le changement de l'apparence (look and feel). Deux articles présentent comment réaliser cette opération : article 1 et article 2.
  • Instantiations, une compagnie qui proposait un ensemble de GUI-Builder pour les boîtes à outils SWT, SWING et GWT vient de se faire racheter par Google. Une bonne affaire pour espérer que l'éditeur GWT devienne gratuit et monte en puissance. Par contre, que vont devenir les éditeurs graphiques pour SWT et SWING ?
Divers
  • La bibliothèque ContiPerf permet d'enrichir JUnit en ajoutant la notion de tests performance (un test doit s'exécuter en un temps donné).

vendredi, juillet 02, 2010

Premiers pas avec EMF sont encourageants, plan du futur support de cours

Je vais mettre de côté la rédaction des supports de cours en relation avec le Workbench d'Eclipse pour me focaliser sur les outils et projects fournis par Eclipse Modeling.

Avant de commencer par l'habituelle introduction qui débute ce nouveau chapitre (je vais attendre d'en connaître un peu plus sur la modélisation via Eclipse), je vais commencer par une introduction à EMF.

Après quelques heures de découverte d'EMF avec le nouveau Eclipse Helios, je me suis fixé le plan suivant :
  • Généralités sur EMF (historique, versions en cours, objectif, ...)
  • EMF par l'exemple (à partir d'une modélisation Java, montrer rapidement les annotations sur les classes, utilisation des Wizards pour générer genmodel, expliquer le but recherché une fois la modélisation terminée [la création des instances et le raisonnement], génération de code, exécution du code, examiner le résultat)
  • Définir un modèle EMF (via ECORE ou Java), dire qu'il est possible de le faire via UML, XML, ...
  • Génération de code (Model Code, Edit Code, Editor Code), ne pas trop rentrer dans les détails mais insister sur quoi trouver dans le code généré.
  • Programmer avec EMF (interroger le Meta-modèle, comment sont persistées les instances, écouter les changements sur les instances, validation des contraintes, utilisation de EMF à l'extérieur d'OSGi)
Comme vous pouvez le voir, je ne m'intéresserai très peu sur l'aspect génération du code. Je vais plus me focaliser sur la dernière partie. J'ai envie de découvrir les API EMF utilisées pour manipuler les instances de mes futurs modèles.

Si vous avez des commentaires sur ce plan, n'hésitez pas. Cette proposition n'est pas figée, elle évoluera surement au fur et à mesure de la rédaction des transparents.

Introduction à la construction d'Eclipse Forms avec la plateforme Eclipse

Je vous propose un nouveau support de cours concernant la construction d'Eclipse Forms avec la plateforme Eclipse. Les Eclipse Forms fournissent une API permettant de construire des interfaces graphiques ayant un look proche des interfaces Web. Cette API peut être vue comme un complément à SWT et JFace.

Le plan est le suivant :
  • FormToolkit
  • Form et ScrolledForm
  • Agents de placement
  • Composants (ExpandableComposite, Section, PageBook, FormText, MasterDetailsBlock)
  • FormEditor
Le lien du support de cours et les exemples peuvent être trouvés ici.

Si vous avez des commentaires concernant ce support de cours, exprimez-vous à partir de ce billet.

lundi, juin 28, 2010

Mise à jour du support de cours sur les Vues avec Eclipse

Une légère mise à jour a été réalisée sur le support de cours concernant l'étude des vues. J'ai rajouté quelques transparents sur la notion de vues détachables. J'en ai profité également pour ajouter quelques exemples supplémentaires sur le sujet.

samedi, juin 26, 2010

J'ai besoin d'... installer le client SVN Subversive sous Eclipse Helios via Eclipse Marketplace

A la sortie d'Eclipse Galileo, j'avais publié un billet concernant l'installation du plugin SVN (Subversive) sous Eclipse Galileo. Comme Eclipse Helios vient tout juste de sortir, cette série des J'ai besoin de ... va s'intéresser à l'installation du plugin en utilisant l'outil Eclipse Marketplace. A noter que la procédure d'installation du plugin SVN via l'update site fonctionne très bien.

Pré-requis : installer une version Eclipse Helios (page de téléchargement). Je suis parti d'une distribution pour le développement de plugins Eclipse. Il s'agit d'une version anglaise.
  • Démarrer Eclipse Helios
  • Ouvrir l'outil Eclipse Marketplace. Help -> Eclipse Marketplace ...
  • Choisir Eclipse Marketplace comme catalogue, puis faire Next
  • Dans l'écran suivant, saisir dans le champ de texte Find la valeur svn pour effectuer un tri sur l'ensemble du catalogue. Vous devriez obtenir le résultat suivant

  • Cliquer sur Install pour l'élément Subversive - SVN Team Provider pour procéder à l'installation du plugin SVN Subversive
  • Des options liées à l'installation du plugin Subversive vous seront demandées. Dans mon cas, j'ai désactivé les modules pour Mylyn et l'internationalisation (j'ai l'habitude de ma version anglaise), puis faire Next
  • Une confirmation liée à la licence d'utilisation vous sera demandée, accepter puis faire Finish
  • L'installation est en cours, malheureusement pour un aussi petit plugin, ce n'est pas si rapide que cela
  • Il vous sera demandé de redémarrer Eclipse, faire Restart Now
Attention à cette étape l'installation n'est pas encore terminée, il va falloir installer les connecteurs SVN.
  • Ouvrir la perspective SVN Repository Exploring, une boite de dialogue apparaît en vous proposant de choisir les connecteurs à installer. Dans mon cas, je n'installe que les connecteurs pour la version 1.5.x de SVN, puis faire Finish
  • Une confirmation des modules à installer vous sera alors demandée, faire Next
  • Refaire Next pour re-confirmer
  • Une nouvelle confirmation liée à la licence d'utilisation vous sera demandée, acceptez puis faire Finish
  • L'installation des connecteurs est lancée, attendre la fin de l'installation. A noter qu'il peut vous être demandé d'accepter l'installation de plugins non signés, accepter sans quoi qu'il arrive ...
  • Redémarrer Eclipse une fois l'installation terminée
Voilà, la procédure d'installation du plugin SVN Subversive terminée. C'est tout de même un peu plus long qu'en passant via l'update site, non ?

vendredi, juin 25, 2010

Introduction à la construction d'Editeurs avec la plateforme Eclipse

Comme annoncé dans un précédent billet, je vous annonce la disponibilité d'un nouveau support de cours concernant la plateforme Eclipse. Ce support de cours concerne les éditeurs. Pour rappel le plan est le suivant :
  • Construction déclarative d'éditeurs
  • IEditorPart, IEditorSite, IEditorInput à quoi ça sert
  • Registre des éditeurs
  • Cycle de vie des éditeurs
  • MultiPageEditorPart
  • Ecouteurs
  • Editeur et les commandes
  • Workspace et les ressources
  • Editeur et le texte via TextEditor (Coloration syntaxique, assistant de contenu, ...)
A noter que pour la dernière partie, éditeur et le texte, une analyse approfondie de la boîte à outils JFace a été réalisée. A mon avis, cette partie risque d'évoluer au gré de différentes fonctionnalités apportées par la fondation Eclipse telles que XText et Eclipse 4.

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

mercredi, juin 23, 2010

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 décrit comment ajouter des détails concernant votre plugin (dans la boîte About) pour qu'il soit facilement identifiable par un utilisateur.
  • Un avis très intéressant concernant e4 (I'm not anti-e4, I'm just busy with other things). Je pense que beaucoup de développeurs sont dans ce cas, en tout cas moi c'est certains.
  • Qui n'a jamais essayé de trouver le moyen de savoir si une vue était détachée ou pas. Comme il n'existe pas d'API pour cela, ce billet vous explique comment détecter si une vue est détachée ou pas.

Eclipse 3.6 Helios est sortie

La nouvelle version d'Eclipse, Eclipse Helios 3.6, est désormais disponible.
De nombreuses nouveautés sont supportées par cette nouvelle version :
  • Xtext
  • Git support
  • EMF, Riena and RAP integration
  • Marketplace Client
  • P2 API and B3 Aggregator
  • Target platform enhancements
  • Java IDE improvements
  • Improvements to API tools
  • Feature based configurations
  • Resource improvements
En attendant la sortie d'Eclipse 4.0 prévue pour le mois de juillet prochain, la prochaine version d'Eclipse 3.x sera Eclipse 3.7 Indigo.

mardi, juin 22, 2010

Introduction à la construction d'Editeurs : presque terminé

Très bonne nouvelle, j'ai terminé le support de cours concernant les éditeurs de la plateforme Eclipse. Il est actuellement en phase de relecture et devrait sortir très prochainement.

Voici le plan de ce nouveau support de cours
  • Construction déclarative d'éditeurs
  • IEditorPart, IEditorSite, IEditorInput à quoi ça sert
  • Registre des éditeurs
  • Cycle de vie des éditeurs
  • MultiPageEditorPart
  • Ecouteurs
  • Editeur et les commandes
  • Workspace et les ressources
  • Editeur et le texte via TextEditor (Coloration syntaxique, assistant de contenu, ...)
Il me reste à finaliser les nombreux exemples et je diffuse.

Je vais pouvoir passer à l'aspect modélisation très prochainement ...

mardi, juin 15, 2010

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. Très peu de billet ce mois-ci dû principalement à l'organisation d'une conférence. Promis, je vais essayer de me rattraper.

Eclipse
  • Un article qui présente comment utiliser Tycho dans le cadre des tests.
  • Sur le site de Sonatype, un article qui montre comment utiliser EMMA (couverture de code)
  • Une présentation et un billet qui tente d'expliquer en quelques mots l'univers d'Eclipse. : What is Eclipse ...
  • Après Eclipse Helios, ça sera Eclipse Indigo. Certains espèrent déjà de nombreuses améliorations, et vous ?
  • Une vidéo et une présentation qui montrent les améliorations d'Eclipse Helios concernant JDT et PDE.
Java

mercredi, juin 09, 2010

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 site d'Eclipse se prépare à l'arrivée de Eclipse Helios. Une nouvelle page de téléchargement est disponible. Veuillez noter la simplification pour choisir la plateforme cible d'Eclipse (Windows 32 bits, 64 bits, ...).
  • Une conférence virtuelle sera donnée le 24 juin 2010 pour la sortie de la prochaine version d'Eclipse Helios. Pour obtenir des informations supplémentaires sur cet événement, veuillez vous rendre ici.
  • Un article qui montre comment modifier des styles CSS avec Eclipse 4.

samedi, mai 22, 2010

Résultat du vote : Pour vous l'arrivée d'Eclipse 4 ...

Le résultat du vote Pour vous l'arrivée d'Eclipse 4 ... donne gagnant Keulkeul va devoir mettre à jour tous ces supports. Hormis le fait que je vais devoir fournir un travail de comparaison entre Eclipse 3.x et Eclipse 4, j'ai l'impression qu'il y a une crainte. En effet, Eclipse 4 va demander un effort assez important pour monter en compétence. De même, certaines connaissances acquises sur Eclipse 3.x vont tomber à l'eau. C'est rageant, mais je vois cela comme une évolution nécessaire puisqu'Eclipse 4 va simplifier énormément de points comme par exemple le développement d'IHM qui devient déclaratif (les constructeurs d'IHM vont être plus simple à réaliser).

N'empêche que pour l'instant je me focalise à terminer, avant la sortie d'Eclipse 4, les supports de cours sur les éditeurs et sur Eclipse Forms.

vendredi, mai 21, 2010

Compte Twitter ... j'en ai un

Depuis quelques temps j'ai ouvert un compte Twitter. L'idée première est de l'utiliser pour avertir que des nouveaux billets sont disponibles sur ce blog. Pour essayer de toucher un plus grand monde, je me la joue internationale.

Si vous souhaitez suivre mon compte Twitter, c'est par ici Follow mickaelbaron on Twitter

Bilan de la soirée GTUG : session Google Maps

Mercredi dernier a eu lieu une soirée au GTUG Poitou-Charentes. Son leader,Lenn Angel, a donc présenté tous les outils qui gravitent autour de la cartographie : Google Earth et ses variantes (Mars, Moon, ...) puis Google Maps. C'est sur ce dernier outil que la présentation a été focalisée. Lenn a donc présenté des choses très intéressantes sur les droits d'utilisation et sur les différentes versions des APIs Google Maps. De nombreux exemples ont été présentés pour illustrer les différentes solutions. Il est bon de savoir que la dernière version de Google Maps, la version 3, ne nécessite plus de clé. Par ailleurs, comme nous étions un petit groupe, la présentation a été très interactive et de nombreux échanges ont été réalisés.

De nombreux goodies ont été offerts lors de cet événement (T-Shirt, livre et crayon), merci Lenn. Le repas a été comme toujours une occasion d'échanger des informations, des conseils et des astuces sur différentes technologies Open Source.

Au final une très bonne soirée pour ceux qui souhaitent faire de la veille. En attendant la prochaine.

lundi, mai 17, 2010

GTUG Poitou-Charentes : session Google Maps

La prochaine session du GTUG Poitou-Charentes s'intéresse à Google Maps et aura lieu le mercredi 19 mai 2010 dans les locaux de SERLI. Une présentation rapide des différents outils de cartographie de Google sera donnée par le GTUG Leader Len Angel.

Programme de la soirée
  • 19h30-20h15 : Présentation fonctionnelle des outils de cartographie de Google et exemple basique d'utilisation de l'API
  • 20h15-20h30 : Dialogues autour d'un buffet leger offert par SERLI
  • 20h30-??h?? : Atelier découverte de l'API GoogleMaps (réalisation d'une petite application en commun) avec pizza/coca offert par SERLI
Pour en savoir plus, rendez-vous sur la page du GTUG Poitou-Charentes.

Superbe occasion pour savoir comment manipuler l'API et pouvoir connaître ce que les services Google ont dans le ventre.

J'y serai et vous ?

vendredi, mai 14, 2010

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 RAP 1.3 Millestone 7 est disponible (page de téléchargement, page des nouveautés), billet de l'annonce.
  • Marketplace Client est un outil pour fournir une sorte de App Store à Eclipse. Cet outil sera disponible dans la prochaine version d'Eclipse Helios. En attendant vous pouvez déjà le tester via la version en développement d'Eclipse Helios (billet de l'annonce).
  • Google annonce Eclipse Labs, un entrepôt pour les projets qui gravitent autour de la sphère Eclipse. Cet entrepôt est hébergé sur Google Project Hosting.
  • En examinant Eclipse Google Eclipse Labs, je suis tombé sur le projet WorkspaceMechanic. Cet projet permet de regrouper à un seul endroit physique toutes les préférences (formatage, entrepôt SVN, ...) définies dans les Workspace. Ceci est très pratique quand on dispose de plusieurs workspace et que l'on souhaite diffuser à toute son équipe de développement les mêmes préférences.
  • Pascal Leclercq propose un billet qui énumère les différents paramètres des plugins "Tycho".
Java
  • Le JUG Poitou-Charentes s'invite à La Rochelle le vendredi 10 septembre pour une spéciale JUG Summer Camp. De nombreux invités sont prévus. J'y serai et vous ?

dimanche, mai 09, 2010

J'ai besoin ... d'utiliser Tycho - Partie 4 : Construction d'un bundle OSGi via p2

Dans le précédent billet nous avons montré comment construire un bundle OSGi en se basant sur une plateforme locale pour récupérer les dépendances nécessaires. Cette solution impose que toutes les versions des plateformes soient disponibles physiquement sur le disque. Ceci a comme contrainte de devoir télécharger manuellement les plateformes en fonction des versions souhaitées. Par pratique quand il y a besoin de tester sur des versions type SNAPSHOT.

Le plugin Tycho permet d'utiliser un repository p2 pour récupérer les dépendances nécessaires à la construction du bundle. A noter que les dépendances dans le monde OSGi correspondent à des bundles. Dans le cas de l'exemple que nous construisons depuis le début, le bundle org.eclipse.osgi dans sa version 3.5.2 est utilisé (3.5.2.R35x_v20100126 pour être exact puisque nous utilisons la plateforme Galileo). Tycho se chargera donc de télécharger à partir d'un repository p2 (à définir dans les paramètres du pom.xml) les dépendances requises et les stockera dans le repository local utilisé par Maven 3.

Cibler un repository p2
Le plugin target-platform-configuration est utilisé pour aller chercher les dépendances vers un repository p2. Ce plugin permet de paramétrer les informations concernant la plateforme à utiliser.

Ci-dessous, le fichier pom.xml du répertoire parent qui a été modifié par rapport au précédent billet :
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ...>
<modelVersion>4.0.0</modelVersion>
<groupId>eclipse.tycho</groupId>
<artifactId>eclipse.tycho.osgifirstexample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>eclipse.tycho.osgifirstbundle</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>galileo</id>
<layout>p2</layout>
<url>http://download.eclipse.org/releases/galileo/</url>
</repository>
</repositories>
</project>
D'une part, nous indiquons que le plugin target-platform-configuration est utilisé et qu'il doit s'appuyer sur un repository p2. D'autre part, nous donnons dans la balise repository (connue des utilisateurs de Maven) l'emplacement du repository p2 pour la version Eclipse Galileo.

Ouvrir l'invite de commandes de Windows et se placer à la racine du répertoire parent. Saisir la ligne de commande ci-dessous :
mvn3 clean package
Pendant le traitement de la construction du bundle, vous remarquerez que Maven via Tycho récupère la dépendance org.eclipse.osgi dans sa version 3.5.2.

Cibler plusieurs repository p2
Un point intéressant est d'exploiter les profiles Maven pour choisir le repository p2 qui sera utilisé pour récupérer les dépendances nécessaires.

Ci-dessous, le fichier pom.xml du répertoire parent qui a été complété.
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ...>
<modelVersion>4.0.0</modelVersion>
<groupId>eclipse.tycho</groupId>
<artifactId>eclipse.tycho.osgifirstexample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>eclipse.tycho.osgifirstbundle</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.sonatype.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>galileo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>galileo</id>
<url>http://download.eclipse.org/releases/galileo/</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>helios</id>
<repositories>
<repository>
<id>helios</id>
<url>http://download.eclipse.org/releases/helios/</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
</profiles>
</project>
Pour choisir tel ou tel repository p2 il suffit d'indiquer le profile à exploiter. Ainsi pour utiliser le repository p2 dédié à Helios, saisir la ligne de commande ci-dessous :
mvn3 clean package -Phelios
Les codes sources sont disponibles ici pour la version sans profile et ici pour la version avec profile.

A suivre ...

Dans le prochain billet nous nous attaquerons à la construction d'applications Eclipse RCP qui à la différence des bundles OSGi nécessitent des paramétrages supplémentaires liés à la plateforme d'exécution (OS, type de processeur [32 ou 64 bits], ...).

samedi, mai 08, 2010

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 présente un aperçu rapide des possibilités offertes par un repository p2.
  • Eclipse 3.6 Millestone 7 est disponible (page de téléchargement et page des nouveautés).
  • Eclipse RAP gère maintenant les effets graphiques (billet de l'annonce et démo pour tester).
  • Il faut de nouveau voter pour choisir le nom de la prochaine version d'Eclipse (3.7 ?). Cette fois, il faut s'enregistrer à partir de votre compte Eclipse pour donner votre voix.
  • Un billet qui présente comment installer facilement le delta pack RCP.

vendredi, avril 30, 2010

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
  • La construction automatique de bundles/plugins est à la mode avec Tycho. Voici un billet qui détaille les différentes solutions pour faire du build sous la plateforme Eclipse.
  • Angelo Zerr diffuse l'étape 19 de sa série sur la Conception d’un client Eclipse RCP et serveur OSGI avec Spring.
  • Toujours du côté d'Angelo, il se lance dans une nouvelle série de billet (en anglais) sur le sujet EclipseLink, OSGi, Spring et l'orienté Aspect avec Equinox Aspects. Le projet s'appelle SpringWeaver (étape 1 et étape 2).
  • Le projet Orbit a pour objectif de fournir des bibliothèques classiques (third party) sous forme de bundle OSGi. Ces bundles sont accessibles via un repository p2. La nouveauté apparue dernièrement est le regroupement logique (catégorisation) des bundles.
Java
Divers
  • Un site assez sympa qui montre, via des démonstrations, les nouveautés apportées par HTML5. Veuillez disposer d'un navigateur très récent (voir en cours de développement) pour en profiter pleinement.

J'ai besoin ... d'utiliser Tycho - Partie 3 : Construction d'un bundle OSGi

Dans le précédent billet (J'ai besoin ... d'utiliser Tycho - Partie 2 : Générer les poms Maven) nous avons montré comment générer les fichiers descripteurs Maven (pom.xml) au niveau du répertoire parent et du répertoire du bundle OSGi.

Nous nous attardons dans ce billet à montrer comment construire un projet OSGi (composé généralement d'un ensemble de bundles, dans notre cas un seul a été défini) à partir de Maven et son plugin Tycho.

Comme nous sommes dans le monde Maven, nous utiliserons les commandes classiques pour le nettoyage du projet (clean) et la construction du bundle (package ou install). Le résultat attendu est un fichier au format jar localisé dans le répertoire target du répertoire du bundle.

Ouvrir l'invite de commandes de Windows et se placer à la racine du répertoire parent. Saisir la ligne de commande ci-dessous :
mvn3 clean package
Le résultat de cette ligne de commande est sans appel, une erreur est lancée (voir capture ci-dessous).

Il est question d'une contrainte qui n'est pas respectée. En fait, le package org.osgi.framework n'est pas disponible pour la construction du bundle. Cette dépendance n'est pas respectée.

Pour résoudre ce problème, il faut préciser au plugin Tycho où se trouve la plateforme cible (target platform). La plateforme cible est en quelque sorte un entrepôt Maven. Cette plateforme cible contient tous les plugins nécessaires au fonctionnement d'une application OSGi sous Equinox. Dans notre cas, il faut pouvoir fournir un ou plusieurs plugins exposant le package org.osgi.framework.

Ainsi, pour indiquer la plateforme cible, saisir la ligne de commande ci-dessous
mvn3 clean package -Dtycho.targetPlatform=C:\eclipse3.5.2
Où c:\eclipse3.5.2 est le répertoire contenant l'installation d'Eclipse 3.5.2.

Après quelques secondes de compilation (un peu plus s'il y a besoin de télécharger des dépendances pour Tycho et Maven 3), un fichier jar (eclipse.tycho.osgifirstbundle-1.0.0-SNAPSHOT.jar) est disponible dans le répertoire target du bundle eclipse.tycho.osgifirstbundle. Si vous utilisez la commande install en place de package, le jar sera en plus déployé dans l'entrepôt de Maven 3.

A suivre ...
Veuillez noter que pour construire ce bundle il est nécessaire de disposer d'une plateforme cible en local sur sa machine. Si vous souhaitez vérifier votre construction sur différentes plateformes (différentes versions OSGi par exemple), il sera nécessaire de disposer autant de plateformes cibles que de versions à construire.

Nous montrerons ainsi dans le prochain billet comment utiliser un entrepôt p2 pour construire le bundle afin d'éviter de fournir explicitement les plugins de dépendance.