Top Banner
Eclipse: Java EE Applications Made Easy sponsored by an Developer eBook
41
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Eclipse J2EE Application Easy

Eclipse: Java EEApplications Made Easy

sponsored by

an Developer eBook

Page 2: Eclipse J2EE Application Easy

1 Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

contentsWith the latest release of Eclipse, you can get the most up-to-date components of theEclipse framework which will speed your development of Java EE applications. Discoverwhy Eclipse is the best framework for developing Java EE applications and why with theaddition of Rational tools built on top of Eclipse, you can build the best quality enterpriseapplications in the shortest amount of time.

© 2008, Jupitermedia Corp.

2 Letter from the EditorBob Kane

3 Get Started with the Eclipse PlatformChris Aniszczyk and David Gallardo

10 A Whirlwind Tour of Eclipse EuropaChris Aniszczyk

18 Installing and Using Eclipse-based IBM Rational ProductsKhawar Z. Ahmed

26 An Introduction to Eclipse for Visual Studio UsersGenady Beryozkin

33 Taking a Lifecycle Approach to Software Quality Testing and ManagementRikki Kirzner

37 Rational Application Developer for WebSphere Outshines EclipseRikki Kirzner

Eclipse: Java EE Applications Made Easy[ ]

Page 3: Eclipse J2EE Application Easy

Supported by a cross-section of the software industryincluding individuals and corporations, the EclipseFoundation is dedicated to providing enterprise appli-

cation developers the latest tools, platforms and frameworksto support the software development lifecycle. Since 2004,the Eclipse Foundation has worked to provide a standard-ized framework that developers are able to extend to suittheir needs. For some, Eclipse is all a developer may need,but for others, it may only be a starting point. Fortunately,that's the power of Eclipse--it can be modified with otherproducts to meet almost any development requirement.

Fortunately, as the Eclipse pioneer, IBM has chosen notonly to support the Eclipse Foundation, and the manydevelopers who rely upon it, the company also buildsits own tools with Eclipse as well. Many IBM Rationalsoftware products are not only built on Eclipse, but also

extend the functionality of the Eclipse environment.This means that as an enterprise Eclipse developer,your investment in the Eclipse IDE can be easily lever-aged when looking for additional functionality withRational products. And because they are built withEclipse, you don't have to worry about integratingRational products within the Eclipse environment.

This ebook talks about the benefits of Eclipse for theenterprise developer, as well as those Rational toolsthat extend Eclipse to better support the softwaredevelopment lifecycle. If you develop Java EE applica-tions, the combination of Eclipse and Rational is proba-bly all you'll need to get the job done. So read on tofind out how Eclipse and Rational help make the devel-opment of Java EE applications easy.

2 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Eclipse: Java EEApplications Made Easy

By Bob Kane

Page 4: Eclipse J2EE Application Easy

Find out about the Eclipse Platform, including its originand architecture. Starting with a brief discussion aboutthe open source nature of Eclipse and its support for

multiple programming languages, we demonstrate theJava™ development environment with a simple program-ming example. We also survey some of the software devel-opment tools available as plug-in extensions.

This follow-up to David Gallardo's "Getting started withthe Eclipse Platform" offers new information relevantfor Eclipse V3.3.

What Is Eclipse?Eclipse is a Java-based, extensible open source devel-opment platform. By itself, it is simply a framework anda set of services for building applications from plug-incomponents. Fortunately, Eclipse comes with a stan-dard set of plug-ins, including the well-known JavaDevelopment Tools (JDT).

While most users are quite happy to use Eclipse as aJava integrated development environment (IDE), itsambitions do not stop there. Eclipse also includes thePlug-in Development Environment (PDE), which ismainly of interest to those who want to extend Eclipse,since it allows you to build tools that integrate seam-lessly with the Eclipse environment. Because everything

in Eclipse is a plug-in, all tool developers have a levelplaying field for offering extensions to Eclipse and pro-viding a consistent, unified IDE for users.

This parity and consistency isn't limited to Java devel-opment tools. Although Eclipse is written in the Javaprogramming language, its use isn't limited to the Javalanguage. For example, plug-ins are available orplanned that include support for programming lan-guages like C/C++ and COBOL. The Eclipse frame-work can also be used as the basis for other types ofapplications unrelated to software development, suchas content management systems.

A great example of an Eclipse-based application is theIBM® Rational® Software Architect (see Resources),which forms the basis of IBM's family of Java develop-ment tools.

Eclipse Is Open SourceOpen source software is software released with alicense intended to ensure that certain rights are grant-ed to users. The most obvious right, of course, is thatthe source code must be made available so users arefree to modify and redistribute the software. This pro-tection of users' rights is accomplished with a devicecalled a copyleft: The software license claims copyright

3 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Get Started with the Eclipse PlatformUse Eclipse plug-ins to edit, compile, debug, and act as a

foundation for your applications

By Chris Aniszczyk ([email protected]), Software Engineer, IBMand David Gallardo ([email protected]), Software Consultant.

First published by IBM developerWorks Open Source at http://www.ibm.com/developerworks/OpenSource/.All rights retained by IBM and the author.

Page 5: Eclipse J2EE Application Easy

protection and prohibits distribution unless the user isgranted these rights. The copyleft also requires thatany redistributed software be covered by the samelicense. Since this, in effect, stands the purpose ofcopyright on its head--using the copyright to grantrights to the user, rather than reserve them for thedeveloper of the software--copyleft is often describedas "all rights reversed."

Much of the fear, uncertainty, and doubt that has beenspread about regarding open source software involvesthe so-called viral nature of some copyleft licenses--theidea that if you use open source software as part of aprogram you develop, you will lose your intellectualproperty because the license will "infect" the propri-etary parts you develop. In other words, the licensemay require that all software bundled with the opensource software, including any newly developed soft-ware, must be released under the same license. Whilethis may be true of the most well-known copyleftlicense, the GNU General Public License (under whichLinux®, for example, is released), there are other licens-es that provide a different balance between commercialand community concerns.

The Open Software Initiative is a nonprofit organizationthat defines what open source means explicitly and cer-tifies licenses that meet its criteria. Eclipse is licensedunder the OSI-approved Eclipse Public License (EPL)V1.0, which is intended to facilitate the commercialadoption of Eclipse while being fair to the open sourceauthors.

Those who create plug-ins for Eclipse or who useEclipse as the basis for a software development appli-cation are required to release any Eclipse code theyuse or modify under the EPL, but are free to licensetheir own additions in any way they like. Proprietarycode bundled with software from Eclipse does notneed to be licensed as open source, and the sourcecode does not need to be made available.

Although most will not use Eclipse to develop plug-insor to create new products based on Eclipse, the opensource nature of Eclipse is important beyond the merefact that it makes Eclipse available for no cost (anddespite the fact that a commercial-friendly licensemeans that plug-ins can cost money). Open sourceencourages innovation and provides incentives fordevelopers, even commercial developers, to contribute

code back to the common open source-code base.There are a number of reasons for this, but perhaps themost essential is that the more developers contributeto the project, the more valuable the project becomesfor everyone. As the project becomes more useful,more developers will use it and create a communityaround it, like those that have formed around Apacheand Linux. (See Resources for more information aboutlicenses.)

What Is Eclipse?Eclipse is an open source community whose projectsare focused on building an open development platformcomprised of extensible frameworks, tools, and run-times for building, deploying, and managing softwareacross the life cycle. The Eclipse Foundation is a not-for-profit member-supported corporation that hosts theEclipse projects and helps cultivate an open sourcecommunity and an ecosystem of complementary prod-ucts and services.

The Eclipse Project was originally created by IBM inNovember 2001 and supported by a consortium ofsoftware vendors. The Eclipse Foundation was createdin January 2004 as an independent not-for-profit organ-ization to act as the steward of the Eclipse community.It was created to allow a vendor-neutral, open, andtransparent community to flourish around Eclipse.Today, the Eclipse community consists of individualsand organizations from a cross-section of the softwareindustry.

The Eclipse Foundation manages and directs Eclipse'songoing development. The foundation provides servic-es to the community, but does not employ the opensource developers (called committers), who actuallywork on the Eclipse projects. Eclipse committers aretypically employed by organizations or are independentdevelopers that volunteer their time to work on anopen source project.

Now that we've looked at some of the theory, history,and politics behind Eclipse, let's take a look at theproduct itself.

The Eclipse WorkbenchThe first time you open Eclipse, you see the welcomepage, which exists inside the workbench (see Figure 1).As an Eclipse user, you'll be given a few options of

4 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 6: Eclipse J2EE Application Easy

going to an overview page, which I recommend (seeFigure 2). See what's new, explore some samples, or gothrough some tutorials.

The Eclipse workbench consists of several panelsknown as views, such as the navigator or outline views.A collection of these views is called a perspective. Oneof the most common perspectives is the Resource per-spective, which is a basic set of views for managingprojects and viewing and editing files in a project.

I recommend most novice users start with the Overviewpage featured in Figure 2 and learn about Eclipse. Theworkbench basics section contains a lot of good starterinformation about the various pieces of Eclipse and

how they interact. Spend a few minutes reading thematerial, then let's dive directly into the JavaDevelopment Tools (JDT) in Eclipse. There's no betterway to learn than doing it hands-on.

To continue this short tour of Eclipse, we'll create a newJava project. Select File > New > Java Project andenter Hello when prompted for the project name, thenclick Finish.

Next, we'll take a look at the Java perspective (if youaren't already there). Depending on how you like tomanage your screen, you can change the perspectivein the current window by selecting Window > OpenPerspective > Java or you can open a new window by

5 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 1. Eclipse Welcome Page

Figure 2. Eclipse Overview Page

Page 7: Eclipse J2EE Application Easy

selecting Window > New Window and selecting thenew perspective.

The Java perspective, as you might expect, has a set ofviews that are better suited for Java development. Oneof these includes, as the top-left view, a hierarchy con-taining various Java packages, classes, JARs, and mis-cellaneous files. This view is the called the PackageExplorer. Also notice that the main menu has expandedto include two new menu items: Source and Refactor.

The Java Development Tools (JDT)To try out the Java development environment, we'llcreate and run a Hello World application. Using theJava perspective, right-click on the Hello project'ssource folder (src) and select New > Class, as shown inFigure 3. In the dialog box that appears, type Hello asthe class name. Under Which method stubs would youlike to create? check public static void main(String[]args), then Finish.

This will create a .java file with a Hello class and anempty main() method in the editor area, as shown inFigure 4. Add the following code to the method (note

that the declaration for i has been omitted deliberately).

You'll notice some of the Eclipse editor's features asyou type, including syntax checking and code comple-tion. Also, when you type an open parenthesis or dou-ble quote, Eclipse will provide its partner automaticallyand place the cursor inside the pair.

In other cases, you can invoke code completion byusing Ctrl+1. Code completion provides a context-sen-sitive list of suggestions selectable by keyboard ormouse. The suggestions can be a list of methods spe-cific to a particular object or a code snippet to expand,based on various keywords such as for or while.

Syntax checking depends on incremental compilation.As you save your code, it is compiled in the back-ground and checked for syntax errors. By default, syn-tax errors are underlined in red, and a red dot with awhite X appears in the left margin. Other errors areindicated with a light bulb in the editor's left margin;these are problems that the editor might be able to fixfor you (a feature called Quick Fix).

The code above has a light bulb next to the for state-ment because the declaration for i has been omitted.Double-clicking on the light bulb will bring up a list ofsuggested fixes. In this case, it will offer to create aclass field i, a local variable i, or a method parameter i;clicking each of these suggestions will display the codethat would be generated. Figure 5 shows the list ofsuggestions and the code it suggests for a local vari-able.

Double-clicking on the suggestion inserts the code inthe proper location in the code.

6 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 3. Creating a new class in the Java perspective

Figure 4. The Hello class in the Java editor

Page 8: Eclipse J2EE Application Easy

