Eclipse Ibm Final

Embed Size (px)

Citation preview

  • 8/7/2019 Eclipse Ibm Final

    1/41

    Eclipse: Java EEApplications Made Easy

    sponsored by

    an Developer eBook

  • 8/7/2019 Eclipse Ibm Final

    2/41

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

    contents

    With 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[ ]

  • 8/7/2019 Eclipse Ibm Final

    3/41

    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 EE

    Applications Made EasyBy Bob Kane

  • 8/7/2019 Eclipse Ibm Final

    4/41

    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 Java

    programming 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.

  • 8/7/2019 Eclipse Ibm Final

    5/41

    protection and prohibits distribution unless the user isgranted these rights. The copyleft also requires thatany redistributed software be covered by the same

    license. 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 source

    code 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 contribute

    to 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 software

    across 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, and

    transparent 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 an

    open 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

  • 8/7/2019 Eclipse Ibm Final

    6/41

    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 panels

    known 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

  • 8/7/2019 Eclipse Ibm Final

    7/41

    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

  • 8/7/2019 Eclipse Ibm Final

    8/41

    Once the code compiles without error, you can exe-cute the program by selecting Run from the Eclipsemenu. (Note that there is no separate compilation

    step 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-ins

    In 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

  • 8/7/2019 Eclipse Ibm Final

    9/41

    Eclipse comes with a plug-in for working with theopen source Concurrent Versions System (CVS) for

    source 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 Eclipse

    people 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 new

    idea, 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

  • 8/7/2019 Eclipse Ibm Final

    10/41

    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 Lotus

    who 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 an

    open 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 15

    years 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

  • 8/7/2019 Eclipse Ibm Final

    11/41

    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 read

    this.

    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

  • 8/7/2019 Eclipse Ibm Final

    12/41

    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 was

    expected 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 a

    major 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 reference

    implementation 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. Last

    year, 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

  • 8/7/2019 Eclipse Ibm Final

    13/41

    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-performance

    computing 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 projects

    based 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 Hierarchy

    View, 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 additional

    programming 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

  • 8/7/2019 Eclipse Ibm Final

    14/41

    ronments for dynamic languages, such as PHP and Perl.Furthermore, besides a set of frameworks, DLTK pro-vides exemplary TCL, Ruby, and Python development

    environments 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 that

    mimics 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 data

    source 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

  • 8/7/2019 Eclipse Ibm Final

    15/41

    "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), and

    inserting 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 code

    snippets: 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 models

    to 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

  • 8/7/2019 Eclipse Ibm Final

    16/41

    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 component

    and 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

  • 8/7/2019 Eclipse Ibm Final

    17/41

    "Mylyn provides a Rich Internet Application (RIA) infra-structure and UI for working with task repositories. Thismeans that issue tracking and project management

    tools, 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 recalling

    a 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 solution

    technologies.

    "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 support

    to 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. This

    is 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 Web

    Development, 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

  • 8/7/2019 Eclipse Ibm Final

    18/41

    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. I

    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 source

    technologies 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 your

    first 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 Lotus

    who works on OSGi-related development. His primary

    focus 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

  • 8/7/2019 Eclipse Ibm Final

    19/41

    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 Systems

    Developer, 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. This

    article 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 to

    the 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.

  • 8/7/2019 Eclipse Ibm Final

    20/41

    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

  • 8/7/2019 Eclipse Ibm Final

    21/41

    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 IBMWebSphere 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 Modeler

    Rational 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 of

    Eclipse 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-business

    applications 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 as

    they 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

  • 8/7/2019 Eclipse Ibm Final

    22/41

    Co-existence ScenariosWhen you try to install multiple Eclipse-based Rationalproducts (described in the prior sections), you may

    encounter 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 the

    actions 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 and

    replaced. 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 superset

    of 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

  • 8/7/2019 Eclipse Ibm Final

    23/41

    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 Share

    WebDeveloper

    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-existSystems

    Developer

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

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

  • 8/7/2019 Eclipse Ibm Final

    24/41

    tem resources.

    A shared situation would also arise if you had

    Rational 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 and

    Rational 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 would

    be 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 on

    the 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

  • 8/7/2019 Eclipse Ibm Final

    25/41

    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 WebSphereStudio 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 Rational

    Rose 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. I

    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

  • 8/7/2019 Eclipse Ibm Final

    26/41

    and the other products listed in this article from theTrials and betas page. Purchase Rational books at discounted prices in

    the 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

  • 8/7/2019 Eclipse Ibm Final

    27/41

    Eclipse is a new world for Microsoft Visual Studiodevelopers, 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) share

    similarities 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 using

    Visual 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. A

    Visual 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.

  • 8/7/2019 Eclipse Ibm Final

    28/41

    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. In

    Visual 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 must

    correspond 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 WindowsExplorer, 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 flexib