Categories
Eclipse

Eclipse 3.4 M7 est là !

Ça y est, Eclipse 3.4 est à nos portes puisque le milestone qui sort aujourd’hui est le 7ème du nom ; ce qui, dans le cycle de développement Eclipse, veut dire que toutes les nouvelles fonctionnalités ont été implémentées (feature complete) !

Les prochaines versions livrées seront des releases candidates, au nombre de quatre d’ici fin juin, et n’apporteront donc que des corrections de bugs.

Voici comme à chaque fois les nouveautés à noter, sachant que, pour une M7, on est plutôt gâtés !

Equinox

  • Les certificats des paquets installés via p2 pourront maintenant être visualisés, un peu de la même manière que vous pouvez vérifier le certificat d’un site auquel vous vous connectez via votre navigateur Internet,
  • L’IHM de la boîte de dialogue Software Updates amenée par p2 est désormais définitive (hé oui, on a dit feature complete, faut suivre un peu…) et devrait même vous permettre d’aller encore plus vite qu’auparavant dans la gestion des mises à jour, notamment grâce au mécanisme de filtre implémenté dans l’arbre listant les Installable Units.

PDE

  • Vous pouvez désormais marquer un point d’extension comme étant internal. Cela n’interdit pas à d’autres plug-ins d’étendre ledit point d’extension, mais ils seront prévenus qu’ils font quelque chose de pas catholique avec un warning ou une erreur (voir sur la capture d’écran),
  • Le tooling autour d’OSGi commence à prendre de plus en plus d’importance, avec notamment l’affichage des services déclarés et consommés par chaque plug-in dans la vue Plug-in Registry.

Platform / SWT

  • Possibilité de sélectionner une ligne en appuyant sur SHIFT et en cliquant sur la règle qui affiche les numéros de lignes dans tout éditeur textuel,
  • Rechercher/Remplacer. Nouveau pattern d’expression régulière \R qui, lors de la recherche, trouve n’importe quel délimiteur Windows, Unix ou Mac (respectivement \r\n, \n et \r), et, lors du remplacement, insère le délimiteur adéquat (i.e. celui configuré par défaut pour le fichier en question, et qui est utilisé quand vous tapez ENTREE dans un éditeur).

JDT

  • Le compilateur Java d’Eclipse (ecj) tire maintenant pleinement parti des machines multi-processeurs et multi-cores. De plus, les builders autres que le builder Java peuvent également bénificier de cette accélération !
  • La JDT supporte désormais les fichiers RAR ajoutés au build path ou au source path,
  • Le formatage de plusieurs fichiers Java à la fois est désormais annulable avec CTRL+Z. Rappelez-vous, auparavant, on avait droit à une jolie boîte de dialogue “Undo is not supported by this operation. Do you want to continue?” !
  • En mode debug, le survol d’une variable affiche les structures (maps, tableaux, …) de la même manière que le fait la vue Variables.

Le New & Noteworthy complet est ici !
Et pour le téléchargement, c’est par !

Categories
Eclipse

Eclipse 3.4 M6 – API Freeze !

NoteworthyAvec quelques jours de retard (il semblerait que l’intégration de p2 ait été assez laborieuse…) voici la cuvée M6 d’Eclipse 3.4 !

Comme pour chaque milestone, voici les nouveautés qui ont particulièrement retenu mon attention :

Equinox

Beaucoup de sous-projets qui étaient jusqu’alors en incubation ont été gradés et font donc maintenant partie du projet Equinox “officiel”, et sont ainsi accessibles aux utilisateurs du SDK Eclipse. Parmi ces projets :

  • p2 (prononcer pitou !). Pour faire (très) court : le mécanisme antédiluvien d’installation et de mises à jours de “features” a été totalement refondu. C’est la nouveauté de cette milestone, et je serai amené à en parler plus en détail très prochainement !
  • Equinox Security. L’idée est de faciliter l’intégration de mécanismes de gestion de la sécurité (authentification, autorisation, …) dans Eclipse. Le plan pour la 3.4 comprend les items suivants :
    • intégration de fournisseurs de sécurité Java
    • framework d’authentification utilisateur
    • gestion des certificats utilisateur (gestion de mots de passe, clés, …)
    • support de l’autorisation de code des bundles (à l’installation, au chargement, à l’exécution…)