Once the code compiles without error, you can exe-cute the program by selecting Run from the Eclipsemenu. (Note that there is no separate compilationstep because compilation takes place as you save thecode. If your code has no syntax errors, it's ready torun.) A Launch Configurations dialog box appears,with appropriate defaults; click Run at the bottomright. A new tabbed panel appears in the lower panel(the Console), displaying the program's output, asshown below.

You can also run the program in the Java debugger.First, set a breakpoint in main() System.out.println() bydouble-clicking in the gray margin on the left side ofthe editor view, next to the call to System.out.println().A blue dot will appear. From the Run menu, selectDebug. As described, a Launch Configurations dialogwill appear. Select Run. The perspective will change tothe Debug perspective automatically, with a numberof interesting new views, as shown below.

Notice the Debug view at the top left of the perspec-tive. This view shows the call stack and has a toolbarin the title bar that allows you to control the executionof the program, including buttons to resume, sus-pend, or terminate the program, step into the nextstatement, step over the next statement or returnfrom a method. The panel at the top right contains anumber of tabbed views, including Variables,

Breakpoints, Expressions, andDisplay. I've clicked Variables sowe can see the current value of i.

You can obtain more informationabout any of the views with thecontext-sensitive help; click onthe title of the view and press F1.

Additional Plug-insIn addition to plug-ins like theJDT for editing, compiling, anddebugging applications, plug-insare available that support thecomplete development processfrom modeling, build automa-tion, unit testing, performancetesting, version control, and con-figuration management.

7 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 5. Quick Fix suggestions

Figure 6. Output from the program

Figure 7. The Debug perspective

Page 9: Eclipse J2EE Application Easy

Eclipse comes with a plug-in for working with theopen source Concurrent Versions System (CVS) forsource control. The Team plug-in connects to a CVSserver, allowing the members of a development teamto work on a set of source-code files without steppingon each other's changes. Source control from withinEclipse won't be explored here further because itrequires setting up a CVS server, but the capability forsupporting a development team, not just stand-alonedevelopment, is an important and integral feature ofEclipse.

Plug-ins supported and hosted by the EclipseFoundation are found on the Eclipse Web site. For amore complete list of available plug-ins, go to EclipsePlug-in Central, which acts as an index for plug-ins.

Eclipse Platform ArchitectureThe Eclipse Platform comes with a powerful set ofplug-ins (see Figure 8) that support projects, such asJDT and the PDE.

The dark blue pieces signify components that are thecore part of Eclipse's Rich Client Platform (RCP). Theconcept of RCP itself is outside the scope of the article,but think of RCP as just a set of plug-ins from Eclipsepeople can use to develop applications, such as LotusNotes® 8. The light blue pieces are optional (but rec-ommended) pieces to be included in RCP-based appli-cations. And the gray pieces are completely optional.The platform consists of several components, of whichI'll cover several:

RuntimeThe runtime is the code that defines Eclipse's plug-inmodel, based on the OSGi specification, and notion

of extensions and extension points. The runtime alsoprovides additional services like logging and concur-rency.

JFace/SWTThe Standard Widget Toolkit (SWT) is the widget setthat gives Eclipse its look and feel. JFace is simply alayer on top of SWT that provides some Model-View-Controller (MVC) classes to make it easier to developgraphical applications.

WorkbenchThe workbench gives Eclipse its personality. The con-cept of views, perspectives, and things like editorsare defined at this level.

Help (User Assistance)The Eclipse component allows you to provide assis-tance to your users. This can be done via the helpsystem, which allows users to search for help docu-mentation or through cheatsheets, which can bethought of interactive task lists for end users.

UpdateThe update component of Eclipse provides the facili-ties to allow you to update your applications fromversion to version.

TeamThe team component consists of a framework toallow vendors to plug in their own version-controlsystems. An exemplary implementation of a provideris the CVS plug-in provided out of the box in Eclipse.

ConclusionFrom an initial contribution of code from IBM, Eclipsehas grown into a full-fledged open source ecosystem inwhich more than 100 companies participate. Aportable, extensible open source framework isn't a newidea, but because of its mature, robust, and elegantdesign, Eclipse brings a whole new dynamic into play.

Welcome to the Eclipse ecosystem. Our goal was toget you started with the Eclipse platform quickly. Weaccomplished this with some introductory text accom-panied with a simple hands-on exercise. Take theknowledge gained from reading this article andbecome an active member of the Eclipse ecosystem.

8 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 8. Simplified Eclipse Platform architecture

Page 10: Eclipse J2EE Application Easy

ResourcesLearn• Interested in what's happening inside the Eclipsecommunity? Check out PlanetEclipse.• Read the Eclipse Public License V1.0 to learn moreabout its terms and conditions.• Check out the available Eclipse plug-ins at EclipsePlug-in Central.• Information about open source software, includingcertified open source licenses, such as the EclipsePublic License, is available at OpenSource.org.• Check out EclipseLive for webinars featuring variousEclipse technologies.• Learn more about Rational Software Architect.• Eclipse is available under the Eclipse Public License(EPL) V1.0.• "Open source licensing, Part 1: The intent" describesthe tenets of copyright and explains the intents of anopen source license. Part 2 explores individual licenses,such as the GNU Public License and the Apache License.• Eclipse Plug-in Central is an index for plug-ins. Youcan get an RSS feed of the latest plug-ins.• The Rich Client Platform (RCP) provides a foundationfor building cross-platform applications.• Lotus Notes 8 is built using Eclipse RCP technology.• Check out the "Recommended Eclipse reading list."• Browse all the Eclipse content on developerWorks.• Users new to Eclipse should check out Eclipse projectresources' Start Here.• Expand your Eclipse skills by checking out IBMdeveloperWorks' Eclipse project resources.• To listen to interesting interviews and discussions forsoftware developers, check out check outdeveloperWorks podcasts.• Stay current with developerWorks' Technical eventsand webcasts.• Watch and learn about IBM and open source tech-nologies and product functions with the no-costdeveloperWorks On demand demos.• Check out upcoming conferences, trade shows, web-casts, and other Events around the world that are ofinterest to IBM open source developers.• Visit the developerWorks Open source zone forextensive how-to information, tools, and projectupdates to help you develop with open source tech-nologies and use them with IBM's products.

Get Products and Technologies• Check out the latest Eclipse technology downloads at

IBM alphaWorks.• Download Eclipse Platform and other projects fromthe Eclipse Foundation.• Download IBM product evaluation versions, and getyour hands on application development tools and mid-dleware products from DB2®, Lotus®, Rational®,Tivoli®, and WebSphere®.• Innovate your next open source development projectwith IBM trial software, available for download or onDVD.

Discuss• The Eclipse Platform newsgroups should be your firststop to discuss questions regarding Eclipse. (Selectingthis will launch your default Usenet news reader appli-cation and open eclipse.platform.)• The Eclipse newsgroups has many resources for peo-ple interested in using and extending Eclipse.• Participate in developerWorks blogs and get involvedin the developerWorks community.

About the AuthorsChris Aniszczyk is an Eclipse committer at IBM Lotuswho works on OSGi-related development. His primaryfocus these days is improving Eclipse's Plug-inDevelopment Environment (PDE) and spreading theEclipse love inside of IBM's Lotus organization. He is anopen source enthusiast at heart, specializing in opensource evangelism. He evangelizes about Eclipse in hisblog, and he's honored to represent the Eclipse com-mitters on the Eclipse Foundation's board of directors.He's always available to discuss open source andEclipse over a frosty beverage.

David Gallardo is an independent software consultantand author specializing in software internationalization,Java Web applications and database development. Hehas been a professional software engineer for over 15years and has experience with many operating systems,programming languages and network protocols. Hisrecent experience includes leading database and inter-nationalization development at a business-to-businesse-commerce company, TradeAccess, Inc. Prior to that,he was a senior engineer in the International ProductDevelopment group at Lotus Development Corporationwhere he contributed to the development of a cross-platform library providing Unicode and international lan-guage support for Lotus products including Domino.

9 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 11: Eclipse J2EE Application Easy

With the simultaneous release of 21 projects thisyear, the Eclipse Europa release marks a significantimprovement over last year's release train of 10

projects. Get a brief overview of each of the projects associ-ated with the Europa release.

Simply put, Europa is the simultaneous release of 21major Eclipse projects.

The important thing to note about Europa and Eclipserelease trains is that even though it's a simultaneousrelease, it doesn't mean these projects are unified atall. Each project remains a separate open source proj-ect, operating with its own project leadership, its owncommitters, and its own development plan. In the end,Europa is about improving the productivity of develop-ers working on top of Eclipse projects by providing amore transparent and predictable development cycle.It's easier to ship software when you know it will alwaysbe available on a certain date.

Getting EuropaBefore we get into the details about each of the 21projects, let's complete a quick, hands-on exercise thatwill result in the installation of Europa on your machine.The first step in acquiring Europa is to download theEclipse V3.3 SDK. Next, launch Eclipse and access theupdate manager via Help > Software Updates > Findand Install (see Figure 1). Enter the proper Europaupdate site information for your locale if it isn't avail-

able at the Europa discovery site by the time you readthis.

Once you are connected to the Europa update site,you should see the list of available features that arepart of the Europa release train (see Figure 2). It's assimple as that. Once connected to the update site, yousimply choose the features you want to install into yourcopy of Eclipse and start using them. In these two sim-ple steps, you are primed to take advantage of theEuropa release.

10 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

A Whirlwind Tour of Eclipse EuropaEclipse V3.3 contains significant changes to 21 projects; learn how

Europa will boost your productivity

By Chris Aniszczyk ([email protected]), Software Engineer, IBM

First published by IBM developerWorks Open Source at http://www.ibm.com/developerworks/OpenSource/.All rights retained by IBM and the author.

Figure 1. Update site configuration

Page 12: Eclipse J2EE Application Easy

The release trainA brief overview of each project will be given, followedby a quote from an Eclipse committer about what'sexciting about the project in the Europa release. Thequotes are from e-mail conversations I had with eachproject committer. Consider this a dialog betweendevelopers--no fluff or marketing hand-waving wasexpected or allowed.

Eclipse PlatformThe Eclipse Platform project is the heart of Eclipse. Theproject actually consists of many "subprojects," but inmy view, the platform project consists of four mainpieces:

Plug-in Development Environment (PDE)"In what has been described in the Planet Eclipseblog as a 'Plug-in Developer's Christmas,' the Plug-inDevelopment Environment (PDE) brings to Europa amajor plug-in manifest editor facelift, complete withrich-source editing features that include the highlyanticipated content assist," said Wassim Melhem,Eclipse PDE lead and IBM® employee. "Othernotable features include cheatsheet authoring, targetprovisioning, and enhanced RCP and OSGi tooling,Last but not least, with nearly 800 enhancement andbug reports fixed this past year, robustness is certain-ly a key highlight of the PDE 3.3 release."

CoreThe core of the Eclipse Platform mostly comes fromthe Equinox project. Equinox serves as the referenceimplementation for OSGi, which can be consideredas forming the building blocks of Eclipse. Eclipse'splug-in model and notions of extensions are housedwithin Equinox, along with a few other technologies.

User interface (UI)All things related to the workbench live here.

Java™ Development Tools (JDT)This is the first component most developers comeacross when they initially use Eclipse. Eclipse shipswith a world-class Java development environment,known as the JDT.

Aspect Java Development Tools(AJDT)The AJDT project provides Eclipse Platform-based toolsupport for aspect-oriented software development withAspectJ. The AJDT makes the life of an aspect devel-oper easier, similar to the way the JDT made the life ofa Java developer easier.

"The AspectJ Development Tools project (AJDT) joinsthe Eclipse release train for the first time this year. Lastyear, the project moved from being a technology proj-ect to become a tools project, reflecting the project'slevel of maturity and widespread usage. The projectprovides everything required for aspect-oriented pro-gramming: the AspectJ compiler and weaver, an editorfor AspectJ source code, and additional views andother functionality designed to allow developers to getthe maximum benefit from AOP," said Matt Chapman,AJDT lead and IBM employee. "Since last year's 1.4release, there have been a number of improvements,including:

• "Refactoring participant to update aspects whenJava types are renamed

• "Better support for binary weaving across projectsusing the aspect-path setting

• "Making the aspect-path and in-path settings moreconsistent with the regular Java classpath setting

• "Improvements to the Crosscutting Comparisonview

• "New functionality to highlight changes to thecrosscutting relationships in a project"

11 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 2. Europa update site

Page 13: Eclipse J2EE Application Easy

Business Intelligence and ReportingTools (BIRT)The BIRT project strives to bring an Eclipse-basedreporting system that integrates with your applicationto produce compelling reports for Web and PDF. BIRTprovides core reporting features such as a graphicalreport designer, data access, and scripting support.

"BIRT 2.2, which is part of the Europa release, offersmany new features to assist in report development,ease of framework integration, and exporting of con-tent. These include a new dynamic cross-tab element,which supports hierarchal reporting complete with levelaggregation, filtering and sorting, new emitters for XLS,Doc, PPT, and postscript formats, a new Web servicedata access driver, and many improvements to existingfeatures," said Jason Weathersby, BIRT evangelist andActuate employee. "Additionally, BIRT provides severalnew project types, such as the Web project, whichallows the BIRT Viewer and new tag libraries to bedeployed using WTP mechanisms and new ODA proj-ects that facilitate building your own data drivers."

BuckminsterThe Buckminster project consists of frameworks andtools for automating build, assemble, and deploy devel-opment processes in complex or distributed component-based development. Buckminster allows developmentorganizations to define fine-grain "production lines" forthe various stages in software production and to auto-mate the execution of corresponding processes. A com-mon example of such a process is a developer joining anew team and being expected to set up the develop-ment environment from scratch. Buckminster allows newdevelopers to materialize their development workspacesand quickly become productive team members.

"Europa will be the first formal release of Buckminster,which has been expanded significantly in scope andproduction quality. Buckminster now supports fine-graincontrol and greater variability in the configuration reso-lution process through dynamic component queriesand a two-phase resolution model. We have also intro-duced an action framework, which supports orchestra-tion of assembly processes involving native Eclipse(PDE) and external build mechanisms. Headless execu-tion capabilities have also been expanded. Extensibilityis greatly improved through formal XML schemas for all

artifacts, and usability is enhanced with an initial set ofgraphical editors," said Thomas Hallgren, Buckminstercommitter and Cloudsmith employee.

C/C++ Development Tooling (CDT)The CDT project aims to bring a fully functional C andC++ development environment to the Eclipse Platform,similar to what JDT did for Java development.

"The CDT is becoming the de-facto standard C/C++IDE among commercial vendors targeting Linux® andembedded. The CDT enjoys a large community ofusers working with the Windows® GNU compilers, aswell. The breadth of the CDTs user base--from tinybarebones embedded systems to high-performancecomputing applications running on massive clusters--really highlights the flexibility of the frameworks andfeatures that it provides," said Doug Schaefer, CDTlead and QNX Software Systems employee.

"CDT 4.0 is our largest release, with over 20 contribu-tors working in it and one we hope will bring the CDTto the next level of adoption. The user experience,especially when creating new projects has been greatlysimplified with a streamlined New Project wizard thathides some of the details of the underlying build sys-tems. It also offers the ability to create new projectsbased on templates that provide skeletal code and proj-ect settings," Schaefer said. "A lot of work has goneinto the CDT editor, which offers many more identifiercoloring options and a faster content assist. Three newviews give users greater insight into the structure oftheir code, including an Includes Browser, Call HierarchyView, and a new Type Hierarchy View. The set of buildand debug tool chain integrations grows with a cleanerMinGW integration, a GDB hardware debugging inte-gration, and a new integration for IBM's xlC compiler.And, finally, the path to CDT's future is laid out with theintroduction of new mechanisms for handling additionalprogramming languages that includes a new experi-mental C parser and a parser for UPC, Unified ParallelC, using the LPG parser generator."

Dynamic Languages Toolkit (DLTK)The DLTK is a tool for vendors, researchers, and endusers who rely on dynamic languages. DLTK comprisesa set of extensible frameworks designed to reduce thecomplexity of building full-featured development envi-

12 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 14: Eclipse J2EE Application Easy

ronments for dynamic languages, such as PHP and Perl.Furthermore, besides a set of frameworks, DLTK pro-vides exemplary TCL, Ruby, and Python developmentenvironments ready to use out of the box.

"For the Europa release, the DLTK provides TCL andRuby components with a set of features you may find inJava Development Tools. Starting from code editorwith code assistance and code outline, code navigationfeatures like Open Type and Go to declaration, power-ful search features like find references up to interactiveconsole and integrated debugger, these features bringEuropa a powerful development environment for Rubyand TCL programming languages," said AndreiSobolev, DLTK project co-lead and XORED employee.

DSDP Device Debugging (DSDP-DD)and Target Management (DSDP-TM)The DSDP-DD project creates new frameworks andextensions to the existing platform debug framework tosupport the three phases of device software develop-ment: hardware bring-up, platform software develop-ment, and application software development. TheDevice Debugging project will build enhanced debugmodels, APIs, and views to provide greater visibilityinto and control over device software targets. TheDSDP-TM project creates data models and frameworksto configure and manage remote systems, their con-nections, and their services.

"With the Europa release, DSDP introduces V2.0 of theTarget Management project and V0.9 of the DeviceDebugging project. TM 2.0 focuses on several architec-tural improvements, including better separationbetween UI and non-UI components, cleanup of APIs,improved flexibility for system type and action contribu-tions, and better usage of jobs. TM 2.0 also adds a shellprocesses subsystem, a Telnet subsystem and associat-ed view, DNS-SD discovery, an FTP listing parser exten-sion point, and an improved EFS provider. TM continuesto experience excellent growth in its user community,with several new commercial products planning adop-tion. DD 0.9 is the DD project's first public release,"said Doug Gaff, DSDP PMC and WindRiver employee.

"DD 0.9 introduces the Debugger Services Framework(DSF)--an extensible framework that leverages the newadaptable debug APIs introduced in Eclipse 3.2. DSF is

geared toward commercial-embedded debug engineimplementations in Eclipse. DD 0.9 also provides amemory rendering for the platform memory view thatmimics the traditional memory view found in embed-ded debuggers. Finally, DD 0.9 provides a previewrelease of an XML editor that implements the SPIRITconsortium's IP-XACT V1.3 standard for System OnChip (SoC) hardware description. Other DSDP subpro-jects will also be releasing off-train this year," Gaff said.

DataTools Platform (DTP)The DTP project aims to bring frameworks and tools tothe domain of data management. Examples of frame-works include location and management of data sourcedrivers, and configurations for access to particular datasource instances. Once a connection is successfullymade, the next task often is to explore the data sourcewith tools. Some of these operations might be carriedout by GUI actions, others directly through commands.For example, users--both developers and administra-tors--typically will create, edit, and test SQL for thesecommands. Assistance with editing SQL through codecompletion, formatting, and dialect specializationgreatly enhances productivity. Further, the ability toexecute or debug commands--both SQL and storedprocedures--rounds out the rapid development processthat Eclipse supports so well.

"DTP 1.5 builds on the foundation of the DTP 1.0release last December to provide specialized databasesupport for Sybase SQL Anywhere and HSQLDB, aswell as an ODA Web service driver. NEC Soft, Japan,has also joined the DTP team in this release and hasprovided a wizard for creating database tables for DTP1.5. As demonstrated by a strong showing atEclipseCon, including a sponsored talk about DTP inte-gration by Ingres, the DTP ecosystem continues toexpand at a healthy rate," said John Graham, DTPPMC chairman and Sybase employee.

Eclipse Communication Framework(ECF)The ECF project consists of a framework for supportingthe development of distributed Eclipse-based tools andapplications. It can be used to create other plug-ins,tools, or full Eclipse RCP applications that require asyn-chronous point-to-point or publish-and-subscribe mes-saging.

13 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 15: Eclipse J2EE Application Easy

"ECF brings communication capabilities to the Europarelease with a uniform set of APIs to be consumed bydevelopers. Support for transferring files through HTTP,BitTorrent, and messaging protocols like XMPP and IRCis provided by ECF out of the box. ISVs that wish toadd their own protocols and communications layers cancontribute them directly through the framework. Theframework itself is stripped-down enough that it caneven be used on embedded devices, allowing devel-opers to easily write applications that require havingPocket PCs and notebooks talk to each other," saidRemy Chi Jian Suen, ECF committer, and Scott Lewis,ECF committer.

Project Dash (Eclipse Monkey)Project Dash (also known as Eclipse Monkey) makes itpossible to script Eclipse similar to what BeanShelldoes for Java.

"Simply put, the Eclipse Monkey project 'script-enables' Eclipse. It enables developers to useJavaScript (extensibility points are provided to supportother scripting languages, such as Ruby) to control anyaspect of their Eclipse environment. Examples of whatcould be done include scripts to configure Eclipse con-sistently across installations, macros for performing aset of actions (including inserting/modifying code), andinserting code snippets," said Paul Colton, EclipseMonkey lead and Aptana employee.

"The DOM available to the scripter can be fully extend-ed to add support for any capability that is not alreadyincluded. Another powerful feature of Eclipse Monkeyis the ability to create new Eclipse views that containWeb content. That is, full HTML/CSS/JavaScript viewscan be created with two-way communications withEclipse. For example, a view that displays real-timeGoogle searches based on the keyword your cursor ison. Another example could be an RSS reader of codesnippets: If a link is clicked, the snippet can be insertedfrom the RSS feed into your working document. Aptana(an open source, Eclipse-based Ajax development envi-ronment) fully leverages Eclipse Monkey in many of theways described here," Colton said.

Eclipse Modeling Framework (EMF)EMF is a modeling framework and code-generationtool for building tools and other applications based on

a structured model. EMF lets you build models quicklyby taking advantage of EMF facilities. For example, onefeature EMF provides is support for persisting modelsto XML and other formats.

"The Eclipse Modeling Framework provides powerfulgenerative and runtime capabilities for applicationsbased on structured data models. From a simple classdiagram, XML Schema, or even Java interfaces, you cangenerate a complete Java implementation of themodel, along with an editor for it, and take advantageof EMF's facilities for persistence, notification, validation,and change recording in your application," MarceloPaternostro, EMF Committer and IBM employee.

"Europa includes EMF 2.3, which, for the first time,allows developers to exploit Java 5 concepts and fea-tures in their models. Generics are now fully supportedin EMF's metamodel, Ecore, and in the EMF code gen-erator," Paternostro said. "Other important Java 5 lan-guage features are also supported, including enumerat-ed types, annotations, and the enhanced for loop.Developers still have the option to generate 1.4-com-patible code, which can be run on the EMF 2.2 runtime.

"Other important and long-awaited features includeEcore model validation, Ant support for code genera-tion based on annotated Java interfaces, and referencekeys, which provide a more robust alternative to thedefault index-based reference serialization. Finally, EMF2.3 will be delivered in fine-grain features, allowing formore flexible use in projects and products, withoutintroducing unwanted code, user interface, or depend-encies."

Eclipse Modeling FrameworkTechnology (EMFT)The EMFT project was initiated to incubate new tech-nologies that extend or complement EMF. These tech-nologies over time--if found useful--eventually graduateinto EMF. Some example technologies found in EMFTinclude the ability to generically search, compare, andpersist EMF models to a database.

Graphical Editing Framework (GEF)The GEF project allows developers to take an existingapplication model and create a rich graphical editorquickly. GEF also contains a lightweight visualization

14 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 16: Eclipse J2EE Application Easy

layer, known as Draw2D, which is similar to Java2D.

"For the Europa release, GEF 3.3 is essentially a main-tenance release in terms of the delivery of several smallfeatures and bug fixes. The GEF team did spend con-siderable effort making sure GEF aligned with the capa-bilities of Eclipse 3.3, such as testing on the new plat-forms like Microsoft® Vista, adopting new Eclipse 3.3release engineering tools, and so on," said AnthonyHunter, GEF/GMF committer and IBM employee.

Graphical Modeling Framework(GMF)The GMF project provides a generative componentand runtime infrastructure for developing graphical edi-tors based on EMF and GEF. The project aims to pro-vide these components, in addition to exemplary toolsfor select domain models that illustrate its capabilities.

"GMF remains an active and popular project within theEclipse Modeling Project, and provides severalenhancements with the 2.0 release to its runtime andtooling components to further simplify the task ofbuilding diagram-based editors for EMF models," saidRichard Gronback, GMF lead and Borland employee."GMF has also found two clients within the Eclipseecosystem, with the introduction of the UML2 Toolscomponent in MDT and the BPMN modeler within theSOA Tools project."

Model Development Tools (MDT)The MDT project focuses on "big M" modeling withinthe Eclipse Modeling project. The project has two mainpurposes: Provide an implementation of industry stan-dard metamodels; and provide exemplary tools fordeveloping models based on those metamodels. Forexample, the MDT project contains implementations(as metamodels) of UML2, XSD, and OCL.

Model To Text (M2T)The M2T project focuses on the generation of textualartifacts from models. Its purpose is threefold:

• To provide implementations of industry standardand de-facto Eclipse standard model-to-text engines• To provide exemplary development tools for theselanguages• To provide common infrastructure for this languages

For Europa, the M2T project will release a small com-ponent called JET.

"Java Emitter Templates (JET) is an JSP-inspired codegenerator designed to work in the Eclipse workspaceenvironment. Instead of producing HTML Web pagesin response to an HTTP request, JET produces Eclipseresources (files, folders, projects) when given an inputmodel. JET can read a number of input model types,including simple XML documents and any EclipseModeling Framework (EMF) based document," saidPaul Edler, JET lead and IBM employee.

"In the Europa release, JET has moved from theEclipse Modeling Framework Technologies (EMFT) proj-ect into the new Model to Text (M2T) Project. JET andM2T remain in the incubation phase as the M2T projectcontinues to ramp up. Ultimately, M2T will includeother Eclipse-based template languages (xPand fromopenArchitectureWare and MTL--an implementation ofthe OMG's MOF Model to Text specification), as wellas common infrastructure to support both the imple-mentation and consumption of model-to-text lan-guages."

Eclipse Mylyn (formerly knownas Mylar)"Mylyn is a task-focused UI that reduces informationoverload and makes multitasking easy. It does this bymaking tasks a first-class part of Eclipse, and integrat-ing rich and offline editing for repositories, such asBugzilla, Trac, and JIRA. Once your tasks are integrat-ed, Mylar monitors your work activity to identify infor-mation relevant to the task at hand, and uses this taskcontext to focus the Eclipse UI on the interesting infor-mation, hide the uninteresting, and automatically findwhat's related," said Mik Kersten, Mylar lead andTasktop employee.

"Mylyn 2.0 makes tasks as easy to browse and navigateas files and Java elements," Kersten said. "Tasks can beviewed with flexible presentations, focused to show themost relevant ones and organized with working sets.Just as the Eclipse JDT makes Java references easy tonavigate, with Mylyn 2.0, pervasive hyperlinking tasksare only a click away whether referenced in sourcecode or revision histories.

15 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 17: Eclipse J2EE Application Easy

"Mylyn provides a Rich Internet Application (RIA) infra-structure and UI for working with task repositories. Thismeans that issue tracking and project managementtools, including Bugzilla, JIRA, Trac, Rally, CollabNetEnterprise Edition, and XPlanner, can all be used withMylyn's rich editor, opened instantly with no roundtripsto the server, and accessed easily when offline. Mylyn'sTask List can now be used as a single in-box for all yourtasks, allowing you to unclutter your e-mail inbox byturning off e-mail notifications," Kersten said.

"The fundamental productivity benefits of Mylyn comefrom the Task-Focused UI, which reduces informationoverload and makes multitasking easy. Mylyn 2.0 facili-tates working in a task-focused way by making recallinga task context almost instant. Additional features suchas the task context pop-up dialog and task activationdialog it easier to adopt the Task-Focused UI withoutchanging existing work practice," Kersten said. "Inaddition, context sharing has been streamlined and acontext editor provided to better support teams."

SOA Tools Platform (STP)There's no such thing as a single kind of SOA develop-er, so the STP project's goal is to bring together qualityframeworks and tools to aid developers in constructingand deploying services using popular SOA solutiontechnologies.

"SOA Tools is new addition to the mid-year big-bangEclipse release train this year, and as part of it, we willbe shipping new frameworks for Java Annotation-driv-en service development approaches, such as JAX-WSand SCA/Java, a BPMN Modeler framework, and aBPEL compiler," said Oisin Hurley, STP lead and IONAemployee. "To help package and deliver your services,we've constructed a sophisticated deployment frame-work that enables the construction of multiple deploy-ment profiles and multipackage deploy. This is integrat-ed with the WTP Server framework to make sure thatyou can reuse any code you already have for deployingto single servers."

Eclipse Test & Performance Tools Platform (TPTP)TPTP provides an open platform supplying powerfulframeworks and services that allow software developersto build unique test and performance tools--both opensource and commercial--that can be easily integratedwith the platform and with other tools. The platform

supports a broad spectrum of computing systems,including embedded, stand-alone, enterprise, andhigh-performance, and will continue to expand supportto encompass the widest possible range of systems.

"TPTP provides a rich set of test, profiling, and moni-toring tools. However its true value can only be realizedby being part of a core typical user use case," saidHarm Sluiman, TPTP committer, IBM employee. "Themain new feature of TPTP (besides the normal main-tainer and bug fixing) is that we have moved to JVMTIfrom JVMPI, which has given us better and more stableheap and thread analysis support, along with the abilityto support Java 6 going forward."

Web Tools Platform (WTP)The WTP project extends the Eclipse Platform withtools for developing J2EE Web applications. The WTPproject includes source editors for HTML, JavaScript,CSS, JSP, SQL, XML, DTD, XSD, and WSDL; graphicaleditors for XSD and WSDL; J2EE project natures,builders, and models, and a J2EE navigator; and a Webservice wizard and explorer. Generally speaking, if thetask you need to complete is related to Web develop-ment, you will usually find the right tool in the WTP.

"I'm excited about this Europa release of WTP 2.0. Thisis partially because we have better componetization, sousers can install just our XML tools, from Europa'sDiscovery Site, or just the non-Java related Web tools(HTML, CSS, etc). And, for these smaller components,JDT is no longer even dragged in! These smallerinstalls have been much requested by the communityand I am hoping they will attract a whole new set ofusers and integration with other Eclipse-based proj-ects," said David Williams, WTP project managementcommittee co-lead, and IBM employee.

"Additionally, the Java-related tools, for JEE WebDevelopment, have gotten much richer this release. Weare happy that the sub-projects for JSF and Dali (forJava Persistence Tooling) have graduated from incuba-tion and provide some great tools for using these stan-dards in JEE applications," Williams said. "With thisrelease, we provide basic support for JEE 5 applica-tions and servers, and have gained contributions fornew standards, such as Axis2."

"While we have more to do, we have made progress in

16 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 18: Eclipse J2EE Application Easy

improving usability and 'out of the box' experience.One example is we have gotten a contribution for amuch requested visual editor for editing HTML, JSP,and JSF, which should improve productivity whiledevelopers create Web pages," Williams said."Additionally, we have a built-in "preview" server forusers' first, simple applications, as well as new'discovery' mechanisms for finding server adapters thatare available to be installed after users get moreadvanced."

Go try Europa--It's freeI have explained the Europa release train as efficientlyas possible while remaining relevant technically. Thiswas accomplished by giving a unique developer-to-developer perspective on each of the projects by gath-ering a relevant quote from project developers. Frommy perspective, the differences between the Callistoand Europa releases are validation that Eclipse is grow-ing and will continue to be a relevant and viable plat-form for software development and deployment. Sowhat are you waiting for? Give Europa a try. �

ResourcesLearn• Read "Europa Simultaneous Release project."• Home of the Europa release train.• Documentation, articles, and downloads of Eclipseare available from the Eclipse Foundation.• Interested in what's happening in the Eclipse com-munity? Check out PlanetEclipse.• Check out the available Eclipse plug-ins at EclipsePlug-in Central.• Check out EclipseLive for webinars featuring vari-ous Eclipse technologies.• Check out the "Recommended Eclipse readinglist."• Browse all the Eclipse content ondeveloperWorks.• Users new to Eclipse should check out Eclipseproject resources' Start Here.• Expand your Eclipse skills by checking out IBMdeveloperWorks' Eclipse project resources.• To listen to interesting interviews and discussionsfor software developers, check out check outdeveloperWorks podcasts.• For an introduction to the Eclipse platform, see"Getting started with the Eclipse Platform."

• Stay current with developerWorks' Technicalevents and webcasts.• Watch and learn about IBM and open sourcetechnologies and product functions with the no-costdeveloperWorks On demand demos.• Check out upcoming conferences, trade shows,webcasts, and other Events around the world that areof interest to IBM open source developers.• Visit the developerWorks Open source zone forextensive how-to information, tools, and projectupdates to help you develop with open source tech-nologies and use them with IBM's products.

Get products and technologies• Check out the latest Eclipse technology down-loads at IBM alphaWorks.• Download IBM product evaluation versions, andget your hands on application development toolsand middleware products from DB2®, Lotus®,Rational®, Tivoli®, and WebSphere®.• Innovate your next open source developmentproject with IBM trial software, available for down-load or on DVD.

Discuss• Chat with other Eclipse developers and commit-ters on IRC.• The Eclipse Platform newsgroups should be yourfirst stop to discuss questions regarding Eclipse.(Selecting this will launch your default Usenet newsreader application and open eclipse.platform.)• The Eclipse newsgroups has many resources forpeople interested in using and extending Eclipse.• Participate in developerWorks blogs and getinvolved in the developerWorks community.

About the authorChris Aniszczyk is an Eclipse committer at IBM Lotuswho works on OSGi-related development. His primaryfocus these days is improving Eclipse's Plug-inDevelopment Environment (PDE) and spreading theEclipse love inside of IBM's Lotus organization. He is anopen source enthusiast at heart, specializing in opensource evangelism. He evangelizes about Eclipse in hisblog, and he's honored to represent the Eclipse com-mitters on the Eclipse Foundation's board of directors.He's always available to discuss open

17 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 19: Eclipse J2EE Application Easy

This article is for anyone who wants to installEclipse-based IBM® Rational® software prod-ucts, especially if you're going to install several

on the same machine. Conveniently distilling informa-tion from the technical reference material for a num-ber of IBM Rational Software Development Platformproducts (including Rational Web Developer, RationalApplication Developer, Rational Software Modeler,Rational Software Architect, Rational SystemsDeveloper, Rational Functional Tester, and RationalPerformance Tester), this article discusses the implica-tions of the product packaging architecture for yourinstallation.

IntroductionThis article provides an overview of the Eclipse-basedIBM Rational products and their high level productpackaging architecture. The IBM Rational productpackaging architecture has certain implications on theinstallation, especially where multiple product installa-tion on the same physical machine is desirable. Thisarticle provides a detailed overview of such issues andoffers guidance on the best approach to achievingsuch co-existence installs and specific considerationsin such a setup.

Details of this nature are already provided in the tech-nical reference material accompanying IBM Rationalproducts. This article is merely intended to capturesuch information in a single end-user document, sup-plementing the information that is already available.

Eclipse OverviewEclipse is an open platform for building softwaredevelopment tools. It operates under the open sourcemodel, which provides a common public license androyalty-free worldwide distribution. Written in the Javalanguage, the Eclipse platform provides a plug-inarchitecture that simplifies the development of soft-ware products based on it.

Eclipse has been designed from the ground up tohelp you build integrated web and application devel-opment tooling. By design, the platform does notitself provide a great deal of end-user functionality.Instead, the value of the platform is what it encour-ages: rapid development of integrated features basedon a plug-in model.

Eclipse provides a common user interface (UI) modelfor working with tools. It is designed to run on multi-ple operating systems while providing robust integra-tion with each underlying OS. Plug-ins can program tothe Eclipse portable APIs (application programminginterfaces) and run unchanged on any of the support-ed operating systems.

The platform UI provides you with a standard usernavigation model. This helps you create plug-ins thatare focused on doing a small number of tasks well (forexample, testing, animating, publishing, compiling,debugging, diagramming, and so on).

18 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Installing and Using Eclipse-based IBMRational Products

By Khawar Z. Ahmed ([email protected]), Technical Marketing, IBM

First published by IBM developerWorks Rational at http://www.ibm.com/developerworks/Rational/.All rights retained by IBM and the author.

Page 20: Eclipse J2EE Application Easy

The Eclipse platform uses the model of a commonworkbench to integrate the tools from the end user'spoint of view. The platform itself is built in layers ofplug-ins, each one defining extensions to lower-levelplug-ins, and so on. This extension model allows youto develop plug-ins that add a variety of function tothe basic tooling platform. The artifacts for each tool(such as files and other data) are coordinated by acommon platform resource model.

The platform gives you a common way to work withthe tools, and provides integrated management of theresources they create with plug-ins. Figure 1 shows asimplified view of the Eclipse platform and the subsys-tems within it:

Today, numerous commercial and open-source prod-ucts use the Eclipse platform as their tooling founda-tion.

Eclipse and the IBM RationalSoftware Development PlatformThe IBM Rational Software Development Platform isan Eclipse-based common development environmentthat is shared by the following products:

• IBM® Rational® Web Developer• IBM® Rational® Application Developer• IBM® Rational® Software Modeler• IBM® Rational® Software Architect• IBM® Rational® Systems Developer• IBM® Rational® Functional Tester• IBM® Rational® Performance Tester

If you install any of these products, the IBM RationalSoftware Development Platform is automaticallyinstalled as part of the product. Even if you have morethan one of these products installed, the developmentplatform is installed only once. All of these productshave the same UI, called a workbench, and eachproduct adds functionality to the workbench by con-tributing plug-ins. Another way to think of this is thatproducts installed in this manner share the sameEclipse ecosystem.

Figure 2 depicts the nested structure of the productslisted previously:

Overview of IBM Rational ProductsThe following provides a basic overview of the differ-ent products in the IBM Rational portfolio. For more

19 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 1. Simplified view of the Eclipse platform

Figure 2. Eclipse-based IBM Rational product packaging

Page 21: Eclipse J2EE Application Easy

information about any of these products, please referto the Resources section at the end of this article.

Rational Web Developerfor IBM WebSphere SoftwareRational Web Developer for WebSphere Software isan easy-to-learn IDE (integrated development envi-ronment) that helps you build, test, and deploy Web,Web services, and Java applications. It helps youdevelop drag-and-drop applications with JavaServerFaces (JSF) and Service Data Objects. Rational WebDeveloper is capable of supporting multi-vendor run-time environments, and is optimized for IBM®WebSphere® software.

Rational Application Developerfor WebSphere SoftwareRational Application Developer is a comprehensiveIDE that enables you to quickly design, develop, ana-lyze, test, profile, and deploy Web, Web services, por-tal, Java, and Java2 Platform, Enterprise Edition(J2EE) applications. It provides you with sophisticatedstatic code visualization tools. Like Rational WebDeveloper, Rational Application Developer is capableof supporting multi-vendor runtime environments, andis optimized for WebSphere Software.

Rational Software ModelerRational Software Modeler is a Unified ModelingLanguage (UML)-based visual modeling and designtool for architects, systems analysts, and designerswho need to ensure that their specifications, architec-ture, and designs are clearly defined and communicat-ed to their stakeholders.

Rational Software Modeler is a customizable tool thatenables you to clearly document and communicatethese system views. Rational Software Modeler alsosupports team development by integrating with othertools in your environment.

Rational Software ArchitectRational Software Architect is a design and construc-tion tool for software architects and senior developerscreating applications in either the Java platform orC++. It leverages model-driven development withUML, and unifies all aspects of software applicationarchitecture. It is intended to help you create well-architected applications and services.

Rational Systems DeveloperRational Systems Developer is a design and construc-tion tool that takes advantage of the full power ofEclipse and includes plug-ins that enable softwarearchitects and model-driven developers to createwell-architected C/C++, Java, J2SE and CORBA-based applications leveraging the Unified ModelingLanguage (UML 2).

Rational Functional TesterRational Functional Tester is an advanced, automatedfunctional and regression testing tool for testers andGUI developers who need superior control when test-ing Java, VS.NET, and Web-based applications. It pro-vides novice testers with automated capabilities foractivities such as data-driven testing, while offeringadvanced testers a choice of scripting language andScriptAssure technology to improve script resiliency.

Rational Functional Tester also supports testing of3270 (zSeries) and 5250 (iSeries) applications usingthe IBM Rational Functional Tester Extension forTerminal-based Applications.

Rational Performance TesterRational Performance Tester is a performance test cre-ation, execution, and analysis tool for teams validatingthe scalability and reliability of complex e-businessapplications before deployment. Its multiple, low-intrusion recording techniques capture client-servercommunication involving either HTTP/HTTPS or SQL-based protocols. In addition, its built-in data correla-tion filters detect variable data, as well as preparingtests for data-driven load test generation.

Rational Performance Tester's fully customizable testworkload scheduler permits highly accurate models oftrue user profiles. Finally, its real-time reports showup-to-the second response times across users anduser groups, exposing system bottlenecks as soon asthey occur.

Note: as of March 1, 2005, the above is pre-releaseinformation on Rational Performance Tester and issubject to change. Please consult the RationalPerformance Tester link in the Resources section forscheduled release date and details.

20 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 22: Eclipse J2EE Application Easy

Co-existence ScenariosWhen you try to install multiple Eclipse-based Rationalproducts (described in the prior sections), you mayencounter one of the following three coexistence situ-ations (depending on the specific combination):

1. Shared Eclipse ecosystem2. Blocked install3. Upgrade4. Co-exist

The exact action you take depends on the specificcombination of products you are trying to install. Thefollowing sections elaborate on each of the abovecoexistence situations, and the rationale for theactions you should take. The section following thisone provides a matrix of product installs and associat-ed actions.

Shared Eclipse EcosystemShared Eclipse ecosystem refers to a situation wherean Eclipse platform-based product uses the compo-nents installed by another Eclipse platform-basedproduct. For example, when you install Eclipse-basedproducts A and B, product B relies on componentsinstalled by product A. In this situation, A and B areconsidered to be sharing the same Eclipse ecosystem.

In this situation, the second product typically extendsthe capabilities of an existing product withoutinstalling another copy of components such as the UI.For example, if you install Rational PerformanceTester, and then you install Rational ApplicationDeveloper, they will both share the same Eclipseecosystem. They will share a single UI, and the userinterface will contain all the functionality that bothproducts offer.

Blocked InstallSome product combinations are blocked from installa-tion on the same machine. This typically happenswhen an installed product offers more functionalitythan the one that you are trying to install (in otherwords, the installed product is a superset of the prod-uct you are trying to install). In such a situation,installing the second product could lead to your los-ing some functionality available in the first product,and so it is blocked.

For instance, if you have Rational Software Architectinstalled, and you try to install Rational ApplicationDeveloper, your installation request will be blocked.This is because the Rational Software Architect productalready contains all the functionality offered by RationalApplication Developer, so you would be losing func-tionality if the second product install were to go ahead.If you really want to install the second product, thenyou must uninstall the first product before installingthe second.

UpgradeSome product combinations lead to a situation wherethe existing product must be upgraded to the productthat offers more functionality. When a product isupgraded, the existing product is removed andreplaced. However, your workspace associated withthe first product is not removed. Typically, this hap-pens when you install a product that contains all thefunctionality of the existing product and some addi-tional functionality beyond that (in other words, theproduct being installed is a superset of the productthat is already installed).

For example, if you have Rational Web Developerinstalled, and you try to install Rational ApplicationDeveloper, you will be upgraded to the RationalApplication Developer product because it is a supersetof Rational Web Developer. The first product, RationalWeb Developer, will be uninstalled, but both the userinterface and the workspace that contain your work forRational Web Developer will remain in the same loca-tion. Note also that the installed product is re-brandedto reflect the name of the recently installed product.

Co-existCo-existence refers to a situation where an Eclipseplatform-based product does not share the compo-nents installed by another Eclipse platform-basedproduct, but installs its own components. In this situa-tion, A and B are considered to be co-existing on thesame machine. Keep in mind that while such co-installs are possible, running the products simultane-ously may not be practical due to the higher memoryrequirements.

For example, if you have Rational Software Architectinstalled, and you want to install Rational SystemsDeveloper, you will be allowed to do so. Both applica-tions will be installed separately, and they will not

21 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 23: Eclipse J2EE Application Easy

share any common Eclipse components.

Product installation matrixTable 1 illustrates what happens when you attempt toinstall more than one product, common to theRational Software Development Platform, on the samemachine.

The vertical axis represents products already installed,while the horizontal axis represents products that youare attempting to install.

Example Scenarios• Rational Application Developer is already

installed, and you want to install Rational SoftwareModeler

Rational Application Developer does not containthe Rational Software Modeler functionality. Nor isthere an upgrade path from Rational ApplicationDeveloper to Rational Software Modeler, or viceversa.

In this situation, then, the install will go ahead andlead to Rational Software Modeler in a sharedEclipse ecosystem with Rational ApplicationDeveloper. Rational Software Modeler menus andoptions will appear alongside Rational ApplicationDeveloper, and they will share the Eclipse ecosys-

22 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Table 1. IBM Rational product installation matrix

Attempt to Rational Rational Rational Rational Rational Rational Rationalinstall Software Web Application Software Systems Functional Performance

Modeler Developer Developer Architect Developer Tester Tester

Rational N/A Share Share Upgrade Co-exist Share ShareSoftwareModeler

Rational Share N/A Upgrade Upgrade Co-exist Share ShareWebDeveloper

Rational Share Block N/A Upgrade Co-exist Share ShareApplicationDeveloper

Rational Block Block Block N/A Co-exist Share ShareSoftwareArchitect

Rational Co-exist Co-exist Co-exist Co-exist N/A Co-exist Co-existSystemsDeveloper

Rational Share Share Share Share Co-exist N/A ShareFunctionalTester

Rational Share Share Share Share Co-exist Share N/APerformanceTester

Page 24: Eclipse J2EE Application Easy

tem resources.

A shared situation would also arise if you hadRational Functional Tester and installed it on amachine that had Rational Application Developer.Note that in such installations, the system maintainsinternal details of resources being used, so if youuninstall a shared product it does not negativelyaffect the operations for the other installed prod-ucts.

As a general rule, Rational Software Modeler existsin a shared Eclipse ecosystem when installed withany of the following products:

o Rational Functional Testero Rational Performance Testero Rational Web Developero Rational Application Developer

Similarly, Rational Functional Tester and RationalPerformance Tester can exist in a shared Eclipseecosystem with any of the following products:

o Rational Web Developero Rational Application Developero Rational Software Modelero Rational Software Architect

• Rational Software Architect is already installed,and you want to install Rational Software Modeler

This install attempt will be blocked. This is becauseRational Software Architect is a superset of theRational Software Modeler product and includes allof its functionality. Therefore, permitting you toinstall Rational Software Modeler in this situationwould lead to a degradation of the RationalSoftware Architect installation's capabilities.

• Rational Web Developer is already installed, andyou want to install Rational Software Architect

Rational Software Architect is a superset of RationalWeb Developer. So if Rational Web Developer isalready installed, and you want to install RationalSoftware Architect, then your Rational WebDeveloper installation would be upgraded toRational Software Architect, and the installed prod-

uct would be re-branded Rational SoftwareArchitect. That is, you will not have side-by-sideinstallations of Rational Web Developer andRational Software Architect. Instead, a single installof Rational Software Architect will give you all theRational Software Architect functionality as well asthe Rational Web Developer functionality.

Doing so will result in Rational Software Architectreusing all the common content from Rational WebDeveloper. It would also install Rational ApplicationDeveloper content, because Rational SoftwareArchitect includes all of the functionality of RationalApplication Developer. Furthermore, additionalRational Software Architect-specific content wouldbe installed to complete the installation. At the endof installation, everything would be brandedRational Software Architect.

• Rational Web Developer is already installed, andyou want to install Rational Application Developer

This is similar to the situation described in the previ-ous section. Since Rational Application Developer isa superset of Rational Web Developer, the RationalWeb Developer install would be upgraded toRational Application Developer, and the install re-branded to Rational Application Developer.

• Rational Web Developer is already installed andyou want to install Rational Systems Developer

Rational Web Developer does not contain theRational Systems Developer functionality. Nor isthere an upgrade path from Rational WebDeveloper to Rational Systems Developer, or viceversa.

So, in this situation, the install will go ahead andlead to Rational Systems Developer co-existing onthe same machine with Rational Web Developer.Rational Systems Developer menus and options arenot available from Rational Web Developer, andthey do not share common Eclipse resources.

Common Questions andConsiderationsSome questions routinely come up in connection with

23 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 25: Eclipse J2EE Application Easy

using and deploying Eclipse-based IBM Rational prod-ucts. This section answers the most commonly askedones:

• Can I co-install Eclipse 2- and Eclipse 3-basedIBM products?You can install and run Eclipse 2-based Rationalproducts and Eclipse 3-based Rational products sideby side.

For example, you can run IBM® WebSphere®Studio Application Developer 5.x and RationalApplication Developer 6 on the same machine.Since IBM® Rational Rose® XDE installs and runsinside WebSphere Studio, you can also run RationalRose XDE with Rational Software Architect. Similarly,you can install and run Rational Functional Tester 5.xwith Rational Functional Tester 6 on the samemachine.

When running WebSphere Studio ApplicationDeveloper 5.x and Rational Application Developer6.x, you do need to ensure that the applicationservers for the test environments are set up to usedifferent ports for the two products; otherwise youwill run into conflicts.

Keep in mind that while such co-installs are possi-ble, running the products simultaneous may not bepractical due to higher memory requirements.

While direct sharing of project artifacts betweenEclipse 2 and Eclipse 3 side-by-side installations(that is, locating your project roots outside of theworkspaces of either installation, and pointing bothworkspaces at the same projects) may work to somedegree, this approach has not been officially testedand is therefore not supported.

• Can I install IBM Rational products on an exist-ing Eclipse 3 installation?It is currently not possible to install IBM Rationalproducts on top of an existing Eclipse install. Forexample, if you already have Eclipse 3 installed onyour system, it is not possible to install RationalApplication Developer on top of it. When you installRational Application Developer, it will install a newversion of Eclipse 3 and install the RationalApplication Developer components on top of the

new Eclipse 3 installation.

• Can I install third-party Eclipse 3 add-ins?You can install other non-IBM Eclipse plug-ins intoEclipse based Rational products. However, keep inmind that if you encounter any problems whileusing IBM Rational products after such plug-inshave been installed, any problems with IBM Rationalproducts must be reproducible in an unmodifiedshell for support purposes.

SummaryIBM offers several Rational software products basedon the Eclipse platform. These products provide vitalfunctionality for the software development lifecycle,including modeling and architecture, design and con-struction, and testing.

You can take advantage of these products via multipleinstallation configurations. Depending on what isalready installed on your machine, you may encounterdifferent responses to new installation attempts. In allsituations, the action you need to take is well-thoughtout, and results in a final installation that offers themost functionality for a given combination of selectedproducts. �

ResourcesLearn

• The IBM Software Developer Platform home-page provides detailed information on the overallIBM Software Development platform, of whichIRAD, IRSA, IRSM, and the other products listed inthis article, are a part.• For technical resources about Rational's prod-ucts, visit the developerWorks Rational content area.You'll find technical documentation, how-to articles,education, downloads, product information, andmore.• Find more product related information by visit-ing the IBM Rational marketing pages. You can findmore information about Rational Performance Testerand all other IBM Rational products by viewingthese pages.

Get products and technologies• Get the evaluation version of RationalApplication Developer, Rational Software Architect

24 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 26: Eclipse J2EE Application Easy

and the other products listed in this article from theTrials and betas page.• Purchase Rational books at discounted prices inthe Rational section of the Developer Bookstore.

Discuss• Get involved in the developerWorks communityby participating in developerWorksblogs.• Ask questions about Rational ApplicationDeveloper and Rational Software Architect in theRational Software Architect, Software Modeler,Application Developer and Web Developer forum.

• Ask questions about IBM Rational testing prod-ucts in the developerWorks product forums.

About the authorKhawar Z. Ahmed is a member of the IBM RationalXDE technical marketing team, where he focuses onthe Java Platform Edition, and is co-author of thebook Developing Enterprise Java Applications withJ2EE and UML. He can be reached via e-mail.

25 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 27: Eclipse J2EE Application Easy

Eclipse is a new world for Microsoft® Visual Studio®developers, and getting started with Eclipse can beconfusing. New concepts, such as plug-in architecture,

workspace-centric project structure, and automatic build canseem counterintuitive at first. Learn about these and otherdifferences between the two environments, so that you canbegin to feel at home with Eclipse.

All integrated development environments (IDEs) sharesimilarities because they're all built for the same pur-pose. But they have differences, too. Some of thesecan be attributed to application domains, but othersresult from the IDE design.

Obviously, Microsoft Visual Studio and Eclipse differ:The Java™ programming language is different fromC/C++/.NET, and Java was the first language support-ed by Eclipse. The two are also different becauseEclipse aims to be an IDE for "everything and nothingin particular," introducing more generic and customiz-able features. Eclipse is also available on more oper-ating systems. However, our intent is not to enumer-ate all the differences between Eclipse and VisualStudio.

Without being too philosophic about IDE design, thisarticle presents the main differences between theseIDEs. It's intended for anybody who has been usingVisual Studio for a while and is beginning to useEclipse. This article doesn't teach Java programming inEclipse and doesn't focus on Java-specific features (a

good tutorial is listed in Resources). Rather, it discussesthe differences in general.

