Think of the Eclipse platform as a house-building kit
The Eclipse platform is a framework for building IDEs, composed of a layer of UI APIs, beginning with the SWT (standard widget toolkit), rising to JFace (which provides more elaborate UI components such as dialogs), and culminating in the Workbench, which is synonymous with the Eclipse UI itself. These make up the large-scale topology of Eclipse; its features are further extended and refined by plug-ins.
Think of the Eclipse platform as a house-building kit that comes with all the materials for the basics: foundation, floors, walls, ceilings, and roof. Eclipse’s plug-ins are the means by which you add the windows, doors, and paint that customize the house.
Eclipse is written in Java, and the plug-ins are Java entities delivered in a .jar (Java Archive) file. The actual connection between a plug-in and Eclipse is described in an XML file. This file carries information such as which other plug-ins this plug-in depends on, which extension point the plug-in connects to (where it hooks into Eclipse), or which classes within the plug-in are associated with each extension point. In short, the XML file defines how the plug-in will be bound to the Eclipse environment.
Each plug-in is stored in its own folder within a special plug-ins directory. When Eclipse starts up, it traverses this directory, reading all the XML files and building an internal registry of all available plug-ins. The plug-ins are not loaded from the start, but are instead loaded only when needed. Once a plug-in is activated, it is never removed.
With this plug-in format, Eclipse 2.1 can deduce how plug-ins are hooked in without having to load any Java code. Consequently, Eclipse launches more quickly than it otherwise would. And because an Eclipse plug-in has no life cycle, you avoid complex life-cycle management issues.
However, because multiple plug-ins can attach to a given extension point, it also means that the first time an action requires one or more plug-ins to be activated, response can be slow as Eclipse activates the series of “attached” plug-ins. In addition, a running Eclipse session will consume more and more memory as plug-ins are loaded over time. Hopefully, the Java VM (virtual machine) garbage collector will mitigate the forever-upward memory usage.
‑ Steve McGarry, Compuware software developer, contributed to this article.
ARM's Mbed OS will be free for use on ARM chips when it's released next year
Google fires back at Microsoft, which last week cut prices of some Azure services
The software you'll install on your PC is an early stage version of the OS that'll have bugs and...
The larger design is very welcome, but there's much more to the iPhone 6 than a bigger screen
Get the scoop on the security threat billed as the biggest since Heartbleed
The company is expected to unveil a preview of the Windows 8 successor on Tuesday
Modularity, JSON, smart compilation -- Java's future offers compelling features to look forward to
Remember that incredibly stupid thing you did a decade or two ago? You wouldn't want to live it down
The reality distortion field wasn’t merely clever PR: Jobs used the three tools of classic rhetoric to
Brick 2.0 creates customizable Web UI elements via features in HTML5