<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8100450921822056061</id><updated>2011-09-07T14:18:25.020-04:00</updated><title type='text'>Olivier's Eclipse Blog</title><subtitle type='html'>Opinions of a JDT/Core committer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-3583987514510507749</id><published>2011-09-07T14:18:00.002-04:00</published><updated>2011-09-07T14:18:26.066-04:00</updated><title type='text'>Evil call to Character.getNumericValue(char)</title><content type='html'>In the Eclipse compiler, to detect a valid unicode, we call the method:&lt;br /&gt;Character.getNumericValue(char) and we check that the returned value is between 0 and 15 to validate that only character between 0..F are allowed (see the &lt;a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.3"&gt;JLS&lt;/a&gt;)&lt;br /&gt;This was a mistake. Some characters can have a numeric value between 0 and 15 and they would not belong to the character between 0..F (including lowercase letters).&lt;br /&gt;This &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=356746"&gt;bug report&lt;/a&gt; which shows why this was wrong was opened this week.&lt;br /&gt;&lt;br /&gt;Here is a screenshot that shows the bogus code: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-aFueY31gNRo/Tmez5AzO1AI/AAAAAAAAABU/E36urFiF-cE/s1600/unicode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-aFueY31gNRo/Tmez5AzO1AI/AAAAAAAAABU/E36urFiF-cE/s1600/unicode.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The fix is trivial, but it is surprising that this has never been found before. 10 years with that bug!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enough for today.... back to work!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-3583987514510507749?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/3583987514510507749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=3583987514510507749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/3583987514510507749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/3583987514510507749'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2011/09/evil-call-to-charactergetnumericvaluech.html' title='Evil call to Character.getNumericValue(char)'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-aFueY31gNRo/Tmez5AzO1AI/AAAAAAAAABU/E36urFiF-cE/s72-c/unicode.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-6858634803793883055</id><published>2011-05-25T13:02:00.002-04:00</published><updated>2011-05-25T13:11:26.368-04:00</updated><title type='text'>Kudos to Compuware!</title><content type='html'>Today I wanted to say "Thank you" to Compuware for organizing a very nice demo camp last night in Montréal. The demo camp lasted for more than 4 hours with a diverse and interesting set of demos. We heard about remote p2, shared install management, Eclipse at the Canadian Space Agency, new visualization of features dependencies, gdb debugging and tracing with CDT, Tycho, Vega demo and more....&lt;br /&gt;I went there with Pascal from Sonatype and it was a really good event! Well organized, good beers, nice people! I am always puzzled to see how many people can show up in an Eclipse demo camp. The room was packed with around 50 people.&lt;br /&gt;&lt;br /&gt;Kudos to Compuware! Hopefully this is not the last event in Montréal even if I cannot guarantee that I can come every time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-6858634803793883055?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/6858634803793883055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=6858634803793883055' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/6858634803793883055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/6858634803793883055'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2011/05/kudos-to-compuware.html' title='Kudos to Compuware!'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-6816662931428925492</id><published>2010-11-30T10:26:00.004-05:00</published><updated>2010-11-30T10:55:42.571-05:00</updated><title type='text'>Workspace settings vs project settings</title><content type='html'>Today, I wanted to talk about the evilness of workspace settings. Workspace settings are used for a project when the project doesn't specify its own settings.&lt;br /&gt;There are really good reasons why workspace settings should never be used for a Java project and in particular for a Plug-in project. To specify project specific settings, just open the project Properties, the select the options you want to be specific to your project and select "Enable project specific settings". For example, for compiler settings, it would look like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FqpQEWe3BE0/TPUeP5rYV5I/AAAAAAAAABE/Vzd0PNGon0Q/s1600/compilersettings.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_FqpQEWe3BE0/TPUeP5rYV5I/AAAAAAAAABE/Vzd0PNGon0Q/s320/compilersettings.png" alt="" id="BLOGGER_PHOTO_ID_5545371774706276242" border="0" /&gt;&lt;/a&gt;Let's take a Plug-in project that is using a EE (Execution Environment) 1.4 and therefore it doesn't use generics. Now you don't set project specific settings for this project, which means that once this project is checked out inside your workspace it will be compiled using the workspace settings. If you are using a 1.6 VM to run your workspace, the default compiler settings for this workspace will be set to 1.6.&lt;br /&gt;So your project might end up with many warnings once checked out that are unexpected: raw type warnings, unchecked type warnings,...&lt;br /&gt;When you set up a Plug-in project, you should also set up all compiler settings to be specific to this project. You should set the libraries on the classpath to explicitly point to your EE.&lt;br /&gt;You must make sure that compiler warnings are set up so that your project compiles without any warnings or at least a limited number of warnings. Warnings should always be under control. You either don't care about some warnings and in this case they should be disabled, or you do care about them and then they should be fixed.&lt;br /&gt;Setting project specific settings means that any user that checks out your project will get consistent compilation regardless the workspace settings they are using.&lt;br /&gt;This also means that any Plug-in project should always set an EE. Without any EE explicilty specified, the default VM libraries are set up on the project's classpath and this means that the classpath depends on the workspace settings.&lt;br /&gt;This being said, if you do set an EE for your project, you should also make sure it is using API tooling even if you don't really provide APIs in your project.&lt;br /&gt;You can at least benefit from the detection of invalid references to the EE you are using. API tooling has a disabled option (by default) that you should enable for your project to detect all invalid usage of types, fields and methods that are not defined for the EE specified for the project. See Project's Properties&gt;Plug-in Development&gt;API Errors/Warnings&gt;API Use&gt;General&gt;Invalid references to system libraries.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FqpQEWe3BE0/TPUdgULD7wI/AAAAAAAAAA8/KNG5G0e2vOE/s1600/apitoolingsettings.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_FqpQEWe3BE0/TPUdgULD7wI/AAAAAAAAAA8/KNG5G0e2vOE/s320/apitoolingsettings.png" alt="" id="BLOGGER_PHOTO_ID_5545370957184757506" border="0" /&gt;&lt;/a&gt;If you follow these guidelines, you will definitely help any users of your project that want to check out the code in their workspace. The compilation of your project becomes predictable and repeatable in any workspace. No more "I don't understand why my project doesn't compile when I checked it out from CVS....".&lt;br /&gt;&lt;br /&gt;Hope this help you to setup your new projects or adjust the settings of your existing projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-6816662931428925492?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/6816662931428925492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=6816662931428925492' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/6816662931428925492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/6816662931428925492'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2010/11/workspace-settings-vs-project-settings.html' title='Workspace settings vs project settings'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FqpQEWe3BE0/TPUeP5rYV5I/AAAAAAAAABE/Vzd0PNGon0Q/s72-c/compilersettings.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-493239809006227127</id><published>2010-07-27T13:50:00.003-04:00</published><updated>2010-07-27T15:41:17.322-04:00</updated><title type='text'>Quoi de neuf dans Helios?</title><content type='html'>La fondation Eclipse a sorti sa nouvelle version annuelle fin juin. Cette année, son nom est Hélios.&lt;br /&gt;Comme d'habitude, la livraison fut faite le jour où elle était prévue et ce pour une 10e année consécutive.&lt;br /&gt;&lt;br /&gt;Mais que peut-on trouver dans cette version Hélios?&lt;br /&gt;&lt;br /&gt;Pour commencer, je dirais que le projet JDT s'est encore amélioré. Ajout d'un panneau avec plus de détails dans la vue de déboggage, détection des objets alloués mais non utilisés, compteur d'instances dans le deboggeur si la VM utilisée est supérieure ou égale à 1.6,  possibilité de corriger plusieurs problèmes similaires en une seule opération (quickfix), quelques améliorations dans l'outil d'internationalisation ainsi que plusieurs améliorations notables dans le formatteur de code. À ce sujet là, le formateur peut maintenant est facilement désactivé pour une partie seulement d'une unité de compilation.&lt;br /&gt;Pour plus de détails je vous invite à aller voir la &lt;a style="" href="http://live.eclipse.org/node/908"&gt;démo&lt;/a&gt; sur le site Eclipse live.&lt;br /&gt;&lt;br /&gt;Helios fournit une première intégration de l'outil de version distribué qu'est GIT dans Eclipse. Ce projet est appelé eGit. Le support est encore en phase de développement et requiert encore beaucoup d'usage de la ligne de commande. La prochaine version 0.9 prévue la première mise à jour d'Hélios en septembre devrait considérablement améliorer les choses. Pour une démo des possibilités actuelles, je recommande encore le site Eclipse Live avec cette &lt;a href="http://live.eclipse.org/node/885"&gt;démo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;La version Hélios apporte son lot d'amélioration dans p2. p2 fournit ses premières APIs et est maintenant beaucoup plus stable. Il devient très facile de mettre à jour sa version d'Eclipse au fur et à mesure que des mises à jour sont disponibles.&lt;br /&gt;&lt;br /&gt;En lien avec les améliorations de p2, Eclipse fournit maintenant un moyen d'installer facilement de nouveaux composants dans Eclipse. L'outil s'appelle Eclipse MarketPlace et est directement disponible depuis le menu "Aide" ou "Help" en anglais.&lt;br /&gt;Eclipse MarketPlace permet de rechercher des composants selon des mots clés et de les installer directement dans l'instance courante. C'est très pratique pour tester des composants. p2 permet également de tout désinstaller si un composant fonctionne mal ou ne répond pas aux attentes.&lt;br /&gt;&lt;br /&gt;Un autre projet qui est également fourni avec Hélios est XText, un projet très intéressant qui peut s'avérer très utile à qui veut définir un nouvel éditeur pour Eclipse. Il fournit un ensemble d'outil pour définir sans trop de fatiguer un éditeur avec assistant de code et autres outils indispensables pour tout éditeur digne de ce nom. Voir le lien suivant: &lt;a href="http://live.eclipse.org/node/886"&gt;XText&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;La version Hélios fournit également de nombreuses améliorations dans les projets existants tels que WTP, Mylyn, EMF,...&lt;br /&gt;&lt;br /&gt;De mon point de vue c'est indéniablement une bonne version à utiliser. Le seul point que j'aimerais voir améliorer dans l'avenir avec la notion de "Release train" où plusieurs dizaines de projets sortent simultanément est la notion d'intégration. Le côté simultané ne devrait pas enlever que tous les projets ne sont pas encore proprement intégrés. L'interface utilisateur devient une véritable usine à gaz lorsque tous les projets sont installés dans la même instance d'Eclipse. Il reste encore à ce niveau beaucoup de travail. À la décharge des différents projets, cet aspect n'a jamais été un critère lors de la sortie d'une nouvelle version d'Eclipse. Je pense qu'avec la maturité de certains projets, il serait maintenant intéressant de faire des progrès à ce niveau. Ça ne faciliterait que davantage l'adoption d'Eclipse par un plus grand nombre de personnes.&lt;br /&gt;&lt;br /&gt;Pour conclure je tiens à mentionner un petit problème qui survient sur Windows avec la dernière mise à jour de la machine virtuelle d'Oracle (anciennement Sun). La mise à jour 21 (JDK6_21) ne récupère pas correctement le paramètre pour la taille du PermGenSpace. Eclipse se retrouve alors à court de mémoire assez rapidement avec des symptômes qui vont du plantage au gel de l'interface sans aucun message d'erreur pertinent. Voir le lien suivant pour le bug qui traite du sujet: &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514"&gt;319514 &lt;/a&gt;. Une nouvelle mise à jour d'Oracle devrait être disponible prochainement pour revenir à une version qui fonctionne sans aucun autre changement. Un correctif de la part d'Eclipse sera disponible pour la mise à jour 3.6.1.&lt;br /&gt;&lt;br /&gt;Voilà j'espère que ce court message vous donnera le goût d'aller essayer Hélios et de nous dire ce que vous en pensez.&lt;br /&gt;&lt;br /&gt;Pour Hélios, c'est par &lt;a href="http://www.eclipse.org/helios/"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bonne fin d'été!&lt;br /&gt;&lt;br /&gt;Olivier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-493239809006227127?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/493239809006227127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=493239809006227127' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/493239809006227127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/493239809006227127'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2010/07/quoi-de-neuf-dans-helios.html' title='Quoi de neuf dans Helios?'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-5764650749382414644</id><published>2010-03-18T14:29:00.002-04:00</published><updated>2010-03-18T14:32:29.848-04:00</updated><title type='text'>API Tooling at Eclipsecon</title><content type='html'>For the ones that still wonder what API Tooling is all about or what API Tooling can do for you, you should come to this &lt;a href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1343"&gt;presentation&lt;/a&gt;.&lt;br /&gt;If you came to the presentation two years ago about the overview of API Tooling, you will learn more about API usage report and migration reports.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All questions and comments are welcome.&lt;br /&gt;&lt;br /&gt;See you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-5764650749382414644?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/5764650749382414644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=5764650749382414644' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/5764650749382414644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/5764650749382414644'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2010/03/api-tooling-at-eclipsecon.html' title='API Tooling at Eclipsecon'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-3042000576854328194</id><published>2010-03-18T14:25:00.002-04:00</published><updated>2010-03-18T14:29:34.971-04:00</updated><title type='text'>JDT at Eclipsecon 2010</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;If you want to find out more about what JDT has done for the Helios release, you might want to come to the following events at Eclipsecon 2010.&lt;br /&gt;1) &lt;a href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1380"&gt;What's new in JDT?&lt;/a&gt; (lightning talk)&lt;br /&gt;2) &lt;a href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1339"&gt;JDT Fundamentals&lt;/a&gt; (2h tutorial)&lt;br /&gt;&lt;br /&gt;Of course I will be available for questions, discussions or comments during the whole conference. Send me a message if you want to meet there.&lt;br /&gt;&lt;br /&gt;Thanks and see you soon at Eclipsecon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-3042000576854328194?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/3042000576854328194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=3042000576854328194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/3042000576854328194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/3042000576854328194'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2010/03/jdt-at-eclipsecon-2010.html' title='JDT at Eclipsecon 2010'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-2780986158951487846</id><published>2009-07-30T14:52:00.004-04:00</published><updated>2009-07-30T15:18:32.209-04:00</updated><title type='text'>Revue partielle de la version Galileo</title><content type='html'>Je vais vous parler de ce que je connais le mieux dans cette nouveau version d'Eclipse.&lt;br /&gt;&lt;br /&gt;Je veux parler en premier lieu du projet API Tooling. Ce projet a été introduit dans la version 3.4 de manière très succincte. La version incluse dans Galileo est beaucoup plus aboutie.&lt;br /&gt;&lt;br /&gt;API Tooling fournit de nombreuses tâches ant pour pouvoir faire des validations lors d'un build ant. Ces tâches ant sont notamment utilisées dans les builds Eclipse eux-même depuis plusieurs mois.&lt;br /&gt;&lt;br /&gt;La validation peut également être faite au fur et à mesure du développement à l'aide d'un builder. Chaque projet PDE (pour l'instant les projet Java ne sont pas supportés) peut être converti vers API Tooling.&lt;br /&gt;Une fois ceci fait il suffit de paramétrer une "baseline" qui sert de référence pour la définition des APIs afin d'avoir une validation faite par API Tooling.&lt;br /&gt;&lt;br /&gt;La fonctionnalité que je préfère est la validation des librairies.  Ceci permet de s'assurer lors du développement que les types, méthodes et champs utilisés depuis les librairies correspondent bien aux environnements d'exécution spécifiés pour le projet.&lt;br /&gt;&lt;br /&gt;Prenons un exemple. Si je définis un projet avec comme environnement d'exécution J2SE-1.4, je ne suis pas supposé utiliser de méthodes définies uniquement en J2SE-1.5 ou JavaSE-1.6. Malheureusement Eclipse utilise comme JRE par défaut celui qui est utilisé pour démarrer Eclipse.&lt;br /&gt;Donc si j'utilise une VM 1.6 pour démarrer Eclipse et qu'ensuite je crée un nouveau projet PDE, je vais avoir des librairies 1.6 sur le classpath de mon projet. Si je n'installe pas de JRE 1.4 correspondant à l'environnement d'exécution que je veux utiliser, je peux très facilement (en utilisant l'assistant de code (Ctrl + Space)) utiliser par mégarde une mauvaise méthode.&lt;br /&gt;API Tooling va valider tous les références dans les librairies pour s'assurer que toutes existent dans l'environnement spécifié dans le fichier MANIFEST.MF et non uniquement dans les librairies utilisées sur le classpath.&lt;br /&gt;Cela garantit qu'à l'exécution le fichier jar généré fonctionnera bien sur une VM 1.4. Cette fonctionnalité n'est pas spécialement intéressante quand un seul environnement d'exécution est spécifié, mais elle devient par contre essentielle quand plusieurs le sont en même temps comme:&lt;br /&gt;J2SE-1.4, OSGi/Minimum-1.1, CDC-1.0/Foundation-1.0,...&lt;br /&gt;&lt;br /&gt;Voilà pour API Tooling. Je vous encourage vraiment à convertir tous vos projets PDE pour utiliser cette fonctionnalité.&lt;br /&gt;&lt;br /&gt;L'éditeur HTML de WTP a également fait des progrès notables dans la version 3.5 (Galileo).&lt;br /&gt;&lt;br /&gt;JDT fournit de nouveaux outils pour retravailler le code, des améliorations dans le formatteur de code, des nouveaux outils pour aider à coder (assistant de codage). JDT reste un environnement de référence pour développer en Java sur un nombre de plateformes impressionnant.&lt;br /&gt;&lt;br /&gt;L'intégration de Subeclipse dans le train Galileo simplifie grandement l'utilisation de référentiels SVN. Je ne suis pas très familier avec SVN lui-même, mais j'ai pu facilement accéder à des référentiels SVN et sauver mon code sans être trop perdu par rapport au support intégré avec le SDK pour CVS.&lt;br /&gt;&lt;br /&gt;J'utilise aussi régulièrement Mylyn qui je l'avoue me simplifie grandement la vie en intégrant un client Bugzilla directement dans Eclipse. Ça fonctionne toujours aussi bien. Mylyn permet également de mieux cibler le code sur lequel on travaille et permet de partager ce "contexte" avec d'autres personnes.&lt;br /&gt;&lt;br /&gt;Bref, Galileo est une nouvelle version qui vaut le détour. Il me reste encore à découvrir beaucoup d'autres projets intégrés avec Galileo: CDT, EMF, GEF, ...&lt;br /&gt;&lt;br /&gt;Si vous avez des questions, n'hésitez pas!&lt;br /&gt;&lt;br /&gt;Bonne découverte à tous!&lt;br /&gt;&lt;br /&gt;Olivier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-2780986158951487846?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/2780986158951487846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=2780986158951487846' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2780986158951487846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2780986158951487846'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2009/07/revue-partielle-de-la-version-galileo.html' title='Revue partielle de la version Galileo'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-4123619680257843321</id><published>2009-02-26T10:56:00.005-05:00</published><updated>2009-02-26T11:18:04.914-05:00</updated><title type='text'>Discovered the new about dialog</title><content type='html'>Investigating bug &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=265691%20"&gt;265691&lt;/a&gt;, I opened the about dialog (Help&gt;About Eclipse SDK).&lt;br /&gt;I was expecting the old look with several buttons.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FqpQEWe3BE0/Saa-rbV6ZCI/AAAAAAAAAAc/XNONympttjw/s1600-h/old_style.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 47px;" src="http://4.bp.blogspot.com/_FqpQEWe3BE0/Saa-rbV6ZCI/AAAAAAAAAAc/XNONympttjw/s400/old_style.png" alt="" id="BLOGGER_PHOTO_ID_5307138864186024994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was pleased to see that there is only one button now called "Installation Details".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FqpQEWe3BE0/Saa_g-o4TnI/AAAAAAAAAAk/hgB18yfuL3g/s1600-h/new_style.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 40px;" src="http://4.bp.blogspot.com/_FqpQEWe3BE0/Saa_g-o4TnI/AAAAAAAAAAk/hgB18yfuL3g/s400/new_style.png" alt="" id="BLOGGER_PHOTO_ID_5307139784193887858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicking on it opened a nice dialog that contains all the previous information organized using tabs. This is more compact, more scalable!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FqpQEWe3BE0/SabALJxybnI/AAAAAAAAAAs/JWzVtm2NXyc/s1600-h/newinstalldialog.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 395px; height: 400px;" src="http://3.bp.blogspot.com/_FqpQEWe3BE0/SabALJxybnI/AAAAAAAAAAs/JWzVtm2NXyc/s400/newinstalldialog.png" alt="" id="BLOGGER_PHOTO_ID_5307140508738547314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like it! Thumps up to whoever did it!&lt;br /&gt;&lt;br /&gt;The resizing of this dialog is not optimal, but it is definitely a good start! For example, a sash between the two boxes would be nice to be able to resize the bottom part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-4123619680257843321?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/4123619680257843321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=4123619680257843321' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/4123619680257843321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/4123619680257843321'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2009/02/discovered-new-about-dialog.html' title='Discovered the new about dialog'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FqpQEWe3BE0/Saa-rbV6ZCI/AAAAAAAAAAc/XNONympttjw/s72-c/old_style.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-8978441321037362181</id><published>2008-12-10T11:43:00.004-05:00</published><updated>2008-12-10T12:59:37.958-05:00</updated><title type='text'>Invalid references in system libraries now detected!</title><content type='html'>It has been a long time since I blogged, but in the upcoming 3.5M4 release there is a new feature that I'd like to talk about.&lt;br /&gt;API Tools provides a new feature to detect invalid references in system libraries. How many times did an Eclipse build fail because some code from a 1.5 library was used in a bundle tagged as 1.4? Too many times!&lt;br /&gt;Now this kind of failures should be gone if all bundles are using API Tools.&lt;br /&gt;&lt;br /&gt;Here is what you need to do to be all set:&lt;br /&gt;1) Make sure that API tools is enable for your bundle&lt;br /&gt;2) Then you select your bundle&lt;br /&gt;3) Open the preferences for API Tools:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FqpQEWe3BE0/SUADZNohKkI/AAAAAAAAAAU/3tri8dJgKVQ/s1600-h/options.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 195px;" src="http://4.bp.blogspot.com/_FqpQEWe3BE0/SUADZNohKkI/AAAAAAAAAAU/3tri8dJgKVQ/s400/options.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5278222494969440834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4) Select Warning or Error for the "Invalid references in system libraries"&lt;br /&gt;5) Once the rebuild is complete, you should get new markers corresponding to this option.&lt;br /&gt;&lt;br /&gt;This is especially useful for bundles that have multiple execution environments. It is difficult to make sure that all method invocations, type references or field accesses are included in all the specified execution environments.&lt;br /&gt;&lt;br /&gt;Let me know if you have any question regarding this new option. All potential issues should be reported against PDE/API Tools component.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-8978441321037362181?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/8978441321037362181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=8978441321037362181' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/8978441321037362181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/8978441321037362181'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2008/12/invalid-references-in-system-libraries.html' title='Invalid references in system libraries now detected!'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FqpQEWe3BE0/SUADZNohKkI/AAAAAAAAAAU/3tri8dJgKVQ/s72-c/options.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-2581422542618929066</id><published>2008-03-14T22:30:00.003-04:00</published><updated>2008-03-14T22:34:23.735-04:00</updated><title type='text'>API Tooling at Eclipsecon</title><content type='html'>For those who want to know what &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;id=42"&gt;API tooling&lt;/a&gt; can do for you, you should come to the API Tooling presentation at Eclipsecon. This is Wednesday at 2:30pm in room 207.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-2581422542618929066?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/2581422542618929066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=2581422542618929066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2581422542618929066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2581422542618929066'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2008/03/api-tooling-at-eclipsecon.html' title='API Tooling at Eclipsecon'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-2161368554626575258</id><published>2008-02-22T09:13:00.004-05:00</published><updated>2008-02-22T09:57:27.769-05:00</updated><title type='text'>Api Tooling went live in nightly builds!</title><content type='html'>Since last Friday, api tooling is now part of the SDK.&lt;br /&gt;I encouraged you to give it a try and let me know if you find anything wrong. Don't hesitate to &lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=PDE"&gt;open a bug report&lt;/a&gt; against the API Tools component of the PDE product.&lt;br /&gt;&lt;br /&gt;You can read the &lt;a href="http://wiki.eclipse.org/Api_Tooling"&gt;API Tools wiki&lt;/a&gt; to find out how to use it. All comments are welcome.&lt;br /&gt;&lt;br /&gt;Also if you are interested by this project, we (Darin and I) will have a &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=42"&gt;presentation&lt;/a&gt; at Eclipse con about the current work done for 3.4. Feel free to subscribe to the mailing list of this presentation to let us know your expectations.&lt;br /&gt;&lt;br /&gt;The plan is to be in the next integration build.&lt;br /&gt;&lt;br /&gt;Olivier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-2161368554626575258?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/2161368554626575258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=2161368554626575258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2161368554626575258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/2161368554626575258'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2008/02/api-tooling-went-live-in-nightly-builds.html' title='Api Tooling went live in nightly builds!'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-1128339722578974684</id><published>2007-11-21T11:09:00.000-05:00</published><updated>2007-11-21T11:33:40.270-05:00</updated><title type='text'>Traceability of API breakage</title><content type='html'>I know that an API is not supposed to be broken, but.... in real life this happens.&lt;br /&gt;In the context of the API tooling effort, we need to handle this case when checking for binary compatibility between two Eclipse drops.&lt;br /&gt;An example would be that an API provider defines an interface that can be implemented by clients with a method that takes an internal type as a parameter. This API is not usable for the clients. The provider then changes the signature of the method to use an interface type instead of the internal type. Now the API is usable, but this change technically speaking a breaking API change.&lt;br /&gt;This kind of changes should be documented in the porting guide, but I believe it should also be document at the source code level.&lt;br /&gt;One way to do this would be to have a javadoc tag on the corresponding API that would state this is a known breakage. Something like:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;@breakage-change The parameter type has been changed to use an API type instead of an internal type&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The binary compatibility checker could then realize that this is a known breakage and don't report it anymore.&lt;br /&gt;&lt;br /&gt;The next question is: "Since this is an API breakage, should the version of the corresponding bundle change its major version?".&lt;br /&gt;&lt;br /&gt;I'd like to get your opinions on this topic.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-1128339722578974684?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/1128339722578974684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=1128339722578974684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/1128339722578974684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/1128339722578974684'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2007/11/traceability-of-api-breakage.html' title='Traceability of API breakage'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8100450921822056061.post-5417847519846170088</id><published>2007-09-10T10:48:00.001-04:00</published><updated>2007-09-10T11:59:59.000-04:00</updated><title type='text'>The method getCanonicalName() is undefined for the type Class</title><content type='html'>This is my first blog entry.  So forgive me for my "poor" writing skills.&lt;br /&gt;&lt;br /&gt;Last week compile errors were found in the nightly builds. The first error was:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The method getCanonicalName() is undefined for the type Class&lt;/span&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;This is actually quite simple to prevent this kind of errors. But before I talk about how to fix it, it should be clear to understand how this is possible.&lt;br /&gt;This method is a method that is defined in 1.5. In Eclipse it would be tagged with the javadoc tag @since 1.5.&lt;br /&gt;In order to get it, you need to start Eclipse with a JDK1.5 and never add another JRE in the installed JREs list. Then even if you specify that your project takes an execution environment 1.4, you will have a JRE 1.5 on the classpath. The JRE 1.5 that you used to start Eclipse has been installed by default. It is a potential match for an execution environment 1.4 and since there is no other JRE installed, it is used as the JRE library on the project classpath.&lt;br /&gt;The Eclipse compiler doesn't check if a method is defined in the JRE1.5 or 1.4 even if the project settings are compliance 1.4, target 1.2 and source 1.3. We have requests to add this kind of support in the compiler, but this is not the purpose of this blog. So since the compiler doesn't check that the method that is used in the project comes from a 1.4 JRE, the project compiles fine on the committer's machine. Then the code is committed and retrieved for the next nightly build.&lt;br /&gt;The nightly build is however using a JRE 1.4 on the project's classpath to match the 1.4 execution environment requirement. And this is how a compile error is raised during the nightly build. It might seem obvious and simple enough so that readers are wondering why I talk about this.&lt;br /&gt;Last week the problem arised twice. Once for the error mentioned above and the second time with this error:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;The method valueOf(String) in the type Long is not applicable for the arguments (long)&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;So it seems that it might be worthwhile to explain how to prevent it this error once for all. The solution is quite simple.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Always install the JRE that corresponds to the project's execution context requirement.&lt;/span&gt; And if your project doesn't have such a requirement, edit the manifest file to add it.&lt;br /&gt;If a 1.4 JRE is installed when the execution environment 1.4 is specified for a project, it will be used. If you want to be sure which one is used, check the preference page Window&gt;Preferences&gt;Java&gt;Installed JREs&gt;Execution Environments.&lt;br /&gt;Then you check which JRE is set to be a perfect match for the execution environment you are using.&lt;br /&gt;Once this is done, you are sure that the right JRE ends up in the project's classpath and that if you code compiles in your workspace, it will also compile in the Eclipse builds.&lt;br /&gt;&lt;br /&gt;Let me know if you find this kind of blog useful or completely obvious and useless.&lt;br /&gt;&lt;br /&gt;Olivier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8100450921822056061-5417847519846170088?l=olivier-eclipse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olivier-eclipse.blogspot.com/feeds/5417847519846170088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8100450921822056061&amp;postID=5417847519846170088' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/5417847519846170088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8100450921822056061/posts/default/5417847519846170088'/><link rel='alternate' type='text/html' href='http://olivier-eclipse.blogspot.com/2007/09/method-getcanonicalname-is-undefined.html' title='The method getCanonicalName() is undefined for the type Class'/><author><name>Olivier Thomann</name><uri>http://www.blogger.com/profile/12941869845892308925</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry></feed>
