Sonntag, 13. Juni 2010

Review Eclipse Helios RC4

Change Log
  • 2010-06-14 - Add section about drag drop files as link in package explorer
  • 2010-06-14 - Add screen shot to JDT open implementation section
  • 2010-06-14 - Add a new section about the JDT code formatter on/off via comment tag.
  • 2010-06-13 - Initial create the review post

Eclipse Helios is the annual release of Eclipse projects in 2010; this year 39 projects are part of the release. And here is my first contribution to the Helios Blogathon, more details on the Blogathon can be found here. Helios is the code name for this year collecting Eclipse release. The idea of such a release is to be simultaneously release a large quantity of eclipse sub projects at the same time. This gives the user an Eclipse platform with well-coordinated projects, which works together.

My blog entry should only gives an overview of my favorite Eclipse projects and what new feature I really liked in the Helios release of Eclipse. The projects in my post are only a very small sub set of the Helios release, see here all projects.

Preliminary first a big praise to the Eclipse developers and the community, Helios is again another great milestone and the best development environment we ever had. Ok I know there are other great IDE’s out there (Netbeans and IntelliJ) but how? I am in love with Eclipse, so please no flame war here. And also Eclipse is more then a IDE.

The Helios RC3 was for me already so stable, that I've had it in my daily work. E.g. I have used the RC3 coding in a workshop with customers and I can tell Helios runs on my Mac Book as stable as any Eclipse version has before. First important point Helios seems to run very stable! Initial tests on Windows 7 also showed significant improvements have been made for SWT and Windows 7. But on Windows7 and Eclipse I will not actually talk here because I’m a Mac user!

1. Eclipse Workbench 
First a look at the basic Eclipse platform and what is new and what what pleases me.

Drag and Drop Files
In Helios you can drag and drop files and folders from the operating system in the Package Explorer, Project Explorer or Navigator view then a dialog popup where you can choose to copy the files or import the files as link.




Resource Filter
File system resources can now be filtered for each project.


Linked Resources
Linked resources can now be defined their locations relative to users defined variables.


Virtual folders
Virtual folders are a very cool new feature in Helios. A virtual folders is a new type of resource that exist only in the workspace and not in the backed directory in your file system. The function can be found in the advanced menu in the eclipse new folder wizard.


UNIX file permissions
Nice feature for Linux and Mac users. The full set of UNIX file permissions are now supported in the eclipse properties dialog of a resource.


Key bindings in Quick Access
The eclipse quick access (E.g. CMD+3 or CTRL+3) shows now the key bindings.


Comparing configurations in the Installation History
Now it is possible to compare the installation history, to see which plug-ins are installed and which are removed.


2. Eclipse Workbench Team
The eclipse runtime comes with a basic set of views, editors and wizards for SCM they will be used for CVS, SVN and GIT integration or other SCM systems.

Open With in Compare editor
Now there is a Menu Item open with in the context menu in the compare editor.


3. Eclipse Workbench Debug

Breakpoint Properties
The breakpoints view now provides detail panel to display and edit the breakpoint properties.


4. Eclipse JDT
The Java Development Tools are a very cool set of views and editors for java development, refactoring, debug and testing. Here the new feature I love in Helios version of JDT.

A nice overview off the new JDT features gives the eclipse Live screen cast here.

Open Implementation
Was a new feature in the eclipse Galileo release, now the function is also in the navigation menu and a key binding can be assigned.



Code Style On/Off Tags 
Now there is new tab in the code formatter options of your code style. The tab is called “On/off Tags”, when you enable this feature you can specify regions in your code, which should not be touch, by the auto formatter.




Content assist for getter and setter
Now the getter and setter for field can be create via the content assist a good alternative to quick assist via CMD+1 (CTRL +1).



New Refactoring Pattern - Move type to new file
Now a private class can be moved to a file see the example in screen shot. A pattern I not often need but some times it is cool you can develop all in a file and then use this pattern.


Java Compiler Report missing @Override
When you have a Java 1.6 project the java compiler now reports missing override annotations that’s very cool. The feature must be activated in the compiler settings.



Compiler Setting Import / Export
The settings of the Java compiler can now be exported and imported. That’s a cool feature when you work with more then one workspace and on different machines.


New Build Path Error Decorator
Build Path error is now shown by an extra icon as decorator. That’s very cool when I for got to set the Maven Classpath Variable in my Eclipse I see its not a compile problem something with my build path do not work great feature.


