Documente Academic
Documente Profesional
Documente Cultură
Volume 1 Number 2
■
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
—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
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
©
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
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.
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.
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
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
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
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
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
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.
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
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
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
“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
A BZ Media Event
Diamond Sponsor Media Sponsors
Gold Sponsor
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
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.
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-
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
Gnireenigne Esrever
*
Fo Tra Enif Eht
Or, *The Fine Art of 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,
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 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.
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);
}
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
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
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.
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.
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.
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.
“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.
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.
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.
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
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
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
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
– 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
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.