User Tools

Site Tools


Dave Orme muses about agile and functional programming.

My current work emphasizes SOA applications using Scala, Kubernetes, and AWS with a React-based SPA front-end. I'm also interested in progressive web applications and developer tools.


Scala, Clojure, and FP


The Cloud

Data-First Development

Older work

Coconut Palm Software home

Donate Bitcoin:



Kubernetes, Docker, Streaming Data, Spark, Scala, Clojure, OSGi, Karaf, GCP, AWS, SQL


Everything I say here is my own opinion and not necessarily that of my employer.


Review: Contributing to Eclipse

With the pending release of the Eclipse Rich Client Platform (RCP), Contributing to Eclipse; Principles, Patterns, and Plug-ins by Erich Gamma and Kent Beck is now more relevant than ever.

Most technical books are like road maps, showing you the various ways to get to specific destinations, but offering little in the way of guidance about the best route. Contributing to Eclipse; Principles, Patterns, and Plug-ins by Erich Gamma and Kent Beck, on the other hand, is like taking a tour with a professional tour company. They not only have the maps, but they have plotted the most scenic route, and they provide an animated, sometimes humorous narrator to explain to you not only what you are seeing, but why you are seeing it, and a bit about how it got to be that way.

As tour guides, Gamma and Beck are first-class, explaining and describing in elaborate detail (with many helpful illustrations) exactly how to create first-class Eclipse plug-ins, and also explaining why it ought to be that way. Coming from Gamma and Beck, one would also expect the book to include its fair dose of software patterns, and they don't disappoint in this manner either. Yet, unlike other patterns books, I found Contributing to Eclipse to be very understandable, but without sacrificing depth.

The content of Contributing to Eclipse is organized in a series of three concentric circles, each describing Eclipse plug-in development skills at a deeper level than the previous. Each circle describes a further iteration in the development of Eclipse's JUnit plug-in, a professional-quality plug-in that has been included in Eclipse for a long time now.

The first circle walks the reader through basic plug-in development skills, starting with how to navigate the Plug-in Development Environment (PDE) and ending with a simple plug-in that can run unit tests and display results.

The second circle refines this theme by creating an Eclipse View for the test results and includes a tour through a large part of the Eclipse API, adding bits and pieces to the JUnit plug-in at each step. This circle is suitable to use both as a quick-reference to the Eclipse features described as well as functioning well as a part of the overall tutorial.

The last circle is a set of tutorials describing (and a reference to) the most common design patterns that are used in Eclipse. This circle is immensely useful understainding the large vocabulary of terms that are used in the Eclipse source code to describe itself.

If one is looking for a simple road map that just explains the basics of Eclipse development without describing much of the reasoning behind why things are done a certain way, The Java Developer's Guide to Eclipse by Shavor et al is a better resource. If, however, one wants to master Eclipse development and is willing to expend some effort, readers would be hard-pressed to find a better offering than what is presented by Gamma and Beck.

Lastly, while some of the code examples will be dated with the pending release of Eclipse 3.0, the deeper content in this book stands the test of time. This book is still worthy of any serious Java developer's book shelf and should be in the library of every Eclipse plug-in author.


blog/review_contributing_to_eclipse.txt · Last modified: 2014/10/17 22:08 (external edit)