The Eclipse WorkspaceThe workspace directoryThe Eclipse workspace is a directory in thefilesystem that contains a special .metadatasubdirectory. The .metadata directory con-tains all the workspace's private information,such as settings, caches, etc. Normally, youshouldn't modify any files in the .metadatadirectory. The workspace directory is also thedefault location for new projects in Eclipse.

Generally speaking, the Eclipse workspace serves thesame purpose as a Visual Studio solution: It organizestop-level projects, folders, and files in a hierarchicalstructure. However, there are some major differences. AVisual Studio solution merely lists the projects it con-tains with their interdependencies, configurations, ver-sion-control information, etc.

The Eclipse workspace does much more than that. Itmanages most of the nonproject information, such asglobal preferences, windows layout, and search andnavigation history. Eclipse can't start without a work-space, and you can't close a workspace the same wayyou can close a Visual Studio solution. Although it ispossible to switch workspaces in Eclipse, many usersuse a single workspace that contains all their projects.

26 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

An Introduction to Eclipse forVisual Studio Users

By Genady Beryozkin ([email protected]), Software Developer, Content Developer.

First published by IBM developerWorks Open Source at http://www.ibm.com/developerworks/opensource/.All rights retained by IBM and the author.

Page 28: Eclipse J2EE Application Easy

