News Eclipse Luna Celebrates a Decade of OSGi and On-Time Delivery
Today, the Eclipse foundation announced the release of Eclipse Luna (4.4), the seventh simultaneous release and ten years to the day since Eclipse 3.0 was released, bringing the highly successful OSGi runtime to a wider audience and setting the platform up to be a rich client platform, not just an eponymous IDE. The Eclipse foundation have also recently published their annual report, along with the results of the 2014 Community Survey.
Several pre-built packages for Eclipse are available for download, which includes Eclipse Standard, C/C++, Java EE and Xtend amongst others. Eclipse is supported on Java 1.6 runtimes, on OSX, Linux and Windows for both 32 and 64 bit architectures.
Eclipse Luna brings many projects together and offers a number of improvements and enhancements for developers and platform users alike. Changes include:
- UX: A new dark theme has been introduced, providing a new dark coloured view of editors, menus and theme bars.
- UX: Line numbers are shown by default in editors, being able to hide the 'quick access' search box and it's now possible to open up the platform's native filesystem explorer through a contextual menu on a resource.
- UX: Editors can now be split vertically or horizontally. Before, it was necessary to have two separate editors for the same file and dock them side-by-side, but now the editor can be split. The split mode also works on tabbed editors, allowing two panes to show different tabs of the underlying source file.
- Java: Java 8 support for JDT and PDE, including refactoring for converting anonymous inner classes to lambda expressions, navigate to the SAM interface implemented by the lambda or method reference.
- Java: The Java 8 compiler can generate method parameter names for .class files, so that calling interactively does not require automatically generated args. The default setting is off.
- Java: Null type annotations with
@NotNullprovided by Java 8, along static checks of potentially dereferenced null expressions. This replaces the previous null declaration annotations (v1) with type declaration annotations (v2). See the compatibility notes for more information.
- Java: Code Recommenders 2.1 has also been released, which includes a new SnipMatch service. Whilst Code Recommenders prompted for the most likely method call, SnipMatch now adds a number of example patterns, gleamed from use across many different projects.
- Plug-ins: For plug-in development, eclipse views can now be contributed as E4 components, which allows the E4 programming model to be used to inject components into an Eclipse runtime. E4 components are decoupled for much of the workbench, and allow required objects and services (including BundleContext) via injection instead of writing service acquisition code. In addition, support for the now decade plus Eclipse 2.0 plugins has been removed (i.e. those without a
META-INF/MANIFEST.MFfile) which has reduced start-up and memory overhead.
- Git: EGit and JGit support have been improved, since almost all the Eclipse projects have migrated to Git, and the Eclipse Community Survey Results show overwhelmingly that developers are moving to Git from Subversion. Additions in this release include the ability to edit, squash and rebase commits from the history view, and SPNEGO support for repository access over HTTP.
The platform has been upgraded to depend on a minimum version of Java 6, and the core OSGi runtime has been upgraded to Release 6, which has recently been released.
As usual, Ian Bull has been giving a run-down on the top ten new and improved Luna features:
As well as the software that Eclipse is well known for, increasingly it is becoming known for the Internet of Things. Included in the Luna simultaneous release are Koneki, a Lua based development environment for embedded devices, and the Paho libraries which provide implementations of protocols in a variety of languages. There's also a sandbox that developers can use to try out the connectivity protocols.
As InfoQ wrote back in 2011 of Ten Years of Eclipse, one of the most impressive achievements has been the regularity of Eclipse releases since it was founded. Once it had moved onto an annual release train, each year a new set of Eclipse components has been delivered on or around June 25th without fail. Eclipse isn't just an IDE – it's proof that a community can grow around open-source software, and deliver repeatable results in an agile manner.
- Eclipse 1.0 – 7 November 2001 (Win32/Linux32 Motif)
- Eclipse 2.0 – 27 June 2002 (Linux32 Motif + GTK, and Solaris/QNX/AIX)
- Eclipse 2.1 – 27 March 2003 (OSX first version)
- Eclipse 3.0 – 25 June 2004 (first OSGi version, based on R3)
- Eclipse 3.1 – 27 June 2005 (first OSGi R4 release)
- Eclipse 3.2 – 29 June 2006 (Callisto)
- Eclipse 3.3 – 25 June 2007 (Europa)
- Eclipse 3.4 – 17 June 2008 (Ganymede)
- Eclipse 3.5 – 11 June 2009 (Galileo)
- Eclipse 3.6 – 8 June 2010 (Helios)
- Eclipse 3.7 – 22 June 2011 (Indigo)
- Eclipse 4.2 – 27 June 2012 (Juno)
- Eclipse 4.3 – 26 June 2013 (Kepler)
- Eclipse 4.4 – 25 June 2014 (Luna)