lundi, décembre 22, 2008

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 les avantages et inconvénients de l'agencement d'une perspective réalisé de manière programmatique ou déclarative.
  • Eclipse 3.5 M4 est sortie (liens pour le téléchargement et pour les nouveautés apportées).

dimanche, décembre 14, 2008

Résult du sondage : concevoir des plug-ins sous Eclipse, c'est ....

Le sondage concernant le sujet "concevoir des plug-ins sous Eclipse, c'est ...." est maintenant terminé. Voici le résultat :
  • Très simple, APIs structurées et outils adaptés -> 0 %
  • Pour les amoureux du code, APIs soignées mais ils manquent des outils -> 13 %
  • Click and run, APIs difficiles heureusement qu'il y a les outils pour coder -> 21 %
  • La jungle, on se perd dans les APIs et il faut tout faire à la main -> 65 %
Je m'attendais à ce que la proposition "La jungle, on se perd dans les APIs et il faut tout faire à la main" arrive en tête.

Voici mon avis (très rapide) sur les résultats :

Aspect outillage. Même si la plateforme Eclipse fournit des tonnes de plugins, j'ai quand même l'impression que parfois il manque l'essentiel ou bien que les projets ne vont pas jusqu'au bout des choses. Je prendrai le projet Visual Editor pour exemple. S'il y a bien un projet qui devrait évoluer il s'agit bien de celui-ci. Les interfaces graphiques sont généralement coûteuses à réaliser et pour rendre le développement d'applications basé sur Eclipse plus accessible (dans le cadre d'un prototypage par exemple), il faudrait posséder un GUI-Builder digne de ce que propose Visual Studio .NET ou Matisse dans Netbeans.

Aspect API. Concernant les APIs, il y en a beaucoup et il est assez difficile de s'y retrouver. En fait, il y a de choses assez mystérieuses qui demandent un investissement important pour en comprendre le fonctionnement (par exemple les activities). A mon avis, il faudrait plus de ressources sur la plateforme (tutoriaux ou des exemples).

Extensions et Points d'extension avec la plateforme Eclipse

Un support de cours concernant les principes d'extensions et de points d'extensions est disponible sur le site de Developpez.com. Ce mécanisme propre à la plateforme Eclipse permet la connexion entre différents plugins.

Au menu de ce cours, vous découvrirez les aspects suivants :
  • Définition du mécanisme d'extensions
  • Création d'extensions (View et Preference) via l'outil PDE
  • Mini cours sur le Schema XML
  • Description détaillée du mécanisme de points d'extensions
  • Création de nouveaux points d'extensions (exemple d'une calculatrice où les opérateurs sont des plugins)
  • Interrogation des extensions et points d'extensions via le registre d'extensions
  • Création dynamique d'extensions et de points d'extensions via l'API Eclipse
Le lien du support de cours et les exemples peuvent être trouvés ici.

jeudi, décembre 11, 2008

Nouveau travail ... retour à la case Recherche

Depuis quelques temps les billets se font rares. La raison est que je viens de changer de travail. Comme indiqué dans le titre, je reviens vers le monde du public et de la recherche. Après un concours de la fonction publique, je retourne dans le laboratoire du LISI où j'ai effectué ma thèse. J'ai commencé lundi dernier comme ingénieur de recherche.

Je profite également de ce billet pour remercier toutes les personnes qui ont travaillées avec moi pendant ces deux dernières années riches en expérience. Au cours des deux ans, j'ai eu deux missions de très bonnes qualités avec des problématiques différentes me permettant de monter rapidement en compétences.

Un grand merci à la société SERLI, mon ancien employeur, et à tout son personnel pour son professionnalisme. Un remerciement spécial pour Jérome, mon ancien commercial dont la culture technique est impressionnante, pour avoir cru en moi il y a deux ans.

Tout ça pour dire qu'à partir de maintenant je suis fonctionnaire ... et que ce blog va continuer ...

PS : un grand merci à l'agence tout risque. Ses membres se reconnaîtront.

mercredi, décembre 10, 2008

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
  • Jetty pourrait bientôt être un projet de la fondation Eclipse (source).
  • Un article qui explique comment débugguer du code distant à partir d'Eclipse.
Java
  • JavaFX 1.0 est sorti. Rendez-vous sur le site officiel pour profiter des différentes démonstrations. Pour l'occasion, je vous propose un lien pour jouer à PacMan.
  • Un article qui présente l'utilisation de la bibliothèque XStream.
Divers
  • La conférence Devoxx a commencé depuis lundi. Vous pouvez suivre l'événement via le blog de Developpez.com. Préparez-vous également, si vous n'avez pas eu la chance de vous y rendre, à suivre les événements via la plateforme vidéo Parleys.
  • Êtes-vous intéressé par un téléphone Google G1. Une version pour développeur Android est disponible. Il semblerait que des fonctionnalités soient libérées (pas de SIM-lock et flashageage à volonté du firmware).
  • Un article qui présente l'injection de dépendance avec GUICE 2.0.

dimanche, novembre 16, 2008

J'ai besoin de ... sauvegarder et charger la description XML d'une perspective

Dans la série des J'ai besoin de ... je m'intéresse aujourd'hui à montrer au travers d'un prototype dit "proof of concep" comment sauvegarder et charger la description XML d'une perspective dans le cadre d'une application Eclipse. Tout l'intérêt de manipuler la description d'une perspective est de pouvoir la stocker autre part que dans le répertoire d'exécution d'une application Eclipse.

Lorsqu'un utilisateur modifie l'agencement des vues et des éditeurs d'une perspective, les modifications sont sauvegardées à l'arrêt de l'application Eclipse dans le répertoire d'exécution. De même, un utilisateur peut créer une nouvelle perspective basée sur une perspective existante en sauvegardant sa description. Au chargement d'une application Eclipse, les descriptions des perspectives sauvegardées (celles modifiées et les nouvelles) sont chargées. Malheureusement, ce chargement ne s'effectue qu'au démarrage de l'application Eclipse.

Le prototype présenté dans ce billet offre la possibilité de charger à tout moment une description et de visualiser le résultat dans le Workbench. Si la description est modifiée (pour l'instant nous modifions un fichier XML d'une perspective) et le chargement demandé, la perspective dans l'application Eclipse sera mise à jour. En allant plus loin dans l'utilité de la mécanique portée par ce prototype, il est de ce fait envisageable de sauvegarder à distance pour un compte utilisateur (base de données, LDAP, ...) ses perspectives. A tout moment, la description des perspectives est modifiable et un mécanisme de mise à jour peut être utilisé pour prendre en compte les modifications de manière transparente. Mais ce dernier point fait parti des ouvertures du prototype, attachons-nous maintenant à décrire sa mécanique.