Project StructureOrigins of the Eclipse project structureThe strict correspondence between a pro-ject's structure and its filesystem layout wasprobably influenced by the mandatory corre-spondence between Java packages and theirlayout on the filesystem. In the Java lan-guage, the class p1.p2.p3.Class1 must residein the directory p1/p2/p3.Visual Studio languages (C/C++/C#, andeven J#) don't mandate such a directorystructure. Consequently, the correspondencebetween the project's structure and itsfilesystem layout isn't that strict in VisualStudio.

Eclipse projects differ from Visual Studio projects in theway they interact with the underlying filesystem. InVisual Studio, a project isn't strongly connected to itslayout on the filesystem: You can add a file fromc:\temp\ to a project located in d:\work, and VisualStudio records the reference to a new file and opens itlike any other file. Folders (like "header files") don'tcorrespond to filesystem folders (internally, such foldersare called filters).

In Eclipse, the structure of a project's elements mustcorrespond to their layout in the underlying filesystem.For example, if the Eclipse project HelloWorld (seeFigure 1) is located at c:\eclipse\workspace\HelloWorld,then README.TXT is located atc:\eclipse\workspace\HelloWorld\src\README.TXT.

Eclipse also wants to be in sync with the files under theproject directory. If you delete a file or a folder inEclipse, it disappears from the filesystem. However,when you add or delete the same file using Windows®Explorer, the related resource in Eclipse becomes outof sync, which may upset Eclipse during some opera-tions. In such a case, you should manually refresh theproject by choosing Refresh from the project's right-click menu. You can tell Eclipse to automatically syn-chronize with the filesystem by selecting Refresh auto-matically option in the Eclipse preferences.

