EclipseCon 2007 March 5-8, Santa Clara California

(3626) Eclipse APIs and Java 5

Boris Bokowski (IBM Canada), Jim des Rivieres (IBM), John Arthorne (IBM)

· Short Tutorial

Monday, 08:00, 4 hours 30 minutes | Room 206


Jim des Rivieres

John Arthorne

Good APIs are important. They must be easy to use for clients but also provide enough implementation flexibility, and they must be designed so that they can be evolved over time. More and more Eclipse projects are looking at adopting Java 5 language features such as generics, variable arity methods, enums and covariant return types. How does this affect API design? In this tutorial, we will explain how to design and evolve APIs without breaking client code. Participants will learn how to introduce new language features into their existing APIs, and in particular, when and how to introduce generics while maintaining backwards compatibility. We will also cover new rules for evolving APIs once you start using Java 5 language features. This is an advanced tutorial based on real-life example APIs, and will go into deep technical detail. However, for your entertainment, we will also tell interesting stories from the API trenches.

This is a "double short" tutorial, twice as long as a normal short tutorial, and thus requires two "short tutorial units" when registering. Be sure to register for both part 1 and part 2.

Boris is a software developer with IBM Rational Software, and a committer on the Eclipse Platform UI team. Boris is looking at the UI side of the RCP, and among other areas owns the JFace viewers component. He is also the main architect of the JFace data binding framework. He was a member of the Eclipse Team/CVS team during the 1.0 release cycle and joined the Eclipse team again just before the 3.1 release. In between, he co-founded a company in Germany, and developed an innovative desktop application based on the Eclipse RCP. Boris received his PhD in computer science from Freie Universitaet Berlin.

Jim des Rivieres has been involved with architecture of the Eclipse Platform and JDT infrastructure and the design of the Eclipse APIs. Jim is the former Eclipse articles editor, and co-author of the book "The Art of the Metaobject Protocol". His interests include API design and evolution, programming languages, and digital photography. Jim is a committer on the Eclipse Platform project working for IBM Rational Software in Ottawa.

John Arthorne is a software developer with IBM Rational Software, and has been a committer on the Eclipse project since its inception. He has been a key contributor to many areas of the platform, including the core runtime, resource model, JFace, the platform UI, CVS/Team integration, and the incremental java builder. Most recently he designed and implemented the concurrency API (, and the Eclipse file system API (org.eclipse.core.filesystem). John co-authored "Official Eclipse 3.0 FAQs" in 2004 as part of the Addison-Wesley Eclipse series.

Floor Plan

Gold sponsors

Ingres logo

BEA logo

IBM logo

Business Objects logo

Klocwork logo

Windriver logo

Red Hat logo

Actuate logo

Silver sponsors

Compuware logo

Sybase logo

Google logo






Code Gear




Innoopract logo

Lynux Works

Media sponsors

Eclipse Magazine logo logo

Methods and Tools logo

Eclipsezone logo

Addison-Wesley logo

Eclipse Magazin logo

Embedded Computing logo

SD Times logo

Enterprise Open Source logo

ACM Queue logo

TheServerSide Java Symposium

Eclipse Review logo

Software Test & Performance logo

Eclipse Developers Journal logo

Eclipse Source logo