Mais avant de commencer, je tiens à préciser que le prototype utilise des APIs internes. La version de ce prototype fonctionne pour Eclipse 3.4 Ganymede et je ne garantis en rien son fonctionnement et sa mécanique pour les versions antérieures et futures. Ce prototype entre dans le cadre du cours sur le Workbench d'Eclipse que je suis en train de préparer au moment de l'écriture de ce billet.

Un exemple de description de perspective est donné ci-dessous. Cette description est stockée dans le fichier perspectivePerso.xml.
<?xml version="1.0" encoding="UTF-8"?>
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
<descriptor descriptor="eclipse.workbench.SaveLoadPerspectiveExample.perspective1" id="UnTest" label="UnTest" />
<window height="742" width="1024" x="0" y="22" />
<alwaysOnActionSet id="eclipse.workbench.SaveLoadPerspectiveExample.actionSet" />
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings" />
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles" />
<view id="org.eclipse.ui.views.ResourceNavigator" />
<fastViewBars />
<viewLayoutRec id="org.eclipse.ui.views.ResourceNavigator" showTitle="true" standalone="true" />
<layout>
<mainWindow>
<info folder="true" part="org.eclipse.ui.internal.ViewStack@c8b6ee">
<folder activePageID="org.eclipse.ui.views.ResourceNavigator" appearance="3" expanded="2">
<page content="org.eclipse.ui.views.ResourceNavigator" label="Navigator" />
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0" />
</presentation>
</folder>
</info>
<info folder="true" part="stickyFolderRight" ratio="0.75" ratioLeft="762" ratioRight="254" relationship="2" relative="org.eclipse.ui.internal.ViewStack@c8b6ee">
<folder appearance="2" expanded="2">
<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound" />
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound" />
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound" />
</folder>
</info>
<info part="org.eclipse.ui.editorss" ratio="0.3149062" ratioLeft="500" ratioRight="694" relationship="2" relative="org.eclipse.ui.internal.ViewStack@c8b6ee" />
</mainWindow>
</layout>
</perspective>