Linking Resources into EclipseThe strict workspace structure was how things began.Although projects could be stored outside the work-space directory, early Eclipse versions couldn't evenopen an external file (today, you choose File > OpenFile). UNIX® users were lucky because they could emu-late a flexible project structure using symbolic links, butWindows users didn't have such privileges. Today,Eclipse supports linked resources at the IDE level.

Linked resources in Eclipse behave much like UNIXsymbolic links. For example, to add a large test inputfile to the project without copying it from its originallocation, choose File > New > File, and, in the windowthat opens, click Advanced (see Figure 2). After they'readded, linked resources are decorated with a smallarrow over their icons (see Figure 3).

27 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 1. A simple HelloWorld project Figure 2. Adding a linked file

Page 29: Eclipse J2EE Application Easy

Tip: Using Linked Resources to Improve Performance

Using a linked folder as a Java output folderTo use a linked folder as a Java output folderfor an existing project, you first need to makesure your project uses separate folders forsource and .class files (if it doesn't, you needto move the source files to a separate folder).Then, open the Navigator view, turn off theautomatic build, delete the old output folder,create a new linked folder with the samename, turn the automatic build back on, andrebuild the project with Project > Clean.

Linked folders can be useful when you're dealing withlarge projects that reside on remote locations, such asfile servers or ClearCase dynamic views. Althoughsource files can benefit from being properly backed upand otherwise managed, there are few reasons to storethe generated .class files on such remote storage. Inprojects with more than a few hundred source files, youcan dramatically improve the performance of manyoperations if you store the generated files on the localmachine.

In Visual Studio C++ projects, you can improve buildperformance by setting the intermediate directory to alocal location. In Eclipse, you can achieve the sameeffect by using a linked output folder that points to adirectory on the local machine.

See Resources for additional information, including howto use variables to define platform-dependent link tar-

gets, such as using a temporary directory at /tmp onUNIX and at c:\temp on Windows.

Reducing Clutter with Working SetsAs mentioned, many developers load all their projectsinto a single Eclipse workspace. It's convenient, but itcan sometimes create too much clutter. In addition toclosing unnecessary projects, you can define workingsets: groups of elements (projects, folders, classes,etc.). Eclipse can use working sets in different views(such as Package Explorer) and operations (like search-ing). See Resources for additional information.

The Local HistoryOne of Eclipse's coolest features--and one that VisualStudio doesn't have--is the local history. Each time youchange a file, class, or method, Eclipse records thechange in its local history. Then, you can compare a fileto what it was a few minutes, hours, or days ago. If afile is deleted, invoking Restore from Local History fromits parent's context menu can bring it back.

The local history isn't a version-control replacement. It'smore like a super-undo engine with configurable limitsfor the number of history days and the allotted storagecapacity.

Building ProjectsContrary to the Visual Studio approach, in which a proj-ect has a single project type (C++/C#/J#), Eclipse proj-ects can have zero, one, or multiple natures. For exam-ple, Java projects in Eclipse have a Java nature, andDynamic Web projects (created using Eclipse WTP; seeResources) have a Java and a (metaphoric) Web nature.A project nature defines a list of builders that run whenthe project is being built. For example, the Java natureadds a builder that compiles Java source files into.class files, and the Web nature adds a builder that vali-dates the XML and HTML files.

Building Projects AutomaticallyBuilding non-Java projects

Automatic build is perfect for Java projectsbecause the internal incremental compiler(Eclipse doesn't use javac) can handle smallcode changes quickly. Although builds run inthe background, for project types (such as

28 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 3. Linked file in the HelloWorld project

Page 30: Eclipse J2EE Application Easy

CDT projects), in which a small update cantrigger lengthy compilation, you may preferto turn off automatic build (Project > BuildAutomatically). You can then run the buildmanually (Project > Build All) or let Eclipsedo the build before running an application.

At their first encounter with Eclipse, many look for theBuild command. But to their surprise, either they can'tfind it or they find it's disabled. That's because unlikeVisual Studio and some other IDEs, Eclipse has anautomatic build feature. In Java projects, every time aJava file is modified, Eclipse compiles the relevant files,including files indirectly affected by the change.Automatic build is a great way to quickly discover com-pilation errors that affect other files. Many operations,such as Java search, rely on these build results.

Customized BuildsOften--mainly for C++ projects--Visual Studio projectsuse custom build steps to perform nonstandard buildtasks. Custom build commands are plain command-lineinstructions in Visual Studio projects. Eclipse, on theother hand, can run stand-alone programs and Antbuild scripts. For example, you can use an Ant script tobuild and deploy a Java Archive (JAR) file containingthe project's classes whenever a project is rebuilt. Aneditor for Ant's build.xml files is included.You can configure custom project builders on theBuilders page in the project's properties window, andyou can define and run global scripts by choosing Run> External Tools.

Run and DebugLanguages and entry pointsVisual Studio languages (C++/C#) can haveonly one entry point per executable, which isdetermined at link time. The Java program-ming language allows multiple entry points(main methods) at compile time. The entrypoint is determined on the command linewhen the program is launched.

Eclipse doesn't have the notion of startup projects, asdoes Visual Studio. The difference can be attributed tolanguage differences, but Visual Studio further restrictsits users by generating a single executable per projectand allowing different launch parameters, such as com-mand-line arguments, only for different project configu-

rations. Managing multiple configurations just for thesake of having different command-line arguments is abad idea in most situations.

Eclipse uses launch configurations to collect the param-eters used to launch an application. For Java programs,the main class name and the command-line argumentsare such parameters. You can have separate launchconfigurations for any class with a main() method in theproject. A new configuration is automatically createdwhen you launch an application with a new main classusing the Run > Run As command. You can also usethe Run window (Run > Run) to create and deletelaunch configurations.

By default, launch configurations are local to the work-space and aren't part of the project, which means theyaren't shared with other team members. To save thelaunch configuration in the project, use the Commontab of the Run window, as shown below.

The Debug PerspectiveEclipse has no debug mode--just the Debug perspec-tive you can switch to and from. The main Debug viewlists all the programs being run or debugged and lets

29 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Figure 4. Changing the location oflaunch configuration

Page 31: Eclipse J2EE Application Easy

you debug several programs at the same time, which isa little more difficult to do in Visual Studio. Read"Debugging with the Eclipse Platform" (see Resources)to learn more about the debugging features Eclipsehas to offer.

Eclipse Plug-insIn addition to being a great free open source Java IDE,the most important feature of Eclipse--which accountsfor much of its success--is its open extensibility architec-ture. Most Eclipse features can be extended or areaccepting contributions from plug-ins. In fact, manyEclipse features use the same extensibility architecturethat is available for the general public.

The business-friendly open source license Eclipse usesencourages the development of commercial and opensource plug-ins. No wonder more than 800 plug-ins arelisted on the official plug-in marketplace at EclipsePlugin Central.

In addition to plug-ins, which integrate into an existingEclipse installation, some companies have built full-fea-tured IDEs on top of Eclipse, including all IBM®Rational® tools, CodeGear JBuilder 2007, andGenuitec MyEclipse. Typically, these products offertools for modeling, Web development, and visualdesign. See Resources for products and plug-in directo-ries.

Additional Eclipse ProjectsThe basic Eclipse software development kit (SDK) con-tains only the Java IDE. Toolkits for other languages(C/C++, PHP), modeling tools, and additional exten-sions are being developed under the Eclipse umbrellaand can be installed as Eclipse plug-ins. See Resourcesfor more information about Europa, the latest simulta-neous release of the top 21 Eclipse projects in 2007,and Callisto, the previous release of top 10 projects inJune 2006.

The Update ManagerWhenever you download Eclipse for the first time or asan upgrade, you get a plain compressed file youextract into an empty directory, with no installer to per-form any configuration or to create a desktop shortcut.However, for plug-ins, Eclipse has the Update Manager

(Help > Software Updates), which manages both instal-lations and updates. It can also enable and disableplug-ins, similar to what the Add-in Manager does inVisual Studio.

The Update Manager installs or updates plug-ins fromupdate sites (either local or on the Web). To install newplug-ins, you must find the update site URL on the ven-dor's Web site and manually enter it in the UpdateManager window. (Some vendors have built full-fea-tured installers that interact with the update managerbehind the scenes.)

To a lesser extent, Eclipse supports installing plug-insby manually copying them into the appropriate directo-ries. This method isn't recommended, and it can causeinconsistency in the Eclipse configuration. See "Basictroubleshooting" for more information.

When You Need HelpIf you're new to Eclipse, you'll probably have somequestions. And after using it for a while, you may dis-cover a couple of bugs or may wish to suggest newfeatures. This section surveys the different supportoptions.

Basic TroubleshootingEverybody knows that sometimes, the IDE can misbe-have. With Visual Studio, you can reset everything tothe factory state by typing devenv /setup at the com-mand prompt. Eclipse provides a similar command-lineswitch. Running eclipse.exe -clean at the command linerebuilds most information about the installed plug-ins.The -clean option may be useful if you've installed anew plug-in and it refuses to show up.

When Eclipse misbehaves, you may also want to checkthe error log. To open the Error Log view, chooseWindow > Show View > Error Log. The raw log is locat-ed in the <workspace dir>/.metadata/.log file.

NewsgroupsIf you've been working with Microsoft products, youknow that you can get help on the Microsoft DeveloperNetwork (MSDN) forums and newsgroups. The Eclipsecommunity has its own newsgroups (see Resources),and many Eclipse regulars are there to help you out.

30 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 32: Eclipse J2EE Application Easy

Report Bugs and Ask for NewFeaturesUnlike the Microsoft feedback feature on the MicrosoftConnect Web site, which is aimed at providing cus-tomer support, Eclipse Bugs is the actual bug-trackingsystem used by Eclipse developers. With Eclipse Bugs,you can not only search, report and vote on bugs butalso add yourself as a CC on somebody else's bug, seewho is assigned to fix it, learn the version in which itshould be fixed, and much more. You can post featurerequests using the same interface (see Resources).

Premium SupportIn addition to the open source spirit of Eclipse Bugsand community help, some companies need a com-mercial level of support for their development teams. Ifyou purchase a product that is built on top of Eclipse,its vendor should provide support for the product,including the underlying Eclipse components. If youuse the basic Eclipse SDK, you can check the IBMRational Elite Support for Eclipse program with a world-wide 24x7x365 support plan.

ConclusionWe have discussed how Eclipse approaches some com-mon IDE principles and tasks. The workspace-centricapproach and project structure on one hand and thegreat flexibility of the UI design and launch configura-tions on the other make Eclipse unique in its IDEdesign. And the open-extensibility architecture makesEclipse a platform for a great variety of third-partyplug-ins and products.

If you haven't done so yet, read the "Eclipse for VisualStudio developers" tutorial (see Resources), which givesa good introduction to Java development in Eclipse.However, Eclipse isn't all about the Java programminglanguage. Check the Callisto and Europa releases foradditional Eclipse projects, such as the C++ IDE. Thenvisit Eclipse Plugin Central and download some popularEclipse plug-ins. �

ResourcesLearn• Eclipse.org is the home of the Eclipse project. Youcan use direct links to Eclipse Bugs and Eclipse proj-

ect development.• The tutorial "Eclipse for Visual Studio developers"is a general introduction to Eclipse and a tutorialabout creating your first Java program in Eclipse• "Migrate Visual Studio C and C++ projects toEclipse CDT" discusses C/C++ with Eclipse.• The Eclipse Foundation's most recent changes toEclipse have been in the form of "release trains,"which are simultaneous releases of updates to theEclipse Platform and key projects. Learn more aboutthe October 2006 release in "What's hot in EclipseV3.2 Callisto" and the June 2007 release in "AWhirlwind Tour of Eclipse Europa."• Learn more about "Debugging with the EclipsePlatform."• Creating linked resources explains how to use vari-ables to create platform-independent target loca-tions.• Visit the Eclipse.org documentation to learn aboutusing working sets.• Check out the "Recommended Eclipse readinglist."• Browse all the Eclipse content ondeveloperWorks.• New to Eclipse? Read the developerWorks article"Get started with Eclipse Platform" to learn its originand architecture, and how to extend Eclipse withplug-ins.• Expand your Eclipse skills by checking out IBMdeveloperWorks' Eclipse project resources.• To listen to interesting interviews and discussionsfor software developers, check out check outdeveloperWorks podcasts.• Stay current with developerWorks' Technicalevents and webcasts.• Watch and learn about IBM and open sourcetechnologies and product functions with the no-costdeveloperWorks On demand demos.• Check out upcoming conferences, trade shows,webcasts, and other Events around the world that areof interest to IBM open source developers.• Visit the developerWorks Open source zone forextensive how-to information, tools, and projectupdates to help you develop with open source tech-nologies and use them with IBM's products.

Get products and technologies• Eclipse Plugin Central (EPIC) is the official sourcefor Eclipse plug-ins, but more plug-in directories are

31 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 33: Eclipse J2EE Application Easy

also available through the Eclipse Portals.• Get Rational Application Developer forWebSphere Software.• Get CodeGear JBuilder 2007.• Download the MyEclipse IDE from Genuitec.• Check out the Eclipse Web Tools Platform (WTP)Project.• Visit IBM Rational Elite Support for Eclipse.• Check out some useful tools by Instantiations.• Check out the latest Eclipse technology down-loads at IBM alphaWorks.• Download Eclipse Platform and other projectsfrom the Eclipse Foundation.• Download IBM product evaluation versions, andget your hands on application development toolsand middleware products from DB2®, Lotus®,Rational®, Tivoli®, and WebSphere®.• Innovate your next open source developmentproject with IBM trial software, available for down-load or on DVD.

Discuss• Visit EclipseZone, an online community by and for

Eclipse users.• Visit Planet Eclipse, a collection of Eclipse blogs.• The Eclipse Platform newsgroups should be yourfirst stop to discuss questions regarding Eclipse.• The Eclipse newsgroups has many resources forpeople interested in using and extending Eclipse.• Participate in developerWorks blogs and getinvolved in the developerWorks community.

About the authorGenady Beryozkin is a software developer with morethan nine years of experience. He used Visual Studiofor various C++ and C# projects, and has been usingEclipse for Java development since even before its ini-tial 1.0 release in 2001. In 2002, he created the RMIplug-in for Eclipse, which helps developers to effective-ly develop, debug, and run applications that use theJava Remote Method Invocation (RMI) technology. Heholds a bachelor's (summa cum laude) and a master'sdegree in computer science from Technion, Haifa,Israel.

32 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 34: Eclipse J2EE Application Easy

No matter how innovative or strategic your organization'sSOA or business strategy; or how much time and effortgoes into software design and development; or how

much money is spent on sales and marketing campaigns, theultimate outcome of any software project, in terms of increasedsales, customer satisfaction, and customer retention is only asgood as the quality of the software produced. Software qualitymanagement is important, but it entails far more than merelytesting software code at the end of the software developmentcycle. It necessitates an organizational transition from the prac-tices of correcting software defects and problems at the end ofeach phase of the development cycle to analyzing and testingoutcomes at the start and throughout each phase of the soft-ware project. Moreover, each decision--beginning with therequirements definition and model creation--all the way throughthe application's interface and usability, choice of platforms, andother factors need to be carefully considered, analyzed, man-aged, and communicated to the entire development, deploy-ment, and testing teams to avoid conflicting goals and effortsfurther into the development or deployment cycles.

Increasingly, more of the world's most business-savvyorganizations understand these principles. They areusing a combination of well designed and integratedtools with automation capabilities throughout the soft-ware lifecycle that can prevent or minimize defects,control and/or reduce development and deploymentcosts, and optimize team efficiency throughout theorganization.

How IBM Rational Facilitates LifecycleQuality ManagementIBM Rational has created a holistic approach to qualitymanagement with a comprehensive suite ofJava/Eclipse-based collaborative and integrated toolsincorporating automated workflow processes allthroughout various phases of software development.IBM Rational products are tightly integrated with oneanother, facilitating your development efforts. Usingthese tools to implement consistent, predictable, andrepeatable software quality management processesthroughout the software development lifecycle ensuresprojects come in on time and on budget. It helps com-panies leverage their software teams, assets, resourcesand meet the organizational objectives for the project.It also ensures that companies can meet time-to-marketobjectives, as well as customer expectations.

Quality and Testing Capabilities ofIBM Rational Application DeveloperQuality management of code is an integrated functionwhen you develop your code using IBM RationalApplication Developer. Your code is automaticallychecked against more than 200 J2EE coding standardsand either out-of-the-box or customized best practicesto ensure your code adheres to general good codingpractices as well as your own corporate policies. Anyviolations are flagged and repairs are often automati-cally suggested. Automatic fixes can be achieved by

33 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Taking a Lifecycle Approach to SoftwareQuality Testing and Management

With Eclipse-based testing tools from Rational, your organization can easilymanage software quality across the entire application lifecycle. See how this family ofintegrated tools can help in meeting your organization's quality goals while ensuring

project and business success

By By Rikki Kirzner

Page 35: Eclipse J2EE Application Easy

using the tool's one-click quick fix capability. RationalApplication Developer also includes tools to eliminatetedious code quality reviews. Its automated codereview feature applies existing rule categories for JavaSE/J2EE best practices, globalization, and accessibility.New rules can be imported with an Interactive Ruleseditor.

IBM Rational Application Developer is shipped withrecent versions of IBM WebSphere Application Server,and IBM WebSphere Portal Server to help you test anddebug applications that are deployed on these twoplatforms. The test servers are automatically configuredfor the application under test. Automated support forcreating and debugging the application's WebSphereadministration and configuration files also expediteyour testing and deployment processes.

From within IBM Rational Application Developer, youcan access requirements that have been stored andmanaged in IBM Rational RequisitePro and link them tocorresponding modeling elements and code. Since thequality management lifecycle relies on linking require-ments to test cases, you can create a system of soft-ware defect checks and balances throughout the deliv-ery phases. This includes defect tracking, test manage-ment capabilities, and automated builds to make sureyou create a defect-free deliverable that is ready fordeployment into production and capable of meeting allexit criteria. To easily find where problems haveoccurred traceability reports can be generated fromrequirements to test cases, requirements to defects,and requirements to design.

IBM Rational ClearQuest IntegrationFurther Improves Testing EfficienciesLet's not forget, Rational Application Developer istightly integrated with IBM Rational ClearCase and IBMRational ClearQuest change management tools, lettingyou easily perform a multitude of configuration andchange management operations. Since IBM RationalClearQuest manages the full range of testing activities,including test planning, test execution, and capture andanalysis of test results, you can easily create and associ-ate more accurate test cases with specific test plans.ClearQuest helps automate and manage many of themanual steps you worry about today so you and yourteam can spend your time on other tasks thereby

improving efficiency. More importantly, it bridges thequality gap between development and testing activi-ties, shortening delivery time and reducing the costand time required for developing and deploying high-quality software applications.

IBM Rational ClearQuest captures, efficiently tracks,and manages all types of change requests and defectinformation throughout the development lifecycle. Itgives you greater flexibility to quickly respond tochange with better visibility into your software develop-ment processes. It can manage a change from theinception of the change request through implementa-tion of that change in the production environment. Italso ensures seamless hand-off to other teams workingaround the clock or in offices around the world.Moreover, since it is deeply integrated with leadingIDEs, you have instant access to change informationfrom within your preferred development environment.

IBM Rational ClearQuest promotes team collaborationand thereby improves team productivity, through fea-tures that deliver better administration and communica-tion processes. Better visibility across the software proj-ect helps you track people and resources--ensuring thatthe right people are working on the right change at theright time. Secure access guarantees only those peoplewho are authorized to view or change project assetscan do so.

Frequent Changes Are No Problemwith IBM Rational Testing ToolsTesting web services is easier than ever with IBMRational Tester for SOA Quality. Designed specificallyfor Web Services testing it's the tool most likely to beused by both developers and testers since it eliminatesthe need for manual coding with automated data corre-lation and data driven testing through its code free testenvironment. IBM Rational Tester for SOA Quality offersall the power and flexibility you require to test webservices, with a simple wizard driven approach that QAteams can easily follow to test web services and sup-ports a wide variety of users on a broad range of plat-forms. Development teams frequently use the tool tocreate some basic web service tests during develop-ment. Then they hand those tests off to QA teams whoexpand and use them as part of their larger QA regres-sion suite.

34 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 36: Eclipse J2EE Application Easy

IBM Rational Tester for SOA Quality is both a functionaland performance testing tool. You can use it to func-tionally validate web service calls (i.e.: validating that aweb service returns consistent and correct responsesfor a given set of inputs) as you send those calls in par-allel to the server and measure their response time.Effectively, during a performance test you are doing afunctional test validation.

When you are ready to transition to more traditionaltypes of testing, consider using Rational FunctionalTester for automated and manual functional testing andregression testing of a wide array of applications includ-ing Java, .Net, SAP, and Siebel. IBM Rational FunctionalTester is designed to support the type of frequentchanges that occur to services or dynamic applications.It uses fuzzy matching algorithms to locate objects dur-ing test execution, even if the objects have changedsince the test was first created. The tool can accommo-date a dynamic environment by automatically detectingdata entered during test recording. It lets you createcustomized data sets to be used by the test duringplayback, so you can re-use scripts without resorting tomanual coding and it allows testers to define supportfor custom controls. You can also set sensitivity levelson object recognition, making test scripts more resilientto application changes.

Rational Functional Tester employs a common scriptinglanguage that enhances communication and codereuse opportunities between developers and testers.Reusable test scripts are automatically generated byrecording user interactions with the application. Theexecutable test scripts accurately reproduce users'actions and display the system's responses to thoseinteractions. During the recording you can insert verifi-cation points to extract data from the application that isunder test, which can be compared with live informa-tion or previous data to be certain that everything isfunctioning correctly. Custom code can be added tothe test scripts to perform whatever additional testsyou require to ascertain the application's performanceis consistent with expectations and business require-ments. Individual tests can be compiled into a suite oftests to exercise all of its features and functions.

Since Rational Functional Tester is automated, the testsperform precisely the same operations each time theyare run, thereby eliminating human error. It lets you

observe how the software responds under preciselyduplicated execution conditions. With one click,Rational Functional Tester can run upwards of hundredsto thousands of scripts to verify that the latest versionof your software still behaves as expected. The scriptscan run unattended overnight, letting you review thelogged results the following morning.

Since it is built on Eclipse, both testers and developerscan leverage a common development IDE for betterteam collaboration and testers only need to learn onetool to support various types of application testing.Rational Functional Tester can be used as a stand-alonetool, to record, play back, and analyze the result oftests, or it can be used in conjunction with Rational TestManager for enhanced test execution capabilities andresults logging.

Rational Functional Tester is also well integrated withseveral other products. When used in conjunction withIBM Rational Performance Tester, you have the neces-sary tools to quickly validate the quality of your soft-ware and confidently deliver expected functionality, reli-ability, and performance to meet your business goalsand customers' expectations.

Performance Testing is a CrucialComponent of the Quality EquationNo test process is complete until your applications canrun reliably with the requisite levels of performance.Once you are satisfied that your new code (or anychanges or upgrades to your software) has not pro-duced any quality, system, or functional defects, youneed to make sure that no residual performance andscalability glitches were created in the process of gen-erating your latest version of software. Performanceand scalability issues are critical factors when it comesto keeping customers satisfied and coming back, so itis essential that you capture and correct performanceproblems before your software is ever deployed.

Rational Performance Tester enables testers to find sys-tem bottlenecks before deployment by simplifying thecreation, execution and results analysis of multi-userperformance tests. Testers are not required to have anyprogramming knowledge since tests are automaticallygenerated by recording a user's activity within a Webbrowser. It accurately measures and tests the ability of

35 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 37: Eclipse J2EE Application Easy

your software to support the number of multiple con-current users it was designed to handle. It simplifies theprocess of creating, executing, predicting, and analyz-ing what will happen when a specified number of usersaccess the application.

IBM Rational Performance Tester uses an intuitive visualtest editor to create each multi-user test, so you don'thave to write any code to successfully load test yourapplication. Actual recordings of an individual user'sactivity are used ensuring your performance testingaccurately mirrors your user base. Using an intuitivegraphical test scheduler, you can consolidate thesetests into a suite and subsequently group and organizethem to simulate multiple users performing the types ofactivities your software is designed to support.

Rational Performance Tester generates performanceand throughput reports in real time, enabling you todetect performance problems throughout a test run.Multiple filtering and configuration options can be setbefore, during, and after a test run to identify perform-ance degradation, transactional bottlenecks, poorlyperforming Web pages, and other problems thatimpact overall performance or scalability.

One of the most important reports you can run after atest is the "Response Time Breakdown" report whichbreaks down the response time for a given web pageby application tier and type of code executed. For agiven web page response time you can see how muchof that time was actually spent on each physical tier (ormachine) used in your architecture. On each of thosemachines you can also see how much time was spentexecuting different types of code (such as executingWeb Services, doing database calls, or running servletsand JSPs).

Additional reports are available at the end of the testrun to perform deeper analysis on items such asresponse time percentile distributions and standardresponse time deviations. This capability lets you findand correct these types of problems before you deploythe new version.

IBM Rational Functional Tester and IBM RationalPerformance Tester go beyond simply supporting yourtesting efforts--they increase your accuracy, productivity,and ability to test more of your software than you can

accomplish by using manual methods. They let you findand correct defects, as well as performance and scala-bility problems--even in large, complex applications--before you deploy any new release. Whether usedalone or together, these products reduce your testingtime and costs associated with regression and perform-ance testing. They increase the efficiency of your entireteam, giving you more time to analyze existing defectsand to respond faster to urgent problems as they arise.

IBM Rational supports your testing and quality manage-ment tasks from first line of code to your deployed sys-tem running on a distributed network. The numerousbenefits of these tools go far beyond allowing develop-ers and testers to share scripts and testing tools todeliver defect free software. Using IBM Rational's holis-tic approach to quality management testing lets youaccelerate problem detection and resolution and quick-ly pinpoint and identify the root cause of a failurebefore it impacts your bottom line. And that keeps yourbusiness running smoothly and your customers comingback for more. �

More Resources• Try the Rational Application Developer (RAD)

v7.5 Open Beta Code Today• Rational Testing eKits• Software Quality e-Kit• Trial Download: IBM Rational Functional

Tester V7.0.1• IBM Rational Performance Tester• IBM Software Quality eKit for Siebel and SAP

Packaged Applications• Trial Download: IBM Rational Software for Testing

SOA Applications• IBM Rational RequisitePro V7.0• Evaluate IBM Rational ClearCase• Evaluate IBM Rational ClearQuest

Rikki Kirzner is a freelance writer and veteran computerindustry professional with experience as an analyst andformer Research Director for IDC, Gartner Group, andMeta Group and as a Senior Editor. Rikki writes aboutsoftware, development tools, open source, SOA,domaining, and Web-based computing.

36 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 38: Eclipse J2EE Application Easy

Sometimes good is just not "good enough". This is cer-tainly true for avowed Eclipse users who haven't triedIBM Rational Application Developer for WebSphere.

Eclipse is a great platform that lets you accomplish much ofwhat you need to do using plug-ins and the Eclipse frame-work. Nevertheless the numerous new features in the latestversion of Rational Application Developer for WebSphereare too important to ignore any longer if you want toincrease productivity and performance, reduce your cost ofownership, and improve quality management across the life-cycle of your project.

IBM has once again expanded its industry-leadingrobust, powerful, and full-featured IntegratedDevelopment Environment, so it literally and figurative-ly pays for you to consider many of RationalApplication Developer for WebSphere's new capabili-ties for your next software development project.Rational Application Developer for WebSphereempowers you and your team with features needed torapidly develop, assemble, test, profile and deployhigh quality Java/J2EE, Portal, Web, Web services andSOA applications with strong support for IBMWebSphere Application Server.

Improved ProductivityRational Application Developer for WebSphere version7.5 beta facilitates both team and individual developer

productivity with improved support for iterative devel-opment for Java Platform, Enterprise Edition version 5(JEE5) applications. Built on the Eclipse version 3.4open source software development framework, itextends Eclipse with best of breed, visual construction,graphical development tools to improve Java develop-er productivity in numerous and important ways with afar more sophisticated set of features that are easy toinstall, customize, and use. It has full support forWebSphere Application Server and improves productiv-ity with Local Test Environment, automation and simpli-fication of deployment

Rational Application Developer for WebSphere con-tains integrated UML code visualization, visual editing,code analysis, and automated test and deploymenttools. It incorporates features for visualizing Java codein class diagrams, topic diagrams, and browse dia-grams, as well as visualizing methods in static sequencediagrams. Rational Application Developer forWebSphere also offers visualization of databaseschemas in UML notation, as well as visualization ofXML Schemas. Developers can visualize Java, EJB,XSD, WSDL and database objects so they can reviewtheir code or share designs with other team membersimproving team communication regarding new andexisting applications

IBM has simplified and shortened the code develop-

37 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Rational Application Developer forWebSphere Outshines Eclipse

Have you stopped to consider that productivity from Eclipse is not enough when itcomes to quickly designing, developing, and deploying high-quality Web, Web2.0,

SOA, Java EE and portal applications? Even though Rational Application Developer forWebSphere is based on Eclipse, learn why Rational Application Developer for

WebSphere is a better value proposition for your next project

By By Rikki Kirzner

Page 39: Eclipse J2EE Application Easy

ment cycle with new wizards and adapters. TheDiscovery Wizard will support generic, EMD and J2C,including support for the new metadata import/exportframework. The adapters have enterprise metadata dis-covery componentized for consumption by a rich client.

Another and arguably more significant productivityadvantage Rational Application Developer forWebSphere offers over Eclipse is that it facilitates thecreation of complex Web applications including SOAservices without requiring you to write a single line ofcode. Using and creating Web services are easier thanever with Rational Application Developer forWebSphere's new Web Services Wizard. Drag-and-drop and WYSIWYG features make developing Webpages easier and much simpler to use. The wizardswalk you through the process of building a Web serv-ice, including generating all the infrastructure code foryou. All that is required is for you to design the busi-ness logic and add any additional content to the Webpages.

Rational Application Developer for WebSphere's sup-port of WSDL and XSD modeling, XSD refactoring,intuitive skeleton merge for creating top down Webservices, support for complex schemas with server dataobjects (SDO), and many other features will speed upthe development process and increase the quality of allyour SOA projects. Significant enhancements for Web,portal, and Java application development also makesSOA development easier, and helps you better under-stand and manage your architecture as it evolves.

Rational Application Developer for WebSphere sup-ports the annotation based programming model andprovides tools for enhancing productivity with codeassist, annotations view, Quickfixes, validation andrefactoring. Rational Application Developer forWebSphere has enhanced support for creation, valida-tion, refactoring, and deletion of artifacts. RationalApplication Developer for WebSphere also will includeenhanced capabilities to develop and deploy complexapplications using the latest programming models andstandards including EJB 3.0, JPA, Web Services withJAX-WS 2.0/JAX-B 2.0 and many more.

Improvements in JavaServer Faces (JSF) tooling pro-duces code generation, support for managed beans inthe page data view, better options to suppress page

code, support for multiple Faces-config files, as well asbetter support for third party components. Furtherdetails about these and other additions and enhance-ments are too numerous to list here but are certainlyworth exploring on your own

Rational Application Developer for WebSphere hasmany features that support Web 2.0 development.Function-rich JSF library (JWL) with JSF componentsintroduce important common AJAX behaviors includingscrolling data tables with no page refresh, tab panelsthat populate when the page is displayed, dynamicmenus, and a host of others will help you build andevolve your Web 2.0 solutions. Rational ApplicationDeveloper for WebSphere is built on the Eclipse AJAXTools Framework (ATF).

New Web 2.0 tools and support for AJAX / Dojo andREST style services with the WAS Web 2.0 feature packwill enhance your development efforts along withimproved source-level editing for JavaScript and Dojowith code assist and validation of tags.

There are far more productivity features than we havespace to list here, but we would be remiss not to men-tion that Rational Application Developer forWebSphere also supports the following standards andtechnologies:

• JSF 1.2• JSP 2.1• Servlet 2.5• JEE5• WS-Policy Assertions for Web Services• WS-Reliable Messaging• WS-Addressing• MTOM• SOAP 1.2• WS-Secure Conversation• SIP (JSR 289)

Rational Application Developer for WebSphere lets youconsume as many or as few of the tools functions asyou require saving valuable resources and the costassociated with them. The Installation Manager facili-tates flexibility of your installation letting you selectonly those tools you want to have on your desktopwithout having to install software components youdon't want or will never use. This gives you greatercontrol over the size footprint and specific product fea-

38 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 40: Eclipse J2EE Application Easy

tures you want to have on your own or your organiza-tion's desktops. All the product assets and componentsyou require can be pre-defined and placed into arepository you set up for your organization's desktopsystems.

The Rational Application Developer for WebSphereProcess Advisor guides developers, who are new to thetechnology or the tool itself, step by step helping themto quickly become proficient and productive using therich feature set built into the tool. Developers also haveseveral options for learning how Rational ApplicationDeveloper for WebSphere works before they start usingit. A robust tutorial environment along with lots of sam-ple code and demos are built right into the tool. IBMhas created videos of the demos, and developers caninstall a sample application and step through the code,or access a number of current tutorials posted on theIBM developerWorks site from links within the product.IBM also includes code samples to jumpstart yourdevelopment efforts.

An easy to use graphical interface of the Web DiagramEditor lets you access technical features in a way thatmakes it easier for you to understand your environmentand get more information about software artifacts. Youcan customize your environment any way you prefer bybuilding a perspective comprised of different views thatreflect only those artifacts or screens (e.g. browser,debugging window, editor, etc.) you want to see onyour desktop.

Improves Overall Quality fromDesign to DeploymentWhy do you care about quality? By catching and elimi-nating bugs as early in the process as possible, you canavoid having to stay late (or have your team stay late)to fix problems that show up. You can improve thequality of the software you develop and deploythrough Rational Application Developer forWebSphere's comprehensive code review and debugcapabilities. To improve code quality assurance,Rational Application Developer for WebSphere con-tains Code Review tools that are rule-based staticanalysis tools for automatic validation of Java code. Itchecks for correctness and compliance with codingstandards and best practices. Rational ApplicationDeveloper for WebSphere 7.5 has line level coverage

which lets you instrument your Java code and then runit and have it track usage data on execution of lines ofcode so that you can more easily diagnose problemsand optimize your code.

IBM also understands that organizations have investedin mission critical, enterprise systems that need to besupported or with which your development projectmust interoperate. Therefore development time sup-port to access data and operations on these systems isprovided for Enterprise Information System (EIS)Adapters, tooling for JD Edwards, Oracle, SAP, Siebeland PeopleSoft.

Since it is well integrated with the rest of the IBMdevelopment and testing suite of tools, you can easilyaccess and use a broad range of testing as well asrequirements, workflow, and change management func-tions in what effectively appears to be the same envi-ronment. When you’re ready to do defect tracking,testing, or a host of other development and deploy-ment tasks to ensure quality you can surface any one ofthe other well integrated IBM Rational Quality manage-ment tools as other perspectives. If you are working inthe Web perspective developing a SOA componentand need to do some functional testing, you can popu-late the "testing perspective" with IBM RationalFunctional Tester and switch between each of the dif-ferent perspectives depending on the tools you requirefor each stage of your project. Another perspectivecould contain IBM Rational ClearQuest for defect track-ing or workflow management, IBM Rational PurifyPlusfor code coverage and identifying memory leaks, orany of the other IBM Rational tools you need to man-age your quality across the lifecycle from design todeployment.

Support for Enterprise Systemsand Your ProjectAnd finally, IBM is there whenever you need help oradvice because Rational Application Developer forWebSphere includes 24x7 IBM support as well aspatches and bug fixes--so your project always runssmoother. IBM even offers training to accelerate timeto market and reduce the learning curve; even fornovice developers.

With all these improvements and ways to make your

39 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by

Page 41: Eclipse J2EE Application Easy

software project faster, smarter, and better, you need toconsider Rational Application Developer forWebSphere for your next project Why continue usinggood tools if they are not good enough to save youtime and money on your next project? �

More information is available at the RationalApplication Developer for WebSphere v7.5 Open BetaWebsite where you can try it out for free:http://www.devx.com/ibm/Link/36481.

Rikki Kirzner is a freelance writer and veteran computerindustry professional with experience as an analyst andformer Research Director for IDC, Gartner Group, andMeta Group and as a Senior Editor with OpenComputing Magazine. Rikki covers software, develop-ment, open source, SOA, domaining, and mobile com-puting.

40 © 2008, Jupitermedia Corp.

Eclipse: Java EE Applications Made Easy[ ]

Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored by