You are on page 1of 72

A BZ Media Publication

Volume 1 Number 2

Spring 2006 $8.95


www.eclipsereview.com

Callisto:
10 Eclipse Projects
Hit the Streets
Gnireenigne Esrever!
(Reverse Engineering)
Rich Clients, Happy
Users With RCP
John Kellerman On
The History of Eclipse
Editorial Director Vol. 1 ■ No. 2 ■ SPRING 2006
Alan Zeichick
alan@bzmedia.com
+1-650-359-4763

Executive Editor
George Walsh
Cover Illustration by K. Daero
+1-415-731-3843
gwalsh@bzmedia.com

Art Director
LuAnn T. Palazzo
lpalazzo@bzmedia.com

Publisher
Ted Bahr
+1-631-421-4158 x101
FEATURES
“Callisto is an
18
ted@bzmedia.com

Associate Publisher
Charlie Shively
Callisto: Crossing Eclipse’s attempt to avoid
+1-508-893-0736
cshively@bzmedia.com Next Horizon potential problems,
Northeast/Central Sales Manager Barry Burd gives us an inside look at the
U.S./Canada
David Lyman
upcoming Callisto simultaneous release. not an effort to
+1-978-465-2351
dlyman@bzmedia.com

Southeast Sales Manager U.S./Europe


Jonathan Sawyer
+1-603-924-4489
26 Increasing Development
Knowledge with EPFC
create synergy.”

—Barry Burd
jsawyer@bzmedia.com
Peter Haumer tells how the Process Framework Professor, Department
Northwest Sales Manager U.S./Canada of Mathematics and
Paula Miller Composer helps build a development database.
+1-925-831-3803 Computer Science,
pmiller@bzmedia.com

Southwest Sales Manager U.S./Asia


Robin Nakamura
+1-408-445-8154
35 Eclipse RCP: Rich Clients,
Happy Users
Drew University

rnakamura@bzmedia.com
Martin Perez shows that the Rich Client Platform can put a pretty face on
Ad Traffic Manager
Phyllis Oakes applications and add substantial horsepower to the back end.
+1-631-421-4158 x115
poakes@bzmedia.com

Director of Circulation
Agnes Vanek
+1-631-421-4158 x111
avanek@bzmedia.com
41 Gnireenigne Esrever fo Tra Enif Eht
Ali and Navid Mehregani demonstrate the fine art of reverse
Circulation Assistant
engineering—because the best place to start a project is at the end.
Nyla Moshlak
+1-631-421-4158 x124
nmoshlak@bzmedia.com

Director of Events
Donna Esposito
DEPARTMENTS
+1-415-785-3419
desposito@bzmedia.com 7 Context 11 Shoptalk
Director of Editorial Operations As Eclipse evolves, so too will Eclipse board members speak about
David Rubinstein Eclipse Review. challenges the IDE faces going forward.
drubinstein@bzmedia.com

Office Manager/Marketing
Cathy Zimmermann
czimmermann@bzmedia.com
9 Launchpad 13 Projects
The latest tools, technologies and The Business Intelligence and
Article Reprints
Lisa Abelson & Co.
plug-ins for Eclipse developers. Reporting Tools are a framework for
+1-516-379-7097 adding reporting capabilities.

10
labelson@bzmedia.com

Foundation
Customer Service/Subscriptions
service@bzmedia.com
The temperature rises for the big 46 Perspective
BZ Media is an Associate “Callisto” simultaneous release. A look back by John Kellerman,
Member of the Eclipse
a founder of IBM’s Eclipse project.
Foundation, www.eclipse.org

BZ Media LLC | 7 High Street, Suite 407 | Huntington, NY 11743 | +1-631-421-4158 | fax +1-631-421-4130 | www.bzmedia.com | info@bzmedia.com
President | Ted Bahr Executive Vice President | Alan Zeichick
Eclipse Review is published 4 times a year by BZ Media LLC, 7 High Street, Suite 407, Huntington, NY 11743. Periodicals privileges pending at Huntington, NY and additional offices.
POSTMASTER: Send address changes to BZ Media, 7 High Street, Suite 407, Huntington, NY 11743. Ride along is included.
Copyright © 2006 BZ Media LLC. All rights reserved. Eclipse Review is a trademark of BZ Media LLC. Eclipse is a trademark of The Eclipse Foundation.
CONTEXT
From the Editors of Eclipse Review

As Eclipse Evolves, So Too


Will Eclipse Review
The release of a new application is indeed an exciting We’ve also added a new section
event for both the developers who brought it to life and called Foundation, where the Eclipse
Foundation itself provides informa-
the end users who have been waiting for the right tool to increase
tion on what’s new and what to
their productivity. Unfortunately, as all developers know, it’s expect as Eclipse expands its reach.
extremely rare that all of the planned features make it into the In addition, we’ll focus on real-world
debut. To the end user, this looks as though each and every new Eclipse users, tips and tricks and
version of a product has new bells and whistles. What they don’t tools of the trade, and news about
know is that they should have seen them in the previous release. new products and plug-ins. The main
thing that we’re seeking to accom-
And on it goes.
plish is to have you learn something
new with each issue. We don’t want
Community-based open-source plethora of tools, in one fell swoop. it to be a newsletter for corporate
projects, such as those led by the Certainly, other tools will follow, but wags. We want it to serve real devel-
Eclipse Foundation, have additional 10 projects dropping at the same time opers confronting real development
challenges. The committees that is really something that developers issues. We want our experts to show
decide which features make it into the will shout from the hills about—at you things that make your job easier.
final release are reviewed and least those who are waiting for those Just like the release of a software
approved by a much larger committee particular releases to come to light. product, there’s more to come. Some
than they are in a commercial release. Many new projects will be includ- things we’ve held back simply
The end users are all experts in their ed in the release, such as the Data because we had our own deadlines to
field of endeavor and have a say in the Tools Platform and the Graphical meet, our own debugging processes
specs to which the products should Modeling Framework. Other tools, to follow and our own decisions
adhere. Developers are also much less considered in their infancy in previ- about what to keep and what to cut.
forgiving. They want what they need ous releases, include the Web Tools Our process is very similar to yours.
to serve their customers now and Platform, the Visual Editor, Business What it comes down to is this:
sometimes, as they are well aware, Intelligence and Reporting Tools and With Eclipse Review, you have the
that’s just not the way it works. The the Eclipse Modeling Framework. It’s opportunity to be the end user
feature they’ve been waiting for gets very exciting and more is yet to fol- rather than the developer. Tell us
pushed back, leaving them feeling like low, notably the Eclipse Process what you need, your likes and dis-
the last one in line to get on the roller- Framework, discussed by Peter likes and the topics that you’d like
coaster at closing time. Haumer in this issue of Eclipse to read about. Our e-mail addresses
The Eclipse world is also compart- Review (page 26). are in the masthead next to the
mentalized. A revision of the IDE Table of Contents, and feedback—
itself is typically released first, along PARALLEL PROCESSING both positive and negative—can
with some essential tools projects. Expect the same type of growth from only make our next release a better
This is followed in incremental post Eclipse Review. You’ll hear from more and more user friendly product.
releases by the additional projects experts, including all of our feature Because we know a lot about the
that rely upon the IDE. That’s why writers this month. IBM’s Eclipse evan- open-source community, we literally
everyone is so excited about the gelist, John Kellerman, who’s been a expect your feedback. It’s what we
upcoming Eclipse 3.2 “Callisto” part of the project since before it was want and what we hope you’ll pro-
simultaneous release. It seeks to turn released to the open source communi- vide. Bring it on.
loose the base IDE, along with a ty, also honors us with an appearance. —George Walsh, Executive Editor

Spring 2006 www.eclipsereview.com | 7


Remember when
the sky was the limit?
With Intel® Software Development Products, the Swinburne Center for
$VWURSK\VLFVLVVKRZLQJWRGD\·VNLGVDXQLYHUVHÀOOHGZLWKXQOLPLWHGSRVVLELOLWLHV

THREADED APPLICATIONS HELP UNRAVEL THE ORIGINS OF THE UNIVERSE.


Take advantage of the power behind multi-core processors by introducing threading to your
applications. Threading allows you to use hardware parallelism to improve application speeds.
Intel® Software Development Products are on the leading edge of threading technology, giving
you the opportunity to discover the performance potential you need. So whether you create
applications that model the solar system or enable a gaming system, Intel Software Development Products
give your applications the power of parallelism.

Visit www.intel.com/software/products/eclipse for more information.

©
Copyright Intel Corporation, 2006. All rights reserved. Intel, the Intel logo, are trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and
brands may be claimed as the property of others.
LAUNCHPAD
The Latest Tools and Technologies

Eclipse Plug-In Central Is One- SilkTest Update Focuses On


Stop Resource For Tools, Services Mark Your Calendars For Testing Eclipse Applications
The word “epic” might describe EPIC, The Big Eclipse Conferences! When Borland Software purchased
the Eclipse Plug-In Central resource EclipseWorld Segue Software earlier this year, a
that’s now being managed by the Sept. 6-8, 2006 crown jewel added to Borland’s appli-
Eclipse Foundation. Originally Boston, Mass. cation life cycle management family
launched in 2004 by the EPIC www.eclipseworld.net was Segue’s SilkTest functional tester.
Alliance of Genuitec, Innoopract and Now, Borland has released SilkTest
Instantiations, the three companies EclipseCon 8.0, with new capabilities for the
have now contributed EPIC to the Mar. 5-8, 2007 automated testing of Eclipse 3.0 and
Foundation to help promote and grow Santa Clara, Calif. 3.1 applications, leveraging either the
the overall Eclipse ecosystem. As of www.eclipsecon.org standard Eclipse framework or the
late May, there were 544 plug-ins list- Eclipse Rich Client Platform. In addi-
ed on EPIC, with the greatest number based on templates, search on con- tion, SilkTest 8.0 includes new sup-
being for the Eclipse IDE itself, cod- tent, add comments, categorize the port for testing applications running
ing, editing, database development, information and more. jLibrary, in the Firefox 1.5 browser on
languages, testing, team development, which was built using the Eclipse Windows, as well as Internet Explorer
Web development and rich client Rich Client Platform, is multiplatform, 7 and .NET 2.0. The functional tester
applications. so you can run the client and the integrates with Borland’s SilkCentral
www.eclipseplugincentral.com server in both Windows and Linux. Test Manager for process-oriented test
jLibrary can also use Web services to management, including requirements
WorkSpace Focuses on Services boost interoperability between the verification and validation, test execu-
Development, Orchestration platform and different development tion scheduling and reporting capabil-
The newest version of Sybase and runtime environments. ities. SilkTest also integrates with
WorkSpace, a commercial Eclipse- jlibrary.sourceforge.net SilkCentral Issue Manager for work-
based integrated development envi- flow-oriented defect management.
ronment, combines data develop- Workshop Studio Adds Eclipse www.borland.com/us/products/silk
ment, Web applications, SOA develop- IDE Framework and Tools
ment and mobile development with BEA Systems has released a beta of The Judges Have Chosen:
enterprise modeling. Version 1.5, Workshop Studio 9.2, an Eclipse- Eclipse Community Awards
expected to be generally available this based IDE that helps you and your At EclipseCon 2006, the Eclipse
month, adds a new Web development team build sophisticated Web applica- Foundation honored three individuals
component, improved features for tions based on JSF, EJB3, JSP, Spring, for their contributions to the Eclipse
database development and tools for Hibernate, Struts and Tiles. Workshop community and five products that
packaging and licensing the complet- Studio includes WYSIWYG editors demonstrate excellence either as
ed application. The new Web applica- and BEA's AppXRay technology, developer tools or as RCP applica-
tion development tooling combines which provides a deep level of under- tions. The winners were:
JavaServer Faces with Sybase’s standing of the Web application as a Top Contributor: Linda Watson, IBM
DataWindow technology, enabling whole. This lets the software assist Top Committer: Alain Magloire, QNX
developers to reduce the complexity with code completion, consistency Top Ambassador: Ed Burnette, SAS
of designing sophisticated Web appli- checking with generated classes, con- Best open source RCP app: Gumtree.
cations. figuration files or annotations, pre- Best commercial RCP application:
www.sybase.com/workspace build error checking and validation. Lombardi Teamworks.
The latest release now includes anno- Best open source developer tool:
jLibrary Manages Enterprise tation driven EJB3 tools, and bundles RadRails
Documents Using Eclipse RCP the Spring IDE Project for Spring Best commercial developer tool:
With jLibrary, you can classify your Bean development. The 9.2 beta also BEA Workshop Studio 3.0
documents, videos, or any other adds a JSP previewer with no server Best deployment of Eclipse technol-
media type—and you can export running. ogy in an enterprise: Compass
those contents to static Web pages www.bea.com/workshop Group (Pty) Ltd & Jigsaw Interactive.

Spring 2006 www.eclipsereview.com | 9


FOUNDATION
From the Eclipse Foundation

Callisto: Temperature Rises


for New Eclipse Release
The big news for the Eclipse community is the upcoming traditional commercial products.
Callisto simultaneous release. At the end of June, 10 The nature of Eclipse is innovative.
While the base technology is open, the
Eclipse projects will be coming forth all on the same day. We are
ability for companies to contribute
calling this release train “Callisto,” in reference to one of the their own individual products and
moons of Jupiter. The projects included in the Callisto coordinated services leaves room for profit. Eclipse
release include BIRT, CDT, DTP, EMF, GEF, GMF, Eclipse Platform opens up a whole new world to users
(SDK), TPTP, WTP and VE. and vendors alike. Pick and choose
among the new technologies or ignore
The goal of Callisto is to help remove Convention Center, as it was this them completely and go your own
the latency between project releases year. You may want to consider book- way. With Eclipse, the choice is yours.
and make it easier for ISVs and enter- ing the dates now. In the meantime,
prises to use multiple Eclipse projects if you are looking to attend an Eclipse PROJECT UPDATES TABLE
in developing their applications. In conference, don’t forget the BZ Media Here is a summary of project reviews
previous release cycles, the Eclipse EclipseWorld conference, September that have arisen so far in 2006. We
SDK would be released first, followed 6-8, 2006 in Boston. hope to make this a regular feature of
by individual projects one to two this column. It is based on the RSS
months later. If your application NEW TOP LEVEL feed at http://www.eclipse.org/
depended on Eclipse RCP, EMF and MODELING PROJECT projects/reviews-rss.php
BIRT, you might have to wait two The Eclipse Board of Directors has
months before you could begin using approved the creation of a new top-
the new versions of Eclipse projects level project, called the Eclipse Project Updates Table
needed by your product or application. Modeling Project. This new project will Project Review
It should be noted that Callisto is consolidate all of the various modeling Date
Process Framework (Beacon) Project Created Jan. 06
not a merger of the 10 projects. Each projects from the Tools and Technology SOA Tools Top-Level Project Created and Provisioned Jan. 13
project still has its own project plan, PMC into one. This will allow the Java Workflow Toolbox Proposal Updated Jan. 19
project leadership and developer Eclipse community to better plan and CME - Concern Manipulation Environment
Project Archived Jan. 26
community. This allows each project implement a strategy and vision for Mobile Tools for Java Project Created and Provisioned Feb. 2
to maintain independence while pro- modeling-related frameworks and Data Tools Project (DTP) 0.7 Release Approved Mar. 8
viding even better support to the tools. The new project will be led by Native Application Builder (eWideStudio) Project
Created and Provisioned Mar. 12
overall Eclipse community. We hope Richard Gronback of Borland and Rich AJAX Platform (RAP) Proposal Posted Mar. 15
you will agree. IBM’s Ed Merks. EMF, EMFT, GMF, Enterprise Component Framework Proposal Updated Mar. 16
Eclipse PHP Integrated Development Environment
UML2, GMT and MDDi will all be Project Created and Provisioned Mar. 29
ECLIPSECON 2006 included in the new project. AJAX Toolkit Framework (ATF) Project Created
and Provisioned Apr. 4
We received tremendous feedback on As the Eclipse community grows, ECM Rich Client Platform (Apogee) Proposal
EclipseCon 2006. It is always gratifying so does its support and popularity. Updated Apr. 6
Tools Services Framework (Corona) Project Created
to experience the buzz and excitement While many outsiders believe that and Provisioned Apr. 12
at this annual event. The combination this is due to the viral nature of Supplement Widgets for SWT (Nebula) Project
Created and Provisioned Apr. 12
of strong technical sessions and lots of open-source software and an inex- Voice Tools Project (VTP) 1.0 Release Approved Apr. 19
time for the informal exchange of pensive route to development, insid- Callisto Simultaneous Release Review Apr. 19
ideas seems to be a winning strategy. ers know that it is quickly becoming Modeling Top-Level Project Approved Apr. 19
Dali Move Release Review May 24
Next year, EclipseCon will be held an industrial strength IDE that is
March 5-8, 2007 in the Santa Clara well on its way to competing with

10 | ECLIPSE REVIEW Spring 2006


SHOPTALK
Applications in the Real World

The View From the Board


| by Jennifer deJong

The Eclipse Foundation is a force to be reckoned with. ects for embedded, C/C++ and
rich client development—most of its
Two-plus years after it was spun off from IBM, the not-
users today are working with Java,
for-profit organization boasts more than 120 members. Millions of said Jonathan Khazam, vice presi-
developers have downloaded software from the open-source frame- dent and general manager for the
work, which hosts nine top-level projects and about 50 subprojects. platform software division at Intel.
What’s more, some tool makers, such as BEA, Borland, The non-Java camp must grow to
Instantiations and SAP have scrapped their proprietary tools plat- include an increasing number of dif-
ferent languages and device targets,
forms, opting to base their commercial offerings on Eclipse’s open-
he says. And, while applications for
source projects. Windows dominate what’s devel-
oped on Eclipse today, “over time
All this has come easily, and quite it work with more members, more we will see Linux, too,” he adds. A
quickly, to Eclipse. While the Found- projects? That is the challenge.” strategic developer and founding
ation and its members are obviously member of the Eclipse Foundation,
proud of their success, it’s likely that NOT JUST JAVA DEVELOPERS Intel heads the Test & Performance
the hardest work lies ahead. Eclipse An ongoing, and frustrating, challenge Tools Platform top-level project.
Review recently asked four Eclipse is getting past the perception that Also underway is an effort to
members, who hold seats on its Eclipse is an IDE for Java developers. attract a following that includes not
board of directors, to characterize the While Eclipse is obviously more just developers but other profession-
key challenges the Foundation faces than that—it hosts a handful of proj- als who work within the broader IT
going forward. Several themes arena. “Eclipse must deliver more
emerged. tools for architects, testers and opera-
• Eclipse must move beyond the The 2006 Eclipse Foundation tions managers, in addition to coders,”
perception that the framework is Board of Directors said Paul Czarnik, vice president of
an IDE for Java developers, architecture for Compuware. And, to
becoming a contender in appli- Michael Bechauf, SAP more accurately reflect the needs of
Ed Cobb, BEA
cation life-cycle management, its users, Eclipse must attract Fortune
Mark Coggins, Actuate
among other markets. Paul Czarnik, Compuware 500 companies as members. “[Tool
• The Foundation must remain Tomas Evensen, Wind River makers] bring the requirements of
true to its open-source roots, Sam Greenblatt, CA their customers to the table today,”
while also enabling members to Andi Gutmans, Zend he said. “But the direct involvement
Boris Kapitanski, Serena
make money selling Eclipse- of those customers will strengthen
Jonathan Khazam, Intel
based tools. Heikki Koivu, Nokia the organization.”
• The Eclipse framework must Jochen Krause, Innoopract Compuware joined Eclipse as a
remain competitive with Howard H. Lewis, SlickEdit strategic developer in 2005, and
Microsoft’s Visual Studio devel- Scott Lewis, Composent heads the recently launched Tools
Philip Ma, Hewlett-Packard
opment environment. Service Framework project, known as
Kai-Uwe Maetzel, IBM
• The board must ensure that it Jeff McAffer, IBM Corona. As a project that will enable
has the right processes in place Eric Newcomer, Iona Eclipse tools to share event data, the
to accomplish these goals Michael Norman, Scapa success of Corona is crucial. So too is
efficiently. Raaj Shinde, Borland the Application Lifecycle Framework,
Mike Taylor, Instantiations
“How do we manage and succeed which will enable life-cycle tools from
Dave Thomson, IBM
in the high-growth environment we David Tong, Sybase different vendors to share data.
have created?” asked Instantiations’ Tim Wagner, BEA “Customers are asking how they can
CEO Mike Taylor, recently elected to Todd Williams, Genuitec leverage the tools that already have,”
the Eclipse board. “How do we make Czarnik notes.

Spring 2006 www.eclipsereview.com | 11


SHOPTALK

PROFITS FOR ADD-IN Khazam. To do that, Eclipse must right,’” said Wagner. But the com-
PROVIDERS continue to be seen as a focal point mitter has an entirely different view.
For many developers and consumers, for innovation. He wants to get on with his job.
the term “open source” is synony- Committers—essentially open- Defining how Eclipse processes
mous with “free software.” But source project leaders that con- work and fine-tuning them to meet
Eclipse has a second, equally impor- tribute code—are interested in two the needs of all involved parties will
tant goal to provide. It’s what Taylor things, said Wagner: high-quality challenge Eclipse as it continues to
calls a “platform for profitability.” code and flexible processes. Their grow, Wagner said. “The organiza-
It sounds contradictory, but it interests are typically shared by the tion can no longer depend on its
works like this: Software makers Eclipse community as a whole, but collective oral history to ensure
donate code to Eclipse projects, while their needs are occasionally at odds guidelines are properly adhered to.
also holding back code to incorporate Guidelines that spell out, for exam-
in their commercial offerings, ple, how a project proceeds through
designed to plug into the Eclipse Eclipse At-A-Glance release reviews, are published
framework. “We make profits by today,” he said. But they need to be
History: IBM released the Eclipse platform into open
adding value on top of Eclipse,” said source, and then formed the Eclipse.org Board of continually fleshed out.
Taylor, speaking not just for Stewards in November 2001. In February 2004, Eclipse
Instantiations, but also for the nearly was reorganized into a not-for-profit corporation, estab- COMPETING WITH THE
100 add-in providers that are a part of lishing a full-time management organization and a board BIG GORILLA
of directors to govern the Foundation.
the Eclipse effort. A maker of refac- What about Sun Microsystems, which
toring, GUI-building and other Java Membership: Over 120 companies not only administers the Java
tools, Instantiations committed to Community Process, but also owns
Classes of Membership:
basing its offerings on Eclipse back in the NetBeans, an open-source Java
Strategic Members: Hold seats on the board of direc-
2003, when the open-source frame- tors, invest developer and financial resources to further IDE that competes directly against
work was still run by IBM. the Eclipse technology. Eclipse? The Board sees NetBeans as
All members face the question of healthy competition but also reiterat-
Add-In Providers: Add to Eclipse code base or build
where to donate, where to leverage tools that run on top of it, and contribute annual dues. ed its invitation for Sun to join
and where to compete, said Tim Group elects two representatives to the board of direc- Eclipse. “We tried to get Sun to come
Wagner, a director of engineering for tors. over. But they view themselves as the
BEA. “With the Web Tools Platform custodians of Java, and they have
Open-Source Project Leaders (also called commit-
project [which Wagner manages] we ters): Elected by their peers, based on contributions to their own pathway,” said Taylor.
drew a line in the sand, deciding to the Eclipse code base. Group elects two representatives But the real competitive pressure
work on standards-based tools.” That to the board of directors. Eclipse faces isn’t emanating from
left room for software makers to Associate Members: Not-for-profit organizations, Sun. “Microsoft is the big gorilla on
build commercial tools that plug into standards bodies, universities, research institutes or the development block,” he said.
the Web Tools framework, he publishers that participate in the development of the “The installed base of Eclipse users
explained. Eclipse ecosystem. is coming up fast. But Visual Studio
“The board said ‘let’s make a big Budget for 2006: US$6 million has twice as many developers.”
sandbox—but not so big that it hurts Wagner said Microsoft doesn’t
the commercial side,’ ” said Wagner, Number of Projects: 9 top-level, and over 50 sub- understand Eclipse, and that gives
recently elected to the Eclipse board projects Eclipse the advantage. “But when C#
as a committer representative. Estimated number of Eclipse users: 2 million tools show up in Eclipse, they will,”
Taking that approach is essential Source: The Eclipse Foundation he said. Whether or not that hap-
to the health of the Eclipse ecosys- pens, Microsoft isn’t going away.
tem, said Intel’s Khazam. “If the “They will be around for a long
line between exemplary tools and with those of member companies. time. Their development environ-
commercial products becomes too When committers want to distrib- ment is very good,” and so is ours,
blurred, some [member] companies ute an Apache library as part of a said Khazam. “I think we will see
will begin to back out.” code base, for example, they have to some cross-learning between [Visual
wait for the Eclipse Foundation to Studio and Eclipse],” he said.
KEEPING COMMITTERS AND grant permission. For example, a Libraries and APIs will eventually
PROCESSES STRONG minor revision can take a few enable the development of tools that
Another challenge is making sure weeks, and changes at the source plug into either environment. “It’s
“Eclipse has a strong stream of com- code level can take months. “A just a matter of time.”
mitters, contributing code back to member company says, ‘take as Jennifer deJong is senior editor of BZ
the open-source projects,” said much time as you need to a get it Media’s SD Times.

12 | ECLIPSE REVIEW Spring 2006


PROJECTS

Business Intelligence And


Fundamentals of the Platform | by Krishna Venkatraman and Jason Weathersby

Reporting Tools
The Eclipse Business Intelligence and Reporting Tools is displayed based on user input.
project provides you with a reporting framework for Prior to BIRT 2.0, end users typed in
a value for the parameter. This
adding sophisticated Web and PDF-based reporting capabilities to
method is prone to errors because
your applications without resorting to hand-coding. These reports users can mistype an input value.
can access numerous types of data sources and deliver information Additionally, if the input value
in a variety of popular formats. doesn’t match the data in the report,
users get frustrated as they attempt
BIRT includes an Eclipse-based parameters that vastly improve the to guess the appropriate values to
report designer, which provides usability of BIRT reports for the end supply. In essence, users want the
drag-and-drop capabilities to quickly user. You can customize a report ability to select a value for a report
design reports. The report designer using dynamic and cascading report parameter from a list of actual data
uses the report design engine to pro- parameters. With a report parameter, values in the data set. Dynamic and
duce XML report design files. These you can migrate BIRT reports from a cascading report parameters address
report designs files are fed to the these pain points.
BIRT report engine, which fetches Consider a customer listing report
the appropriate data at runtime Figure 1 The report layout for Classic Models, Inc.’s (CMI)
using queries defined at design time. national sales directors. CMI is a fic-
BIRT 2.0 was completed in titious retailer of scale model classic
January 2006, and this version cars and other vehicles, and this
contains 36 features that fit four report provides the name and con-
main themes, making BIRT simpler tact information for all CMI cus-
to use than the original release. tomers in tabular form. Perhaps the
BIRT 2.0 also vastly expands the sales directors would only like to
scalability of reports both in terms view information about customers
of the size of the data sets handled located in their particular country.
as well as the number of simultane- We need a way to specify the coun-
ous users viewing reports, appealing try as a report parameter. We also
to a broader community by provid- need to let the sales directors select
ing numerous additional types of a country from the list of countries
reports, and extending BIRT by pro- stored in the customer database
viding additional data sources such development to a production envi- instead if having to type it in. The
as XML. ronment. You can also use a report report should then display informa-
In this project overview, we’ll dis- parameter to change the query for a tion about all the customers in the
cuss the various uses of report data set at runtime if it fetches data specified country.
from a Java Database Connectivity The report layout, as shown in
Krishna Venkatraman is a senior product (JDBC) data source. Figure 1, consists of a grid for the
manager at Actuate where he focuses on
product management activities around the
report header and a table that lists
BIRT project. CUSTOMIZING REPORTS all customer information. The data
A report parameter is an important source for the report is the Derby-
Jason Weathersby is the BIRT evangelist method of allowing the report end based sample database provided
at Actuate and is a member of the Eclipse user to customize the report. It with the BIRT distribution. The data
BIRT Project Management Committee.
works by constraining the data that set for the table is called

Spring 2006 www.eclipsereview.com | 13


PROJECTS

set that fetches country and the data set parameter.


Figure 2 Choosing the options for a static report the countries in The “?” character represents a data
the database. set parameter. The data set editor
Pressing the automatically recognizes that a data
Create New but- set parameter has been defined. You
ton brings up have to specify a default value for
the New Data the data set parameter as shown in
Set dialog. The Figure 4. To bind the report parame-
query for the ter to the data set parameter, select
CountriesList the table that displays the customer
data set simply information. Select the Binding tab
selects the coun- and map the report parameter to the
try from the data set parameter.
Customer table. We are now ready to preview the
CustomersList. In the report parameter definition report. Specify the country in the
To define a dynamic report dialog, shown in Figure 3, select the report parameter dialog by selecting
parameter, you create a new report column COUNTRY for both the a country from the drop down list,
parameter by clicking the right Value Column and Display Text. say “USA.” The resulting report lists
mouse button over Report Parameter Make sure that the check boxes for all customers in the USA. Using a
in the Data Explorer view and “Allow null value” and “Allow blank dynamic parameter, the USA sales
selecting New Parameter. This brings values” are not selected to ensure director can view just the customers
up the New Report Parameter dia- that the end user is required to pro- located in the United States.
log. Name the parameter Country vide a value for the report parame-
and specify the prompt text that is ter. Check the box for “Sort alpha- FROM DEVELOPMENT TO
displayed when the user runs the betically when prompting” which PRODUCTION
report. Select String as the data type alphabetically sorts the list of coun- An important task during the report
of the parameter (your choices are tries in the parameter list of values. development and deployment lifecy-
Boolean, Date Time, Decimal, Float, The last task in defining the cle is the migration of BIRT reports
and String). dynamic parameter is to bind the that have been tested in a develop-
You have two choices for the report parameter to the ‘Customers ment environment to a production
values that the report parameter List’ data set that lists all the cus- environment. Prior to BIRT 2.0, you
can take. A static report parameter tomers. This requires two steps. had two choices for accomplishing
requires that the report developer First, you have to define a data set this task. First, you could change
store values to choose from in the parameter. Second, you have to bind the connection information from the
definition of the report parameter or the report parameter to the data set test to the production server within
that the end user types in a value if parameter. To add a data set param- the report design.
the display type is Text Box, as eter, modify the query statement to Alternately, you could create an
shown in Figure 2. If the parameter include a data set parameter. The event handler using JavaScript with-
is dynamic, then the values to WHERE clause limits the records to in the report design to automatically
choose from are fetched from a data ones with matching values for the switch between the two environ-
set. These values are then ments. Application admin-
displayed as a drop-down istrators typically require
list so that the user can
Figure 3 The report parameter definition dialog that no updates be made
select a value. when deploying applica-
Since we want to let the tions to production servers,
user select a country from hence ruling out using the
a list of values in the data first method. Creating an
set, select List Box for the event handler using
Display Type and click on JavaScript, while very pow-
the Dynamic radio button erful, requires additional
for the List of Value. You skill sets.
are then required to specify In BIRT 2.0 you can
a data set from which to migrate reports using a
fetch the countries where report parameter and the
customers are located. We data source property bind-
will need to define a data ing editor. For example,

14 | ECLIPSE REVIEW Spring 2006


PROJECTS

Box into which the end user types a


An important task during the report development and comma separated list of order num-
bers. Second, double-click on the data
deployment lifecycle is the migration of BIRT reports set in the Data Explorer view and
select Property Binding in the panel
that have been tested in a development environment on the left-hand side. You can modify

to a production environment. the Query property by appending a


list of order numbers to the query
with an IN clause. In this example,
perhaps you’re using MySQL data- want to be able to change the actual the user specifies order numbers in
base instances for your development SQL statement that is executed in a the Orderlist report parameter. When
and production environments. First, data set based on user input. As an the query is run, only orders whose
open a BIRT report design and cre- example, consider an order report numbers were specified by the user
ate a report parameter named that lists all the orders placed by will appear in the report.
Server. The user can opt to run the customers.
report against a production or a Instead of view-
Figure 4 Specifying a default value for the data set parameter in
development server. ing all orders,
the data set editor
Next, double click on the data you may want to
source in the Data Explorer view, be able to speci-
and select Property Binding, as fy a list of order
shown in Figure 5. Note that the numbers and
JDBC Driver Class, URL, User Name view order infor-
and Password can all be configured. mation for just
Click on the ellipsis (…) button next those orders.
to the JDBC Driver URL. This brings You can accom-
up the BIRT Expression Builder, plish this using a
which allows you to enter JavaScript text type report
code. You can specify conditional parameter and
logic, use native JavaScript func- the data set
tions and BIRT defined functions. property binding
You can also access report parame- editor.
ters, report data and Java Objects. For JDBC data sources, this Developing reporting functionality
In your report, first check if the allows the query that is executed in for Java applications can be an
Server parameter is set to point to a data set to be changed dynamical- arduous task if undertaken without
the production sufficient thought given to selecting
server. If it is, the right framework, because report-
set the JDBC
Figure 5 The Property Binding field lets you configure the JDBC ing requirements often quickly
URL to point to
Driver Class, URL, User Name and Password extend far beyond the original
the production design goals or requirements.
instance of a
MySQL database BRINGING PAPERWORK INTO
server: THE 21ST CENTURY
jdbc:mysql Eclipse’s BIRT project has evolved
://localhost nicely with the 2.0 release providing
/production. If it a large set of features that improve
is set to point to its usability, scalability and extensi-
the development bility while appealing to a wider
server, we set the JDBC URL to ly. For example, assume that the audience. It is an open framework
point to the development instance of report relies on a data set that uses with sufficient functionality to han-
a MySQL database server: the query, SELECT * FROM dle a large variety of reports. Using
jdbc:mysql://localhost/development. ORDERS. To only fetch the order report parameters in BIRT 2.0 you
When the report is deployed, set the numbers specified by the end user, can customize a report, execute a
“Server parameter to true” and the you will need to append an IN report against a production environ-
report will automatically run against clause to the query statement. ment and change the actual query
the production database server. First, define a report parameter underlying a JDBC based data
There are situations where you called OrderList of display type Text source.

Spring 2006 www.eclipsereview.com | 15


ACTUATE TAKES BIRT
TO THE NEXT LEVEL
B
usiness intelligence and data reporting are key Reports can be simple listings, or they can include
functions of many enterprise and commercial highly complex grouping and organizing of related data
applications, and until now, they’ve generally with aggregations and calculations such as percentage of
been expensive functions to implement. The BIRT (Busi- total. BIRT also provides support for a rich set of charts
ness Intelligence and Reporting Tools) project hopes to and dials for visualizing data. Compound reports can
change that, thanks in large part to the efforts of Actuate. combine many different formats into a single document.
“Reporting is an important part of nearly every enter- If business-specific logic is required to convert raw
prise application,” says Paul Clenahan, vice president of data into useful information for the
product management for Actuate (www.actuate.com user, it can be implemented using
/birt). “We offer technology and products that allow BIRT’s JavaScript support. If the appli-
Java developers using the Eclipse IDE to incorporate cation already contains the logic, a call
reporting as can be made into existing Java code.
a part of Databases, Web services and Java
their appli- objects can supply data to a BIRT report.
cations.” BIRT’s Open Data Access (ODA) frame-
In the Eclipse ecosystem, Actuate is the strategic work also allows developers to build
developer behind BIRT, and the company’s technology new UI and runtime support for specif-
is available in both open source form and as a commer- ic application data sources.
cial project, Clenahan explains. “We work with others The company’s commercial product, PAUL CLENAHAN
Vice President of Product
in the Eclipse community to build the core functional- Actuate BIRT, builds on the open source
ity behind BIRT, then build on it a commercial level software by providing a one-button Management
with features and services.” installer for setting up the Actuate BIRT
Actuate specializes in the business intelligence mar- Report Designer Pro and SDK; a commercial software
ket, with a focus on enterprise reporting. The South San license with indemnification; and regular maintenance
Francisco, Calif.-based company’s products are used to with bug fixes and improvements. Actuate also offers
report on data in many operational and data warehouse extensive technical support that includes e-mail and
applications, including financial, CRM, sales, billing phone support, release alerts, access to downloads and
and performance measurement systems. knowledge bases, bug logs and forums. The company al-
The open source version of BIRT (www.eclipse.org so offers training and application development services.
/birt) is an Eclipse-based reporting system for Web Clenahan is clearly excited about BIRT and is a firm
applications, especially those believer in the workings of an
based on Java and J2EE. BIRT Excel Functionality With open source community.
has two main components: a e.Spreadsheet “While the BIRT project is
report designer based on relatively new, it has been im-
Actuate offers another product for developers who
Eclipse, and a runtime com- want to integrate Excel functionality into their pressive how quickly a com-
ponent that can be added to applications. The e.Spreadsheet Engine is a Pure munity has emerged.
an application server. Java Excel-compatible product for embedding Developers are leveraging
Designing a BIRT report is spreadsheet-based functionality into Java and J2EE BIRT to incorporate rich,
applications, Java Server Pages, servlets or EJBs.
very much like designing a high-value reporting in their
e.Spreadsheet is based around a collection of Java
Web page, with a design APIs that integrate with the development environ- applications.”
metaphor that is familiar to ment and application server platform. Indeed, he touts BIRT is an
anyone who has used Web example of the best of what
e.Spreadsheet Designer, an essential part of the
page design tools. Yet BIRT e.Spreadsheet software, can be used to visually open source software develop-
adds a rich set of capabilities build Excel templates that are merged with ment can achieve. “BIRT is
for creating reports that goes dynamic data at runtime to deliver Excel reports. very exciting, and it’s very dif-
far beyond Web page design “Many reports are delivered as Web pages,” ferent from other reporting
Clenahan says. “However, sometimes customers
tools. BIRT reports can pres- tools. Not only does it offer
want to see data in a spreadsheet format.
ent data sorted, summarized, e.Spreadheet technology allows developers to ease of use and flexibility, but
filtered and grouped to fit the build applications that output .xls files that can be it’s a very robust and profes-
end user’s needs. opened by Excel.” sional reporting solution.”

SPONSORED WHITE PAPER


An Inside Look at the Callisto Release

Callisto: Crossing
Eclipse’s Next Horizon
n
Callisto (ka-lis’-toh) n. 1. The second largest moon of
BY BARRY BURD
Jupiter, with many craters, no mountains and a sur-
face temperature of -250 degrees Fahrenheit. Not a
release candidates in the projects pass muster, Callisto’s
place you’d want to visit. 2. In Greek mythology, one 10 projects will hit the streets at the same time.
of Zeus’s lovers. Eventually turned into Ursa Major Some observers are confused about the scope of the
(the big bear in the sky). 3. An effort of the Eclipse Callisto effort. An official Web page describing Callisto
(http://www.eclipse.org/projects/callisto.php) says:
Foundation. The release of updates to ten projects, all “While Callisto is about the simultaneous release of ten
on the same day in June. projects, it is not a unification of the projects—each proj-
ect remains a separate open source project operating with
its own project leadership, its own committers, and its

V
ersioning can be a stumbling block for anyone in IT. own project plan.”
Which version of X goes with which version of Y? If Callisto is an attempt to avoid potential problems, not
you’re confused about that sometimes—especially an effort to create synergy. The 10 projects in the
when integrating different parts of Eclipse—you’re not Callisto orbit have an agreement to cooperate, but
alone. That’s why we have Callisto—the simultaneous there's no requirement that each project capitalize on
release of ten updates to different Eclipse projects, all the work of the other projects. To paraphrase Bjorn
designed and tested to work with one another. Freeman-Benson, technical director of open-source
As you probably know, the Eclipse Foundation gives its process and infrastructure for the Eclipse Foundation,
project teams plenty of autonomy. Teams set their own “We’re not insisting that the C++ and Java projects use
timetables—and that means that the development and the same internal model for programs. Having projects
release times for the projects can be staggered and unsyn- call a public API is a really good idea. But Callisto
chronized, leading to confusion and integration problems involves no such requirement. In this first-ever effort to
for project users. coordinate the release of our projects, we didn’t think
Last June, Release 3.1 of the Eclipse Project (the we could achieve that level of integration.”
main integrated development environment) came out.
Very close to that June date (both before and after) THE TEN CALLISTO PROJECTS
some other Eclipse Foundation projects released major Table 1 lists Callisto’s 10 projects. The table’s first row
updates. The various release dates occurred close to one calls attention to a strange naming convention. For exam-
another, but not close enough to make the versioning ple, one (not all) of the Foundation's projects is called the
problem easy. Eclipse Project. This Eclipse Project (with the Eclipse
To address that problem, last year members of the Platform and Java Development Tools subprojects) is the
Foundation initiated the Callisto Simultaneous Release. Barry Burd is a professor in the Department of Mathematics and
With the Callisto plan, 10 major projects would release Computer Science at Drew University in Madison, NJ. When he's not
new versions of their software, all on the same day in lecturing at Drew University, Dr. Burd leads training courses for pro-
June 2006. The exact date in June depends on the suc- fessional programmers in business and industry. He has lectured at
cess of the projects’ release candidates. Each of the 10 conferences in America, Europe, Australia and Asia. He is the author
projects’ RC5 will appear by Tuesday, June 20, and RC6 is of several articles and books, including Java 2 For Dummies and
Eclipse For Dummies, both published by John Wiley & Sons.
expected on Wednesday, June 28. As soon as all of the

Spring 2006 www.eclipsereview.com | 19


Callisto

bread and butter of the endeavor. It’s the Eclipse cations including, but not limited to, computer
Foundation’s flagship effort. Many people simply call it programming IDEs.
“Eclipse.” But the Eclipse Foundation's work includes • Broad appeal: Expanding Eclipse's reach to new
many other projects, and nine of these other projects are operating systems, new vertical markets, and other
part of the Callisto Simultaneous Release. open source communities.
Each of the 10 Callisto projects has its own develop-
ment plan. The plans range from modest to very elabo- WHAT'S NEW IN ECLIPSE 3.2
rate. Version 1.0 releases of the Data Tools Platform and There are nearly two hundred changes and new features
the Graphical Modeling Framework are especially ambi- in the Eclipse IDE, such as a new heap status indicator. As
you run a program, the
Figure 1 Eclipse 3.2’s new Clean Up wizard indicator tells you what
percentage of the heap is in
use by your application. By
default, this indicator lives
on the workbench’s status
bar, but you can drag the
indicator to other places on
your screen. After running
a program several times
and seeing how your appli-
cation consumes heap stor-
age, you can turn off the
indicator to achieve even
better performance.
With each release of the
Java standard platform,
Sun tweaks the specifica-
tion for bytecode (.class)
files. The latest release
(Java SE 6, scheduled for
the fall 2006) adds new
data to each bytecode file.
The new data (called
StackMapTable attributes)
work with the bytecode
verifier to make classes
load faster. The Java SE 6
tious. Because the Eclipse Project is pivotal, the Eclipse compiler puts StackMapTable attributes into its bytecode
Project's goals are also quite lofty. files and (as long as you opt for Java 1.6 compiler compli-
This article focuses on the improvements you'll see in ance), so does Eclipse 3.2.
June with Release 3.2 of the Eclipse Project. You can pre- Another innovation in Java 6 is the @category annota-
view the improvements by visiting the Eclipse download tion. An @category annotation goes inside a Javadoc
site at http://download.eclipse.org/eclipse/downloads. But comment, helping to classify a method or a field. For
beware; the documentation for new features is still spotty. example, the Javadoc comment for each setter method
Full documentation will be available by the official may have an @category setter annotation. Eclipse 3.2
Callisto release date in June. The Eclipse 3.2 team identi- cooperates by displaying categories in its Outline view.
fies six themes for its June 2006 release. New refactorings are also a part of the new release. In
• Scalability: Features that help in the development of Eclipse 3.1, you could use refactoring to create an interface
extremely large applications. from an existing class. You can create interfaces in Eclipse
• Enterprise readiness: Features that meet the needs of 3.2, but you can also create a superclass from an existing
large IT organizations. class. When you create a superclass, you specify which
• Extensibility: Features that foster the development of methods or fields to declare in the newly created superclass,
new tools and platforms on top of the basic Eclipse and which methods or fields to leave in the original class.
project. A new Introduce Indirection refactoring adds a layer
• Ease of use: Simple pathways for the average user between a method and its caller. Say you have a method
alongside the more complex features for advanced named callMe but you want the existing callMe invokers
users. to call a new callMeFirst method. With Introduce
• Enhancements to the Rich Client Platform: Continuing Indirection refactoring, you create the new callMeFirst
to build a platform that houses many kinds of appli- method and can optionally change all callMe invocations

20 | ECLIPSE REVIEW Spring 2006


Callisto

to callMeFirst invocations. The new callMeFirst method 3.2. Instead, you can create a refactoring script and apply
invokes the callMe method and does any additional work that script many times. This is called split refactoring
that you code manually. This is great if you need to because you’re splitting the refactoring into two or more
enhance the callMe method’s functionality without modi- time periods and among two or more pieces of code.
fying the callMe method’s code.
In Eclipse 3.2, some old Eclipse 3.1 refactoring dogs HANDLING CODE PROBLEMS
learn new tricks. You can opt to keep both the old and In the nether region between syntax rules and formatting
new versions of the method when you use Rename refac- conventions, a large group of guidelines helps avoid possi-
toring to modify a method. The old version grows a depre- ble problems in code. These guidelines include rules such
cation tag and becomes a delegate to the new version. as “don’t have any unused variables,” “avoid the hiding of
This same “keep both versions” behavior is available for types,” “use this to qualify field and method accesses”
the Move Method, Introduce Parameter and Change and “use the @Override annotation wherever it’s applica-
Signature refactorings. ble.” Eclipse 3.1 could flag some possible problems in
Rename refactoring no longer insists that names be your code, but Eclipse 3.2 flags even more problems. The
identical. Assume that you have a class named MyChart newest Errors/Warnings Preferences dialog has options for
and a variable named myChart. You apply Rename refac- things like switch statements without break statements
and suspicious assignments to a method’s parameters.
In addition, Eclipse 3.2 has a new Clean Up wizard.
IN A CLOSED WORLD ASSUMPTION, A The wizard checks code for its adherence to certain guide-
lines and corrects violations if the programmer so desires.
SINGLE USE OF REFACTORING APPLIES For a glimpse at the new Clean Up wizard, see Figure 1.
ONLY TO CODE KNOWN AT THAT TIME. You can see problem spots in your code more clearly
with Eclipse 3.2. The Problems view displays a hierarchi-
cal list showing errors in one branch and warnings in
toring to change MyChart into MyGraph. Fair enough, but another. The listing is configurable, so you can group
now you have a variable declaration that awkwardly items by severity, Java problem type and so on.
reads: MyGraph myChart. In general, Eclipse 3.2 handles errors more gracefully
Rename refactoring in Eclipse 3.2 asks whether you than Eclipse 3.1. Suppose you write the following (admit-
want to change similarly named variables and methods, tedly awful) code:
so that, in addition to changing MyChart, the refactoring
public class MyValues {
public void myMethod() {
changes myChart. In the end, you get: MyGraph myGraph,
which is exactly what you want. j = 6;
By far the biggest change in refactoring is the relaxation of i = 7
}
}
the closed world assumption. The closed world assumption
states that a single use of a refactoring operation applies only
to code that’s known at the
time of the operation. In
Figure 2 The New Project wizard has a Help button (lower left) and a Help panel (right)
other words, the snapshot
that you have of the code at
refactoring time is a world
unto itself. To refactor any
additional code, you have to
manually reapply the same
refactoring operation.
This closed world
assumption doesn’t fit the
“big application” scenario,
in which code comes from
several different workspaces
and maybe even several dif-
ferent teams around the
world. First, you apply a
sequence of refactorings to
some existing code. Later,
you get more code as part
of the same application.
You don’t have to manually
reapply the long sequence
of refactorings in Eclipse

Spring 2006 www.eclipsereview.com | 21


Callisto

Figure 3 The Problems View’s Help page contains remained linked. Any changes to the project in one work-
an executable link space forced changes to the project in the other work-
space. In Eclipse 3.2, the Import Projects dialog has a
Copy Projects into Workspace option. This option creates
a brand new copy of a project in the target workspace, so
changes in one workspace have no effect on the corre-
sponding project in the other workspace.
You can delete a package in Eclipse 3.1 by simply
selecting the package’s branch in the Package Explorer,
then pressing Delete. However, when you do this, you
delete only the innermost package in the branch’s hierar-
chy. For example, if you select the com.allmycode.util
branch and then press Delete, Eclipse 3.1 deletes util with-
out deleting com.allmycode. Deleting the com.allmycode
and com packages requires two additional deletions.
In Eclipse 3.2, if you select com.allmycode.util, then
press Delete, the result you get depends on the contents of
the packages. If the directories com or com/allmycode
contain files, then Eclipse doesn’t delete them. But if com
and com/allmycode are empty, then Eclipse deletes all
three directories (com, com/allmycode and com
Eclipse 3.1 would notice that i = 7 doesn’t end with a /allmycode/util) in one fell swoop.
semicolon. But that’s the only error that Eclipse 3.1 would Eclipse 3.2 also has a new way to remove clutter from
find. The missing semicolon would throw Eclipse 3.1 off the Package Explorer. Imagine that you have 10 projects in
course. In contrast, Eclipse 3.2 flags all three errors in the your workspace named Project1, Project2 and so on. Also
MyValues class. The lack of a semicolon after i = 7, i assume that a class in Project1 calls code in Project2, but
isn't declared and j isn’t declared.
The Ten Callisto Projects
CODE/CONTENT ASSIST Project Name Project Release Description
Code assist in Eclipse 3.2 has some impressive features. Version
One of them is a very smart form of name completion. If Eclipse Project 3.2 The keystone of the Eclipse Foundation’s
you type String myS and then press Ctrl+Space, Eclipse work, divided into four subprojects:
guesses that you want String myString; Eclipse makes this • The Eclipse Platform subproject
• The Java Development Tools (JDT)
guess even if you haven’t already used the name myString subproject
in your code. This trick has many variations. For example, • The Plug-in Development Environment
if you define a class named Values and then type Values, (PDE) subproject
• The Equinox OSGi subproject
followed by Ctrl+Space, you get a new variable with the
name values: Business Intelligence 2.1 Tools for creating business reports in
and Reporting Tools Web and PDF formats
Values values;
Test and Performance 4.2 Tools for testing and profiling applications
Tools Platform
Admittedly, these two examples are oversimplifications.
Web Tools Platform 1.5 Tools for developing Java Enterprise Edition
In both, Eclipse doesn’t auto-type the semicolon, and in applications
the example, you need to type a blank space after the
word “Values.” C/C++ Development 3.1 Tools for creating C/C++ programs
Tools
Another neat content assist trick is the use of camel
case shortcuts. Imagine that you’re writing a Swing appli- Data Tools Platform 1.0 Tools for working with data and databases
cation, and you want to use the
Eclipse Modeling 2.2 Facilities for generating code from models
javax.swing.tree.DefaultMutableTreeNode class. You can Framework
simply type DMTN, and then press Ctrl+Space. Eclipse
offers to replace DMTN with DefaultMutableTreeNode, Graphical Editor 3.2 Facilities for creating graphical editors (for
Framework state machines, activity diagrams, and other
and add an import declaration for the DefaultMutableTree applications)
Node class. This trick works even if your code contains no
previous reference to DefaultMutableTreeNode or to any Graphical Modeling 1.0 Facilities to enhance the use of the Eclipse
Framework Modeling Framework and the Graphical
other Java Swing class. Editor Framework

FILE AND FOLDER HANDLING Visual Editor 1.2 An editor for drag-and-drop creation of GUI
dialogs and other GUI components
With Eclipse 3.1, you could import a project from one
workspace to another. But when you did, the two projects

22 | ECLIPSE REVIEW Spring 2006


Callisto

doesn’t call code in any of Figure 4 The Test Run History in the JUnit view
the other projects. If you
right-click Project1 and
select the new Close
Unrelated Projects item in
the resulting context menu,
Eclipse closes all projects
except Project1 and Project2.

HELP WHEN YOU NEED IT


The Help system in Eclipse
3.2 has also been
improved. Most dialogs
include a help button
(located in the lower left
corner of the dialog box).
When you click the dia-
log’s Help button, it
widens to include a cus-
tomized Help page, as shown in Figure 2. In addition, Project wizard offers over 30 kinds of projects divided
Eclipse Help pages now include dynamic content that’s into about a dozen project categories. To help you find
composed on the fly according to the current configura- the right kind of project, the New Project wizard pro-
tion. This configuration can be based on the operating vides filtering. This filtering is like the Preferences dia-
system, the installed plug-ins, the enabled capabilities log’s filtering (introduced in Eclipse 3.1). If you type
and other factors. the word “Java” in the filter’s text field, the wizard
In Eclipse 3.2, a Help page can contain links. A link hides project types that don’t relate directly to Java.
can open dialogs, show views and perform other useful Eclipse 3.2 brings this same filtering feature to many
tasks. For a look at one of these links, see Figure 3. dialogs, including the Show View dialog and the
Import/Export wizards. Look for even more filter wiz-
NEW FEATURES IN THE SWT ardry in future releases.
The Standard Widget Toolkit (SWT) is Eclipse’s underly- In Eclipse 3.2, you can keep several Search Views open
ing windowing system. To keep pace with the growing at once. Each Search View toolbar has a Pin the Search
complexity of GUI applications, the maintainers of SWT View button. When you press this button, you tell Eclipse
are creating new SWT features. Some new features in to put the next set of search results into a brand new
Search View.
In addition, the JUnit view has a memory. The view’s
SWT APPLICATIONS HAVE ALWAYS BEEN toolbar has a Test Run History button. Press this button and
you see a list of previous test runs. You can switch back and
MORE RESPONSIVE THAN SWING APPS. forth between runs to compare their results (see Figure 4).

NOW, SWT RUNS EVEN FASTER. LIFE AFTER CALLISTO


When the June release date has passed, Eclipse organizers
Eclipse 3.2 include support for OpenGL and for the and team members will look back and evaluate the suc-
Hue/Saturation/Brightness color model. cess of the Callisto effort. Officially, they’ll be giving the
You can mix text and other visual elements in ways that thumbs-up or thumbs-down to another year-long effort
weren’t possible in previous releases. For example, a single culminating in a simultaneous release. But unofficially, the
button can display both an image and text. A TextLayout positive momentum surrounding Callisto all but guaran-
can display images and widgets as well as text. And the tees a second year.
text in a TextLayout is more versatile, with new options for The goals of this year’s Callisto release focus on pre-
indentation, alignment, justification and baseline changes. vention, ensuring that 10 Eclipse projects keep their fea-
SWT applications have always been more responsive ture sets from interfering with one another. Next year’s
than Java Swing apps. But the SWT now runs even faster focus may improve integration between the participating
with its new native image loading. Creation of an Image projects. Projects may be expected to use each others’
object makes calls to the underlying operating system, public APIs or to explore ways of building on one anoth-
bypassing calls to any intermediate layers of code. er’s features.
But one thing is certain. The Eclipse Project will con-
OTHER CHANGES IN ECLIPSE 3.2 tinue growing. In the foreseeable future, the Eclipse
The options available to an Eclipse user continue to Project will complete one major release per year. Each
expand. With the Callisto plug-ins installed, the New year’s release will be packed with new features.

Spring 2006 www.eclipsereview.com | 23


The Eclipse Process Framework Composer

Increasing Development
Knowledge with EPFC
n
A
re all your developers on the same page? Are they
all using the best practices—and the same best
BY PETER HAUMER
practices—for agile, iterative, architecture-centric, risk-
driven and quality-driven development? Maybe, maybe not: requirements, methods for analysis and design, imple-
Even when team members are working on the same project, menting a design and test case, testing against require-
they may not have access to the same information or the ments and managing the project scope.
same version of the information. It’s difficult to combine and The tool helps development professionals set up a
integrate content and development processes that are made knowledge base of intellectual capital that lets them
available in their own proprietary format. It is even more dif- browse, manage and deploy content. This content can be
ficult to define an organized and systematic development licensed, acquired, or—perhaps most importantly—devel-
approach that addresses an organization’s specific culture, oped in house. It can comprise method definitions,
standardized practices and compliance requirements. whitepapers, guidelines, templates, principles, best prac-
That’s where the Eclipse Process Framework comes tices, internal procedures and regulations, training materi-
in. The EPF project provides an extensible framework
and tools for defining and managing software develop-
ment methods. Within this framework, the project EPF PROVIDES AN EXTENSIVE FRAME-
develops content for a range of software development
and management processes that are applicable to a WORK FOR DEFINING AND MANAGING
broad set of development platforms and applications.
Whether this information is relevant to an individual
SOFTWARE DEVELOPMENT METHODS.
organization or the entire Eclipse community, it can
reduce the duplication of development and research al and any other general descriptions of how they want
efforts. and need to develop software. The information can be
used for reference and education and as the basis for
THE EPF APPROACH developing standard processes. All managed content can
The Eclipse Process Framework Composer is a process- then be published to HTML and deployed to Web servers
management tool platform and conceptual framework for for distributed use.
authoring, tailoring, documenting and deploying develop- The second goal of EPF Composer is to support the sys-
ment process frameworks in various formats. For example, tematic growth and management of development processes.
EPF Composer can publish HTML content and exported Development teams need to define how to apply their
project plans. It was designed for engineers, project leads development methods and best practices throughout a proj-
and project and program managers who are responsible ect lifecycle. Management methods have to be applied in
for maintaining and implementing processes for develop- one way during the early phases of a project, where the
ment organizations or individual projects. focus is more on stakeholder needs and requirements. The
EPF Composer serves two main purposes, as shown same methods have to be performed in a different way dur-
in Figure 1. Its first goal was to provide a standardized
representation and managed libraries of reusable Dr. Peter Haumer is an Eclipse Process Framework committer. He
works as a solution architect for the IBM Rational Method Composer
method content that developers need to understand the
product platform and is responsible for defining process engineering
methods and key practices of software development. tools. He also represents IBM at the OMG in the SPEM 2.0 initiative.
These basic practices include eliciting and managing

26 | ECLIPSE REVIEW Spring 2006


Process Development

ing later phases, where the


Figure 1 EPFC provides tools for managing libraries of development content and using them
focus is on managing
to assemble processes for specific projects
requirements updates,
changes and the impact of
these changes.
Teams also need a clear
definition of how the differ-
ent tasks within the meth-
ods relate to each other.
Change management meth-
ods impact the require-
ments management method
and regression. EPF
Composer provides process-
engineering capabilities by
supporting engineers and
project managers in select-
ing, tailoring and rapidly
assembling processes for
real-world projects.
The end result should be
a catalog of predefined processes for typical situations that REUSABLE CONTENT LIBRARIES
can be adapted to multiple projects so that organizations To learn about development methods, most people do
can develop their own libraries of processes. The process research in libraries or they receive training and mentor-
building blocks are called capability patterns and represent ing. Many development methods are typically described in
best development practices for specific disciplines, tech- books, articles, training materials, standards, regulations
nologies or development styles and form a toolkit for quick- and other forms of documentation. The sources often doc-
ly assembling these processes. Additionally, the document- ument methods in different ways, but they usually provide
ed processes created with EPF Composer can be published step-by-step explanations for a particular means of achiev-
and deployed as Web sites or files. ing a goal under general circumstances. For example,
developers might learn how
Figure 2 EPFC expresses content using concepts such as tasks and roles to transform a requirements
document into an analysis
model, define an architec-
tural mechanism based on
functional and non-func-
tional requirements, create
a project plan for a devel-
opment iteration or define
a quality assurance plan for
functional requirements.
EPF Composer allows
you to take this content and
structure it in a specific
way using a predefined
schema. This schema is an
evolution of the OMG’s
Software Process
Engineering Metamodel 1.1
specification (www.omg.org
/spem) specification. SPEM
helps you organize large
amounts of data for devel-
opment methods and
processes. Following this
plan, method content is
represented as a construct
of roles defining develop-
ment skills and responsibili-

Spring 2006 www.eclipsereview.com | 27


Process Development

ties for work products that are produced by tasks and have capabilities for the creation of tables, images, hyperlinks
work products as inputs and outputs. and formatted text. These editors manage HTML that can
Figure 2 shows how method content is represented. be directly manipulated from another view within the
Method content elements can be organized in tree same editor. In addition to managing the method ele-
browsers like the one on the left to provide different ments, roles, tasks and work products, you can add specif-
indices of the available elements for rapid access. The ic guidance elements that can contain supplementary and
task presentation is an example of how the information background information. For example, you can add sup-
plementary free-form docu-
Figure 3 Form-based editor for creating a work product definition mentation such as whitepa-
pers, concept descriptions
and guidelines. You can
also add document tem-
plates and review checklists
for work products,
roadmaps, concrete exam-
ples and reusable assets to
supplement these learning
materials.

CREATING DEVELOPMENT
PROCESSES
A development process
defines how work will be
performed and how prod-
ucts are produced and
evolve. In other words,
development processes
define how development
projects are executed.
Processes define how to
get from one milestone to
the next by defining
sequences of work, opera-
tions and events that use
resources such as time and
can be rendered into HTML for deployment. It shows a expertise and produce a predetermined outcome.
use case in terms of steps that need to be performed to Defining a strict sequence—as in a waterfall model—
achieve the task. The task has various relationships, is no less a process than defining a semi-ordered
such as an association with the Roles Requirements sequence of iterations for parallel work. They simply
Specifier. represent different development approaches. Whereas
The Detail a Use Case task defines the products that traditional waterfall-based processes are able to define
are required to perform the work (inputs) as well as the more or less straight lines of sequences for the tasks to
work products produced or updated (outputs). EPF be performed, modern iterative development processes,
Composer maintains and presents relationships between such as RUP, DSDM, OPEN, XP and Scrum require more
roles, work products and tasks as hyperlinks connecting complex structures to represent increments of develop-
these elements to each other. To help you create and ment. In these structures, work is packaged into repeat-
manage information for your own needs, it provides you able pieces in which tasks are performed concurrently
with several content-management capabilities, such as and repeatedly.
the form-based editors shown in Figure 3, which depicts All of these development approaches require different
the editor for a work product definition. degrees of formality and levels of detail for process
Using these forms, you can add your own method con- descriptions. Traditional development processes define
tent, tailor the content that is being developed in the EPF phases based on predefined deliverable types, providing
project for your needs or make use of content that will be exact descriptions of the sequences of work that pro-
provided for licensing from vendors or other organiza- duce these deliverables.
tions. The editors allow you to “model” the relationships Agile development processes only ask for informal
between elements. They also provide HTML-based editing work descriptions because they assume that teams are
features. self-organizing and are able to perform the work without
As shown in Figure 4, every form field can be expand- guidance and without control once the development goals
ed into a full-sized editor that provides rich-text editing have been defined. They also focus on describing work

28 | ECLIPSE REVIEW Spring 2006


Process Development

sequences based less on deliverables and more on capa- Manager or Microsoft Project. Using breakdown struc-
bility (result-based) milestones. Modern scalable iterative tures in EPF Composer can bridge the gap between
processes provide explicit descriptions of the work to be process definition and process enactment. It melds these
performed with a variable and flexible amount of detail two popular process representations into one format that
depending on the type of project and maturity of the it maintains internally to represent processes. Based on
organization. this format, RMC supports both presentations inter-
The EPF project provides one unified process frame-
work that supports the management of processes from
all of these approaches. In other words, the Eclipse MANY MODERN SCALABLE PROCESSES
Process Framework will support processes from many
different development approaches including develop- PROVIDE DESCRIPTIONS OF THE WORK
ment culture and development process representation.
EPF Composer can be used to define waterfall, incre-
TO BE PERFORMED.
mental, iterative and other lifecycle models. It also sup-
ports progress representations that include work-break- changeably, as you can also see in Figure 5.
down structures and workflow presentations. Figure 5 Last but not least, Figure 6 shows you how method
shows how processes are created and presented with content relates to processes in EPF. In defining a process,
EPF Composer’s process editors. It shows the same you can take method content and systematically combine
process in two consistently maintained presentation for- it into specific process structures that specify how the
mats: as a breakdown structure and an activity diagram. work described in your method content will be organized
Many iterative development processes are modeled over time following a specific development approach.
using nested workflow representations to support complex You apply and tailor the content to meet the concrete
process structures as well as various degrees of formality. needs of a particular type of development project, such
EPF Composer’s activity diagram editor, which you’ll see as software for an online system or software and hard-
at the lower half of Figure 5, allows you to define complex ware for an embedded system.
process structures as a hierarchy of nested diagrams in The two blue arrows in Figure 6 show how the Detail
which each diagram node could be refined or detailed a Use Case task (from the method content library of
with a whole new diagram. Activity diagrams can express Figure 2) has been applied in the same process twice—
parallelism using fork, merge and join nodes. They can first in the inception phase under “Define the System”
also show sequencing using
control flows. Figure 4 Form fields can be expanded for formatting text, including images
Another popular presen-
tation for traditional water-
fall as well as iterative
development processes is
the work breakdown struc-
ture that you’ll see in the
top half of Figure 5.
Breakdown structures are
similar to nested activity
graphs because they also
allow the refinement of
work definitions via nest-
ing. They provide an easy
way to sequence work
using what are called pred-
ecessor dependencies,
which are similar to con-
trol flows. All elements
that are not related via
these predecessors are free
to be performed in parallel.
Another advantage of
the breakdown structure
presentations is that they
are very popular in project
enactment and manage-
ment applications such as
IBM Rational Portfolio

Spring 2006 www.eclipsereview.com | 29


SAVE Over $300! Register by July
Keynote Speaker At EclipseWorld, you will...
Mike Milinkovich is the executive director of
● Learn how to save money and improve developer
the Eclipse Foundation. In the past, he has
productivity with Eclipse.
held key management positions with
Oracle, WebGain, The Object People and ● Improve team collaboration using Eclipse-based tool sets.
Object Technology International Inc. (which ● Go beyond the IDE to understand the wide range of
subsequently became a wholly owned sub- Eclipse technologies.
sidiary of IBM), assuming responsibility for
● Get deep inside Eclipse’s open-source architecture.
development, product management, mar-
keting, strategic planning, finance and busi- ● Discover the best, most effective Eclipse add-ins
ness development. and plug-ins.
Mike Milinkovich, ● Learn how to build better applications using the
Executive Director, Eclipse Foundation Eclipse RCP.

The industry’s independent conference for


and IT development managers using
“It’s a really good place to get those “If you are looking for both high and low level “Well organized and enjoyed
questions answered which are hard to information regarding Eclipse, both as an IDE the presentations.”
find in books.” as well as an RCP, you’ll find it at EclipseWorld. Alice Chan, Software Engineer,
Farha Azaz, Senior Software Engineer, The presenters are knowledgeable and CyberAccess
TouchNet Information Systems
approachable. In addition, the networking with
other users of the Eclipse platform is invaluable.” “Good sessions on the basics
“Great instructors and very good as well as plug-ins.”
Dan Colbert, Product Manager, CompassCom
environment, very casual and enjoyable.” Patricia Timms,
Tim Condron, Business Analyst, Spectra East Senior Software Engineer, Kodak

Developers from 30 states and 17 countries


attended EclipseWorld 2005! Over 60 great classes
Administrative Office Eastman Kodak MassMutual So Cal Edison
to choose from!
of the U.S. Courts Fidelity Mentor Graphics Société Générale
ADP France Telecom Merrill Lynch Standard & Poor’s
Aetna FT Interactive Data MetLife Sun Microsystems
AGFA HealthCare GE Microsoft Sungard
Agilent Technologies GEICO Mitsubishi Sybase
AT&T General Dynamics Morgan Stanley Telcordia Technologies
AXA Financial GlaxoSmithKline New York University Thomson Financial
BAE Systems Goldman Sachs & Co.
Newscorp TIAA-CREF
Bank of New York Hemisphere
Nokia TIBCO Software
Bloomberg National Bank
Nomura Securities Time Warner
Boeing IBM
NYC Dept. of Education
Caterpillar Intel Transatlantic Group
Central Bank of Turkey Oracle
JPMorgan Chase UBS Investment
CIGNA Pearson Bank
KeyBanc Capital
Cisco Systems Markets Pitney Bowes Unisys
Citigroup Konica Minolta Princeton University United Nations
Columbia University L-3 Communications Prudential Financial Verizon
Compuware Lehman Brothers Raytheon Veterans Health
Con Edison Lockheed Martin SAIC Administration
Dreyfus Lucent Siemens Visa

For sponsorship or exhibiting information, contact


Donna Esposito at 415-785-3419 or desposito@bzmedia.com.
14 for Super Early Bird Savings!
Are you ready for Eclipse?
Whether you’re an Eclipse master, just getting started
with the platform, or trying to decide if Eclipse
technologies are right for your development team,
the EclipseWorld Conference & Exhibition is the
#1 educational event that you should attend this year.
Hyatt Regency Cambridge

enterprise software developers Boston, MA


September 6-8
Eclipse tools and technologies
“EclipseWorld had a great collaborative atmosphere. It was “A good opportunity to meet “Great place to find out
exciting to learn about the different uses of Eclipse, and Eclipse developers of all kinds.” the latest Eclipse info.”
see what people were creating with it.” Suzanne Yoakum-Stover, Kelly Hart, Manager,
Justin Stern, Software Engineer, Auspice Senior Computational Scientist, SAIC Special Projects, IFMC

“Technology being discussed in the conference was very “EclipseWorld was dynamic, thought
leading edge. I got to familiarize myself with projects provoking and cutting-edge.”
I hadn’t had a chance to research.” Robert Rothman, Senior Developer, Morgan Stanley
James Pitts, Director of Database Programming, Embarcadero Technologies

he Eclipse Foundation is proud to participate


“T in the second annual EclipseWorld conference
in September 2006. The debut 2005 EclipseWorld
in New York was an excellent educational event for
enterprise IT professionals. We're glad that the
Eclipse community has embraced this independent
technical conference.”
Mike Milinkovich, Executive Director,
Eclipse Foundation

Save Over $300!


Register by July 14 for
Super Early Bird Savings!

A BZ Media Event
Diamond Sponsor Media Sponsors

Gold Sponsor

BZ Media is an Associate Member


of the Eclipse Foundation.
Process Development

and then in the elaboration phase in “Refine the system FROM CONCEPTS TO CONTEXT
definition.” Below each of these task applications you’ll Figure 7 summarizes the key EPF concepts for creating
see lists of the performing roles as well as the input and process frameworks. A process framework defines reusable
output work products. If you look closely, you’ll see that method content, processes, building blocks and tools that
these lists are different for each of these two task applica- you can use to define project or organization-specific
tions, expressing differences in performing the use cases processes and methods. The EPF project will develop several
throughout the lifecycle. process frameworks that address different audiences. These
Here, the process author tailored the tasks that were can be deployed with EPF Composer “out of the box.” You
reused from the content library. These tasks were then can also use EPF Composer’s authoring capabilities to create
used to model phase-specific variances of performing complete new frameworks from scratch.
the work for the exact focus of the task performance in As we have seen, method content is primarily
each point of the lifecycle. You can also see the different expressed using work products, roles, tasks and guid-
roles and changes in the list of inputs to be considered ance. Guidance is positioned right at the intersection of
as well as the outputs that will be produced or updated. Method Content and Process, because it can express
information relevant to
Figure 5 Process inception phase is maintained in a breakdown structure and activity diagrams method content as well as
processes. On the right-
hand side of Figure 7,
you’ll see the concepts
used to represent process-
es. The main concept is
the activity that can be
nested to define the break-
down structures and activ-
ity diagrams in Figure 5
and Figure 6. They contain
references to method con-
tent and are used to define
processes. The Framework
suggests two types of
processes.
Delivery processes rep-
resent a complete and
integrated process tem-
plate for performing one
specific type of project.
They describe an end-to-
end project lifecycle and
can be used as a reference
for running projects with
similar characteristics. The
framework also suggests
capability patterns that
express process knowledge
In addition to updating the roles, input and output work for a key area of interest, such as a discipline or a best
products for a task, you can also provide additional practice. They can be directly used by process practi-
descriptions and select the exact steps of the task that tioners as a guide in their phase of development.
should or should not be performed in this particular occur- Capability patterns can also be used as building blocks
rence of the referenced task. for assembling delivery processes or larger capability
Once you have defined and documented your process patterns to ensure optimal reuse and application of key
models in EPF Composer, you can make them available practices. EPF Composer provides authoring methods for
to the development teams in two different ways. The applying and nesting capability patterns to processes by
first is to publish them as Web sites that provide hyper- reference or value.
linked navigation and browsing capabilities along the The concepts shown in Figure 7 are defined to be
breakdown structure and activity diagrams. Additionally, used independently of one another, which lets you use
they can be exported into a template that integrates with Composer to define process frameworks for different
a project management tool to provide links from the audiences that have different needs, cultures or even a
templates to the published Web sites that contain the different understanding of what constitutes a process. In
process and method content documentation. other words, you could define your process framework

32 | ECLIPSE REVIEW Spring 2006


Process Development

by using all of the con- Figure 6 Processes use method content to define how methods are being applied
cepts or just the subset
that suits your needs.
For example, if you
work in a very agile envi-
ronment, you might just
create descriptions of your
guiding principles, prac-
tices and values as guid-
ance elements. To add a
bit more flexibility, you
could add definitions for
standard roles and work
products. The next level
could add explicit descrip-
tions of tasks, defining
how standard development
work should be per-
formed. This collection of
tasks could be used for
educating new team mem-
bers or for creating con-
crete work items in a team
support or scheduling sys-
tem. All of these concepts
could be used and man-
aged in EPF Composer to
provide a knowledge base
of practices—without
defining and using any processes. processes that integrate with explicit method content. In
Processes can be used in a similar independent way this type of environment, you might need to provide
without using any method content at all. For example, detailed guidance and categorization schemes that let
teams that know their practices and do not need any you clearly define practices and link compliance criteria
additional documentation could just use the process and checklists.
concepts to outline the lifecycle of their general develop-
ment projects, defining key milestones and high-level AN ENCYCLOPEDIA IN THE WORKS
activity. A light-weight process could contain phase defi- The Eclipse Process Framework is an open-source project
nitions, milestones for each step, a list of key deliver- in itself. Contributors are invited to participate at any
level to add reference materials and tools relating to any
Figure 7 A summary of the proposed terminology Eclipse process. The project uses the Eclipse Modeling
overview for the EPF Framework to define and manage the Meta Model imple-
mentation illustrated in Figure 7. The EPF Composer user
interface is built on top of this layer using Eclipse’s Rich
Client Platform tools.
EPF Contributors can extend this existing user inter-
face with new capabilities or develop complete new user
interfaces, such as Web-based authoring and collabora-
tion tools. Finally, the EPF project develops method con-
tent and processes for a range of software development
and management processes applicable to a broad set of
development platforms and applications.
Contributors are invited to join the project’s content
development committers in this work or develop new
additional content. The Eclipse environment is the result
of collaboration. By creating information and sharing
processes that may be applicable to others in the com-
ables and lists of the developer roles responsible for munity, you reap the rewards of collaboration in a
them. On the other hand, if you work in a very rigorous, whole new way, streamlining your own development
compliance-focused environment, you can define rich and helping others to do the same.

Spring 2006 www.eclipsereview.com | 33


a y! m
To d . c o
ibe ie w
s cr R ev
u b
S clip se
w .E
ww
RCP Marries Good Looks with Functionality

Eclipse RCP: Rich


Clients, Happy Users
n BY MARTIN PEREZ
I
t can be difficult to gain market share in the world of
commercial desktop applications when your company
has limited resources and your competitors have enor-
mous development teams. However, the tool framework of WorkbenchAdvisor, WorkbenchWindowAdvisor and
the Eclipse Rich Client Platform (RCP) can help level the ActionBarAdvisor classes, have several callback methods
playing field by offering a set of plug-ins that can help you defined that the platform calls automatically when a life-
build desktop applications more productively. In addition cycle event happens. The advantage of using advisors is
to offering tools to help you build Eclipse-based user inter- that you don’t have to deal with complex event handling
faces for applications, Eclipse RCP offers a number of to create platform lifecycle events; instead, you only need
ready-to-use application services. to overwrite the methods they are interested in. Here are
For example, development teams frequently find them- some examples of methods defined in WorkbenchWindow
selves immersed in tasks like developing an application Advisor that can be overwritten to add custom logic:
updating system, an XML-based help system or a config- • preWindowOpen: This method is used to configure
urable workspace for users, but time spent working on aspects of the window other than actions bars and is
these features is time that is lost for solving problems relat- called as the window is being opened.
• postWindowRestore: This method is used to adjust
the restored window that is called after the window
ANY RCP APPLICATION CAN DEFINE has been recreated from a previously saved state.
• postWindowCreate: This method is used to adjust the
“ADVISORS” THAT HAVE METHODS CALLED window called after the window has been created
AUTOMATICALLY WHEN AN EVENT OCCURS. from an initial state or from a restored state.
• openIntro: This can be called immediately before the
window is opened to create an introduction component.
ed to application functionality. Eclipse RCP is intended to • postWindowOpen: This method is used to hook
help you and your team spend less time on user interface “window listeners” and other features and is called
issues and more time on application features while making after the window has been opened.
the interface more attractive to users. • preWindowShellClose: Used to pre-screen window
closings, this method is called when the window’s
LIFECYCLE AND RESOURCE MANAGEMENT shell is closed by the user.
SWT is, and always has been, a low-level user interface One of the great failures of SWT is that it doesn’t
API. JFace, on the other hand, is a user interface frame- release acquired resources, so you’ll need to handle that
work that is built over SWT and offers several patterns, yourself. Neglecting to release resources can sometimes
utility classes and components, making it indispensable cause applications to hang. Fortunately, Eclipse RCP offers
for SWT-based development. Unfortunately, the
Martin Perez is a J2EE developer working for IT Deusto in Spain. He
SWT/JFace duet does not cover every aspect of user currently leads a cost-management system project that runs over
interface design. Eclipse RCP fills this gap by offering WebSphere and Informix-based systems for C.H.U. Juan Canalejo, a
capabilities that make application development with major hospital in Spain. He is also the project lead for jLibrary, an
SWT/JFace much faster. open source document management system that takes advantage of
Any RCP application can define what are known as Eclipse RCP as well as the JSR-170 (Java Content Repository API)
specification.
“advisors.” These advisors, which include the

Spring 2006 www.eclipsereview.com | 35


Eclipse RCP

Figure 1 The security perspective resulting from Listing 1 them to the locale in which
the application will be
used. Fragments are devel-
oped using a separate plug-
in, creating a clear separa-
tion between the main code
branch and the internation-
alized resources.
Any RCP application,
including the Eclipse IDE,
comprises several work-
bench perspectives. A
workbench perspective will
group several views, creat-
ing a working logic struc-
ture that fits with a variety
of application roles and
usage scenarios. Eclipse
RCP makes user interface
customization declaratively
and programmatically sim-
ple. Listing 1 shows a
declarative sample from the
jLibrary client plug-in that
defines a security perspec-

several registries that offer


Figure 2 An example of the automatic features provided by RCP
an easy way to cache
resources and perform
lookups. Perhaps more
importantly, these stored
resources are automatically
liberated at application
shutdown. Examples of
resource registries are
ImageRegistry, FontRegistry
and ColorRegistry.

END USER INTERACTION


Internationalization isn’t
entirely forgotten by the
SWT and JFace APIs and the
Eclipse RCP makes it even
easier. Developers often think
that the only thing they have
to do when they create an
internationalized version of a
product is to create simple
resource bundle files with
messages in different lan-
guages. What happens when
something more complicated
than a simple message string
needs to be internationalized? Internationalization should tive and some views. The result of this code is shown in
also cover things like class instantiation, images, video, Figure 1.
CSS/HTML documentation and Help pages. After the workbench is exposed, it can be customized by
Eclipse RCP provides help with internationalization by the user. Views can be moved, unnecessary views can be
offering “fragments.” When an RCP application starts, the closed, hidden views can be opened and placed on the
platform changes default resources to automatically adapt workbench, several views can be grouped in one place, and

36 | ECLIPSE REVIEW Spring 2006


Eclipse RCP

views can be moved from Figure 3 Help pages for RCP applications can be created using a standard Web editor
one perspective to another.
The workbench perspec-
tives can also be fixed, mak-
ing it impossible for users to
perform any changes.

ARCHITECTURE AND
EXTENSIBILITY
Like the Eclipse IDE, RCP
applications are based on
plug-ins. In fact, the RCP
application could itself be
considered a self-executing
plug-in. Third party plug-in
integration only requires
you to load predefined
extension points. The exten-
sion points defined by the
Eclipse platform include
perspectives, views, action
bars and menus.
Another way to leverage
the plug-in architecture is
to provide custom exten-
sion points to other seg-
ments of a development
organization. This can be helpful when heterogeneous extension points, adding custom editors, menus, and
teams are working together. jLibrary is a good example. It functionality. The great advantage is that core applica-
has an application client plug-in that you can use to create tion development can advance, while other teams add
and edit documents and directories, allowing users to other necessary features.
make use of these repositories. As with the Eclipse IDE, third party plug-ins can be
Web support can also be added so that you can pub- used to augment RCP’s built-in components. In fact, RCP
lish parts of the repository and provide customized includes several custom built-in components such as the
menus and actions without touching the client core. The search dialog and search subsystem, text editors, color-
team in charge of Web development can extend the ing, annotations, an HTML browser, a console view, a
resource navigator, the
Figure 4 A welcome screen can provide useful information for users preferences dialog, an
“about” dialog and help
system, cheatsheets, a
tasks view, and a built-in
Tomcat container.
If there are any parts of
the IDE that you would like
to use, you can often
extract and use them. For
example, jLibrary uses the
standard properties view to
show the properties of the
different documents and
the progress view to show
the progress of pending
tasks. You don’t have to
code a single line of code
for those views. You only
need to declare and fill
them with appropriate
data, as shown in Listing 2.
Figure 2 is an illustration

Spring 2006 www.eclipsereview.com | 37


Eclipse RCP

of the automatic features provided by RCP. It provides a


very easy and powerful Jobs API that you can use in your RCP SOFTWARE CAN LEVERAGE THE
applications. All you have to do is create a job executing a
task and pass it to a job manager. Eclipse RCP automatical- ECLIPSE IDE’S HELP SYSTEM, WHICH
ly shows the job progress in a dialog and updates the view
with the task’s progress. MIXES THE FLEXIBILITY OF XML
Handling application updates is one of the more chal-
lenging aspects of desktop application development.
AND THE POWER OF HTML.
Many would argue that it was a key factor in the success
of Web applications since only the app servers need to linked with a normal HTTP directory. You can then put
be updated. Eclipse RCP provides two different methods your plug-in updates in that directory. Users can use the
of updating applications. The first is to configure the update dialogs from the Eclipse IDE to download new
program to use Java Web Start. The second is using the versions of the software. The API can also be configured
RCP’s built-in support for automatic updates. to update client machines automatically.
You can define several features in RCP programs, with
each group using several plug-ins. Then, you can define HELP!
an update site for those features. The update site will be One of the other challenges that development teams face
in building Java applica-
Listings tions is the lack of a power-
ful help system. Often,
■ LISTING 1
JavaHelp just isn’t enough.
A DECLARATIVE SAMPLE FROM THE JLIBRARY CLIENT PLUG-IN
<extension RCP provides more than
point=”org.eclipse.ui.perspectives”> just a simple help index
<perspective
name=”%SecurityPerspective.label”
browsing tool. It also offers
icon=”resources/icons/security.gif” other useful features like
class=”org.jlibrary.client.perspectives.SecurityPerspective” dynamic search, welcome
id=”org.jlibrary.client.perspectives.SecurityPerspective”>
</perspective>
pages, and the ability to
</extension> launch help examples or
<extension cheatsheets. All the help
point=”org.eclipse.ui.views”>
<view
resources can be interna-
name=”%UsersView.label” tionalized thanks to RCP’s
icon=”resources/icons/user.gif” fragments. You can add
category=”security”
class=”org.jlibrary.client.ui.security.views.UsersView”
complete help support in
id=”org.jlibrary.client.ui.security.views.UsersView”> other languages without
</view> writing any code.
<view
name=”%GroupsView.label”
icon=”resources/icons/group.gif” DEFINING CONTENT
category=”security” RCP software can leverage
class=”org.jlibrary.client.ui.security.views.GroupsView”
id=”org.jlibrary.client.ui.security.views.GroupsView”>
the Eclipse IDE’s help sys-
</view> tem. This system mixes the
….. flexibility of a declarative
XML help definition and
the power of HTML-based
■ LISTING 2 help. That is, in RCP appli-
MAKING USE OF JLIBRARY’S STANDARD VIEWS
<extension
cations, you can define the
point=”org.eclipse.ui.views”> help contents in traditional
<view XML, just as you would do
name=”%PropertiesView.label”
icon=”resources/icons/prop_ps.gif”
on JavaHelp systems, as
category=”repository” shown in Listing 3. After
class=”org.eclipse.ui.views.properties.PropertySheet” defining the help TOC in an
id=”org.eclipse.ui.views.PropertySheet”>
</view>
XML file, you only have to
<view provide the help pages,
name=”%ProgressView.label” which can be created with
icon=”resources/icons/pview.gif”
category=”repository”
your favorite Web editor, as
class=”org.eclipse.ui.internal.progress.JobView” shown in Figure 3.
id=”org.eclipse.ui.views.ProgressView”> In addition to traditional
</view>
</extension>
search options, the help sys-
tem offers other interesting
features. You can navigate

38 | ECLIPSE REVIEW Spring 2006


Eclipse RCP

through your browsing his- Listings


tory, create help book-
■ LISTING 3
marks, and even have your
DEFINING THE HELP CONTENTS IN TRADITIONAL XML
application provide context- <?xml version=”1.0” encoding=”ISO-8859-1”?>
sensitive help on your widg- <toc label=”JLibrary” topic=”resources/help/index.html”>
<topic label=”Features” href=”resources/help/4/index.html”/>
<topic label=”Installation guide” href=”resources/help/5/install.html”/>
ets—a feature that Eclipse
calls infopops. To render the <topic label=”Use cases” href=”resources/help/4/usecases.html”/>
Web pages, jLibrary bundles </toc>
an internal Tomcat contain-
er, so you can also use JSP
■ LISTING 4
pages, servlets and other
DEFINING A CHEATSHEET
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
items. The only drawback
of this approach is that it <cheatsheet title=”Adding a document”>
takes some time to start the
<intro href=”http://mysite/mycheet.html”>
<description>
container with the Web
application. This is the cheat sheet description
If you don’t want to </description>
</intro>
embed the help pages and
system on the clients, you <item
can bundle and externalize href=”/mysite/mycheet.html#step1”
title=”Creating a directory”>
<action
all the help pages on a Web
application that is deployed pluginId=”org.jlibrary.client”
on a centralized container.
class=”org.jlibrary.client.cheatsheets.actions.CheatAddDocumentAction”/>
When your users open the
help system in their applica- <description>
tions, what they are really This is the description of the first step.
</description>
</item>
seeing is the help on the
Web container. The feature </cheatsheet>
can be developed using a
tool called Infocenter.
RCP applications can provide a dynamic help view that are initiated by the application’s help system, wel-
that gives users appropriate information when they select come page or cheatsheets.
a specific feature. This type of help can be really benefi-
cial when the user is not familiar with the application COVERING ALL THE BASES
interface. It can often be much more effective than a tra- The Eclipse Plug-in Development Environment subproject
ditional tooltip-based system. (PDE) is a tool intended to help you customize your appli-
cation for several operating systems. It allows you to define
GOOD MORNING, DAVE custom “about” dialogs, custom splash screens, and cus-
Welcome pages can be a great way to provide start-up info tom icons to be shown on the launcher or the different
for users. The welcome page contents in an RCP applica- application windows. Eclipse also includes a product
tion are created from XML files, and the layout is done export wizard that helps you export your products to any
through CSS style sheets or SWT widgets. After running supported platform. It will create executable programs suit-
the welcome page the first time, it won’t appear again, but able for those platforms, as well as an optional application
you can place a vertical toolbar on the interface to give the icon. All of these features help you to deploy your applica-
user easy access to the help system as needed. You can use tions to different platforms with little effort.
this welcome screen to show start-up information for your
users, as shown in Figure 4, or to launch actions linked to GOOD LOOKS ARE ONLY THE BEGINNING
tutorials or samples to help users familiarize themselves On the surface, the Eclipse RCP can make your applications
with the software. look and feel more like shrink-wrapped applications than
Cheatsheets are tips that are embedded in their own homegrown in-house workhorses. When users get a good
view. They offer guides that can help users learn to per- first impression of an application, they tend to be less criti-
form common tasks. Cheatsheets are defined using cal. When the application is easy to navigate and use, they
XML, and can be opened or closed by users as needed. find it even more impressive. However, as any honest chef
Listing 4 shows an example of how a cheatsheet can be will tell you, presentation really isn’t everything. If what
defined. looks good on the plate isn’t easy on the palate, it’s unlikely
RCP lets you define actions to be run from help com- that the customer will come back for more. Eclipse RCP
ponents. For example, you could create a link on the helps you build applications that are not only pretty, but also
welcome page or within any cheat sheet to invoke relat- have more features. When an app looks good and works as
ed activities, wizards or samples. You can define actions intended, both you and your end users are happier.

Spring 2006 www.eclipsereview.com | 39


PERSPECTIVE

■ continued from page 46 • The benefit of experience: The THE FUTURE


A primary reason for this was the team had a wealth of experience in We are rapidly approaching the fifth
concern over the IBM control of the creating application development tools anniversary of the project, and Eclipse
technology. Many ISVs, especially the and, more importantly, an understand- has over 600 committers and the
major industry leaders, desired more ing of how to develop extensible APIs. Eclipse Foundation counts over 100
independence and control. It was in This experience came from their work member organizations. Not only each
this context that we decided to con- on VisualAge Smalltalk, Java Micro release, but each interim milestone
tribute Eclipse to the open-source Edition, and several other related driver, taps out the bandwidth of the
community. research projects. download servers. Eclipse is the num-
• A real-time feedback loop: We ber one Java development environ-
THE BIG C ate our own dog food: As early as pos- ment. What will keep Eclipse success-
In addition to offering Eclipse under sible, we used Eclipse to develop ful in the future?
an open-source license and creating Eclipse. We also made Eclipse available • Exploring new opportunities:
eclipse.org, IBM sought to create a col- early and often in order to get feed- We see this today on several fronts.
laboration of organizations that would back from the community. This led to Eclipse is expanding past its roots as
agree to use, promote and support the the decision to include the Java an application development platform
open-source project. This was the Development Tools with the initial into a general platform for rich-client
Eclipse Consortium. It was not a for- open source contribution. The incre- applications. Another new area of
mal organization, only a relatively mental revenue we could realize from growth is taking Eclipse Equinox to the
loose confederation of organizations selling JDT was outweighed by the server and realizing the benefits of its
brought together by a common interest benefit we’d get from community extensibility and plug-in model there.
in Eclipse and bound by a simple growth and feedback on the platform. • Managed growth: While opportu-
membership agreement. • Separation from IBM: Distancing nities at times seem endless, Eclipse
As membership in the consortium Eclipse from IBM was important for must remain focused and understand
rapidly increased, growing pains robust community growth with an its strengths. Trying to be all things to
emerged. Because the consortium was effort that wasn’t controlled by IBM, all people can result in unconstrained,
not a legal entity, it was difficult to col- but instead vested authority in other unmanageable growth.
lect and disperse funds, there was no organizations. Also, the development • Maintaining High Standards:
way to secure independent legal coun- team didn’t want to be encumbered by This is perhaps related to managing
sel, and there remained no formal IBM development policies and brand- growth. What continues to make
independent governance. It was also ing guidelines. It was also important to Eclipse successful is the quality of the
increasingly difficult to conduct board let the technology speak for itself. technology, intellectual property integri-
meetings with some 70 representatives. • The Eclipse JumpStart team: ty and meeting schedule and plan com-
Several industry leaders remained The JumpStart team proved invaluable mitments. This must continue.
on the sidelines due to a formal lack in allowing the development team to • Balance: The ecosystem is key,
of independence from IBM that caused focus on development of the technolo- and must remain in balance. The
us to work with the members of the gy while enabling community growth Eclipse ecosystem includes many con-
Eclipse Consortium to help it evolve and assisting others in being success- stituencies including commercial soft-
into the independent, not-for-profit ful with Eclipse, at the same time feed- ware suppliers, their customers, open-
Eclipse Foundation in 2004. ing their experiences back to develop- source developers and end users. The
Eclipse has been and continues to ment. success of any one at the expense of
be a potent force in software develop- • Ecosystem is key: Underlying others will cause an imbalance, to the
ment. What made it this force, and almost every decision was considera- detriment of Eclipse. For Eclipse to con-
what made it so successful? A number tion over the impact on the communi- tinue to be successful, all of its ecosys-
of things really paid off: ty. This was a long-term play. In the tem constituencies must continue in
• A compelling technology: end we felt what would make Eclipse balance to be successful with Eclipse.
Eclipse offers an extensible, solid the most successful was fostering It’s been a wild, fun and fulfilling
architecture that solves real problems broad community growth; enabling ride. Eclipse has succeeded beyond our
facing programmers. To achieve this, others to be successful, too. wildest dreams. We’re understandably
we put our best people on the prob- • Executive Buy-In: Several ana- proud of what we’ve initiated. At the
lem. Exceptional software develop- lysts have commented on the role same time, this success would not
ment talent is a precious resource and IBM’s executives have played in have been possible without the contri-
we used our best. Eclipse was, among Eclipse. Eclipse involved an enormous butions of the many other individuals
other things, a Java development envi- gamble. None of this would have been and organizations that make up Eclipse
ronment for Java developers by Java possible without the vision and buy-in and the millions of members of the
developers. of IBM’s senior leadership. broader Eclipse community.

40 | ECLIPSE REVIEW Spring 2006


The End Is Just the Beginning

Gnireenigne Esrever
*
Fo Tra Enif Eht
Or, *The Fine Art of Reverse Engineering

n BY ALI MEHREGANI & NAVID MEHREGANI


Y
ou’re probably familiar with having to fix a defect or
implement a feature for a component that you have
little or no familiarity with—and with the joy of
working without adequate documentation. The world is There are three modes in which the profiling agent can
far from perfect and documentation is no where near its launched:
completion when products are released (or sometimes, • Controlled mode suspends the execution of an
ever). That’s when we use reverse engineering techniques application until a client attaches to the profiling
to determine the code structure for an application that agent and begins profile monitoring.
lacks supporting documentation. • Application mode allows applications to register
Unfortunately, there is no single best practices themselves as clients of the profiling service.
approach to reverse engineering, but there are tools that • Standalone mode runs the profiling service without a
complement the various techniques that are used. The client. In standalone mode, the profiling data is
Eclipse Test & Performance Tools Platform can help by written to a file.
giving you a visual overview of the code under analysis. It
also allows you to execute snippets of Java code at differ- LAUNCHING IN STANDALONE MODE
ent points in the execution of a Java application. As an experiment, create a HelloWorld class and launch
Without further ado, let’s investigate the features and the profiling agent in standalone mode using:
java -XrunpiAgent:server= standalone,
capabilities of TPTP that can be used in this context. We’ll
focus on TPTP 4.1, but the same tasks will be possible in file=HelloWorldProfiled.trcxml HelloWorld
any later release. Before we begin, make sure that you
have obtained all required projects listed on the TPTP It’s important to ensure that you have the bin directory
download page, at www.eclipse.org/tptp. of Agent Controller under your system path (as specified
in the installation guide) before running this command.
RACING APPLICATIONS Once the application is terminated, a file with the name
TPTP includes a profiler that uses the Java Virtual Machine HelloWorldProfiled.trcxml is generated under the working
Profiler Interface (JVMPI) to report application events to the directory. The content of the file is in XML and reports
workbench. Examples of events are method entries, exits, events using fragments that look similar to:
class loads and object allocations. The implementation of
<objAlloc threadIdRef=”3” time =
“1139282399.758598804” objId=”90” …/>
the JVMPI interface is included in TPTP’s data collector.
The Agent Controller provides the extensibility and
framework to support more data collectors than just the
JVMPI agent. For the sake of simplicity, we’ll treat the Agent Ali Mehregani is an IBM developer on the Test & Performance Tools
Platform Team. He received his honors degree with high distinction
Controller as an entity providing only one service: profiling,
in Computer Science from University of Toronto. Prior to the comple-
though it also offers many other capabilities and features. tion of his degree, he worked on a collaborative IBM Extreme Blue
See the installation guide under the project’s download page project between Rational and Tivoli.
to find out how to install and setup TPTP’s environment.
The available profiling agent is completely unaware of Navid Mehregani works on the IBM Test & Performance Tools
Platform Team and is a committer to the project. He received his B.Sc.
the client that uses it. In our case, the workbench is the
degree with high distinction from the University of Toronto and first
profiling service’s client, but it’s possible for other applica- joined IBM as a student working on the Xerces parsers.
tions to register themselves as the profiling service client.

Spring 2006 www.eclipsereview.com | 41


Reverse Engineering

The data reported is not Figure 1 The plug-in manifest editor lar to that displayed under
much use to us without a the Run launch configuration
client that can interpret the when the same item is creat-
results and display them in ed. The only exception is the
aggregated views and dia- Profile tab, which allows
grams. Notice that the size of users to set profile-specific
the generated file for such a options. Notice the three
trivial application is well over nested tabs: Overview,
a megabyte, making analysis Limits and Destination.
of the raw data practically Using the Overview tab,
impossible. the user is expected to create
One notable difference and select a profiling set. A
between TPTP’s profiler and profiling set basically groups
most other Java profilers is a set of options that are appli-
that it collects all events cable for a profile launch. The
unless they are otherwise options under the Limits tab
explicitly filtered by the user. can be used to limit the
The JVMPI agent doesn’t do amount of information col-
any stack sampling or intro- lected. The Destination tab is
duce any other data collection used to set the profile project
limitations that can potential- name and the monitor name
ly result in losing trace data. that the launch will be stored
The advantage of this in. This tab also provides the
approach is the ability to cap- option of sending trace data
ture all events that the user requests, but its clear disadvan- to a file that the user can later import into the workbench.
tage is that it can be sluggish if filter sets are not properly Users can define filtration in the edit wizard of a profil-
set. In fact, it is this capability that makes TPTP’s profiler an ing set. Along with filtration, profiling sets also include one
ideal solution for reverse engineering code. or more profiling types that indicate the type of data that
should be collected. In this context, the predefined profiling
CONTRIBUTING TO PDE set (Execution History – Full Graphical Detail) is recom-
As an exercise, assume that you’ve just been accepted as mended. Notice that the content of the filter set is a collec-
an Eclipse committer and given the responsibility of tion of rules that are applied by the JVMPI agent from top
adding new controls to an existing PDE editor. The new to bottom (higher rules have a higher precedence over the
controls need to be added to Eclipse’s multipage editor rules below them). Each rule has the following syntax:
that shows the content of a plug-in’s manifest file. The
feature requires a new text field to be created under the <CLASS-NAME> <METHOD-NAME> <EXCLUDE|INCLUDE>
general section of the editor. The new text field is expect-
ed to hold the e-mail address of the primary developer, as For example:
shown in Figure 1.
Although the request is trivial to implement, finding mypackage.MyClass myMethod INCLUDE
where to add the required code may take hours or even org.eclipse.* * EXCLUDE
days. The first step in reverse engineering code is to
apply any existing knowledge to narrow the scope of the Since this exercise requires us to determine where code
code that needs to be traced. Eclipse plug-ins follow a needs to be added to alter a PDE editor, we’ll only need to
well-defined naming convention that makes it easier to monitor classes with the prefix org.eclipse.pde. A little
define filters. Since this exercise requires the modification knowledge about the naming convention used for Eclipse
of a PDE editor, it’s safe to assume that the editor’s code plug-ins will help a lot in setting a filter set that will avoid
will be under one of the org.eclipse.pde.* plug-ins. the collection of unnecessary data. Add a new filter set by
clicking the Add button beside the “Select a filter set”
LAUNCHING IN PROFILE MODE table. Remove the default content of the filter set and add
Now that we have a well-defined scope, we can define an two rules:
effective filter that will only collect relevant events. Using
the Profile Launch configuration, users can launch most org.eclipse.pde* * INCLUDE
application types that are available under the Run or * * EXCLUDE
Debug launch configuration. The option to launch one of
these configurations is shown in the lower left of Figure 1. The first rule includes all classes with the prefix
In our case, an Eclipse Application launch configura- org.eclipse.pde and the second rule excludes all other
tion needs to be created to self-host a workbench. Notice classes. When it comes to tracing applications, the
that the tab group displayed under this type is very simi- application can be in three phases: initialization,

42 | ECLIPSE REVIEW Spring 2006


Gnireenigne Esrever

steady and tear-down. In most cases, applications will The packages that you’ll notice immediately are the ones
produce the most data in the initialization and tear- with the prefix org.eclipse.pde.internal.ui.editor. It is likely
down stage. that the manifest editor is contained in one or more of these
TPTP provides an option to avoid collecting trace data packages. We can apply a filter to only display the packages
when the workbench is initializing. Switch to the Limits tab with that prefix. Use the toolbar option circled in Figure 3 to
and uncheck the option “Automatically start monitoring apply post-filtration to the Executions Statistics view.
when application is launched.” Turning this option off will Post filtering packages is not always necessary but it
ensure that the agent is started in “pause” mode, where no is a nice to have a feature that allows us to reduce the
trace data is collected until the agent is explicitly resumed. amount of data displayed in the available views. Now
An agent can be in four states. An active agent collects all that post filtration has been applied, expand the package
data that it detects from a running application. The pause org.eclipse.pde.internal.ui.editor.
state is used to suspend the
collection of trace data dur- Figure 2 The profiling monitor view
ing a profiling session. The
detach state terminates a
profiling session and
removes all previous history
collected by the agent. The
attach state begins a new
profiling session.
Once the profile configu-
rations are set, the Profile button can be used to launch The class that you’ll recognize as the possible implemen-
the profiling session. This will launch a self-hosted work- tation of the manifest editor is PDEFormEditor. Expanding
bench and reflect the process and agent launch under the the class will reveal the associated methods that have been
profiling monitor view, as shown in Figure 2. invoked. The method createPage() is a good candidate to
dig into to determine where the overview page is created.
COLLECTING DATA Double-clicking the method will open the Method
The agent was intentionally started in pause mode to Details view. The bottom table shows the methods that the
ensure that data collection was only enabled during a createPages method invokes, one of which is addPages().
brief period. A concise collection of data will ensure that Double-clicking this method will reveal that one of its child
fewer classes need to be deciphered to determine where methods is OverviewPage(). This is the class that will like-
code needs to be added. ly need to be modified to include the new text field. If the
Create a new plug-in and close its manifest file if it is source of the plug-in is available under the workbench, the
automatically opened in the self-hosted workbench. You “open source” option of the method’s context menu can be
can now resume data collection by clicking the Start used to jump to the actual method.
Monitoring toolbar option. After the state of the agent is You can also make use of the method invocation view
updated, switch to the self-hosted workbench and double- to get a visual diagram for the execution flow of a specific
click the manifest file of the plug-in that was created earli- method. Go back to the execution statistics view and select
er. Switch back to the original workbench and use the “show method invocation” under the context menu of
toolbar option to pause the agent again. The self-hosted createPage(). Zoom in on the top portion of the view to
workbench can now be terminated. Now that the neces- look at the nested methods that createPage() invokes. The
sary data is collected, we’ll need to analyze the trace data view should indicate that the second nested method call
to determine where exactly our code needs to be added. that createPage() makes is to addPages(). Zooming in the
section of the view where addPages() is invoked will reveal
ANALYZING THE COLLECTED TRACE DATA the constructor of all the pages that are added.
Once the self-hosted workbench is terminated, double-click TPTP’s UML class interaction view displays how classes
the profiling agent present in the Profiling Monitor view. interact with each other. This view is a little more challeng-
The Execution Statistics view will open giving you a list of ing to navigate through if there are many classes involved in
execution data for each package as shown in Figure 3. a profiling session. To open the view, right click the process

Figure 3 The execution statistics view

Spring 2006 www.eclipsereview.com | 43


Reverse Engineering

Figure 4 The New Wizard of Probekit Source File Clicking Next will dis-
play a wizard page that
allows users to add data to
the probe fragment, shown
in Figure 5. Use this wizard
page to add two data items
of type className and
methodName. Name the
data items myClassName
and myMethodName
respectively. Once the data
items are added, click on
Finish to create the Probekit
file. The Probekit file
should be created and
opened in an editor. If
TPTP 4.1 is being used,
then the Probekit file will
need to be manually com-
piled. Any later version will
compile the Probekit file
automatically.
A Probekit Source File
can contain multiple
Probes, as shown in Figure
5. Each Probe comprises a
target, import and multiple
fragments. The target is
used to specify the filtering
criteria for a probe. The
in the Profiling Monitor view and select Open With > UML imports entry specifies the Java imports that are used in
2 Class Interactions. You can use the “find” toolbar option to the fragments. The fragments are what actually get injected
find a specific method in the view (addPages, for example). into the application. Each fragment has its own specific
As you may have already realized, developers rely on type. An entry fragment, for example, is invoked at the
good naming conventions to effectively reverse engineer beginning of each method.
code. The tracing facility in TPTP can help to significantly The data items specified in a fragment can be used to
reduce the scope of the code that developers need to ana- obtain information at the point where the fragment is
lyze when determining the structure of applications. applied. The methodName data item, for example, can be
A toolkit for injecting Java code fragments in your appli- used to reference the name of the method where the frag-
cation is also provided to collect runtime data. Inserting ment is injected. A fragment can also be defined at class
code fragments can be useful in determining the method “scope.” This special fragment can be used to specify data
hierarchy of a Java class. As an example, consider the code and initialization requirements for a probe. The Java code in
shown in Listing 1, which
simulates an order process. Figure 5 Each probe comprises a target, import and multiple fragments
Running this class will pro-
duce the following output:
Order–starts
Order-failed
Order–ends

CREATING A PROBEKIT
SOURCE FILE
The first step in injecting
probes into an application
is to create a Probekit
Source File. The default
options of the first Probekit
wizard page in Figure 4 will
suffice for this example.

44 | ECLIPSE REVIEW Spring 2006


Gnireenigne Esrever

this fragment is visible to all other fragments. To access this Listings


fragment, select the Probe entry in the Probekit editor.
■ LISTING 1. A SIMULATED ORDER PROCESS
DEFINING FRAGMENTS public class Order
{
Click the probe under the probe editor and type the fol- private static Hashtable inventory;

static
lowing for the fragment at class “scope” of your probe:
{
public static String indent = “”; inventory = new Hashtable();
inventory.put(new Integer(102),
new Integer(2));
This variable is used to do proper indentation when }
printing out method hierarchy information. public static void main(String[] args)
{
System.out.println(“Order–starts”);
Use the following snippet of code for the entry frag-
ment that is already present in the probe: new Order().makeOrder(10342, 102,
3);
System.out.println(indent + “ Entered: “ + System.out.println(“Order–ends”);
}
myClassName+”.” + myMethodName);
// Append four spaces to indent public void makeOrder (int customerNo,
indent = indent + “ “; int productNo, int quantity)
{
if (processForm(customerNo) &&
The above fragment will report the entry of each method. processOrder(102, 3))
System.out.println(“Order-Success”);
else
Using the context menu of the probe, create a second frag-
ment and change its fragment type to “exit.” Add the same System.out.println(“Order-failed”);
data items that appear under the entry fragment. Use the }
following snippet of code to report the exit of each method. public boolean processForm (int
customerNo)
indent = indent.substring(4); {
System.out.println(indent + “ Exited: “ + return processCredit(customerNo) &&
myClassName + “.” + myMethodName); processOrderHistory(customerNo);
}

APPLYING THE PROBEKIT FILE public boolean processCredit (int


customerNo)
You’re now ready to instrument your class. If TPTP 4.1 is {
return true;
}
being used, then use the context menu of the Probekit file
to compile the file. You can then use the instrument
public boolean processOrderHistory
(int customerNo)
option under the Probe File context menu to instrument
the Order class. In TPTP 4.2, users have the option of {
return true;
}
applying their probes dynamically via the Profile Launch
configuration. Statically applying probes will cause the
public boolean processOrder (int
productNo, int quantity)
class files of the applications to be modified.
Alternatively, dynamic instrumentation will apply probe {
return getQuantityInStock(productNo)
>= quantity;
injection in memory and will not modify the original class
files of the application. Run the order class once it has been }
instrumented. The output of the application will be similar indent = indent.substring(4);
System.out.println(indent + “ Exited: “ + myClassName
to what you see in Listing 2. The hierarchy of the method + “.” + myMethodName);
call can now be used to determine why the order has failed.
The power of probes is in their flexibility. Users can define ■LISTING 2. THE OUTPUT OF THE APPLICATION
any custom probe that is most suitable for their application. ONCE ORDER CLASS HAS BEEN INSTRUMENTED
Entered: Order.<clinit>
Exited: Order.<clinit>
APPLIED ART Entered: Order.main
Order–starts
Entered: Order.<init>
Reverse engineering is more of an art form than a system-
atic set of generic rules that can be applied to any applica- Exited: Order.<init>
Entered: Order.makeOrder
Entered: Order.processForm
tion. Despite the nature of the process, however, many
tools can be used to refine it. TPTP is effective in tracing Entered: Order.processCredit
Exited: Order.processCredit
Entered: Order.processOrderHistory
applications for the purpose of determining code structure.
It provides tabular and visual views that make code analy- Exited: Order.processOrderHistory
Exited: Order.processForm
Entered: Order.processOrder
sis and tracing easier and faster.
There are many other features available under TPTP Entered: Order.getQuantityInStock
Exited: Order.getQuantityInStock
Exited: Order.processOrder
including static code analysis, log file analysis and correla-
tion, resource monitoring and testing. While writing perfect Order-failed
Exited: Order.makeOrder
Order–ends
code from start to finish is a near impossibility, flaws can
often be flushed out by starting at the end of an application Exited: Order.main
and working your way back toward the beginning.

Spring 2006 www.eclipsereview.com | 45


PERSPECTIVE

Eclipse’s Wild Ride From


The Present and Future of Eclipse | by John Kellerman

IBM to the Foundation


“Suddenly IBM is cool.” So opined one Slashdot.org partici- become and what happens when engi-
pant in November of 2001, responding to the news headline: neers are in charge of branding.
The Eclipse project first showed up
“IBM Donates $40 Million of Software to Open Source Community.”
publicly as a technology preview at
This announcement culminated several years of calendar time and www.eclipsecorner.org. Why not at
many years of effort to bring the Eclipse platform and consortium to ibm.com? While Eclipse was clearly an
market. At the same time, it loosed a phenomenon and a force that con- IBM initiative, given our after-market
tinues to have profound effects on the software development industry. and community growth objectives, we
felt creating distance from IBM and an
The development effort resulted in the tool capability that was implemented identity separate from IBM would bet-
Eclipse Project inside IBM, later to multiple times. To complete the pic- ter enable growth. We also didn’t want
eclipse.org, next to the Eclipse ture, IBM saw the growing market to be constrained by some of the poli-
Consortium, and finally to the inde- share of Microsoft’s Visual Studio as a cies IBM had for commercial software
pendent Eclipse Foundation. competitive threat. development.
Where did this come from? It start- Our goals with this new technology Obviously, many of these policies
ed in 1998 with a technology develop- development effort were as follows: applied and we conformed, for exam-
ment effort to address some systemic • To develop a state of the art tool ple, around intellectual property due
problems IBM had with its tool portfo- integration platform for use diligence and export controls. But
lio. Specifically, IBM’s VisualAge tech- across IBM. many—due to the nature of the proj-
nology was running out of gas. We • To provide for better intra- ect—didn’t, and rather than spend the
were unable to advance it further to company tool reuse. time negotiating, we chose simply to
address the requirements our cus- • To fertilize a vibrant set of change the rules.
tomers were presenting in response to aftermarket tool offerings from During this period of early commu-
their development needs, specifically independent software vendors. nity growth, we staffed a team of con-
their desire to leverage the Internet. • To grow a community around the sultants whose job it was to enable
Internet and intranet applications technology by capturing the community growth called the Eclipse
involved managing a greater number hearts and minds of developers JumpStart team. The JumpStart team
of different kinds of resources and the everywhere. became Eclipse experts and used their
people who were best suited to own • To combat the competitive threat skills and development team relation-
these resources. Many of our cus- from Microsoft’s Visual Studio. ships to work with ISVs, customers,
tomers also used tools and platforms and IBM commercial product teams to
from other suppliers, creating a com- THE LONG E sell them on the Eclipse vision and
plex environment that required a In 2000, we took the name “Eclipse” as technology value proposition. We
much more robust solution for appli- an IBM internal codename to refer to wanted to get them to be Eclipse users
cation development tool integration. this project. Four members of the devel- and to integrate their offerings or
Making it worse, VisualAge was not opment team got together to brain- applications with Eclipse. The teams
the only tool technology in IBM and storm on ideas for the name. En vogue also took what they learned and fed
where we had a non-trivial amount of at the time were names beginning with this back to development.
John Kellerman is a founding member of a long “e” sound, and “Eclipse” As the JumpStart team engaged
the Eclipse project. He is currently manager emerged and stuck with the develop- with our executives to grow the Eclipse
of Eclipse Strategy at IBM. He works closely ment teams. It was nothing more, noth- community, convincing ISVs that it
with eclipse.org, the Eclipse Foundation ing less, than this. Little did we know was a good idea was not always easy.
and member companies.
what a flashpoint this choice would ■ continued on page 40

46 | ECLIPSE REVIEW Spring 2006


FreshJava!
5th Annual Java Use and Awareness Study

What parts of Java are being used?


Which tool sets are preferred?
Why are people using Java, and what do
they think of their app servers and IDEs?
Which Java vendors are hot, and which are fading?

Find out what 724 respondents had to say


about this and more in BZ Research’s 5th Annual
Java Use and Awareness Study.

59 pages
440+ verbatim responses
644 data points

www.bzresearch.com
Sybase WorkSpace:
Do Something More Interesting
A SINGLE ENVIRONMENT OFFERS WHAT YOU NEED FREEDOM TO CUSTOMIZE BASED ON YOUR BUSINESS NEEDS
Sybase WorkSpace is a Java™ toolkit offering the five most important WorkSpace’s modular packaging allows enterprises the flexibility to
design and development tools in an integrated easy-to-use, open decide how to assign business critical tasks to developers, rather than
source framework: requiring them to fit into ill-fitting “roles” predetermined by a vendor.
• database development • mobile development You buy only the pieces you need, enabling you to customize your
• web application development • enterprise modeling environment as you see fit.
• services-oriented development
With Sybase WorkSpace, you’re finally free to do the design and
MAKES DEVELOPMENT AND DESIGN EASY TO LEARN AND USE development that’s interesting to you. For more information and
Using industry-leading integrated model-driven design, visual develop- to download White Papers and an evaluation copy, visit
ment and task-based wizards, Sybase WorkSpace automates mundane www.sybase.com/workspace
tasks and cuts the typical development tool learning curve, freeing
developers to concentrate on what’s important—business logic.

Copyright © 2006 Sybase, Inc. All Rights Reserved. All product and company names are trademarks of their respective owners.
Hyatt Regency Cambridge
Boston, MA
September 6-8
The industry’s first
independent conference for
enterprise software developers
and development managers
using Eclipse tools and
technologies

“Good technical information and very


interesting people.”
Michael Darretta,
Senior Application Developer, Spectra Labs

“Well organized and enjoyed the


presentations.”
Alice Chan, Software Engineer, CyberAccess

“Great place to find out the latest


Eclipse info.”
Kelly Hart, Manager, Special Projects, IFMC

“I thought the Conference was superb.”


Mike Dean, Professor of Pediatrics, University of Utah

Register Now
For Early Bird Rates!

www.eclipseworld.net
Welcome! Event Schedule
Tuesday, September 5
4:00 pm – 7:00 pm Registration
Dear Software Professional,
The growth and momentum behind Eclipse continues to build. Wednesday, September 6
Developers, architects and testers are embracing Eclipse-based tools 7:30 am – 6:30 pm Registration
and technologies at an ever-increasing rate. Both enterprise projects 7:45 am – 8:45 am Continental Breakfast
and open-source projects are benefiting from the quality and collabo- 8:45 am – 10:15 am Full-Day Tutorials
ration offered by the Eclipse Community. Linux, Windows, C++, Java— 10:15 am – 10:45 am Coffee Break
the platform doesn’t make a difference. In Eclipse, professionals and 10:45 am – 12:15 pm Full-Day Tutorials
enterprise software development teams have found the right tools for 12:15 pm – 1:30 pm Lunch Break
the job. 1:30 pm – 3:00 pm Full-Day Tutorials
Our goal at EclipseWorld is to help you get the maximum benefit 3:00 pm – 3:30 pm Coffee Break
from using Eclipse. Our in-depth tutorials and technical classes go 3:30 pm – 5:00 pm Full-Day Tutorials
beyond the basics: From architecture to plug-ins, from the editing envi- 8:00 pm – 10:00 pm Birds-of-a-Feather Sessions
ronment to BIRT, you’ll learn what it takes to use Eclipse successful-
ly for your projects. Thursday, September 7
EclipseWorld is the first conference specifically designed for enter-
7:30 am – 7:00 pm Registration
prise software developers who are either using Eclipse today, or who
7:30 am – 8:30 am Continental Breakfast
are seriously considering the use of Eclipse tools and technologies.
8:30 am – 10:00 am Technical Classes
We’ve assembled a superb faculty of expert instructors, including
10:00 am – 10:30 am Coffee Break
many who have been contributors to Eclipse’s core technologies. They
10:30 am – 12:00 pm Technical Classes
know the platform inside and out—and are ready to pass their knowl-
12:00 pm – 1:15 pm Diamond Sponsor Luncheon
edge on to you.
1:15 pm – 2:45 pm Technical Classes
2:45 pm – 3:15 pm Coffee Break
At EclipseWorld:
2:45 pm – 7:30 pm Exhibit Hall Open
• There are more than 60 classes and tutorials to choose from and
3:15 pm – 4:45 pm Technical Classes
there’s even more learning opportunity available when you network
4:45 pm – 5:00 pm Break
with other software professionals during this focused conference.
5:00 pm – 5:45 pm Keynote
• Our faculty has been handpicked for their ability to clearly commu- 5:45 pm – 7:30 pm Reception in Exhibit Hall
nicate the practical application of Eclipse tools and technologies for 8:30 pm – 10:30 pm Birds-of-a-Feather Sessions
enterprise software projects.
• The tutorials cover one full day and the technical classes span two Friday, September 8
days. This short program maximizes learning while minimizing your 7:30 am – 4:00 pm Registration
time out of the office. 7:30 am – 8:30 am Continental Breakfast
8:30 am – 10:00 am Technical Classes
Look at the course listing and build a custom educational program 10:00 am – 10:30 am Coffee Break
over these three days that will give you—and your team—immediate 10:30 am – 12:00 pm Technical Classes
results. Sign up today to ensure that there’s room in the classes you 12:00 pm – 1:30 pm Lunch Break
want to take. Plus, you’ll qualify for our Early Bird Discounts. 12:00 pm – 4:00 pm Exhibit Hall Open
I’m looking forward to seeing you at EclipseWorld in Boston. 12:45 pm – 1:30 pm Ice Cream Social in Exhibit Hall
1:30 pm – 3:00 pm Technical Classes
Sincerely, 3:00 pm – 3:30 pm Coffee Break
Alan Zeichick 3:30 pm – 5:00 pm Technical Classes
Conference Chairman
EclipseWorld

Exhibit Hours:
Thursday 2:45 pm – 7:30 pm
Friday 12:00 pm – 4:00 pm

BZ Media is an Associate Member


of the Eclipse Foundation.

2 www.eclipseworld.net
As an EclipseWorld
Attendee You Will
• Save money and improve • Master techniques for
productivity with Eclipse. building high-quality, Are You Ready
• Go beyond the IDE to
more secure software.
To Master Eclipse?
master the wide range of • Get deep inside Eclipse’s Whether you’re an Eclipse Master, just getting started
Eclipse technologies. open-source architecture. with the platform or trying to decide if Eclipse

• Discover the best, most • Improve team collaboration technologies are right for your development team,
effective Eclipse add-ins using Eclipse. the EclipseWorld Conference & Exhibition is the
and plug-ins. #1 educational event that you should attend this year.

EclipseWorld is for enterprise developers, architects


and development managers who want to take their
company’s applications to a higher level!

Keynote Network With Peers at


Thursday, 5:00 pm – 5:45 pm the Attendee Reception!
Thursday, 5:45 pm – 7:30 pm
Mike Milinkovich is the executive
director of the Eclipse Foundation. In
the past, he has held key manage-
ment positions with Oracle,
WebGain, The Object People and
Object Technology International Inc.
(which subsequently became a whol-
ly owned subsidiary of IBM), assum-
ing responsibility for development,
product management, marketing,
strategic planning, finance and busi-
ness development. Mike Milinkovich,
Executive Director,
Eclipse Foundation

Over 60
Classes “I have already recommended next year’s
conference.”
Stephen Mattin, Technical Specialist, Interactive Data
& Tutorials To Choose From!
A BZ Media Event EclipseWorld™ is a trademark of BZ Media LLC. Eclipse™ is a trademark of Eclipse Foundation Inc.

Diamond Sponsor Gold Sponsors Media Sponsors

Platinum Sponsor

Silver Sponsor

www.eclipseworld.net 3
EclipseWorld 2006
Full-Day Tutorials
Wednesday, September 6 • 8:45 am – 5:00 pm
Developing With the
T-1 Getting Started With Eclipse
Web Tools Platform?
on Windows Look at these classes!
By Dwight Deugo
T-4 Develop Better J2EE 401 Consuming and
This introductory tutorial will explore the Eclipse architecture and
Applications With the Producing Web
help experienced developers become familiar with its plug-in mecha-
Web Tools Platform Services With Web
nism. We will start with an overview of Eclipse, and show how to
– Judd Tools – Judd
install and run its basic features. Next, we will learn about the
Eclipse Workbench and its resources, views and perspectives. Then 101 Quick Tour of the 501 Developing Java Web
we will examine the Java Development Tools that implement a Java Eclipse Web Tools Services With the Web
integrated development environment. We will finish by learning how Platform – Ryman Tools Platform
to test and debug Java code in Eclipse using JUnit and Ant, and how – Ryman
107 Leveraging JSF
to extend the platform with plug-ins. 601 Extending the Web
Components
Tutorial topics include: Tools Platform With
– Katz
• Introduction to Eclipse Ant and PDE – Shittu
• The Workbench 201 How to Build Java Web
701 Building Applications
• Organizing, navigating and finding resources Applications With the
With the Java
• Using Eclipse to develop Java programs Web Tools Platform
Persistence API and
• Running and debugging Java programs – Ryman
Dali – S. Smith
• Writing and running JUnit tests 301 Facing JavaServer
• Ant support 801 How to Use and
Faces Development
• Plug-ins Extend Eclipse’s XML
With JSF Tools
After completing this tutorial, you’ll be able to install Eclipse and and Schema Tools
– Jacobi
add new plug-ins to it, and be able to navigate and work in the Eclipse – Williams, Salter,
Workbench. In addition, you’ll know how to create, run and debug Dahyabhai
Java programs using Eclipse.
In this technical tutorial, you’ll learn how to leverage the
T-2 Building Commercial-Quality Continuous Integration capabilities of the Test & Performance Tools
Platform by creating a small test automation framework for testing
Plug-Ins for Eclipse Eclipse applications. We will create several different types of TPTP
By Eric Clayberg and Dan Rubel tests, including JUnit and Automated UI, and construct a test
A definitive, start-to-finish overview of building commercial-quality automation framework that will provide automated, Ant-based, dis-
extensions for Eclipse. The instructors don’t merely introduce the tributed execution of those test suites and collection of results, as
basics; they’ll show you how to add the sophistication and “polish” well as generation of custom reports based on those results. Finally,
that your end users demand. we’ll learn how to extend the TPTP Automation Framework to gener-
In this full-day class, you’ll learn the fundamentals of plug-in devel- ate an RSS feed describing the status of the build and its tests, and
opment, with specific solutions for the challenges participants will linking to the test reports.
most likely encounter. Session content is based on the popular book Attendees who wish to follow along with portions of the tutorial
co-authored by Clayberg and Rubel, “Eclipse: Building Commercial- must bring a Windows laptop with Eclipse installed. You should
Quality Plug-ins,” and is split between lecture and hands-on lab work. already have some proficiency with Java development using Eclipse
So, bring your laptop with Eclipse preinstalled and you’re ready to go! and with Ant-based builds.

T-3 Achieving Continuous Integration T-4 Develop Better J2EE Applications


With the Test & Performance With the Web Tools Platform
Tools Platform By Christopher M. Judd
By Joe Toomey and Scott E. Schneider The Web Tools Project helps developers create J2EE and Web
applications, and this daylong class will teach you how to use WTP to
Among the many best practices advanced by the agile develop-
build multitier J2EE applications.
ment community is Continuous Integration. When properly applied,
We will begin by providing an overview of the J2EE development
Continuous Integration allows development teams to find defects ear-
tool landscape and approaches, followed by an overview of the WTP
lier and drive down projects risks sooner. But improperly applied,
and its two major subprojects, J2EE Standard Tools and Web
specifically in the absence of automated testing, Continuous
Standard Tools. From there, we will spend most of the day learning
Integration can easily become a recipe for disaster.

4 www.eclipseworld.net
EclipseWorld 2006
Tutorials/Technical Classes
how to use WTP to develop, debug and deploy Enterprise JavaBeans, • C/C++ Development Tools
servlets, JavaServer Pages and Web services. • Data Tools Platform
You should already have basic skills with Eclipse, Web services • Eclipse Modeling Framework
and J2EE development. • Graphical Editor Framework
• Graphical Modeling Framework
T-5 Building XSLT Applications • Test & Performance Tools Platform
• Web Tools Platform
With Eclipse • Visual Editor
By Doug Tidwell
In this tutorial we’ll look at the Extensible Stylesheet Language for
Transformations (XSLT) as a tool for building Web applications. You’ll
learn about open-source XML tools for Eclipse, and how to use XSLT
Technical Classes
with a variety of technologies, including Scalable Vector Graphics,
Thursday, September 7 • 8:30 am – 10:00 am
Web services and AJAX.
The tutorial has two areas of focus: One is learning XSLT and XPath
(including the new features in XSLT 2.0); the other is using Eclipse to
101 Quick Tour of the Eclipse Web Tools
build, test and debug Web applications built on XSLT. You’ll leave with Platform
an understanding of this powerful, open technology, and you’ll know
By Arthur Ryman
how to use Eclipse to make the most of your newfound knowledge.
The Eclipse Web Tools Platform provides a set of tools for devel-
You should already have a basic familiarity with Eclipse and the
oping standards-based multitier Java Web applications. The project
Eclipse plug-in architecture, and understand the basic concepts of
contains tools for HTML, CSS, JavaScript, XML, XML Schema, Web
XML and HTML.
services, servlets, JSP, EJBs and data access.
This session gives an overview of WTP 1.5, which is part of the
T-6 Implementing SOA in Eclipse Eclipse 3.2 simultaneous release, and demonstrates its main areas
By Edward Lance in a quick tour, which will show how to configure an application serv-
This full-day tutorial will teach how to implement service-oriented er, create a Web project, add and debug a JSP, perform database
architectures in Eclipse. We’ll provide an overview of service-oriented access and develop a Web service.
architecture (SOA) and examine common challenges and pitfalls to an This is an introductory-level session aimed at developers and man-
SOA project. Topics will include orchestration, business process man- agers who are creating Web applications. No prior experience with
agement and an SOA case study. You’ll also get hands-on experience, WTP is required. After this session you will have a good understand-
supplemented by additional demonstrations to help you learn how to ing of the main functional components of WTP and how it can be used
create SOA-ready applications using Eclipse. You’ll build an SOA-enabled to develop Java Web applications. Another class to consider is 201,
client and test it using the Eclipse Test and Performance Tools Platform “How to Build Java Web Applications With Web Tools Platform.”
(TPTP). The class will also cover relevant Web services patterns.
102 Test-Driven Development
T-7 Callisto Boot Camp: and Eclipse: Delivering Working
Ten Projects. One Day. Code for Less
By Wayne Beaton By Carlos Valcarcel
The Callisto launch of Eclipse 3.2—10 projects coming together Test-driven development, an essential part of any modern soft-
with a massive simultaneous update and release—is unprecedented ware development methodology, is supported in different ways with-
in the software tools community. For most Eclipse users, from com- in Eclipse. The time and effort saved by testing in-depth is substan-
mitters to enterprise IT staff, Callisto will make a profound impact on tial, as you’ll see in this intermediate-level class.
every aspect of software development. We will discuss the process of test-driven development using
This tutorial, for experienced Eclipse developers who are current- Eclipse-based tools and how it compares with existing practices.
ly using Eclipse 3.1, will deep-dive on the new features and innova- Using JUnit as the starting point for Java testing, you will then learn
tions in each of the 10 projects that make up the Callisto about and study Cactus, StrutsTestCase, jWebUnit and Virtual Mock
Simultaneous Release. By attending this class, you’ll gain a unique
perspective on these projects, not only about the individual new func- “EclipseWorld is a really good place to get
tions that they offer, but how they integrate together to advance the those questions answered which are hard to
entire Eclipse ecosystem. Everything you want to know about
Callisto—you’ll find it here.
find in books.”
The 10 projects that this session will cover are: Farha Azaz, Senior Software Engineer,
• Eclipse 3.2 (the Callisto release) TouchNet Information Systems
• Business Intelligence & Reporting Tools

www.eclipseworld.net 5
EclipseWorld 2006
Technical Classes
Objects. Because Eclipse does not support many of these frame-
works out of the box, we’ll also discuss the configuration needed to
use nonsupported testing frameworks.

103 A Practical Introduction to the


Application Lifecycle Framework
By Kevin Parker
As developers, we expect our application life-cycle management
tools to be well-integrated. Then why are we so worried about upgrad-
ing those tools? Because when we do, the integration breaks.
Welcome to the Eclipse Application Lifecycle Framework Project, the
solution that will fix broken integrations once and for all. Want to learn
how ALF can help you build better applications? In this session, we’ll 106 How to Improve Database
explain the ALF architecture, so you can see why the project is enlist- Connectivity With the Data Tools
ing the support of vendors and developers alike to solve the problem
of broken tool integration. Following this presentation, you are encour-
Platform
aged to attend session 203, “How to ALF-Enable Your Applications.” By John Graham and Brian Payton
The Data Tools Platform offers you a set of flexible and extensible
104 First Steps for Building and frameworks for data tooling and data-driven applications, along with
tools that use these frameworks. In this class, you’ll learn how to use
Deploying Eclipse RCP Applications APIs and extension points to link data sources into your applications.
By Dwight Deugo We will cover the specialized connection profile, SQL Model extension
Ready to build Rich Client Platform applications? If so, you’ve and catalog loader included with DTP, and show how DTP’s SQL devel-
come to the right place. Participants will explore how the Eclipse opment tools interact with this data source.
plug-in architecture can be used to develop RCP applications. You will Building on this foundation, you’ll see how to use the DTP SQL
learn how to use the required Java classes and code for your first parser framework to create a customized SQL parser for Apache
RCP application, and then you’ll see how to test, package and deploy Derby, and use it to support editing and validating Derby-specific SQL
that application. We will finish by describing how to internationalize in a simple application. You’ll come away from this intermediate-level
your application and how to add help information to it. class with the understanding necessary to begin immediately lever-
Presentation topics include: aging DTP with your own specific data sources.
• Eclipse Manifest File: plugin.xml
• Required Java classes 107 Leveraging JSF Components
• Testing and deploying RCP applications
By Max Katz
• Internationalization
• Help JavaServer Faces has rapidly become an essential technology for
rich interactive Web applications. Not only that, but it facilitates and
encourages the creation and use of highly customizable reusable
105 Build Better Graphical Editors With components. As JSF becomes more widespread, the question of
the Graphical Modeling Framework when and how to create these components will be important for you
and your development team. In this session, we’ll learn practical
By Richard Gronback
ways to take full advantage of JSF, including the key criteria for decid-
Want to understand how to leverage the Eclipse Graphical
ing when to use components. Then, we will walk through a step-by-
Modeling Framework to construct and deploy graphical editors? In
step tutorial for developing components and incorporating them into
this class, you’ll learn how to use both the Graphical Editing
your applications. The prerequisite for this intermediate-level course
Framework and the Eclipse Modeling Framework, showing you how to
is a basic understanding of Web application development.
take advantage of GMF’s current capabilities and where it’s going in
the future. This is an intermediate-level class; knowledge of GEF and
EMF is helpful but not strictly required.
Thursday, September 7 • 10:30 am – 12:00 pm

“EclipseWorld had a great collaborative 201 How to Build Java Web Applications
atmosphere. It was exciting to learn about
the different uses of Eclipse, and see what With the Web Tools Platform
people were creating with it.” By Arthur Ryman
This session focuses on the tools available for developing the
Justin Stern, Software Engineer, Auspice
presentation tier using Eclipse and Web Tools Platform 1.5, which

6 www.eclipseworld.net
EclipseWorld 2006
Technical Classes
will be part of the forthcoming Eclipse 3.2 release. In WTP 1.5,
these tools include editors, wizards and validators for creating “EclipseWorld was dynamic, thought provoking
HTML, CSS, JavaScript, XML, XML Schema, ser vlets and JSP. We’ll and cutting-edge.”
show you how to use these tools by developing a simple Java Web
Robert Rothman, Senior Developer, Morgan Stanley
application.
Want more? The session concludes with a discussion of the
recently added JSF and AJAX subprojects to WTP. This is an interme-
204 Interacting With Relational
diate-level session aimed at developers and managers who are cre-
ating Web applications, and some prior experience with WTP is rec- Databases
ommended. If you’re looking for a beginner-level class, see 101, By Christopher M. Judd
“Quick Tour of the Eclipse Web Tools Platform.”
Many applications persist data to relational databases such as
MySQL, Oracle, DB2 and SQL Server. During development, you and
202 Web 2.0 the Eclipse Way your development team must interact with the database in order to exe-
cute database definition language scripts, run queries and modify data.
With the Rich AJAX Platform
In this class, you’ll learn how to use the Web Standard Tools
By Jochen Krause included tools, particularly the RDB component, to connect to and
The Rich AJAX Platform is ready to help you create AJAX–enabled explore relational databases.
Web applications using the methods and concepts of the Eclipse
Rich Client Platform. In fact, RAP can be thought of as RCP for the
205 Fundamentals of the Eclipse
Web, and that means, among other things, that a large part of the
existing code from desktop RCP applications can be used to run Modeling Framework
them in a browser. By Dave Steinberg
This class will teach you about the three RAP building blocks—a This technical class provides a look at model-driven development
widget toolkit, the Eclipse plug-in mechanism and a workbench—and and data integration using the Eclipse Modeling Framework. We’ll
how they compare with RCP. The widget toolkit is a Java component cover the fundamentals of EMF, including model definition and code
library similar to SWT: It shields you from differences in the underly- generation, and show how your applications can effectively exploit
ing technologies. RAP renders the appropriate HTML, CSS and EMF’s most powerful features, including its extensible persistence
JavaScript instead of the developer hand-coding it. The plug-in mech- framework, change notification and recording, validation, reflection
anism for Web applications employs the OSGi functionality. The work- and dynamic model definition.
bench is tightly integrated with the widget toolkit and is similar to the
Eclipse platform workbench.
In this class, we’ll demonstrate how you can quickly create AJAX
206 Using Eclipse’s Testing,
Web applications using known Eclipse development methods. You Profiling and Monitoring Tools
should already have a good understanding of Java and a basic knowl-
By Sri Doddapaneni and Harm Sluiman
edge of Eclipse RCP.
In this technical class, we will present an overview of testing, pro-
filing and monitoring tools from the Test & Performance Tools
203 How to ALF-Enable Your Applications Platform, including JUnit testing, Web application stress testing and
By Kevin Parker manual test recording capabilities.
You’ve heard about the Eclipse ALF Project and its promise to You’ll learn how to create and navigate test suites, test behaviors
deliver end-to-end development tool interoperability; maybe you and tests, present test results and execution history, and how to gen-
attended class 103, “A Practical Introduction to the Application erate charts and reports of test results. Finally, we’ll explore various
Lifecycle Framework.” Let’s move past the basics, put the rubber on adoption models for building and integrating third-party tools and
the road and ALF-enable your tools! extending TPTP.
In this session, you’ll learn how to ALF-enable both commercial
and homegrown applications through the use of the project’s confor- 207 Successful Architecture
mance guidelines. We’ll address the vertical vocabularies used to
Design for Rich Client
ALF-enable development applications through Web services.
You will also learn how to properly orchestrate your infrastructure Platform Applications, Part 1
tool stack within the framework to optimize your development infra- By David Orme
structure. Along the way, we will also demonstrate current ALF- You’re ready to leverage the Rich Client Platform to give your cus-
enabled technologies to give you an idea of how ALF can put an end tomers the high-quality user experience of a local application while
to broken tool integrations. You should already have a basic knowl- allowing you to manage the application centrally from a server.
edge of application architecture and design, as well as a familiarity Perhaps you’ve read “Eclipse Rich Client Platform,” by Jeff McAffer
with code. and Jean-Michel Lemieux. But now you need to know how to create an
effective RCP-based line-of-business application. No problem!

www.eclipseworld.net 7
EclipseWorld 2006
Technical Classes
• Extension Point Overview
“Technology being discussed in the conference • API Overview
was very leading edge. I got to familiarize myself • BIRT Deployment Models
with projects I hadn’t had a chance to research.” • BIRT In Action
James Pitts, Director of Database Programming, The class will conclude by touring a real-world BIRT implementation.
Embarcadero Technologies
303 BPEL 101: Business Process
This session will teach you: Execution Language in Eclipse
• Which layers should be in an Eclipse RCP business application,
why each is layer present, and how they interact. By Raghu Kodali
• Why validating data entry in RCP applications is so painful (the Business Process Execution Language is fundamental to manag-
number of possible interactions between business rules rises ing and orchestrating SOA systems, and it’s become the standard for
proportional to the square of the number of controls on a data orchestrating services into multistep business processes. BPEL serv-
entry form) and how to manage this complexity. ices may be implemented with a wide variety of technologies and inter-
After this session, you will understand what the different layers act with a wide variety of heterogeneous back-end systems.
are in a successful RCP line-of-business application and where to go This class will cover the BPEL language and walk you through the
to find out more information about them. This intermediate-level basic language concepts and constructs, including <partnerLink>,
class assumes you know how to create an Eclipse RCP application <invoke>, <receive>, <flow> and exception handling. You’ll also
using the Eclipse wizards, understand basic three-tier application learn the relationship between BPEL and Java, and see how to use
architecture, and have a basic understanding of SWT. Be sure to con- BPEL to integrate Java applications. We will use Eclipse with a BPEL
tinue on to Part 2, in class 307. plug-in to demonstrate how to develop business processes that
invoke Web services both synchronously and asynchronously. We’ll
close this intermediate-level class with an update on the Eclipse
Thursday, September 7 • 1:15 pm – 2:45 pm BPEL project.

301 Facing JavaServer Faces 304 Profiling Java Application


Development With JSF Tools Behavior With Eclipse Test
By Jonas Jacobi & Performance Tools
With a rapidly growing community of developers involved at different By Guru Nagarajan
levels of the JavaServer Faces ladder, the demands for good tool sup-
This class will focus on various Java profiling features, from profile
port are increasing. This class is focusing on practical JSF develop-
data collecting to memory and execution analysis of a Java application.
ment using the design-time features provided by the Eclipse JSF Tools
You’ll explore the Test & Performance Tools Project’s profiler tool via a
Project. The class will cover JSF component design and design-time
self-hosting Web application deployed within the Eclipse environment,
support for developers interested in writing their own JSF components.
understand the execution pattern and identify the memory leak and bot-
By attending this intermediate-level class, you’ll gain a complete
tleneck performance problems within the application.
understanding of the JSF landscape, how to build a JSF application,
You’ll also learn how to extend the TPTP framework to accommo-
what design-time support is available within the JSF Tools Project,
date your specific requirements. Armed with this knowledge, you’ll
and what is planned for future releases of the JSF Tools Project. You
profile and analyze your Java application locally or remotely. You’re
should already have at least a basic understanding of Java and Web
invited to bring your laptops to deepen your understanding by imple-
development.
menting practical exercises.

302 Reports Made Easy! Introducing the 305 GEF Development Made Easy
BIRT Reporting Framework By Koen Aers
By Krishna Venkatraman The Graphical Editing Framework contains a mountain of func-
This class introduces Business Intelligence and Reporting Tools, tionality and tools, and it’s easy to be overwhelmed by the sheer size
a powerful reporting framework that is part of the open-source of it. This class will follow a gentle path to the top of this hill. It will
Eclipse initiative. You’ll learn how to harness BIRT’s features for your show how to build an application using GEF, going from a simple
Java reporting needs. Hello World case through different enhancements to a fully function-
We’ll cover: al editor for workflows and business processes.
• BIRT Overview and Architecture You’ll uncover the secrets of the core GEF classes and discover
• Report Development Strategy the abysses that are always present in a mountain scenery. You will
• High-Level BIRT Architecture obtain an overview of the general architecture of a GEF application
• BIRT 2.0 Feature Set: What’s New along the way. At the end of the road, you will have the proper knowl-

8 www.eclipseworld.net
EclipseWorld 2006
Technical Classes
307 Successful Architecture Design for
Building Eclipse RCP
Rich Client Platform Applications,
Applications? Part 2
Check out these classes!
By David Orme
104 First Steps for 405 Eclipse Workgroup In Part 1 (class 207), we explored the fundamental layers in an
Building and Collaboration Eclipse RCP business application and how they interact. In this ses-
Deploying Eclipse – O’Flynn, Lewis sion, we will look at the code for a skeleton RCP application and see
RCP Applications how these layers are used in a small but real application.
502 Looking Good! In particular we will elaborate on:
– Deugo Polishing Eclipse Rich • What is the new JFace data binding framework, and what are
202 Web 2.0 the Eclipse Client Applications successful strategies for leveraging it to increase your project’s
Way With the Rich – Maleh quality and your team’s development velocity?
AJAX Platform 507 Eclipse on Cell Phones!? • Differing validation strategies for field-level, form-level and business-
– Krause An Introduction to the object-level data validation and when to apply which strategy.
207 Successful Embedded Rich Client • When to choose Eclipse views versus Eclipse editors for data
Platform (eRCP) presentation and editing.
Architecture Design – Aniszczyk
for Rich Client • The design patterns you need to know to be an effective RCP
Platform Applications, 607 Advanced User developer.
Interface Programming You will leave this talk feeling confident that you now can find and
Part 1 – Orme
Using the Eclipse Rich use the tools you need to successfully write rich business applica-
307 Successful tions using the Eclipse RCP.
Client Platform
Architecture Design – Creasey
for Rich Client
Platform Applications, 702 Practical Design Thursday, September 7 • 3:15 pm – 4:45 pm
Part 2 – Orme Patterns for Rich
Client Development 401 Consuming and Producing Web
402 Fundamentals of RCP
– Maleh
User Interface Services With Web Tools
Programming
– Creasey By Christopher M. Judd
Do you want to know how to publish or consume Web services in
Eclipse? It’s easy, if you use the Web Standard Tools and J2EE
edge to continue exploring GEF and the different possible side paths
Standard Tools.
that were left untouched.
In this beginning-to-intermediate-level class, we will demonstrate
If you want to join this trip, basic Java knowledge is required.
how to consume Google’s popular searching Web service in Eclipse.
Familiarity with the Eclipse plug-in architecture is a plus but not required.
Then we will learn how to expose application functionality written in
Java as a Web service. You should already have basic knowledge
306 Architect and Build High-End Data about Eclipse and Web services.
Tools Solutions
By Loïc Julien
402 Fundamentals of RCP User
The Eclipse Data Tools Platform is the perfect tool set for con- Interface Programming
structing high-end data solutions. With plenty of code walk-throughs By Tod Creasey
and demos, we’ll show you how it all works.
JFace forms the foundations of the Eclipse RCP user interface.
During this presentation we will provide an overview of the current
The toolkit offers a framework for many common interface compo-
design of the Data Tools framework from the Eclipse Data Tools
nents such as image and font registries, dialog, preference and wiz-
Platform, and introduce how to leverage the Graphical Modeling
ard frameworks based on the Standard Widget Toolkit.
Framework in order to provide diagramming support within the Data
This class covers how these components can be used to build an
Source Explorer.
Eclipse RCP application in a platform-independent way. We will go
We’ll then look deeply into how to add new database support to
through a practical example of building an application from the
your application by extending the base SQL Model and providing
ground up using JFace and SWT.
extended round-trip engineering to the generic support. You’ll also
learn how to provide diagramming support to any database schema.
This is an intermediate-level class.

www.eclipseworld.net 9
EclipseWorld 2006
Technical Classes
403 Leveraging Model-Driven Development
and the Eclipse Platform
By Michael Sawicki
Model-driven development improves many of the practices and
tools that organizations already have in place. The goal is to achieve
higher levels of automation in the development process. Models act as
the catalyst that, in combination with automated transformations,
result in more accurate application design, better structural integrity of
the implementation, higher quality and faster development.
This class covers the design and building of applications using a
UML-driven approach within the Eclipse framework. The session
takes you through the basics of developing a platform-independent
domain model from which the various multitier infrastructure designs
are generated.
We’ll examine the resulting application architecture as well as the 406 Developing and Deploying Services
code implementation, how to modify the application, and how design Using the SOA Tools Platform
and infrastructure changes are iteratively applied to the application. By
By Oisin Hurley and Karl Reti
the end of this class, you’ll have a thorough understanding of the flex-
ibility and agility of this development approach and how it can increase Service-oriented architectures are an important piece of many
your team’s capabilities by an order of magnitude. enterprises, and the SOA Tools Platform has the mission of building
frameworks and extensible tools that enable the design, configuration,
assembly and deployment of applications designed to work in an SOA.
404 How to Create Custom Versions This advanced class will present an overview of the project archi-
of Eclipse tecture and core technologies as well as show how SOA services
may be constructed, configured and deployed to an enterprise serv-
By Doug Tidwell
ice bus. You should already have working knowledge of ESB and SOA
One of the many benefits of Eclipse is its extensibility—including
fundamentals.
the environment itself! In this intermediate-level session, we’ll look
at several ways to create custom versions of Eclipse. We’ll create
custom welcome screens, cheat sheets and plug-ins that add project-
Friday, September 8 • 8:30 am – 10:00 am
specific functions and information to any Eclipse-based tool. You’ll
see a variety of customizations that enable team leaders and admin-
istrators to automate information sharing across a group of develop-
501 Developing Java Web Services With
ers. We’ll also look at ways of distributing and managing these cus- the Web Tools Platform
tomizations after they’re done.
By Arthur Ryman
You’ll leave with lots of ideas for using these technologies in your
This session focuses on the tools available for developing Web
own projects. You should have a basic familiarity with Eclipse and the
services using Eclipse and Web Tools Platform 1.5, which will be a part
Eclipse plug-in architecture.
of the forthcoming Eclipse 3.2 release. The class will present a series
of scenarios that include top-down Web services creation from XSD
405 Eclipse Workgroup Collaboration and WSDL, bottom-up Web services creation from Java classes, gen-
By Dennis O’Flynn and Scott Lewis erating Java client proxies from WSDL, using JAX-RPC in Web applica-
tions, testing Web services for WS-I compliance, and publishing Web
As Eclipse becomes more popular, and takes on more roles with-
services using UDDI and WSIL. This is an intermediate-level session;
in the enterprise as both a development and rich-client platform, the
some prior experience with WTP and Web services would be helpful.
need for collaboration across these applications and tools is con-
stantly increasing. Fortunately, the Eclipse Foundation has several
projects that are focusing on aspects of collaboration, and this talk 502 Looking Good! Polishing Eclipse
will concentrate on two of them: the Tools Services Framework (aka
Rich Client Applications
Corona) and the Eclipse Communication Framework.
We will show how RCP applications and Eclipse development tools By Annas Maleh
can be easily extended to large or small workgroups by using Corona Desktop applications are written by technical people. And, as the
and ECF for sharing and synchronizing platform constructs such as saying goes, “technical people don’t see color.” Unfortunately, users
projects and resources. You’ll learn that Eclipse constructs such as do see color, and thus polishing your RCP application’s look and feel
projects and resources can be shared within a collaborative environ- is absolutely essential, whether your application is going to be used
ment—and we’ll even demonstrate workgroup collaboration in action. internally or distributed commercially.

10 www.eclipseworld.net
EclipseWorld 2006
Technical Classes
On the bright side, these minor touches you add will separate your rich enterprise Web 2.0 applications.
product from the competition by ensuring it has the professional This session will describe various AJAX frameworks and tools,
touch that people have come to expect. In this class, you’ll learn sim- explain the benefits and pitfalls of various approaches and show exact-
ple but valuable techniques that will improve the look and feel of your ly how JSF and AJAX can work together to create enterprise Web 2.0
Eclipse RCP applications. Additionally, you’ll leave knowing how to applications, all using easy-to-understand live examples. Developers
customize different Eclipse RCP widgets using images, text and will also get a good understanding of various commercial tools and how
color. The class will begin by going over general issues with building they can dramatically improve their ability and productivity.
professional-looking applications with Java. It will then move on to an Before attending this intermediate-level class, you should already
overview of user-interface design best practices and Eclipse RCP have a good understanding of JavaServer Faces.
look-and-feel guidelines.
Finally, there will be a number of demonstrations showing how to 505 Probing Java Application Behavior
customize Eclipse RCP widgets to fit their specific business needs.
This intermediate/advanced class is for developers and architects With Probekit
who are experienced with Java and are familiar with SWT/JFace or By Guru Nagarajan
Eclipse RCP development. The Probekit—an exciting feature of the Test & Performance Tools
Platform—lets you write snippets of Java code that will execute in
503 Aspect-Oriented Programming your application at times you specify. Some people think of it as
“Aspects Lite.” These probes are temporary and are generally used
With AspectJ in Eclipse, Part 1 to collect runtime data about an application, for debugging, monitor-
By Ramnivas Laddad ing or program understanding.
Aspect-Oriented Programming (AOP) enables modularizing imple- Intrigued? This intermediate-level class covers Probekit’s features
mentation of cross-cutting concerns that abound in software develop- and capabilities, and you’ll learn some great ways to use probes to
ment: logging, tracing, dynamic profiling, error-handling, service-level help with program performance analysis and debugging.
agreement, policy enforcement, pooling, caching, concurrency control,
security, transaction management, business rules and more. 506 More Than Just Java: Integrating a
Traditional implementation of these concerns requires you to fuse
their implementation with the core concern of a module. With AOP, you New Language Into Eclipse
can implement each of the concerns in a separate module called By Sunil Belgaonkar
aspect. The result of such modular implementation is simplified The Eclipse platform does more than simply let you build Java and
design, improved understandability, improved quality, reduced time-to- C/C++ applications; it provides a platform for a wide variety of different
market, and expedited response to system requirement changes. development tools and applications—and programming languages.
This two-part presentation will teach you how to use AOP, ranging In this class, you’ll learn the technical considerations of hosting
from its whys and hows, to debunking myths around it. We’ll also an existing language, the Progress Advanced Business Language,
introduce the AspectJ language and AJDJ Eclipse plug-in, along with into Eclipse. You’ll also see how to add in Eclipse tools for editing,
several examples both from client and server. The presentation will compiling and debugging code, and for accessing data.
also feature live coding in Eclipse to solidify the concepts learned. No We’ll cover how Eclipse components provide facilities to visual
knowledge of AOP or AspectJ is required, although participants will modeling, host legacy tools and organize work. You’ll see how to
be helped by a good understanding of Java and object-oriented devel- leverage Eclipse perspectives to define roles and organize the tools
opment. See Part 2 in class 603. necessary to build a comprehensive development environment.
While the Progress language will be used as a case study, the les-
504 Developing Rich Applications sons and recommendations apply to anyone considering building
other languages and tools into the Eclipse platform.
With JSF and AJAX The class is most appropriate for those considering integrating
By Max Katz development tools into Eclipse; you should have a basic understand-
Asynchronous JavaScript and XML, or AJAX, has taken the Web appli- ing of how Eclipse plug-ins work.
cation development world by storm. And in the past year, JavaServer
Faces has emerged as the standard essential technology for building 507 Eclipse on Cell Phones!? An
richly interactive Web applications. When combined, we have access to
the most powerful rich component-based approach for developing mod- Introduction to the Embedded Rich
ern Web applications on the market today, allowing developers to create Client Platform (eRCP)
By Chris Aniszczyk
“Great instructors and very good This class introduces the embedded Rich Client Platform (eRCP) proj-
environment, very casual and enjoyable.” ect and where the project is headed. Quite simply, the eRCP project is
Tim Condron, Business Analyst, Spectra East all about the exploration of taking the well-established Eclipse RCP par-
adigm for desktop computing and moving it to the embedded space.

www.eclipseworld.net 11
EclipseWorld 2006
Technical Classes
The class will cover:
• An introduction to eRCP and why it’s important. Leveraging the Eclipse
• Community participation/development status.
• Architecture and application model. Test & Performance Tools?
• The various component parts of the project. Don’t miss these classes!
This class will conclude with some coding exercises that involve
the eWorkbench component and other aspects of eRCP-based devel- T-3 Achieving Continuous 304 Profiling Java
opment. Integration With the Application Behavior
Test & Performance With Eclipse Test &
Tools Platform Performance Tools
Friday, September 8 • 10:30 am – 12:00 pm – Toomey, Schneider – Nagarajan
505 Probing Java
601 Extending the Web Tools Platform 206 Using Eclipse’s
Application Behavior
Testing, Profiling and
With Ant and PDE Monitoring Tools
With Probekit
– Nagarajan
By Hakeem Shittu – Doddapaneni,
606 Right Out of the Box:
When your team is building highly complex distributed applica- Sluiman
tions, there’s a good chance that they use a toolbox with many tools Static Code Analysis
of varying origins for design, development and deployment. You can With Eclipse
bring those tools together with the Web Tools Platform, which pro- – Gutz, R. Smith
vides a robust, standardized tool set for the development of multi-
tiered applications using the J2EE platform.
Even so, WTP cannot replace all the different project-specific tools
604 Contributing Code to Eclipse:
and components that developers rely on to create their Web applica-
tions. That’s why WTP’s flexible design accommodates integration Why To. How To.
with existing tools, as well as extension of the core WTP functionality. By Bjorn Freeman-Benson
This session will teach you two methods of extending WTP to make
Eclipse is about providing extensible frameworks and exemplary
it even more productive. First, you’ll learn how to integrate external
tools for the community and the ecosystem. Eclipse members base
tools and processes into the IDE using the Ant build tool. After that,
commercial products on the Eclipse frameworks, and thus the
we’ll explain how to use the Eclipse Plug-in Development Environment
Eclipse projects take special pride in their reputation for very high-
to build, package and deliver developer-oriented plug-ins—a method
quality releases. This quality is no accident—the Eclipse
that offers an even greater level of control and integration.
Development Process and the community effort to enhance and
enforce that process is part of the whole Eclipse experience. You’ll
602 How to Leverage Domain Specific learn how the Eclipse software engineering processes works, and
Modeling Using Eclipse how both companies and individuals can join the Eclipse projects.
We’ll cover the processes, the benefits and the drawbacks, and leave
By Anthony Hunter you with a keen desire to join!
Domain Specific Modeling is a hot topic, and a new facility in
Eclipse 3.2, the Graphical Modeling Framework, lets you experiment
605 Service-Oriented Architectures
with this new modeling technique. Thanks to GMF, you can rapidly
develop high-quality extensible Eclipse-based modeling diagram edi- the SCA Way With Corona!
tors for domain analysts. By Joel Hawkins
In this class, we will provide an overview of the Graphical Modeling
The past year has seen a lot of interest in SOA and server-side
Framework, touch on its benefits and limitations, and discuss the
OSGi deployments, and when it comes to Eclipse developers, the
architecture of the framework. We will also demonstrate the creation
Service Component Architecture and the Tools Services Framework
of a DSM diagram editor using the tools and generators included in
(also known as Corona) promises a rich development environment for
the project. While this class will cover EMF and GEF, you don’t need
creating SOA applications. Corona combines OSGi’s robust service
to know them in order to get value out of the class; we’ll provide a
management capabilities with SCA’s integration flexibility to deliver a
quick introduction to them before jumping into the GMF.
compelling SOA platform.
In this class you will learn the basics of SCA and Corona, and how
603 Aspect-Oriented Programming With the SCA concepts of subsystems, modules and components are
AspectJ in Eclipse, Part 2 mapped onto the OSGi Service model. You’ll learn how to create your
own services and deploy them within multiple SCA container configu-
By Ramnivas Laddad rations using Corona. Finally, you’ll learn how to add manageability to
Continuation of Class 503. Please see description under Part 1. your SOA services using the Web Services Distributed Management

12 www.eclipseworld.net
EclipseWorld 2006
Technical Classes
capabilities included with Corona. Before attending this intermediate- you how it works.
level class, you should already have a working understanding of serv- The Dali EJB Object Relational Mapping project brings JPA develop-
ice-oriented architectures. ment to Eclipse for both out-of-container and in-container deployment.
This session will teach you how to use Dali to build applications with
606 Right Out of the Box: JPA; we’ll also show you how to test them with JUnit within Eclipse.
Topics include the EntityManager and Query APIs, core O/R mappings
Static Code Analysis With Eclipse and configuring your environment for testing and deployment.
By Steve Gutz and Randy D. Smith
Software engineering continues to emphasize that the earlier 702 Practical Design Patterns
problems are found, the cheaper they are to fix. But how do you find
bugs in your code as early as possible? Through static analysis!
for Rich Client Development
Version 3.2 of Eclipse’s Test & Performance Tools now offers static By Annas Maleh
analysis for Java and C++ code out of the box and includes an exten- Despite the passing of the 10th anniversary of the famous book
sibility layer to add more tools. “Design Patterns: Elements of Reusable Object-Oriented Design,”
In this class, we’ll describe the problem domain while offering a there remains a lack of understanding and experience in applying
comparison of competing tools, demonstrate use and customization design patterns to common development problems—and Eclipse
of the TPTP static analysis feature and illustrate how the feature can RCP development is no exception.
be extended to support your own coding guidelines in Java or C++ (or In this advanced class, you will see real-world examples clearly
any other analyzable language you choose to support). illustrating the benefits of applying design patterns, emphasizing pat-
You should be comfortable writing software in either Java or C++ terns beneficial to RCP applications. The class will begin with a defi-
(or both) on the Eclipse 3.2 “Callisto” platform. nition and brief history of design patterns, and an overview of their
benefits; we’ll then jump right into specific patterns that help with
607 Advanced User Interface Eclipse RCP projects. To help demonstrate the benefits of design pat-
terns, we’ll analyze RCP components written without design patterns,
Programming Using the Eclipse and examine problems encountered when attempting to add features
Rich Client Platform to those components. Next, we’ll show how to fix those problems
with just a few refactorings.
By Tod Creasey
This advanced class is for developers and architects who are
The Eclipse RCP user interface consists of both plug-in exten- experienced with Java and Eclipse RCP development and are familiar
sions to the platform and reusable user interface components. This with object-oriented design principles and design patterns.
talk will provide a more advanced look into the way an RCP UI appli-
cation can be built.
We will cover some of the components in the Platform UI and the
703 Managing Application Architectures
plug-in extensions that access them by taking an example written With Software Factories
using just the JFace and SWT frameworks and integrating it into the
By Michael Sawicki
Eclipse Platform. If you use RCP, you won’t want to miss this session.
The essence of any factory is predictability. Factories provide reli-
able and predictable results in regard to time, quality and cost. The
advantage of a software factory is the ability to define application
Friday, September 8 • 1:30 pm – 3:00 pm
architectures and then distribute the definition to development
teams so that they build applications according to the definition with-
701 Building Applications With the Java out the distractions of various technologies, architectures or other
Persistence API and Dali issues not relevant to the project.
This class describes the elements of a software factory, process,
By Shaun Smith
tools, automation and customization, and how those elements help
The new Java Persistence API defines a standard set of object-
deliver quality software. The software factory allows you to choose the
relational mappings and a standard API that can be used for per-
application architectures and define what technologies will be used in
sistence with both Java EE and Java SE. In this class, we’ll show
the presentation, business and persistency tiers of your application.
“If you are looking for both high and low level infor- The definition contains everything needed to build your application,
and is flexible enough to accommodate multiple application architec-
mation regarding Eclipse, both as an IDE as well as
tures. During the session we will create a software factory definition
an RCP, you’ll find it at EclipseWorld. The presen-
and use it in building a small application.
ters are knowledgeable and approachable. In addi- You’ll learn how implementing the software factory improves the
tion, the networking with other users of the reliability of application design and construction, and aligns develop-
Eclipse platform is invaluable.” ment teams as closely to the business objectives of the organization
Dan Colbert, Product Manager, CompassCom as possible.

www.eclipseworld.net 13
EclipseWorld 2006
Technical Classes
704 How to Write High-Quality Eclipse “A good opportunity to meet Eclipse
Bugs Reports and Patches developers of all kinds.”
By Steven Wasleski Suzanne Yoakum-Stover,
How can you get Eclipse developers to pay attention to your bug Senior Computational Scientist, SAIC
report or enhancement request? It’s easy: First, write a clear and
thorough report or request. Second, submit a high-quality patch via
your bug report or enhancement request. This class will start by 707 Leveraging BIRT Reporting
teaching you how to write a top-quality bug report. The second and
By Jason Weathersby and Scott Rosenbaum
longer portion of the presentation will take you through the process
The Eclipse Business Intelligence and Reporting Tools project
of creating a patch and will provide tips along the way to help you
gives you a framework for designing, developing, deploying, generat-
make your patches high quality.
ing and viewing reports from Java applications. This class will teach
We’ll use actual Eclipse bug reports and patches to illustrate the
you how to use the BIRT framework, with a particular focus on its
topics covered. For this intermediate-to-advanced class, you should
integration and extension points.
be familiar with Bugzilla basics, Eclipse plug-in development including
The class will cover:
debugging, basic CVS team development concepts, and have a basic
• BIRT Framework Strategy
understanding of Eclipse API definitions and how Eclipse APIs are
• Graphical UI for Ease of Use
expected to evolve.
• JavaScript for Basic Report Customization
• Java-Based Extension Points for Advanced Customization
705 Best Practices for Managing Eclipse • Open API Framework for Seamless Integration
Adoption in the Enterprise • BIRT Design and Development
• Data Access
By John Kellerman • Flexible Structure
This exciting class will present proven, effective strategies for cor- • Extendable Components
porate teams working on Eclipse-based projects and interacting with • Charting
the greater Eclipse community. • Format and Styles
Drawing on his personal experience as a founding member of the • BIRT Emitters
Eclipse project and his participation as it evolved from a predomi- • Deploy and Generate
nantly IBM initiative through the establishment of the independent • Standard Access Model
Eclipse Foundation in 2004, John Kellerman will provide insight on • J2EE Access Model
how to best navigate the waters of industry collaboration. He will pro- • Stand-Alone Java Usage Model
vide examples of successful projects—what worked, what didn’t • Eclipse RCP Application Integration
work, and how you can get large teams of software developers to • Report View
agree on a common path. • Table of Contents
In addition, you’ll learn about Mr. Kellerman’s unique role as • Dynamic Reports
Eclipse strategy manager for IBM and talk about the skills required • Hyperlinking
to stand at the intersection of a giant corporation and an open-source
community, taking into account the needs and demands of each.
From this class, you’ll come away with a better understanding of how Friday, September 8 • 3:30 pm – 5:00 pm
to best work with the Eclipse community and achieve maximum suc-
cess for your respective projects. 801 How to Use and Extend Eclipse’s
706 Step by Step: Making Enterprise XML and Schema Tools
By David Williams, Craig Salter and Nitin Dahyabhai
JavaBeans With J2EE Standard Tools
The Web Standard Tools project contains many capabilities and
By Christopher M. Judd tools that can help create and maintain XML schemas and XML
In this class, you’ll learn how to create session beans, entity instance documents. We’ll start by reviewing the XML and schema
beans and message beans using the Eclipse J2EE Standard Tools. tools that arrived with WTP 1.0, but then move into exploring the new
You will learn how to write deployment descriptors and package the WTP 1.5 tools, which will appear with Eclipse 3.2. Our goal in this
application into an EJB jar or EAR file. You’ll also see how to deploy intermediate class is to help you improve the efficiency of your XML
the EJBs to application servers. Once the application has been development.
deployed, we’ll conclude by covering how to debug the EJBs. But there’s much more to WTP than its tools: We’ll also show you
how to extend WTP for your users, or to support special cases of XML
documents. You’ll learn how to extend the XML Editor in basic ways,
such as adding new context menu actions, adding templates and

14 www.eclipseworld.net
EclipseWorld 2006
Technical Classes
snippets, but also adding more advanced features like extending con- tance, and deploy your help content on the Web for increased cus-
tent assist, custom validation (both “batch” and “as you type” vali- tomer satisfaction. For this intermediate class, you should have at
dation). We’ll also cover ways to use standard DOM APIs to modify least some familiarity with User Assistance (help system) concepts
the XML document. and terminology.
This class requires knowledge of the basics of XML, DTDs and
XML Schemas, as well as the basics of creating Eclipse plug-ins for 804 Presenting Tabular Data in Eclipse
reuse.
By Kevin Taylor
Did you know that you have at least four different components
802 How to Build Rich Internet
available just for presenting tabular data in your application user
Applications With PHP and AJAX interface? Since tabular data is so prevalent in corporate business
By Phil Berkland applications, it is essential for you and your team to have a solid
understanding of the different UI choices available to them.
PHP has quickly become the most popular language for building
In this advanced class, we’ll delve deep into Table, TableViewer,
dynamic Web applications, and AJAX (Asynchronous JavaScript And
KTable and CompositeTable. We will explore each component’s high-
XML) is a Web development technique for creating interactive Web
level APIs, contrast their performance characteristics, and look at
applications using JavaScript to dynamically manipulate HTML and to
common usage patterns, including master-detail, editable grid, data
exchange data asynchronously with a Web server.
binding, filtering and sorting. If you are interested in writing powerful
In this course, you’ll learn how to use the Eclipse PHP IDE and the
and practical business applications, you need to attend this class.
AJAX tools to develop rich Internet applications. An Eclipse environ-
ment with the PHP and AJAX tools provides a single tool for the devel-
opment of both the client and server parts of a rich client application. 805 Developing Collaborative Tools
We’ll show you how to use the IDE to create and modify rich client
With Equinox and ECF
applications, and how to seamlessly debug the server PHP code and
client JavaScript code. By Bob Brady
You should already have a general knowledge of Web develop- Agile methods require a high degree of collaboration throughout
ment technologies, including JavaScript. Knowledge about PHP and the application life cycle. However, many existing development tools
AJAX is helpful but not required. are essentially single-user. Coming to the rescue is the Equinox OSGi
implementation and Eclipse Communication Framework, which are
gaining momentum as a means for providing collaboration among
803 Developing Integrated Help
tools, such as their use in the Eclipse Corona project.
and Documentation for This intermediate-to-advanced class will teach you how to use the
Eclipse Applications Equinox and ECF projects to start developing real-time collaborative
tools. We’ll start with an overview of Equinox followed by several
By Lee Anne Kowalski, Maria Brownstein and Dave Resch hands-on examples to show you the basics of Equinox’s built-in SOA,
User Assistance, the help subsystem within Eclipse, offers a and how to create a bundle that coordinates service interactions.
wealth of powerful and extensible features to deliver integrated help We’ll then use practical code examples to explain how ECF can be
and documentation. This class teaches real-life techniques that you used for peer-to-peer messaging and sharing project resources.
can use to take advantage of all the Eclipse User Assistance fea- Finally, we’ll create a sample tool with real-time, collaborative views.
tures, and plan a successful, collaborative effort to deliver high-qual- Basic Java and Eclipse development experience are prerequisites.
ity results.
We’ll cover:
• Overview of Eclipse User Assistance features: the bookshelf
806 How to Develop Web Service
and help window, dynamic help views, cheat sheets, Welcome Applications in Java
experience, and infocenters.
By Joshua Hendrick
• Full project life cycle for authoring and delivering help content,
As companies and consumers rely more on Web services, it
including collaborating across the project team.
becomes increasingly important for you and your team to know how
• Documentation plug-in design, including custom Welcome plug-
to properly design, develop, deploy and ultimately manage a Web
ins, legacy information, topic-orientation, and reuse and stack-
services system. This class shows a step-by-step plan for developing
ing issues.
quality Web services in Java using Eclipse. We’ll focus on the solid
• Optimizing documentation plug-ins for help system search.
engineering and testing practices required to ensure complete Web
• Table of contents/bookshelf design, including building and
services functionality, interoperability and security.
merging complex content.
To make the discussion as concrete and pragmatic as possible, the
• Deploying infocenters for Web-based information delivery.
presentation will use Eclipse 3.1 to demonstrate the introduced strate-
You’ll gain real-life experience and methods that you can use to
gies using a sample Java-based Web service implementation for a large
plan User Assistance projects, as well as practical techniques and
real-estate broker with office branches across the country.
code samples that you can use to develop integrated user assis-

www.eclipseworld.net 15
Faculty
Koen Aers Eric Clayberg
Koen Aers is a senior software developer at JBoss, Eric Clayberg, senior vice president of product devel-
and is currently driving the Eclipse support for the JBoss opment for Instantiations, is a seasoned software tech-
jBPM project. He has been part of the jBPM team since nologist, product developer, entrepreneur and manager
April 2004 and became a JBoss employee when the with more than 15 years of commercial software devel-
jBPM project joined JBoss. opment experience, including seven years of experience
Mr. Aers graduated as a civil engineer from the with Java and four years with Eclipse. He is the primary
Belgian Royal Military Academy and obtained an M.S. in information tech- author and architect of more than a dozen commercial Java and Smalltalk
nology at the Brussels Free University. Before joining JBoss, he worked in add-on products.
the IT department of the Belgian Army and as a software consultant, first Mr. Clayberg holds a B.S. from MIT and an M.B.A. from Harvard, and
for Unisys and as an independent afterward. has co-founded two successful software companies. He is co-author of the
book, “Eclipse: Building Commercial Quality Plug-Ins.”
Chris Aniszczyk
Chris Aniszczyk is a software engineer for IBM Lotus at Tod Creasey
the IBM Austin Labs. He’s a committer on the Eclipse Tod Creasey is a senior software developer for IBM, as
Communications Framework (ECF) and Eclipse Modeling well as an Eclipse Platform UI committer. He has been
Framework Technology (EMFT) projects. Mr. Aniszczyk has working with the OTI/IBM labs team since 1993 on a vari-
written several articles on Eclipse and is very active in the ety of IDEs starting with Envy Developer and progressing
Eclipse community as he helps maintain the popular blog through IBM’s VisualAge family of Smalltalk and Java
syndicate PlanetEclipse. Recently, he authored an IBM RedBook on the IDEs. Mr. Creasey joined the Eclipse team during the tech
embedded Rich Client Platform and has been an advocate of the project. preview in 2001 and has been a member of the Workbench team ever since.

Wayne Beaton Nitin Dahyabhai


Wayne Beaton is employed by the Eclipse Foundation Nitin Dahyabhai is a WTP committer for XML and DTD
where he works as an evangelist, spreading the word and component lead at IBM Rational. He has worked on the
helping folks adopt Eclipse technologies. Mr. Beaton has Eclipse-based editors since their inception. In that time
extensive experience in object-oriented software develop- he has contributed to almost every facet of them, includ-
ment and is a strong proponent of refactoring, unit test- ing parsing, model management, dynamic editor configu-
ing, and agile development methodologies. ration, the outline and property sheet views, custom tag
libraries, debugging, drag and drop and more. Mr. Dahyabhai is also
Sunil Belgaonkar responsible for the Snippets view and DTD component; he previously
Sunil Belgaonkar is a principal software engineer at Progress Software worked on the Visual Composition Editor in VisualAge for Java.
and has more than 14 years of software product development experience.
He leads the design and development efforts of productivity tools hosted Dwight Deugo
on Eclipse for developing business-oriented applications. Mr. Belgaonkar is Dwight Deugo is the CEO and director of services for
a computer engineer with a graduate degree in business administration. Espirity, and is also an associate professor in the school
of computer science at Carleton University, where he
Phil Berkland heads the laboratory on pervasive computing. Before
Phil Berkland is a senior programmer in the IBM joining Carleton, he was the director of Java services at
Software Group’s emerging technologies area. He has The Object People.
played a key role in several Eclipse projects, including Mr. Deugo started the Eclipse Community Education Project, where he is
the PHP IDE, and IDE for Laszlo. He has 28 years of the lead contributor and committer. The goal of this project is to promote the
experience in the software industry. creation, improvement and distribution of commercial and academic-quality
Eclipse courseware, education and training technologies, and resource mate-
Bob Brady rial. He has contributed Eclipse plug-in and Java-related courses to the proj-
Bob Brady is a senior software engineer at Borland, ect, and served as program chair for EclipseCon. Mr. Deugo writes regularly
and his focus is on developing an increased integration for the EclipseSource newsletter.
of Eclipse within the Borland Silk product line.
Dr. Brady began university studies after serving an Sri Doddapaneni
enlistment in the U.S. Marine Corps, and holds a Ph.D. Sri Doddapaneni is an engineering manager responsi-
in engineering from Southern Illinois University at ble for performance tools infrastructure in the software
Carbondale. An enthusiastic teacher, he was named a national Doctoral developer products division of Intel. He leads the distrib-
Teaching Fellow by the American Society of Mechanical Engineers in 1996. uted data collection and communication frameworks with-
in the Eclipse TPTP project and is responsible for enabling
Maria Brownstein adoption of TPTP by Intel software development tools.
Maria Brownstein is a senior engineering manager In the past, Dr. Doddapaneni was responsible for integrated software
in Sybase’s technical publications organization. She development tool suites for the Intel Personal Client Architecture line of cel-
manages both a technical writing team and a tools lular communication processors. He earned a Ph.D in computer science
development team. Her writing team is responsible for from Georgia Institute of Technology. He has written several papers on
developing the online help systems for Eclipse-based compilers, debuggers, distributed systems middleware and embedded sys-
products, including Sybase WorkSpace. tems, and holds a number of patents in the areas of distributed systems,
software tools and computer architecture.

16 www.eclipseworld.net
Faculty
Bjorn Freeman-Benson Anthony Hunter
Bjorn Freeman-Benson is technical director of open- Anthony Hunter is a soft-
source process and infrastructure for the Eclipse ware development manager at
Foundation. He earned his B.Sc., M.Sc. and Ph.D in com- IBM Canada. He manages the Eclipse GMF and GEF
puter science from the University of Washington. He is committer teams at IBM. He is a committer for the
known for his expertise and experience in practical and Eclipse GMF project as well as committer for the Tabbed
effective software development, and has had a lifelong Properties View in the Eclipse platform. Mr. Hunter has
interest in programming languages, development environments and engi- contributed to the Rational modeling product lines, including Rational
neering productivity tools. Software Architect and Rational XDE, and has been actively working with
Dr. Freeman-Benson has worked for a variety of companies, large and the Eclipse platform since its inception.
small, including Amazon, Gemstone, Impulse, OTI and Rational. He enjoys
teaching and mentoring, and has published dozens of articles about his work. Oisin Hurley
Before joining Eclipse, he was a research scientist at the Center for Urban Oisin Hurley is a distinguished engineer at IONA
Simulation and Policy Analysis as well as a fellow at Bedarra Research Labs. Technologies, where he has been involved for many years
implementing and deploying SOA-based solutions using
John Graham first CORBA and then Web services platforms. He is a
John Graham has been developing enterprise soft- committer and the PMC lead for the SOA Tools Project.
ware for 10 years, and has been with Sybase for the past
five. He has an M.S. from the University of Hawaii, con- Jonas Jacobi
centrating on computational properties of formal and nat- Jonas Jacobi is a J2EE technology evangelist at
ural languages, and post-graduate training in business. Oracle. For the past three years, he has been responsi-
Mr. Graham has worked on enterprise application inte- ble for JavaServer Faces, ADF Faces and ADF Faces
gration technologies, Web services tooling, distributed systems, machine Rich Client product management in the Oracle
learning and service-oriented platforms. A developer on Eclipse since version JDeveloper team. Prior to joining Oracle, he worked at
1, he has served on the Eclipse Consortium Executive Committee. several major software companies in management, con-
sulting, development and project management roles. Mr. Jacobi is a popu-
Richard Gronback lar speaker at conferences such as Oracle OpenWorld, JavaOne,
Richard Gronback works for Borland and currently EclipseWorld, EclipseCon and JavaPolis, and is author of the recently pub-
leads the Eclipse Graphical Modeling Framework project; lished “Pro JSF and Ajax: Building Rich Internet Components.”
he has also provided training on object-oriented design,
design patterns, static code analysis and model valida- Christopher M. Judd
tion. Mr. Gronback has presented at the Borland Christopher M. Judd is the president and primary con-
Developer Conference, UML & Design World and sultant for Judd Solutions LLC., international speaker,
EclipseCon, and will be presenting at this year’s Architecture & Design open-source evangelist, Central Ohio Java Users Group
World and ECOOP. coordinator and co-author of “Enterprise Java
Development on a Budget” and “Pro Eclipse JST.” Mr.
Steve Gutz Judd has spent eight years developing software in the
Steve Gutz is a senior software developer and team insurance, retail, government, manufacturing, service and
lead in IBM Rational’s modeling tools group. He has been transportation industries. His current focus is consulting, mentoring and
a committer on the Test & Performance Tools Platform training with Java, J2EE, J2ME, Web services and related technologies.
for the past two years, focusing on improvements in
implementation and integration of static analysis tools. Loïc Julien
Previous to joining the IBM Ottawa Lab in 2002, Mr. Gutz Loïc Julien is an advisory software engineer at IBM
held senior management and executive positions in several public and pri- and is currently working on the development of IBM
vate companies, including two of his own successful start-ups. Rational Data Architect and the Eclipse Web Tools
Platform project; previously, he was involved in the
Joel Hawkins development of Rational XDE and Rational Rose, and
Joel Hawkins is a member of Compuware’s architec- contributed features to Rational Rose Java and the
ture and strategy staff, specializing in Java and open Rational XDE J2EE plug-in. Mr. Julien has an M.S. from
source. He is also a committer and architecture lead on San Jose State University in client/server computing.
the Corona project.
Max Katz
Joshua Hendrick Max Katz is a senior systems engineer at Exadel,
Joshua Hendrick recently joined the Parasoft responsible for technical support, training and customer
Professional Services team and has previously worked as care for the Exadel product line. He also conducts online
a software engineer in the Parasoft SOA Solutions group. and onsite JavaServer Faces training. With more than
He has contributed to the development of Parasoft’s seven years of IT experience, he brings a wide array of
Java-based SOA and Web services testing solutions, skills and experiences from his technical and managerial
including development from an Eclipse environment. Mr. positions. Mr. Katz holds a B.S. in computer science from the University of
Hendrick earned his B.S. in computer science from the California at Davis.
University of California, Davis, where he worked actively as a programmer
in the Biological and Agricultural Engineering department research lab.

www.eclipseworld.net 17
Faculty
John Kellerman Edward Lance
John Kellerman is the manager for Eclipse strategy at Edward Lance is currently a senior trainer for Keane,
IBM. He joined IBM in 1984 and has spent the majority of where he works teaching, consulting and speaking at
his career at IBM in the development and management of conferences. He has more than 10 years of industry
application development tools, including ISPF/PDF, experience as a developer, project lead, technical train-
VisualAge Smalltalk, VisualAge Generator and Eclipse. A er and manager, and is a Sun Certified Java Programmer.
founding member of the Eclipse project, Mr. Kellerman Mr. Lance also has a wide variety of business experi-
works closely on behalf of IBM with the Eclipse Foundation and its member ence, including 15 years in the restaurant industry, owning and operating
companies to help grow the Eclipse community of contributors and commer- a couple of small businesses, managing a medical practice and helping to
cial offerings both inside and outside of IBM. start a pharmaceutical research company. He has a B.S in management
Mr. Kellerman has a computer science degree from Purdue University, and communications and is currently working on a master’s degree in com-
and graduate degrees in computer engineering from North Carolina State puter information technology.
University and in business administration from the University of North
Carolina-Chapel Hill. He’s the author of “Java Developer’s Guide to Eclipse.” Scott Lewis
Scott Lewis is the project lead for the Eclipse Communication
Raghu Kodali Framework. His friends think he’s been working on distributed applications
Raghu Kodali is consulting product manager and for too long. Although a little goofy about it, he is passionate about making
SOA evangelist for Oracle Fusion Middleware, and leads Eclipse and the RCP an open platform for integrated and interoperable
next-generation SOA initiatives and J2EE and Web serv- communications applications. Dr. Lewis also serves as an elected com-
ices feature sets for Oracle Application Server, with par- mitter representative to the Eclipse Foundation Board of Directors.
ticular expertise in EJB, J2EE deployment, Web services
and BPEL. Mr. Kodali holds an M.S. in computer science Annas Maleh
and is a frequent speaker at technology and user group conferences like Annas “Andy” Maleh is a consultant at Obtiva, a firm
JavaOne, Oracle OpenWorld, Sun Technology Days, JavaZone, JAOO and that specializes in Eclipse RCP development and helping
Oracle Developer Days. He is also a technical committee member for the teams transition to Agile methodologies. He is currently
OASIS SOA Blueprints specification, and board member for the Web involved with the development of an 18-month Eclipse
Services SIG in OAUG. He’s currently writing “Beginning EJB 3.” RCP project to build a custom CRM application for an
international corporation. He works in a team that fol-
Lee Anne Kowalski lows eXtreme Programming practices such as pair programming, test-driv-
Lee Anne Kowalski is IBM’s user assistance tech- en development and refactoring, and participates in work relating to user-
nology lead. Her team is responsible for developing interface design enhancement.
technology and tools for use in developing user assis- Mr. Maleh has also been the lead developer of several Java/Swing
tance mechanisms in IBM’s software projects and deliv- applications, and has been involved in requirements gathering, analysis
ering help content within products. The team recently and design, and maintenance. He has given a number of presentations and
delivered an Eclipse-based tool as an IBM alphaWorks technical classes on matters relating to document management software
emerging technology. Over the past 10 years, Dr. Kowalski has worked on custom integration. He is a Sun Certified Java Programmer who holds a
online information delivery systems in roles ranging from user assistance B.S. in computer science from McGill University.
architect to project manager. She regularly speaks at national conferences
on topics related to user assistance architecture and user experience. Guru Nagarajan
Guru Nagarajan is a member of the Intel Developer
Jochen Krause Products division and is a Test & Performance Tools
Jochen Krause is CEO of Innoopract Information Systems and a member Platform committer. He leads the Java 5 profiling project
of the Eclipse board of directors. At Innoopract he is responsible for the in Eclipse TPTP, and specializes in software patterns,
Eclipse strategy and the Yoxos Eclipse Distribution solution. Mr. Krause is a frameworks and component-based software develop-
member of the Web Tools project management committee and involved in the ment. Mr. Nagarajan is the author of numerous papers
RAP project (currently in the review stage). on Java and XML technologies, and also specializes in object-oriented tech-
nologies and object databases. He has an M.S. in computer science from
Ramnivas Laddad the University of Michigan.
Ramnivas Laddad is an author, speaker, consultant
and trainer specializing in Aspect-Oriented Programming Dennis O’Flynn
and J2EE, and recently published “AspectJ in Action: Dennis O’Flynn is a software architect at Compuware
Practical Aspect-Oriented Programming.” He has been specializing in cross-product integration. Currently, he is
developing complex software systems using technolo- the project lead for the Eclipse Corona project. Previously,
gies such as Java, J2EE, AspectJ, UML, networking and he was the project lead on an internal server-side frame-
XML for more than a decade. work that provides messaging and Web service infra-
Mr. Laddad is an active member of the AspectJ community and has structures for several of Compuware’s product lines.
been involved with Aspect-Oriented Programming from its early form. He
speaks regularly at many conferences, such as JavaOne, No Fluff Just David Orme
Stuff, Software Development, EclipseCon, the Software Test & David Orme is the founder and senior consultant at
Performance Conference and O’Reilly OSCON. Coconut Palm Software, which focuses on Eclipse RCP
development. He has been delivering professional solu-
tions on Eclipse since 2002 and is currently helping
write an Eclipse RCP application that will be rolled out to
thousands of clients worldwide by the end of this year.

18 www.eclipseworld.net
Faculty
Mr. Orme founded and has led the Eclipse Visual Editor Project for the past Arthur Ryman
three years. He also founded and co-architected the Eclipse Platform’s Arthur Ryman is a software
Data Binding Framework effort. development manager for IBM
Toronto Lab, where he leads IBM’s multisite WTP develop-
Kevin Parker ment team. He is a member of the WTP project manage-
Kevin Parker works for Serena Software promoting the ment committee and the leader of the Web Standard Tools
Application Lifecycle Framework project and building the subproject. He is also an editor of the W3C WSDL 2.0
ecosystem of ALF-enabling vendors. He also serves as the specification and a committer on the Apache Woden project, which is devel-
Eclipse ALF Project evangelist. Mr. Parker has more than oping a WSDL 2.0 reference implementation. Previously, Mr. Ryman held posi-
25 years of software industry experience as a developer, tions as an architect and development manager for IBM VisualAge for Java,
designer, consultant and teacher. WebSphere Studio Application Developer, and Rational Application Developer.

Brian Payton Craig Salter


Brian Payton has been developing database access tools throughout Craig Salter is a WTP committer and XSD component lead as well as
his 20-plus years at IBM, starting with the mainframe-based Query the technical manager of the IBM Rational XML Web services team. He and
Management Facility, through Visualizer Query on OS/2, SQL Assist for his team develop XML tools for the WebSphere Studio family of products
DB2, and now Rational Application Developer and Rational Data Architect. with an emphasis on XML standard technologies supporting Web services.
He was an enthusiastic early adopter of Eclipse and is pleased to be a Prior to joining the XML team, Mr. Salter worked as a user interface devel-
committer on the Data Tools Platform project. Mr. Payton has a B.S. in com- oper on IBM’s VisualAge for C++ product. He received a BSc in computer
puter science from California Polytechnic University, San Luis Obispo, and science from McMaster University.
works at IBM’s Silicon Valley Laboratory.
Michael Sawicki
Dave Resch Michael Sawicki is product manager for Compuware’s
Dave Resch is a senior software engineer with the Sybase Technical OptimalJ. With more than 25 years of experience in the
Publications Solutions team. He is currently developing Eclipse-based tools for application development industry, he is an expert on
system administration and build management for a DITA-based documentation model-driven development who frequently presents on the
system. Before that, he was responsible for designing and developing subjects of development standards, best practices and
Welcome content, and implementing the Product Introduction Framework the effects of model-driven development on organization-
(Welcome plug-in) for the Eclipse-based IDE product, Sybase WorkSpace. al measurements of efficiency. Mr. Sawicki has spoken at many of the indus-
Mr. Resch also worked with the documentation team to resolve issues try’s leading conferences, including SD West (keynote), JavaOne, Gartner
related to migrating existing help content from Eclipse 3.0 to 3.1, and he Application Development Summit and ITExpo.
continues to support the doc team on Eclipse UA issues.
Scott E. Schneider
Karl Reti Scott E. Schneider is an advisory software engineer at the IBM Rational
Karl Reti is director of engineering at Sybase, and is responsible for the lab in Research Triangle Park, N.C. He is a lead committer for the Test &
architecture of Sybase WorkSpace and for setting the company’s Eclipse Performance Tools Platform (TPTP) Project and was instrumental in design-
strategy. Mr. Reti, who has been developing commercial enterprise appli- ing and implementing the TPTP automatable services framework in 2005.
cations and products for more than 15 years, is a member of the STP proj- He was co-architect of the Rational Rose/XDE Data Modeler product,
ect PMC, and is an architect and committer on the DTP project. designer of the Rational Software Architect patterns framework and con-
tributed to the Rational Performance Tester product (and its integration with
Scott Rosenbaum TPTP). He is currently the technical lead on the pattern tooling within the
Scott Rosenbaum is a managing partner for Innovent Solutions, a con- IBM Rational Software Architect product.
sulting firm focused on the design, development and distribution business Mr. Schneider has more than 20 years of software programming expe-
intelligence solutions. He has been an active user of Eclipse technology rience, and received a B.S. in electrical engineering from Georgia Institute
since 2002, and joined the BIRT project management committee in of Technology in 1995. He has a strong interest in pattern specification lan-
November 2004. Mr. Rosenbaum holds a B.S. from General Motors guages (and its application to tooling).
Institute. He has spent the past 20 years working on business intelligence
solutions for the insurance, banking, health-care, retail sales and automo- Hakeem Shittu
tive industries. Hakeem Shittu is a senior enterprise programmer at
Compuware, where he focuses on the design and deliv-
Dan Rubel ery of J2EE-based enterprise solutions to customers
Dan Rubel, co-founder and chief technology officer for Instantiations, is using various platforms and tools. He is the co-author of
the primary architect and product manager for JFactor, jKit/GO and “Pro-Eclipse JST: Plug-Ins for J2EE Development.” Mr.
jKit/Grid, and has played key design and leadership roles in other prod- Shittu holds M.S. degrees in both computer science and
ucts, such as WindowBuilder Pro, VA Assist and CodePro Studio. An expert industrial engineering from Ohio State University and has software develop-
in the design and application of object-oriented technologies with more ment experience in such industries as defense, transportation, biogenetics
than 15 years of commercial software development experience, Mr. Rubel and telecommunication.
has eight years of experience with Java and four years with Eclipse.
He has a B.S. from Bucknell University and is co-author of the book, Harm Sluiman
“Eclipse: Building Commercial Quality Plug-ins.” Harm Sluiman is a senior development manager at
IBM for Autonomic Computing Tools as well as Rational
Test and Performance Tools. He was responsible for
database, test, trace and per formance tooling in
WebSphere Studio. He is an IBM senior technical staff

www.eclipseworld.net 19
Faculty
member, a co-chair of the Canadian Excellence Technical Community, and helping them learn to build applications on open standards and technolo-
an affiliate of the IBM Academy of Technology. Mr. Sluiman has written gies. Mr. Tidwell is the author of “XSLT: Mastering XML Transformation.”
several articles on test and performance tooling, has contributed to sev-
eral OMG RFPs related to data access, and has been a frequent speaker Joe Toomey
at conferences. Prior to working on WebSphere Studio, Mr. Sluiman was Joe Toomey is a senior software engineer at the IBM
the lead for distributed processing and database tooling for VisualAge for Rational lab in Lexington, Mass. He has been a commit-
C++. He was a contributor to JSR 47 and JSR 165, and holds many ter on the Test & Performance Tools Platform since its
patents in the areas of data modeling, test tools and performance analy- inception in 2002, leading the Test Model subgroup, and
sis. Mr. Sluiman is a member of the TPTP Project Management acting as committer for the Test Model team and the
Committee, chairperson of the TPTP Architecture Group and a member of Execution Environment Control group. Mr. Toomey also
the Eclipse Architecture Council. participates in several IBM Architecture groups. Prior to his work on TPTP,
he was a developer on several Rational products, including Rational Robot,
Randy D. Smith Rational Quality Architect and Rational XDE Component Test. He received a
Randy D. Smith is systems software engineer at Intel B.S. in mathematics and computer science from Carnegie Mellon University.
and is a committer to the Eclipse TPTP project, With a
B.S. in mathematical sciences from the University of Carlos Valcarcel
North Carolina and an M.S. in computer science and Carlos Valcarcel, director of technology at Trivera
computer engineering from Stanford University, he Technologies, is a highly regarded subject-matter expert
brings many years of software engineering experience, in the field of enterprise Java and object-oriented tech-
both practically (having worked at Bell Labs and several other companies) nologies. With almost 20 years of development experi-
and academically (as a former associate professor in ICS at Covenant ence, Mr. Valcarcel has spent the bulk of his career
College). His focus has long been in areas of software engineering and architecting and programming critical object-oriented
improvement of the software process. business systems, utilizing his extensive skills in Java, J2EE and other
leading-edge technologies. He is the author of “Eclipse Kick Start.”
Shaun Smith
Shaun Smith is a product manager for TopLink, Krishna Venkatraman
Oracle’s EJB 3.0 persistence provider, and is co-lead Krishna Venkatraman is a senior product manager at Actuate, where he
of the Eclipse Dali EJB Object-Relational Mapping focuses on product management activities around the open-source BIRT
Project. He has been building systems using object- project. Prior to Actuate, he started out with a software development back-
relational mapping technologies for a decade in the ground at Oracle and went on to hold different responsibilities at Remedy
banking, telecommunications and energy industries. BMC, combining his technical abilities with market analysis and strategy.
In recent years, Mr. Smith’s focus has been on the development of Test Mr. Venkatraman has an M.B.A. from the University of California, Berkeley,
Driven Development techniques for building enterprise systems with per- and an M.S. in computer science from the University of Illinois at Chicago.
sistence needs.
Steven Wasleski
Dave Steinberg Steven Wasleski is a senior programmer at IBM Rational, and was the
Dave Steinberg is a software developer at the IBM release technical lead for WebSphere Application Developer Version 4, the
Toronto Lab. He has worked with Eclipse and modeling first commercially available Eclipse-based product. He also worked on
technologies since joining the company in 2001, and has VisualAge C++ and VisualAge for Java. Mr. Wasleski is currently the tech-
been a committer on the EMF Project since its debut in nical lead for the team that manages the relationship between the Eclipse
2002. Mr. Steinberg has designed and implemented open-source project and the IBM product development community.
numerous pieces of the framework, and is a co-author of
“Eclipse Modeling Framework, A Developer’s Guide.” Jason Weathersby
Jason Weathersby is the BIRT evangelist at Actuate
Kevin Taylor and a member of the BIRT project management commit-
Kevin Taylor is a principal consultant at Obtiva, a firm tee. He is responsible for educating the open-source
that specializes in Eclipse RCP development and helping community about BIRT and encouraging its adoption. Mr.
teams transition to agile methodologies. He is currently Weathersby has more than 15 years of experience in the
a technical lead on an 18-month Eclipse RCP project to software development field, ranging from real-time
build a custom CRM application for an international cor- process control to business intelligence software.
poration. During this project, he has used different table
components extensively and has created custom UI components based on David Williams
tables, including Microsoft Outlook-style Day, Week and Month Calendars. David Williams is a team lead at IBM Rational, and serves on the Web
Mr. Taylor has written courses on Test-Driven Development and Agile Tools Platform project management committee and the EMO Architecture
Project Management, is the editor of a Java technology site, and is the Group. He is also a committer for editors in the WTP project (XML, HTML,
treasurer of the Chicago Java Users Group-West. CSS, JSP and JavaScript). Roughly a third of his career has been with direct
software development responsibilities (Java and Smalltalk), a third with
Doug Tidwell customer consultation services, and a third with IBM’s Usability Labs. He
Doug Tidwell is a senior software engineer at IBM. He has an M.A. in quantitative/cognitive science from the University of
was a speaker at the first XML conference in 1997, and Colorado at Boulder.
has spoken on Java, XML, Web services and security at
conferences around the world. His current job is to work
with students and professors at universities worldwide,

20 www.eclipseworld.net
EclipseWorld
Hotel and Travel Information
Hyatt Regency Cambridge, Overlooking Boston
575 Memorial Drive
Cambridge, MA 02139-4896 USA
Tel: +1-617-492-1234
Fax: +1-617-491-6906

EclipseWorld has secured a special rate of US$189/single per


night with the Hyatt Regency Cambridge. To make your reservations,
use the link below or call the hotel directly. Be sure to identify your-
self as being a part of EclipseWorld.
www.eclipseworld.net/registration.htm
YOU MUST MAKE YOUR RESERVATIONS BY AUGUST 15
TO SECURE THIS RATE.

Directions
From Logan International Airport: Follow signs to Boston via Downtown Cambridge:
Sumner Tunnel. After you come out of the tunnel, take exit 26A Hotel offers complimentary scheduled shuttle service to locations
(Storrow Drive/Back Bay/Cambridge). Keep left, go onto Storrow in Cambridge. The shuttle service will take guests anywhere from
Drive. Go 3/4 of a mile and take exit on left-hand side (Government Harvard Square to the Cambridgeside Galleria Mall area and all
Center/Kendall Square). At the top of the ramp take a right over the points between.
Longfellow Bridge; at the end of the bridge turn right onto Memorial For guests who would like to get into the city of Boston, the shut-
Drive West (Rt. 3 North). Stay on Memorial Drive for approximately tle will stop at Kendall Square T-Stop (Red Line) or the Boston
1 1/2 miles; at the third traffic light turn right. The entrance to the University T Stop (Green Line).
Hyatt will be on your left. For more information or to sign up for the shuttle, contact
the Guest Ser vices Desk at in-house extension 51 or call
Transportation +1-617-492-1234.
From the Boston Airport:
Taxi – Approximately $35 General Shuttle Information:
Subway – $1.25 (T Stops), 1 1/2 miles from hotel (taxi available). Traffic conditions may change pick-up times, forcing the shuttle
Above Ground: B.U. Central, Green Line (T Stops) off schedule, especially during rush hour and inclement weather. The
Underground: Harvard Square, Kendall Square Red Line Hyatt shuttle is for registered guests only. If requested, please show
your room key to driver as identification. T Stop schedules are avail-
Amtrak: able at the Guest Service desk. For the safety of our passengers, lug-
Back Bay Station is located 3 miles from hotel, approximately 10- gage is not allowed on the shuttle. Shuttle schedule is subject to
15 minutes away. Amtrak also stops at South Station in the Financial change without notice.
District, which is approximately 5 miles, 20-30 minutes from hotel.
Taxi is available to and from hotel. From Back Bay Station, cost is $7- MBTA:
$10. From South Station, cost is $12-$15. (Subway) 1 1/2 miles from hotel.

Parking
Self-parking is $28 per night with in/out privileges (clearance 6’ 8”).
Valet parking is $30 per night, RV and van parking available at
your own risk in the employee parking lot, based on availability. See
the doorman or front desk upon arrival for details.

www.eclipseworld.net 21
Conference Planner
Tuesday,
Sept. 5
Wednesday, Sept. 6 Thursday, Sept. 7
Registration Registration Open Registration Open 7:30 am – 7:00 pm
Open 7:30 am – 6:30 pm
Exhibits Open 2:45 pm – 7:30 pm / Attendee Reception on Show Floor
4:00 pm – 7:00 pm
Full-Day Tutorials
Keynote – Milinkovich 5:00 pm – 5:45 pm

8:45 am – 5:00 pm 8:30 am – 10:00 am 10:30 am – 12:00 pm 1:15 pm – 2:45 pm

T-1 Getting Started 101 Quick Tour of the 201 How to Build Java 301 Facing
With Eclipse on Eclipse Web Tools Web Applications JavaServer Faces
Windows Platform With the Web Development
– Deugo – Ryman Tools Platform With JSF Tools
– Ryman – Jacobi

T-2 Building 102 Test-Driven 202 Web 2.0 the Eclipse 302 Reports Made
Commercial-Quality Development and Way With the Rich Easy! Introducing
Plug-Ins for Eclipse Eclipse: Delivering AJAX Platform the BIRT
– Clayberg, Rubel Working Code – Krause Reporting
for Less Framework
– Valcarcel – Venkatraman

T-3 Achieving 103 A Practical 203 How to ALF-Enable 303 BPEL 101:
Continuous Introduction to Your Applications Business Process
Integration With the the Application – Parker Execution
Test & Performance Lifecycle Language in
Tools Platform Framework Eclipse
– Toomey, Schneider – Parker – Kodali

T-4 Develop Better 104 First Steps for 204 Interacting 304 Profiling Java
J2EE Applications Building and With Relational Application
With the Deploying Eclipse Databases Behavior With
Web Tools Platform RCP Applications – Judd Eclipse Test &
– Judd – Deugo Performance Tools
– Nagarajan

T-5 Building XSLT 105 Build Better 205 Fundamentals 305 GEF Development
Applications Graphical Editors of the Eclipse Made Easy
With Eclipse With the Graphical Modeling – Aers
– Tidwell Modeling Framework
Framework – Steinberg
– Gronback

T-6 Implementing 106 How to Improve 206 Using Eclipse’s 306 Architect and
SOA in Eclipse Database Testing, Build High-End
– Lance Connectivity With Profiling and Data Tools
the Data Tools Monitoring Tools Solutions
Platform – Doddapaneni, – Julien
– Graham, Payton Sluiman

T-7 Callisto Boot Camp: 107 Leveraging JSF 207 Successful 307 Successful
Ten Projects. Components Architecture Architecture
One Day. – Katz Design for Rich Design for Rich
– Beaton Client Platform Client Platform
Applications, Part 1 Applications,
Birds-of-a-Feather – Orme Part 2 – Orme
Sessions
8:00 pm -– 10:00 pm Birds-of-a-Feather Sessions 8:30 pm -– 10:30 pm

22 www.eclipseworld.net
Conference Planner
Friday, Sept. 8
Registration Open 7:30 am – 4:00 pm

5:45 pm – 7:30 pm Exhibits Open 12:00 pm – 4:00 pm

Ice Cream Social in Exhibit Hall 12:45 pm – 1:30 pm

3:15 pm – 4:45 pm 8:30 am – 10:00am 10:30 am – 12:00 pm 1:30 pm – 3:00 pm 3:30 pm – 5:00 pm

401 Consuming and 501 Developing Java 601 Extending the 701 Building 801 How to Use and
Producing Web Web Services Web Tools Applications Extend Eclipse's
Services With With the Web Platform With With the Java XML and Schema
Web Tools Tools Platform Ant and PDE Persistence API Tools – Williams,
– Judd – Ryman – Shittu and Dali – S. Smith Salter, Dahyabhai

402 Fundamentals of 502 Looking Good! 602 How to Leverage 702 Practical Design 802 How to Build
RCP User Interface Polishing Eclipse Domain Specific Patterns for Rich Internet
Programming Rich Client Modeling Using Rich Client Applications With
– Creasey Applications Eclipse Development PHP and AJAX
– Maleh – Hunter – Maleh – Berkland

403 Leveraging 503 Aspect-Oriented 603 Aspect-Oriented 703 Managing 803 Developing
Model-Driven Programming Programming Application Integrated Help and
Development With AspectJ in With AspectJ in Architectures Documentation for
and the Eclipse Eclipse, Part 1 Eclipse, Part 2 With Software Eclipse Applications
Platform – Laddad – Laddad Factories – Kowalski,
– Sawicki – Sawicki Brownstein, Resch

404 How to Create 504 Developing Rich 604 Contributing Code 704 How to Write 804 Presenting
Custom Versions Applications With to Eclipse: High-Quality Tabular Data
of Eclipse JSF and AJAX Why To. How To. Eclipse Bugs in Eclipse
– Tidwell – Katz – Freeman-Benson Reports – Taylor
and Patches
– Wasleski

405 Eclipse Workgroup 505 Probing Java 605 Service-Oriented 705 Best Practices 805 Developing
Collaboration Application Architectures for Managing Collaborative
– O’Flynn, Lewis Behavior the SCA Way Eclipse Adoption Tools With
With Probekit With Corona! in the Enterprise Equinox and ECF
– Nagarajan – Hawkins – Kellerman – Brady

406 Developing and 506 More Than Just 606 Right Out of the 706 Step by Step: 806 How to Develop
Deploying Services Java: Integrating Box: Static Code Making Enterprise Web Service
Using the SOA a New Language Analysis With JavaBeans Applications
Tools Platform Into Eclipse Eclipse With J2EE in Java
– Hurley, Reti – Belgaonkar – Gutz, R. Smith Standard Tools – Hendrick
– Judd

507 Eclipse on Cell 607 Advanced User 707 Leveraging


Phones!? An Interface BIRT Reporting
Introduction to the Programming Using – Weathersby,
Embedded Rich the Eclipse Rich Rosenbaum
Client Platform Client Platform
(eRCP)
– Creasey
6.22.06

– Aniszczyk

www.eclipseworld.net 23
Register Online!
www.eclipseworld.net
Pricing and Registration
eXtreme Early Bird Super Early Bird Early Bird Full Price
By June 16 By July 14 By Aug. 18 After Aug. 18
Full Event: Technical $945 $1,075 $1,195 $1,395
Conference and Tutorials
Sept. 6–8 Best Value
Technical Conference Only $835 $895 $995 $1,145
Sept. 7–8

Tutorials Only $595 $695 $745 $795


September 6

Exhibits Only FREE FREE FREE $50


Sept. 7–8 All prices are in US dollars.

How to Register REFUND POLICY. You can receive a full refund, less a $50 registra-
tion fee, for cancellations made by August 7, 2006. Cancellations
REGISTER ONLINE. Register online at www.eclipseworld.net and after this date are non-refundable. Send your cancellation in writing to
use one of the following payment methods: registration@bzmedia.com.
CREDIT CARD. You can use the secure online form to pay via cred- Paid Conference/Tutorial Registration Includes:
it card and get immediate confirmation of your classes. MasterCard, • Admission to tutorials and/or technical classes.
Visa and American Express are accepted cards. You’ll receive a REG- Please make your class selections when registering.
ISTRATION RECORD and RECEIPT. Please print out these pages and • Admission to keynote
bring them with you to the conference. Present them at the • Admission to exhibits
Registration Desk to pick up your badge and any course materials. • Conference materials
CHECK OR P.O. Fill out the online registration form. Print out the • Attendee reception Thursday night
• Continental breakfast, coffee breaks
REGISTRATION RECORD and RECEIPT and mail to BZ Media LLC,
• Diamond sponsor Luncheon on Thursday
7 High Street, Suite 407, Huntington, NY 11743 with your payment.
Online registrations that are mailed without payment will not be con- Exhibits-Only Registration Includes:
firmed until payment is received. • Admission to keynote
• Admission to exhibits
GROUP DISCOUNTS. Registering four or more attendees from your
• Attendee reception Thursday night
company? You can receive a $100 discount off the Full Event
Passport, or $50 off Tutorials or Technical Conference Only, on each Registration Questions
registration. Enter the word GROUP when asked for a code on our Contact Donna Esposito at +1-415-785-3419 or
desposito@bzmedia.com.
online registration form.

REGISTER ONLINE at www.eclipseworld.net


BZ Media LLC
7 High Street
Suite 407
Huntington, NY 11743

You might also like