Cet exemple décrit une nouvelle perspective qui a été créée (via l'action Save Perspective As ... du menu Window) appelée UnTest (attribut label) à partir d'une perspective (attribut descriptor) définie via un point d'extension (identifiant de la perspective eclipse.workbench.SaveLoadPerspectiveExample.perspective1). Une fois la perspective sauvegardée, la plateforme Eclipse place la description de la nouvelle perspective dans le fichier org.eclipse.ui.workbench.prefs du répertoire .metadata/.plugins/org.eclipse.core.runtime/.settings. Pour ma part, j'ai récupérée cette description et je l'ai placée dans le fichier perspectivePerso.xml disponible à la racine du prototype. Dans la suite, ce fichier sera chargé et son contenu intégré dans l'application Eclipse. Nous effectuerons des modifications directement sur le contenu de ce fichier et le prototype l'intégrera dans l'application Eclipse.

Vous trouverez ci-dessous le code de l'action Load Perspective de la méthode void run(IAction action) (voir classe LoadPerspectiveAction).
// Récupération de la description de la perspective.
String xmlString = this.extractPerspectiveDescriptionFromFile("perspectivePerso.xml");
Reader reader = null;

if (xmlString != null && xmlString.length() != 0) {
reader = new StringReader(xmlString.toString());
} else {
return;
}

// Transforme la description de String à XMLMemento
XMLMemento memento = null;
try {
memento = XMLMemento.createReadRoot(reader);
} catch (WorkbenchException e) {
e.printStackTrace();
return;
}

// Création d'un descripteur de perspective vide.
PerspectiveDescriptor newPersp = new PerspectiveDescriptor(null, null, null);
// From a perspective descriptor, restore the state of the perspective.
newPersp.restoreState(memento);

// Récupération de l'implémentation du registre d'extension.
PerspectiveRegistry perspectiveRegistry = (PerspectiveRegistry) PlatformUI.getWorkbench().getPerspectiveRegistry();

String id = newPersp.getId();

// Récupère s'il existe déjà une perspective ayant le même id.
IPerspectiveDescriptor oldPersp = perspectiveRegistry.findPerspectiveWithId(id);

if (oldPersp != null) {
System.out.println("Remove old perspective in order to replace it.");
// Si existe, on la supprime
perspectiveRegistry.deletePerspective(oldPersp);
}

// Récupère la référence du PreferenceStore associé à org.eclipse.ui.workbench.
// Ceci permettra de stocker dans le fichier org.eclipse.ui.workbench.prefs
IPreferenceStore workbenchStore = getWorkbenchPreferenceStore();

// Stock la nouvelle description de la perspective.
workbenchStore.putValue(newPersp.getLabel() + PERSP, xmlString.toString());
// Stock le nom de la perspective.
workbenchStore.putValue("perspectives", newPersp.getLabel());

// Modifie la perspective de la page active.
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().setPerspective(newPersp);

// Réinitialise la perspective de la page active.
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().resetPerspective();
La mécanique est très simple. Ci-dessous les principaux points :
  • La description de la perspective est récupérée du fichier perspectivePerso.xml qui est transformée en XMLMemento (API pour les manipulations de contenus XML de la plateforme Eclipse).
  • Un descripteur de perspective vide (IPerspectiveDescriptor) est créé dont le contenu est restauré au travers de l'XMLMemento.
  • Il est ensite vérifié qu'il n'existe pas de perspective ayant le même identifiant. Dans le cas contraire la perspective est retirée du registre d'extension.
  • La description de la perspective chargée est stockée dans les préférences org.eclipse.ui.workbench de manière à ré-utiliser le mécanisme de chargement de perspectives de la plateforme Eclipse.
  • Enfin pour valider les modifications, la perspective est affectée à la page active et une ré-initialisation est provoquée pour forcer la mise à jour.
Pour vérifier le fonctionnement, téléchargez le code source du prototype (projet SaveLoadPerspectiveExample), démarrez une application Eclipse en incluant le plugin du projet et réalisez les actions suivantes :
  • Sélectionner l'action Load Perspective Action disponible dans la barre de menu et dans la barre d'outils. La perspective UnTest apparaîtra.
  • Modifier le contenu du fichier perspectivePerso.xml.

jeudi, novembre 13, 2008

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
  • Dans la série des comparaisons des technologies Eclipse RCP et Netbeans RCP, voici un autre billet.
  • Un article qui traite du sujet de JDT (Java Development Tools). Il fait suite à l'article sur le Workbench annoncé dans un précédent billet.
Java
  • Une nouvelle API pour les dates en Java est en cours de préparation. La JSR 310 est la requête de spécification qui décrit cette nouvelle API. En espérant que cette fois cela soit la bonne.

mardi, novembre 04, 2008

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 M3 est sortie. Vous trouverez une explication détaillée en français sur le site de Benjamin. La page de téléchargement et la liste des nouveautés se trouvent ici et ici.
  • Un tutoriel qui présente une introduction à OSGi avec Equinox.

mardi, octobre 28, 2008

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 traite du sujet du Workbench Eclipse. Il s'agit d'une première partie où sont expliquées les différences entre Project et Workspace et les personnalisations des menus, des barres d'outils et des raccourcis claviers.
  • Un site léger qui répertorie des plugins d'Eclipse.
  • SWT Extension est une API qui permet de fournir les fonctionnalités de base des systèmes Win32 sans avoir à toucher à JNI (décoration de fenêtres, accès à la base de registre, manipulation des Hooks, ...).
Divers
  • Le code source d'Android est maintenant disponible. Un gros bébé qui pèse quand même 2.1 GO.

vendredi, octobre 24, 2008

Un sondage sur la plateforme Eclipse

Vous trouverez sur le bandeau gauche de ce blog un sondage permettant de vous exprimer sur la difficulté de conception de plug-ins sous Eclipse.

Voici les choix proposés :
  • Très simple, APIs structurées et outils adaptés
  • Pour les amoureux du code, APIs soignées mais ils manquent des outils
  • Click and run, APIs difficiles heureusement qu'il y a les outils pour coder
  • La jungle, on se perd dans les APIs et il faut tout faire à la main
Si vous souhaitez laisser des commentaires profitez de ce billet.

lundi, octobre 20, 2008

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.

Java
Divers
  • Google App supportera le langage Java. Une très bonne chose. A voir maintenant comment cela va être réalisé.

dimanche, octobre 19, 2008

J'ai besoin de ... créer de nouvelles extensions dynamiquement

Dans la série des J'ai besoin de ..., je m'intéresse ici à toutes les solutions officielles et officieuses apportées par la plateforme Eclipse pour créer de nouvelles extensions de manière dynamique. En d'autres termes, il s'agit de construire des extensions de façon programmative et non déclarative comme cela est obtenue avec l'outil PDE lors de la construction du fichier plugin.xml. Toutefois, les APIs de la plateforme Eclipse manquent de finition et malheureusement on se retrouve à devoir manipuler des implémentations internes pour réussir à créer programmatiquement les extensions. Dans les exemples qui vont suivre, nous allons nous intéresser à créer dynamiquement des vues via le point d'extension org.eclipse.ui.views.

La première solution repose essentiellement sur l'utilisation d'API Internes via la classe ExtensionRegistry et sa méthode addExtension. Je l'accorde, ce n'est pas la meilleure des solutions puisque l'implémentation interne peut changer à tout moment, mais elle mérite d'être présentée pour comprendre les rouages du fonctionnement de l'ajout d'extension dans le registre d'extension.

Ci-dessous est présenté un exemple permettant de créer une extension de type View.
Bundle bundle = Activator.getDefault().getBundle();
IContributor contributor = ContributorFactoryOSGi.createContributor(bundle);

ConfigurationElementAttribute[] conf = new ConfigurationElementAttribute[6];
conf[0] = new ConfigurationElementAttribute("id", "genericViewId" +sequenceId);
conf[1] = new ConfigurationElementAttribute("name", "GenericView" + sequenceId);
conf[2] = new ConfigurationElementAttribute("class", "eclipse.extension.dynamicextensionexamples.views.GenericView");
conf[3] = new ConfigurationElementAttribute("category", "eclipse.extension.DynamicExtensionExamples");
conf[4] = new ConfigurationElementAttribute("restorable", "true");
conf[5] = new ConfigurationElementAttribute("allowMultiple", "true");

String extensionPointId = "org.eclipse.ui.views";
ConfigurationElementDescription configurationElements = newConfigurationElementDescription("view", conf, null, null);

Object token = reg.getTemporaryUserToken();

ExtensionRegistry reg = (ExtensionRegistry)Platform.getExtensionRegistry();
reg.addExtension("", contributor, false, "", extensionPointId, configurationElements, token);

sequenceId++;
La méthode addExtension(String id, IContributor contributor, boolean persist, String label, String extensionId, ConfigurationElementDescription configuration, Object token) requiert plusieurs paramètres dont la configuration utilisée est la suivante : l'identifiant (id) et le nom de l'extension (label) sont généralement vide (attention ne pas mettre null), contributor désigne le plug-in en charge de la création de l'extension, persist précise si les informations seront stockées à l'arrêt d'Eclipse et rechargées au démarrage, extensionId indique l'identifiant du point d'extension, configuration désigne les informations de l'extension généralement saisies à partir de PDE, finalement token est un clé utilisée pour contrôler les permissions. La séquence sequenceId permet d'obtenir un identifiant différent à chaque création.

Une évolution à cette première solution consiste à ne pas récupérer le Token via la méthode getTemporaryUserToken(). Un échappatoire est présenté dans cet article et dans ce billet. L'idée est de placer à null la valeur du paramètre token de la méthode addExtension. Il faut cependant ajouter ce paramètre système (-Declipse.registry.nulltoken=true) au démarrage de l'application Eclipse. Une évolution du code précédent est donné ci-dessous :
...
String extensionPointId = "org.eclipse.ui.views";
ConfigurationElementDescription configurationElements = newConfigurationElementDescription("view", conf, null, null);

ExtensionRegistry reg = (ExtensionRegistry)Platform.getExtensionRegistry();
reg.addExtension("",contributor,false,"",extensionPointId,configurationElements, null);
sequenceId++;
Une seconde solution consiste à se refuser d'utiliser des APIs internes et d'utiliser les méthodes fournies par IExtensionRegistry. Il s'agit en fait de la solution qui doit être normalement retenue.
Bundle bundle = Activator.getDefault().getBundle();
IContributor contributor = ContributorFactoryOSGi.createContributor(bundle);

String extension = "<plugin><extension point=\"org.eclipse.ui.views\">" +
"<view category=\"eclipse.extension.DynamicExtensionExamples\"" +
"class=\"eclipse.extension.dynamicextensionexamples.views.GenericView\"" +
"icon=\"icons/sample.gif\"" +
"id=\"genericViewId" + sequenceId + "\"" +
"name=\"GenericView" + sequenceId + "\">" +
"</view></extension></plugin>";

InputStream is = new ByteArrayInputStream(extension.getBytes());

IExtensionRegistry registry = RegistryFactory.getRegistry( );
registry.addContribution(is, contributor, false, null, null, null);
sequenceId++;
Aucune implémentation interne n'a été utilisée dans cette seconde solution. La méthode addContribution( InputStream is, IContributor contributor, boolean persist, String name, ResourceBundle translationBundle, Object token) requiert plusieurs paramètres dont la configuration utilisée est la suivante : is est le flux qui contient la description de l'extension; contributor, persist et token même utilisation que pour la méthode addExtension, translationBundle désigne le resource bundle pour d'éventuels besoins de traduction. A noter également que le paramètre token est null et pour rappel il faudra ajouter le paramètre système (-Declipse.registry.nulltoken=true) au démarrage de l'application Eclipse.

Il est possible par ailleurs de construire dynamiquement des points d'extensions à partir de cette seconde solution.

Les sources de ces solutions sont disponibles ici.

Nouvelle série de billets

Une nouvelle série de billets fait son apparition intitulée J'ai besoin de ... Cette série a pour but de fournir des exemples sur des problèmes de base non traités sur la toile Eclipse.

Il s'agit avant tout de décrire plus précisément certains exemples disponibles dans mes supports de cours de la plateforme Eclipse. Le format transparent des supports de cours n'étant pas propice à la discutions, j'utiliserai le format blog pour étoffer les exemples et répondre à d'éventuelles questions.

samedi, octobre 11, 2008

Supports de cours en préparation ...

Voilà pas mal de temps que je n'ai pas écrit un billet sur les supports de cours en préparation, voici donc un bilan de l'état actuel de mes rédactions.
  • Le support de cours sur les extensions et les points d'extensions est terminé, il est en phase de relecture. Je suis assez content du résultat puisque le cours traite d'aspects importants de la plateforme Eclipse qui sont malheureusement peu abordés sur la toile ou dans des livres.
  • Un nouveau support de cours concernant le Workbench de la plateforme Eclipse débute. Les concepts abordés : l'architecture du Workbench (Part, Page, Site, WorkbenchWindow); les Perspectives (création via des extensions et création dynamique); les Views (StickyViews, registre de vues, communication entre vues); les Editors; les actions et la personnalisation de l'apparence d'une application Eclipse (Activity, hacking du WorkbenchWindow).
  • Comme j'avais débuté une nouvelle série sur la plateforme Flex il y a quelques temps, j'essaye de terminer une introduction sur le sujet. Le reste de cette série prendra un peu plus de temps.

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
  • J'étais présent à la présentation de Maven 2 au JUG Tours le 8 octobre 2008 dernier. Une très bonne présentation qui m'a permis d'apprendre entre autre qu'un livre complet et gratuit sur Maven 2 était disponible.
  • Vous souhaitez en savoir plus sur les Generics de Java et aller plus loin que la simple utilisation des collections, je vous recommande ce site (merci à Boris pour l'information).
Divers
  • Friand sur les aspects liés à l'interaction homme-machine, j'ai découvert un site (www.red-issue.com) assez surprenant sur la manière de naviguer.

mardi, octobre 07, 2008

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 Wiki qui traite des améliorations du registre d'extension. Dans le prochain cours que je vais mettre prochainement à disposition, je m'intéresserai notamment à la manipulation du registre d'extension. Je mettrai en lumière certaines limites de la plateforme Eclipse concernant le registre d'extension.
  • Un article qui couvre la création de templates via Eclipse Ganymede.
Java
  • Un recueil d'articles sur le sujet de GWT (Google Web Toolkit).

vendredi, septembre 26, 2008

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 billet qui présente une réflexion sur l'utilisation des composants viewers de JFace dans Swing.
  • Eclipse Ganymede 3.4.1 est sorti, voici la page de téléchargement.
  • Un blog très intéressant qui se focalise sur GEF avec pleins d'exemples.

vendredi, septembre 19, 2008

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
  • Excelsior JET est un outil qui permet de compiler en code natif des programmes Java. N'étant pas friand de ce genre de manipulation puisque je doute du gain en performance gagnée lors de la transformation, il est intéressant de signaler que la dernière version Excelsior JET 6.5 Beta 2 vient de compiler entièrement l'environnement Eclipse 3.4 Ganymede. Les avantages annoncés sont les accès aux archives ZIP/JAR plus rapides et la durée réduite vers les appels aux méthodes natives JNI.
  • Eclipse 3.5 M2 est sorti, la description des légères modifications est donnée ici.
  • Un troisième article (billet précédent pour les deux premiers articles) concernant le développement d'applications de bureau, web et mobiles au travers de la version Eclipse Ganymede est disponible. Il traite du développement des applications mobiles avec eRCP.
Divers
  • Une comparaison assez complète des différents outils d'intégration continue du marché (nombreux outils et critères importants).

jeudi, septembre 11, 2008

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
  • Deux articles concernant le développement d'applications de bureau, web et mobiles au travers de la version Eclipse Ganymede (partie 1 et partie 2).
Java
  • GWT 1.5 est sorti depuis le ... 29 août.

mercredi, août 27, 2008

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
  • Wickedshell est un projet OpenSource qui fournit dans une vue un accès direct à l'invite de commande du système.
Divers
  • De la sortie de Firefox 3.1 il faudra retenir le moteur JIT SpiderMonkey permettant de traiter plus rapidement du JavaScript. Les applications Google vont prendre de la vitesse (benchmarks et démo). Si vous installez la version Firefox 3.1a2pre, n'oubliez pas d'activer le moteur JIT via l'option javascript.options.jit.content=true à partir de la page config (saisir about:config dans la barre d'adresse pour atteindre la page).
  • Une excellente vidéo qui présente de manière ironique les huit erreurs à éviter lors d'une présentation powerpoint (trop de texte, trop de fautes d'orthographes, trop de puces, trop de couleurs, discours trop long qui dure, transparent trop chargé, trop d'animation et police de mauvais gout).

samedi, août 16, 2008

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 (vacances obliges, les billets se font encore rares ...)

Eclipse
  • La version Eclipse 3.5M1 Galileo est sortie. Vous trouverez sur cette page les nouveautés introduites par cette nouvelle version. Pour la télécharger, veuillez vous rendre sur cette page.
Divers
  • Protobuf (Protocol Buffers) est un format de données qui permet de transmettre des informations de manière efficace (réduction de taille, rapidité, ...). Il faut voir cette API comme une alternative au XML utilisé pour les services Web. Cette API existe pour les langages C++ et Java. A noter que Google utilise massivement cette technologie pour l'ensemble de ses services. Sur le blog de 5 Fresh Minutes IT, vous trouverez une mini présentation et un ensemble de liens sur des retours d'expérience concernant cette API.

vendredi, août 08, 2008

Supports de cours en préparation ...

Concernant les supports de cours en préparation, voici un bilan de l'état actuel de mes rédactions
  • le support de cours sur les extensions et les points d'extension sous Eclipse avance doucement. J'espère en tout cas combler le vide concernant ce sujet très intéressant en terme d'architecture.
  • les supports de cours sur la plateforme Flex sont en attente. Il y a beaucoup trop de flous et j'ai besoin d'un peu plus de temps pour jouer avec avant de raconter n'importe quoi.
En fait, je profite de ce billet pour me motiver un peu plus. Arrggg, c'est difficile de se motiver après une longue journée de boulot.

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 (vacances obliges, les billets se font rares ...)

Eclipse
  • Un exemple qui montre comment modifier les icônes des noeuds d'un TreeViewer
  • SWTGraph est une librairie pour faire des graphes rapidement directement avec SWT
  • La nouvelle version d'Eclipse 3.5 s'appellera Galileo. Les discussions autour du choix du nom.
Java
  • JavaFX est disponible en version "preview". L'environnement de développement Netbeans 6.1 et le SDK de JavaFX sont disponible en téléchargement.
Autre
  • Ed Burnet prépare un livre sur Android (vous savez l'OS Google pour mobile qui se fait attendre)

vendredi, juillet 18, 2008

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 cette semaine.

Eclipse
  • Ce billet n'est pas nouveau mais il m'a particulièrement intéressé. Il s'agit d'un retour d'utilisation de Guice avec Eclipse RCP. Pour info, Guice est un conteneur très léger pour faire de l'injection de dépendance. Le billet présente la mise en place d'une architecture MVC par vue.
  • Le projet Riena (blog) est une surcouche pour les applications Eclipse RCP permettant d'ajouter un look "entreprise" aux applications. J'entends pas apparence "entreprise" des applications qui proposent des composants formulaires et où la navigation suit une logique métier. Ce projet a donc pour objectif de faciliter la mise en oeuvre de ce type d'application.

mercredi, juillet 16, 2008

Sauvegarder la configuration d'exécution sous Eclipse ...

Quand vous utilisez un projet sous Eclipse et que vous souhaitez exécuter ce projet, vous passez généralement par une configuration d'exécution.

L'outil proposé par Eclipse vous facilite l'édition de nombreux paramètres. Prenons le cas d'une application Eclipse, les options généralement modifiées sont les paramètres d'exécution, les plug-ins du framework Eclipse employés et pleins d'autres choses ...

Si, comme moi, vous avez besoin de garder une trace de ces modifications (par exemple dans le cas d'une importation d'un projet) vous avez moyen de sauvegarder cette configuration d'exécution dans un fichier.

Pour cela, ouvrez l'outil d'édition des configurations d'exécution via le menu (Run -> Run Configurations... ) ou via le bouton de la barre d'outil d'Eclipse montré sur la capture d'écran ci-dessous.

Choisissez l'onglet Common puis sélectionnez l'option Shared file. Précisez un nom en sélectionnant comme répertoire celui du projet auquel la configuration appartient.

Ainsi, dés que vous importerez ce projet dans un autre workspace, la configuration d'exécution sera déjà prête. Elle sera automatiquement affichée dans la liste des configurations. Il ne vous restera qu'à exécuter.

J'ai pris comme exemple la configuration d'exécution d'une application Eclipse, mais ça fonctionne également pour tout projet qui utilise une configuration d'exécution (Java, JUnit, ...).

jeudi, juillet 10, 2008

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 cette semaine.

Eclipse
  • Le projet NatTable 1.5 fournit un composant graphique de type Table. A utiliser si vous sentez que le composant SWT ne fait pas l'affaire (annonce sur Eclipse Zone).
  • Le projet RCP Toolbox fournit des composants supplémentaires pour vos applications Eclipse. Malheureusement la release 1.0 est payante. Il reste quand même une version 0.4 à disposition en OpenSource sur Sourceforge (annonce sur Eclipse Zone).
  • Vous souhaitez utiliser Visual Editor sur Ganymede et vous êtes désespéré que ce projet ne soit pas compatible (et depuis la 3.3 !!!), voici un article qui explique comment résoudre ce problème. A quand un GUI Builder pour SWT aussi bon que Matisse ou Visual Studio. D'un autre côté, je ne suis pas contre d'utiliser un autre IDE, c'est simplement que pour faire du SWT sans Eclipse, les outils sont rares.
  • Annoncé la dernière fois, c'est bon, EclipseLink est estampillé 1.0 ; l'annonce sur le blog de l'équipe et le site du projet.
Divers
  • En fouillant sur DZone, j'ai remarqué que le site proposait en téléchargement libre (il faut s'inscrire pour ouvrir un compte), un ensemble d'articles très bien réalisé. Il y en a pour tous les sujets (IntelliJ IDEA, Design Patterns, jQuery Selectors, Spring Configuration, ...). Par ailleurs, il y a des annonces sur les prochains articles (GlassFish Application Server le 14 juillet, ...).

lundi, juin 30, 2008

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 cette semaine.

Eclipse
  • Le projet EclipseLink, né du passage en Open Source de Toplink Oracle, a perdu son "œuf ". Il n'est donc plus dans l'incubateur. La version 1.0 doit sortir le 9 juillet 2008. Le lien du blog de l'équipe du projet et un article introductif.
  • Un article qui décrit la manière d'intégrer le serveur d'application Glassfish dans Eclipse 3.4 Ganymede.
  • Une nouveauté d'Eclipse 3.4 Ganymede est l'officialisation du plugin Subversive comme client SVN. Il existe également le plugin Subclipse comme autre client SVN. Chaque utilisateur a ses habitudes et voici des réactions : Kai's blog et Developpez.com : vous êtes donc plus Subversive ou Subclipse ...

jeudi, juin 26, 2008

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 cette semaine.

Eclipse
  • Eclipse 3.4 est disponible. Il s'appelle Ganymede et vous pouvez le télécharger sur le site de la fondation Eclipse. Une description des différents projets de cette nouvelle version peut être trouvé sur le site de Developpez.com ou par un article proposé par
PS : il faut vraiment que je prenne le temps de sortir plus de news de manière plus fréquente ...

vendredi, juin 13, 2008

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 cette semaine.

Eclipse
  • Le site de Vogella.de propose depuis quelques temps plusieurs articles concernant la plateforme Eclipse. De nombreuses mises à jour ont été réalisées afin de prendre en compte la dernière version d'Eclipse 3.4 (Ganymede).
  • Un article qui explique les agents de placement proposés par la boîte à outils SWT. A noter que cet article se base sur la dernière version d'Eclipse 3.4 (Ganymede).
  • Si vous êtes du côté de Toulouse le 18 juin 2008, un Eclipse DemoCamps est organisé. Pour vous inscrire, rendez-vous ici.
Java
  • Un billet qui décrit les différentes technologies Java relatives à la manipulation de fichiers XML. Sont présentés les concepts de base et les librairies disponibles.

dimanche, juin 01, 2008

Nouvelle version du support de cours des balises personnalisées

Une nouvelle version du support de cours des balises personnalisées est disponible sur le site de Developpez.com.

Au menu de cette mise à jour
  • tous les codes sources des exemples sont maintenant disponibles
  • correction de nombreuses fautes d'orthographe
  • nouvelle mise en forme du document
  • les images ont été refaites
Le lien du support de cours et les exemples peuvent être trouvés ici.

vendredi, mai 23, 2008

Liens pratiques de la semaine

Avec un peu de retard, vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées cette semaine.

Eclipse
  • Des pistes de recherche concernant le futur d'Eclipse E4 lors de l'E4 Summit
  • EclipseTime une conférence sur les technologies Eclipse se déroulant en France à Toulouse le 29 mai 2008
  • La version Eclipse 3.4 RC1 est désormais disponible.

mercredi, mai 21, 2008

Supports de cours en préparation ...

Depuis quelques temps, je me suis mis à étudier la plateforme Flex. L'idée est de proposer des supports de cours. Pour l'instant, je retiens de cette technologie, sa simplicité (transitions via les states, effets, binding, ...), son outillage avec FlexBuilder 3, sa richesse de composants (tout pour faire une belle IHM), sa très bonne documentation (les exemples pour illustration sont assez pratiques), les ressources sur le Net, ...

A ce stade, j'ai prévu les cours suivants :
  • une introduction pour présenter la plateforme, la raison de mon intérêt à cette plateforme, les ressources, les outils et l'exemple qui servira de fil conducteur tout au long des supports
  • le langage MXML
  • le langage ActionScript
  • Les appels distants (la relation avec le monde Java, c'est ça qui me botte)
  • AIR
Pour l'instant, je suis en train de coder l'application qui illustrera chacun des supports. Le premier support de cours devrait sortir d'ici fin juin.

Introduction à la conception de plug-ins avec Eclipse

Un support de cours concernant une introduction à la conception de plug-ins avec Eclipse est disponible sur le site de Developpez.com.

Au menu de ce cours, vous découvrirez les aspects suivants :
  • OSGi et Eclipse
  • Tutoriel de conception d'un simple plug-in illustré de nombreuses captures d'écran
  • Fichiers de configuration (MANIFEST.MF et plugin.xml)
  • Object Activator relatif aux informations liés au plug-in
  • Classe Platform donnant des informations sur l'environnement d'exécution
Il s'agit d'une introduction et l'objectif est de comprendre la structure d'un plug-in. Ne vous attendez donc pas à voir tous les détails liés aux points d'extension, à la notion de vue, perspective, ... puisqu'ils seront étudiés dans des prochaines parties.

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

mardi, mai 06, 2008

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 cette semaine.

Eclipse
  • Un billet qui propose le téléchargement d'un livre (licence Creative Commons) libre sur le sujet d'OSGi. A l'heure de ce billet, trois chapitres ont été écrits.
  • Une vidéo qui présente un tutoriel concernant la mise en place de points d'extension.
  • Eclipse 3.4 M7 est sorti, les dernières nouveautés (voir ici) avant les releases candidates.

vendredi, mai 02, 2008

Nouvelle version du cours Java

Une nouvelle version du support de cours sur la programmation orientée objet appliquée à Java est disponible.

Cette version tente de réduire les nombreuses coquilles.

J'en profite pour remercier les différents lecteurs de m'avoir notifié des erreurs qui s'étaient glissées dans le document.

Le support de cours est toujours disponible ici.

dimanche, avril 20, 2008

Blogs concernant la plateforme Eclipse RCP (mise à jour)

Ce billet a pour objectif de lister l'ensemble des Blogs en relation avec le développement de plug-ins via la plateforme Eclipse. Ce billet est une mise à jour d'un précédent.

Voici la liste des sites traitant du sujet Eclipse (news, exemples, ...)
Voici la liste des blogs personnels
Si vous avez des adresses, n'hésitez pas.

Via Google Reader, voici deux pages qui permettent de regrouper tous les sujets : Eclipse et Eclipse Perso

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 cette semaine.

Eclipse
  • SAT (SWT Animation Toolkit) est une bibliothèque qui regroupe un ensemble d'effets visuels assez sympathiques pour la plateforme Eclipse. Une démonstration JavaWebStart est disponible.
  • Un site qui regroupe un ensemble d'article concernant le développement de plug-ins pour Eclipse.

vendredi, avril 11, 2008

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 cette semaine.

Eclipse
  • Paperclips est une API pour l'impression du contenu des composants SWT. Le premier lien pointe sur une présentation générale et le second lien sur le site officiel.
  • Un article qui traite des Adapters employés dans la plateforme Eclipse.

vendredi, avril 04, 2008

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 cette semaine.

Java
  • Un JUG (Java User Group) a été monté dernièrement dans la ville de Tours par Christophe Jollivet. La première réunion commence le mercredi 9 avril 2008. Après une présentation des objectifs du JUG, Christophe fera une démonstration de Unitils et de Selenium, des API pour les tests unitaires et les tests d'applications web. Si vous êtes intéressés, inscrivez-vous ici.
Eclipse
  • Eclipse 3.4 M6 est sorti. Au menu des nouveautés, le nouveau gestionnaire des mises à jour appelé p2 est disponible, rendez-vous sur cette page pour le "Getting Started". Au niveau de la plateforme, un aspect intéressant est qu'il est possible de faire du cisaillement d'image (shearing) lors des transformations (exemple).
  • La page relative à la prochaine nouvelle version d'Eclipse : E4 pour Eclipse 4.

mardi, mars 25, 2008

Composants additionnels avec JFace

Un support de cours concernant des composants additionnels de JFace est disponible sur le site de Developpez.com.

Au menu de ce support de cours :
  • boîtes de dialogue
  • Wizards
  • Preferences
  • gestion des ressources.
A noter que l'étude des composants de ce cours a été faite de manière indépendante à la notion d'extension. Nous reviendrons sur cet aspect dés que les extensions auront été présentés dans un prochain support de cours.

Le support de cours ainsi que les exemples se trouvent ici : http://mbaron.developpez.com/eclipse/jface2/.


samedi, mars 22, 2008

Liens pratiques de la semaine

Cette semaine a été marquée par la conférence EclipseCon 2008. Outre les photos de la conférence, l'ensemble des sessions de la conférence EclipseCon 2008 sont disponibles. Il s'agit d'une mine d'or dans le sens où la plupart propose les pointeurs sur les supports de présentation. A noter que les supports des précédentes versions de la conférence sont également disponibles.
  • Une session traitant du sujet de la conception de plug-ins basée sur l'excellent livre Eclipse Building Commercial -Quality Plug-ins.
  • Une autre session traitant du sujet de développement d'applications RCP.
  • Un ensemble de liens relatif à Eclipse RAP : Getting started with RAP development, From RCP to RCP/RAP - Conversion and Singe-Sourcing Techniques et RAP the Web
  • Une session qui présente la manière de construire un product
  • L'annonce du rapprochement de Microsoft et de la fondation Eclipse. Deux collaborations ont été dévoilées. La première concerne un meilleur support de SWT avec Windows Vista et la seconde concerne le sous-projet Higgins (gestion d'identité numérique). Personnellement j'espère de cette collaboration que la partie OLE de SWT soit étoffée et pourquoi pas un véritable GUI Builder dans l'IDE d'Eclipse ;-)
  • Une session qui présente comment utiliser la plateforme OSGi pour développer une application Web. Il n'y a pas de supports de présentation, toutefois vous pourrez trouver des informations ici et
  • Une session sur l'utilisation de l'API JFace DataBinding qui comme son nom l'indique permet de faire du DataBinding avec Eclipse. A noter que je prépare un tutoriel sur le sujet.
  • Une session qui montre comment restructurer une application Swing en Eclipse RCP
  • Une session qui présente la manière de gérer le profil utilisateur (notion d'Activities). En cherchant directement sur le site de la société de l'orateur, des informations assez intéressantes peuvent être trouvées.
  • Le projet Babel a droit a ses sessions : session 1 et session 2
  • Une session qui concerne les points d'extension
  • Pour finir, des annonces concernant Eclipse 4 (E4) : ici et

samedi, mars 15, 2008

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 cette semaine (je l'avoue, je suis un peu à la traine en ce moment ...)

Eclipse
  • Le projet Albireo en phase d'incubation fournit un framework pour faciliter le pont entre les boîtes à outils SWT et Swing. A surveiller de près ...
  • Dans le cadre du support de la fondation Eclipse aux communautés régionales, une mailing liste française a été créée. A s'inscrire dés que possible. A noter également que sur le wiki de la communauté régionale, on peut trouver de nombreux blogs de frenchys sur le sujet Eclipse très intéressant.

dimanche, mars 02, 2008

Supports de cours, debriefing

Ce billet a pour objectif de vous présenter l'avancement des supports de cours que je suis en train de rédiger.

Le cours sur les composants additionnels de JFace est terminé, il est actuellement en cours de relecture. Il devrait sortir très prochainement. Dés qu'il est prêt, je vous préviens.

Concernant la suite, je vais continuer sur la plateforme Eclipse en démarrant un nouveau chapitre : "la conception de plug-ins" puisque le premier chapitre "Boîtes à Outils" est maintenant terminé. Le premier support de cours concernera une introduction à la conception de plug-ins dont voici un plan général :
  • Eclipse et OSGI (OSGI c'est quoi, les grands principes [bundle = plugin, gestion des plugins, cycle de vie des plugins, services exposés, ...])
  • Un simple plug-in (création d'un projet plug-in, analyse du code généré, une vue rapide sur PDE, création d'un Product)
  • Structure d'un plug-in (squelette d'un plugin, manifest.mf, plugin.xml, classe Activator, gestion de l'environnement d'exécution)
Pour la suite des cours concernant le chapitre conception de plug-ins, je vais essayer de découper plus finement les sujets. L'idée est d'être plus précis sur un sujet et d'éviter d'avoir des documents de grandes tailles traitant de concepts différents.

Pour les autres supports de cours, deux sujets m'intéressent particulièrement en ce moment : Wicket et Flex. Par contre, je ne peux pas m'avancer sur une date de sortie ...

mercredi, février 27, 2008

Exécuter du code natif en Java : JNI VS JNA

Un article traitant de l'exécution de code natif en Java a été diffusé sur Developpez.com. J'ai écrit cet article en collaboration avec Frédéric Martini (connu sous Developpez sour le nom de adiguba) qui initialement avait posté un billet sur ce sujet. Il s'agit donc d'une version plus étoffée.

Je tiens à signaler qu'il s'agit de ma première contribution en tant que rédacteur de tutoriel, j'ai plutôt l'habitude de poster des supports de cours.

vendredi, février 22, 2008

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 cette semaine.

Eclipse
  • Le projet Babel récemment ouvert par la fondation Eclipse permet de participer à la traduction d'Eclipse pour la version 3.3. D'un point de vue technique la traduction est obtenue à l'aide des fragments qui permettent d'enrichir un plugin existant
  • Une liste de raccourcis clavier pour Eclipse concernant la version 3.3. A noter que l'auteur prévoit de mettre à jour la liste pour la version 3.4 d'Eclipse, à surveiller donc ...
  • Une introduction au développement de plug-in d'Eclipse, première partie, à surveiller également ...

samedi, février 16, 2008

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 cette semaine.

Eclipse
  • Un lien qui explique comment configurer son environnement Eclipse (de la gestion de la mémoire à la gestion du démarrage)
  • Un moteur de recherche sur les ressources Eclipse
  • Un lien qui décrit comment utiliser le fullScreen (nouveauté de la 3.4) dans une application RCP

dimanche, février 10, 2008

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 cette semaine.

Eclipse
  • Eclipse 3.4M5 est sortie. De nombreuses modifications ont été apportées. Hormis les apports intéressants liés au JDT, j'ai retenu principalement deux évolutions majeures concernant la plateforme. La première est liée à la possibilité de définir des composants non rectangulaires (exemple). La seconde permet enfin de générer une image d'un Control donné et cela sur toutes les plateformes supportées par Eclipse !!!
Java
  • Le projet Flamingo fournit un ensemble de composants graphiques supplémentaires pour la boîte à outils Swing (explorer de fichiers à la Vista MAC OS X, barre d'outils (Ribbon) à la Office 2008, ...)

vendredi, février 01, 2008

Nouvelle version de l'introduction à la plateforme Eclipse RCP

La mise à jour des supports de cours re-démarre en cette nouvelle année.

Je vous propose dans ce billet une évolution de l'introduction à la plateforme Eclipse RCP.

Au menu des nouveautés deux sous parties ont été ajoutées.

Le plan général est le suivant:
  • Eclipse n'est pas qu'un IDE Java
  • Vers le "Bureau Métier" avec Eclipse RCP
  • Outils pour développer des applications Eclipse RCP
Vous trouverez le cours ici.

dimanche, janvier 27, 2008

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 cette semaine.

Java
  • Transitions est un projet qui fournit une bibliothèque d'effets de transitions entre deux BufferedImages.
Eclipse
  • Une page issue de l'aide fournie par Eclipse qui liste tous les arguments et les propriétés systèmes pour une application Eclipse RCP.

samedi, janvier 19, 2008

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 cette semaine.

Eclipse
  • UFace est une API universelle qui permet de développer des IHM pour tout type de plateforme telle que le Web via GWT ou Java via Eclipse ou Swing. A voir maintenant quel GUI Builder sera utilisé pour supporter cette nouvelle API.

dimanche, janvier 13, 2008

Déployer une application SWT/JFace via Java Web Start

Depuis le début de ce blog, un ensemble de démonstrations ont été fournies et malheureusement pour les tester il fallait télécharger les sources et les compiler dans son environnement préféré.

De manière à tester directement les démonstrations, j'ai décidé de les déployer via Java Web Start (voir mon cours sur le sujet Java Web Start).

Je vous présente ci-dessous la démarche à suivre pour déployer une application "pure" SWT/JFace. A noter que le déploiement d'une application RCP (qui viendra lors de la diffusion du cours) est expliquer ici.

Démarche en plusieurs étapes (à automatiser via une tâche ANT) appliquée sur la démonstration "Astuce du Jour" en SWT. A noter également qu'une description plus complète via un tutoriel est proposée sur le site de Developpez.com (Comment déployer une application SWT via Java Web Start).

Exporter dans un JAR le projet à déployer
  • A partir d'Eclipse IDE, exporter le projet à déployer dans une archive JAR
  • Ne pas inclure les bibliothèques dépendantes
  • Définir la classe principale dans le fichier MANIFEST.MF (option Main-Class). Exemple, Main-Class: eclipse.swt.SWTTipOfTheDay.SWTTipOfTheDayTest
  • Définir le class path des bibliothèques utilisées (option Class-Path). Exemple, Class-Path: swt.jar, jface.jar
Signer tous les JAR
  • Signer le JAR généré (swttipofthedaydemo.jar)
  • Signer tous les autres JAR (swt.jar). Il se peut que certaines bibliothèques soient déjà signées. Pour éviter tous problèmes relatifs à des incohérences de signature (erreur de type : Les ressources JAR définies dans le fichier JNLP n'ont pas été signées à l'aide du même certificat), je n'ai pas trouver d'autres moyens que de supprimer les signatures déjà présentes. Dans le cas de la bibliothèque SWT, la suppression des fichiers avec l'extension SF et RSA du répertoire META-INF a été suffisant.
Décrire le fichier de déploiement JNLP
  • Décrire dans un fichier JNLP, le déploiement Java Web Start du projet
Déployer les fichiers sur un serveur WEB
  • Déposer le fichier JNLP, le JAR signé de la démo et toutes les bibliothèques JAR signées sur un serveur WEB.
Vous pouvez tester le résultat via la démo de SWTTipOfTheDay.

vendredi, janvier 11, 2008

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 cette semaine.

Java
  • Le sous projet DJ Native Swing du projet DJ project permet de mixer des composants natifs avec Swing. DJ Native Swing se base sur l'API SWT. Les exemples présentés montrent comment embarquer un navigateur WEB (en fait le composant SWT Browser de SWT) dans une application Swing.
Eclipse

samedi, janvier 05, 2008

Composant "Astuce du jour" en SWT

Après plusieurs recherches infructueuse d'une boîte de dialogue "Astuce du Jour" pour Eclipse, il ne restait plus qu'une solution, le développer ...

Ce billet présente donc le composant "Astuce du jour" codé avec la boîte à outils SWT. Son développement est fortement basé sur le code proposé par la bibliothèque SwingX qui étend la boîte à outils Swing.

Toutefois comme SWT ne gére pas les "Look and Feel" à la manière de Swing, une seule interface graphique est proposée. Une capture d'écran du résultat est proposée ci-dessous.


Les fonctionnalités proposées sont les suivantes :
  • Sauvegarde la possibilité de désactiver l'ouverture de la boîte de dialogue "Astuce du Jour"
  • Internationalisation de la boîte de dialogue "Astuce du Jour"
  • Look and Feel proche de celui de Windows
  • Les astuces peuvent être de type text/plain ou Composite
Les fonctionnalités qui ne sont pas encore proposées :
  • Les astuces au format text/HTML. Une tentative a été tentée en utilisant le composant SWT Browser. Toutefois à la première initialisation du composant, c'est-à-dire à l'ouverture de la boîte de dialogue, il se passe un certains temps de chargement dû au moteur de rendu (IE ou FireFox).
Les sources complètes sont disponibles ici

La démonstration Java Web Start de SWTTipOfTheDay

Liens pratiques de la semaine

Je profite de ce billet pour vous souhaiter à toutes et à tous une excellente année 2008.

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

Divers
  • Un historique très bien réalisé concernant les différents SGBDR (Système de Gestion de Base de Données Relationnelle) depuis 1970 (Developpez.com)
PS : en ce moment, c'est assez calme au niveau des nouveautés ...