Type Hierarchy
The Type Hierarchy has now the option that can be sent to the background.


Debugging Instance Counts
The Variables view has now a new column displaying the number of instances of a variable.


JUnit Result Import form URL
JUnit results can be import form a URL e.g. form a build server that’s cool.


JUnit Launcher Test Method
Now the test method can be set in the JUnit launcher. That’s cool when you like to run one test, in eclipse Galileo this works also but not over the launch configuration.


5. Eclipse PDE
PDE is the eclipse plug-in development tool suite. Because every eclipse plug-in is also an OSGi bundle PDE provides also a great tool suite for development of OSGi based applications.

Eclipse OSGi console
An OSGi console is now available for the running eclipse framework.


Export Target Content
It's now possible to export the contents of the target platform into a directory.
Cool feature to share a platform.



6. Eclipse Modeling (EMF, GMF…)
Eclipse Helios comes with a big suite of tools for model driven development. An overview of the cool tools is not scope of this post. Here the new feature in the eclipse modeling project I love.

Text Editor for EMF
Now in Helios there is really cool text based editor for EMF models.

 

EMF Tree Editor
There is new generic EMF Tree based editor in Helios with a integrated properties view.


EMF Compare
I cannot remember what I commemorated it there since Galileo, but a played around with the EMF generic model comparing tools and it looks great. You can use the EMF compare tool for all EMF based models also your own models which are based on EMF Ecore.


Eclipse GMF
Cool project I worked a longtime ago with it, when you like to create a graphical DSL this model driven tool is your fist choice I think. GMF provides a model driven approaches to create graphical editors for eclipse, which are based on EMF and GEF.

I don’t have the really review the Helios version, I created a small editor all works but I don’t find new feature compared to Galileo version. But I don’t spend much time in the review. What I can say that the basic functions works fine in RC4. And you can use the new EMF modeling editors to create the models but this not a GMF feature.


7. Eclipse Mylyn
Mylyn is a great eclipse tool for management tasks.



Mylyn WikiText
Mylyn provides now a cool WikiText editor, the editor can be used in Mylyn but also standalone or in any eclipse based application.



8. Eclipse Memory Analyzer
This is cool eclipse plug-in for memory analyzes to find memory bugs.

When you like to use the Eclipse Memory Analyzer the first step is to create a Java heap dump. This can be done when you have a server application over JMX see the screen shot, or over the default Java VM options to create a heap dump (therefore see the Java VM documentation).


When you have a heap dump you open it and then you can analyze the dump with the Eclipse Memory Analyzer. More details see the Memory Analyzer tutorial in eclipse help.





9. EGit
First time in simultaneous release of eclipse a EGit. EGit is GIT SCM integration in eclipse. The basic features are implemented. What is not in EGit 0.8.1 is a team synchronization view, but I hope in version 1.0.0 which comes at the end of the year I think, this is also implemented. I think the EGit developers do a very good job in such a short time such a cool integration respect and thanks.


10. Eclipse WTP
The WTP project provides a huge set of tools for web development specially tools for J2EE web development.

Web Modules 3.0 and JSF 2.0
WTP now supports web modules version 3.0, JSF 2.0 and for e.g. apache tomcat 7.0





Web Deployment Assembly
In the Helios WTP version is now a preference dialog to configure the mappings of the project folder to the deployment structure. That’s a very import feature in Galileo I do this in the project settings files by hand or mvn eclipse does it for me, but there was no dialog for it. This new dialog replaced also the buggy Java EE module dependencies from Galileo dialog.



JSF Facelet Support
The HTML editor supports know JSF Facelet, which are also part of the JSF 2.0 specification. Now the content assist in the HTML can be used to select the JSF components.


XPath 1.0 and 2.0 Processor
Now there is a XPath 1.0 and 2.0 processor in WTP.


11. Remote System Explorer

The remote system explorer brings an eclipse integration for SCP, SSH and other cool tools to manage remote systems. I use the remote system explorer to edit configuration file on remote systems e.g. on the testing environment with my favorite eclipse editors e.g. for XML configuration files. The remote system explorer brings also a set of cool tools to work with your local system.


Local Console Integration
Now there is integration of the local console e.g. bash in the Helios release. In Galieo I need to use for a local consol SSH now I use the bash native cool.


An alternative is to use the local shell feature see the screen shout bellow from the RSE project, but in this shell the TAB feature from the bash do not work. So I'm very happy about the new integration of my local bash in eclipse.