PDE

  • Le projet incubatoire API Tooling a lui aussi été promu, et est maintenant intégré à Eclipse.
    Le principe de ce projet est de mettre à la portée du développeur un certain nombres d’annotations Java et de processeurs associés afin de faciliter la documentation et la maintenance d’une API. On peut par exemple utiliser une annotation @noreference lorsque l’on veut indiquer qu’une méthode (définie dans une classe abstraite, par exemple) ne doit pas être appelée par les “clients”. A l’heure actuelle, ce genre de contrainte était tant bien que mal explicité dans la javadoc de la méthode (“Clients must not call this method” …), et le moins qu’on puisse dire c’est que ce n’était pas très formel, et encore moins exploitable de manière automatique.
    En outre, API Tooling peut détecter tout un tas d’erreurs auxquelles tout le monde à un jour où l’autre été confronté, comme par exemple la définition d’une méthode dans une interface exportée, qui retourne un type qui lui n’est pas exporté par le bundle ; ou, mieux, détecter la rupture possible de compatibilité lors de l’évolution d’une API (ajouter une méthode à une interface rend caduques toutes les classes concrètes qui n’implémentant pas encore cette méthode…)
  • Nouvel attribut de type “id” dans les schémas de points d’extension. J’en ai déjà parlé ici, et suis toujours aussi enthousiaste vis-à-vis de cette nouvelle feature 🙂 .

Platform / SWT

  • API pour avoir des labels “multicolores” dans les arbres et les tables. Depuis l’avénèment de la 3.4, vous aviez tous remarqué que la vue qui affiche les résultats d’une recherche, par exemple, était désormais beaucoup plus sexy, grâce à l’utilisation de différentes couleurs. Ceux qui avaient essayé d’intégrer cela dans leur propre plug-ins avaient alors pu se rendre compte qu’il n’y avait pour l’instant pas de quoi manipuler simplement ces couleurs depuis la couche JFace. C’est désormais possible ! StyledCellLabelProvider est la classe abstraite à étendre pour avoir le support de cette nouvelle fonctionnalité ; IStyledLabelProvider permettant de venir enrichir un LabelProvider qui auraient déjà une super-classe. A noter que cela ne se résume pas qu’aux couleurs d’avant et d’arrière-plan puisque l’on peut également souligner, encadrer, mettre en gras, … certains tronçons de son label !
  • Partage de projet CVS. Une nouveauté toute bête mais trèèès pratique : on peut maintenant, lors du partage d’un projet CVS, venir simplement choisir le module dans lequel on veut que notre projet vienne se rajouter, et un sous-module du nom de notre projet Eclipse sera automatiquement créé !

JDT

Pour les curieux, le New & Noteworthy complet est ici !

Categories
Eclipse

PDE UI guys rock !

Kudos to the Eclipse PDE UI Team (and more specifically to Chris Aniszczyk) for their incredible work on a long-awaited feature in PDE : “type safety” for ID references! 🙂

So, what is it all about ?

screenshot.pngImagine you want to contribute to the org.eclipse.ui.perspectiveExtensions extension point, in order to plug your own views on a given, existing perspective.

Your perspective extension is going to be relative to… a perspective, right?
This perspective is identified by an ID, right?
But what is the actual ID of the perspective you want to extend? And what happens when, even knowing the exact ID of the perspective, you make a spelling mistake? Let me guess… You lose at least one hour of work in the so-called “id hell” 😉

That’s exactly why the PDE Manifest builder (i.e. the compiler of your plugin.xml against extension points schema and workspace/target platform plugins) will now handle a new kind of extension attribute : the ID!

screenshot2.pngWhen you want to add an “idref” attribute into an extension point, you just have to declare the attribute as “identifier”, and you then tell which identifier you want to refer to. And voilà !

The patch has not been committed on HEAD yet, but you can find the patch in the attachments of bug #181515.

Sebz, this new feature is for you 😉

…Welcome in ID heaven!