Maven + Tycho + SureFire pour builder Eclipse

Eclipse + Maven/Tycho + Surefire
Eclipse + Maven/Tycho + Surefire

 

La platform eclipse est « buildé » en utilisant Maven/Tycho. Ainsi si vous souhaitez buildé seulement le projet platform.ui, il faudra utiliser la commande :

mvn clean install -Pbuild-individual-bundles

L’argument -Pbuild-individual-bundles indique que vous souhaitez seulement construire le projet platform.ui autrement tous les projets seront construit. C’est un profil maven qui a été défini dans les pom.xml parent (eclipse.platform.parent/pom.xml). Vous pouvez aussi lui indiquer de construire que pour une architecture donné avec l’argument -Dnative= »TargetPlatform »

De plus si vous êtes sur mac et que vous souhaitez lancer les tests lors de votre build, il vous faut modifier le pom.xml qui est à la racine de votre repertoire eclipse.platform.ui/tests afin de préciser à surefire de lancer l’application sur le premier thread graphique.


<configuration>
<argLine>-XstartOnFirstThread -Xmx2048m</argLine>
...
<configuration>

Publicités
Maven + Tycho + SureFire pour builder Eclipse

Le démarrage d’Eclipse et le fichier eclipse.ini

eclipse.ini
eclipse.ini

Le démarrage d’Eclipse est contrôlé par le fichier eclipse.ini qui se trouve :  $ECLIPSE_HOME/eclipse.ini , si cette variable d’environnement n’existe pas il va utiliser celui qui se trouve dans votre répertoire d’installation Eclipse.

Ce fichier permet en particulier de donner des arguments à notre JVM e.g la taille du « heap » avec -Xmx1024m si nous rencontrons des problèmes de mémoires.

Cependant il y a quelques jours je ne comprenais pas pourquoi mon eclipse.ini n’était pas pris en compte, il ressemblait à ça :

-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.100.v20110502
-product org.eclipse.epp.package.jee.product
--launcher.defaultAction openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m

Or après avoir relu le wiki[1] il y a trois points auxquels il faut faire attention.

  1. Chaque option et chaque argument pour une option doivent être sur leur propre ligne (C’était le problème de mon eclipse.ini)
  2. Toutes les lignes après -vmargs sont passés comme arguments à la jvm, ainsi toutes les options et arguments d’Eclipse doivent être défini avant
  3. L’utilisation de -vmargs depuis un prompt remplace tous arguments du fichier eclipse.ini sauf si –launcher.appendVmargs est spécifié soit dans le .ini soit dans la commande prompt

Ainsi pour que mon fichier eclipse.ini soit valide il aurait du ressembler à ça :


-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m

HTH

[1] : https://wiki.eclipse.org/Eclipse.ini

Le démarrage d’Eclipse et le fichier eclipse.ini

SWT Tools : SLeak et SWT Spy

Lorsque que nous écrivons des interfaces graphiques avec SWT, il faut explicitement « disposer » les composants créés avec l’appel de la méthode dispose(). Or il se peut que nous oublions de libérer certains composants. Néanmoins il existe un outil qui peut nous permettre de vérifier que nous « disposons » correctement tous nos composants Cet outil est SLeak il est inclus dans les SWT Development Tools. Et nous pouvons l’utiliser pour nos applications RCP.  Pour cela la démarche à suivre est la suivante :

  1. Le télécharger, les différentes adresses  des P2 repositories  suivant les versions d’Eclipse sont indiqués à l’adresse suivante : https://www.eclipse.org/swt/updatesite.php
  2. Inclure le plug-in  dans notre launch configuration : org.eclipse.swt.tools
  3. Ajouter les options :
    org.eclipse.ui/debug=true
    org.eclipse.ui/trace/graphics=true

    Le plus simple pour cela reste à les sélectionner dans la tab tracing de notre launch configuration

    Sleak Launch configuration Tracing tab
    Sleak Launch configuration Tracing tab
  4. Ajouter la vue SLeak à notre perspective, par exemple :

    ​public class MainPerspective implements IPerspectiveFactory{
    public void createInitialLayout(final IPageLayout layout){
    IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.RIGHT, 0.7f,layout.getEditorArea());
    IFolderLayout bottomRight = layout.createFolder("bottomRight", IPageLayout.BOTTOM, 0.5f, "topRight");
    topRight.addView("org.eclipse.swt.tools.views.SleakView");
    }}
  5. Nous pouvons ensuite lancer notre application et y trouver la vue SLeak. En cliquant sur snap puis diff nous pouvons voir les composants qui n’ont pas été disposé. La vue SWT Spy nous donne des informations SWT sur le composite en dessous de notre souris pour l’activer il faut ajouter la vue org.eclipse.swt.tools.views.SpyView.

    Les vues SLeak et SWT SPY
    Les vues SLeak et SWT SPY
  6. Il nous reste plus qu’à disposer les ressources que nous avons créé correctement.

PS : La source des SWT Tools est disponible ici : http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/bundles/org.eclipse.swt.tools/

SWT Tools : SLeak et SWT Spy