Sei sulla pagina 1di 41
Eclipse: Java EE Applications Made Easy
Eclipse: Java EE
Applications Made Easy

sponsored by

Eclipse: Java EE Applications Made Easy sponsored by an Developer eBook

an

Eclipse: Java EE Applications Made Easy sponsored by an Developer eBook
Eclipse: Java EE Applications Made Easy sponsored by an Developer eBook

Developer eBook

contents

[

Eclipse: Java EE Applications Made Easy

]

contents [ Eclipse: Java EE Applications Made Easy ] With the latest release of Eclipse, you

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

2

Letter from the Editor

Bob Kane

3

Get Started with the Eclipse Platform

Chris Aniszczyk and David Gallardo

10

A Whirlwind Tour of Eclipse Europa

Chris Aniszczyk

18

Installing and Using Eclipse-based IBM Rational Products

Khawar Z. Ahmed

26

An Introduction to Eclipse for Visual Studio Users

Genady Beryozkin

33

Taking a Lifecycle Approach to Software Quality Testing and Management

Rikki Kirzner

37

Rational Application Developer for WebSphere Outshines Eclipse

Rikki Kirzner

© 2008, Jupitermedia Corp.

1

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

© 2008, Jupitermedia Corp. 1 Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] Eclipse: Java EE Applications Made Easy By Bob

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Eclipse: Java EE Applications Made Easy By Bob

Eclipse: Java EE Applications Made Easy

By Bob Kane

S upported by a cross-section of the software industry including individuals and corporations, the Eclipse Foundation is dedicated to providing enterprise appli-

cation developers the latest tools, platforms and frameworks to 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 suit their 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 other products to meet almost any development requirement.

Fortunately, as the Eclipse pioneer, IBM has chosen not only to support the Eclipse Foundation, and the many developers who rely upon it, the company also builds its own tools with Eclipse as well. Many IBM Rational software 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 with Rational products. And because they are built with Eclipse, you don't have to worry about integrating Rational products within the Eclipse environment.

This ebook talks about the benefits of Eclipse for the enterprise developer, as well as those Rational tools that extend Eclipse to better support the software development 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 to find 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, an Internet.com Developer eBook sponsored by

2 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] Get Started with the Eclipse Platform Use Eclipse

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Get Started with the Eclipse Platform Use Eclipse

Get Started with the Eclipse Platform

Use Eclipse plug-ins to edit, compile, debug, and act as a foundation for your applications

By Chris Aniszczyk (zx@us.ibm.com), Software Engineer, IBM and David Gallardo (David@Gallardo.org), Software Consultant.

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

F ind out about the Eclipse Platform, including its origin and architecture. Starting with a brief discussion about the open source nature of Eclipse and its support for

multiple programming languages, we demonstrate the Java™ 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 with the Eclipse Platform" offers new information relevant for Eclipse V3.3.

What Is Eclipse?

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

While most users are quite happy to use Eclipse as a Java integrated development environment (IDE), its ambitions do not stop there. Eclipse also includes the Plug-in Development Environment (PDE), which is mainly 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 level

playing 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 Java language. For example, plug-ins are available or planned 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 of applications unrelated to software development, such as content management systems.

A great example of an Eclipse-based application is the

IBM® Rational® Software Architect (see Resources), which forms the basis of IBM's family of Java develop- ment tools.

Eclipse Is Open Source

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

3 © 2008, Jupitermedia Corp.

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

3 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] protection and prohibits distribution unless the user is

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] protection and prohibits distribution unless the user is

protection and prohibits distribution unless the user is granted these rights. The copyleft also requires that any redistributed software be covered by the same license. Since this, in effect, stands the purpose of copyright on its head--using the copyright to grant rights to the user, rather than reserve them for the developer of the software--copyleft is often described as "all rights reversed."

Much of the fear, uncertainty, and doubt that has been spread about regarding open source software involves the so-called viral nature of some copyleft licenses--the idea that if you use open source software as part of a program you develop, you will lose your intellectual property because the license will "infect" the propri- etary parts you develop. In other words, the license may require that all software bundled with the open source software, including any newly developed soft- ware, must be released under the same license. While this may be true of the most well-known copyleft license, the GNU General Public License (under which Linux®, for example, is released), there are other licens- es that provide a different balance between commercial and community concerns.

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

Those who create plug-ins for Eclipse or who use Eclipse as the basis for a software development appli- cation are required to release any Eclipse code they use or modify under the EPL, but are free to license their own additions in any way they like. Proprietary code bundled with software from Eclipse does not need 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-ins or to create new products based on Eclipse, the open source nature of Eclipse is important beyond the mere fact that it makes Eclipse available for no cost (and despite the fact that a commercial-friendly license means that plug-ins can cost money). Open source encourages innovation and provides incentives for developers, even commercial developers, to contribute

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

What Is Eclipse?

Eclipse is an open source community whose projects are focused on building an open development platform comprised 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 the Eclipse projects and helps cultivate an open source community and an ecosystem of complementary prod- ucts and services.

The Eclipse Project was originally created by IBM in November 2001 and supported by a consortium of software vendors. The Eclipse Foundation was created in 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 individuals and organizations from a cross-section of the software industry.

The Eclipse Foundation manages and directs Eclipse's ongoing development. The foundation provides servic- es to the community, but does not employ the open source developers (called committers), who actually work on the Eclipse projects. Eclipse committers are typically employed by organizations or are independent developers 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 the product itself.

The Eclipse Workbench

The first time you open Eclipse, you see the welcome page, 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, an Internet.com Developer eBook sponsored by

of 4 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Figure 1. Eclipse Welcome Page Figure 2. Eclipse

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 1. Eclipse Welcome Page Figure 2. Eclipse
[ Eclipse: Java EE Applications Made Easy ] Figure 1. Eclipse Welcome Page Figure 2. Eclipse

Figure 1. Eclipse Welcome Page

EE Applications Made Easy ] Figure 1. Eclipse Welcome Page Figure 2. Eclipse Overview Page going

Figure 2. Eclipse Overview Page

going to an overview page, which I recommend (see Figure 2). See what's new, explore some samples, or go through some tutorials.

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

The Eclipse workbench consists of several panels

known as views, such as the navigator or outline views.

To continue this short tour of Eclipse, we'll create a new Java project. Select File > New > Java Project and enter Hello when prompted for the project name, then click Finish.

A

collection of these views is called a perspective. One

of

the most common perspectives is the Resource per-

spective, which is a basic set of views for managing projects and viewing and editing files in a project.

I recommend most novice users start with the Overview page featured in Figure 2 and learn about Eclipse. The workbench basics section contains a lot of good starter information about the various pieces of Eclipse and

Next, we'll take a look at the Java perspective (if you aren't already there). Depending on how you like to manage your screen, you can change the perspective in the current window by selecting Window > Open Perspective > Java or you can open a new window by

5 © 2008, Jupitermedia Corp.

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

by 5 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Figure 3. Creating a new class in the

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 3. Creating a new class in the
[ Eclipse: Java EE Applications Made Easy ] Figure 3. Creating a new class in the

Figure 3. Creating a new class in the Java perspective

selecting Window > New Window and selecting the new perspective.

The Java perspective, as you might expect, has a set of views that are better suited for Java development. One of 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 Package Explorer. Also notice that the main menu has expanded to include two new menu items: Source and Refactor.

The Java Development Tools (JDT)

To try out the Java development environment, we'll create and run a Hello World application. Using the Java perspective, right-click on the Hello project's source folder (src) and select New > Class, as shown in Figure 3. In the dialog box that appears, type Hello as the class name. Under Which method stubs would you like to create? check public static void main(String[] args), then Finish.

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

in Figure 4. Add the following code to the method (note Figure 4. The Hello class

Figure 4. The Hello class in the Java editor

that the declaration for i has been omitted deliberately).

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

In other cases, you can invoke code completion by using Ctrl+1. Code completion provides a context-sen- sitive list of suggestions selectable by keyboard or mouse. 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 a white X appears in the left margin. Other errors are indicated with a light bulb in the editor's left margin; these are problems that the editor might be able to fix for 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 of suggested fixes. In this case, it will offer to create a class field i, a local variable i, or a method parameter i; clicking each of these suggestions will display the code that would be generated. Figure 5 shows the list of suggestions and the code it suggests for a local vari- able.

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

6 © 2008, Jupitermedia Corp.

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

6 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] Figure 5. Quick Fix suggestions Figure 6. Output

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 5. Quick Fix suggestions Figure 6. Output
[ Eclipse: Java EE Applications Made Easy ] Figure 5. Quick Fix suggestions Figure 6. Output

Figure 5. Quick Fix suggestions

EE Applications Made Easy ] Figure 5. Quick Fix suggestions Figure 6. Output from the program

Figure 6. Output from the program

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

You can also run the program in the Java debugger. First, set a breakpoint in main() System.out.println() by double-clicking in the gray margin on the left side of

the editor view, next to the call to System.out.println().

A blue dot will appear. From the Run menu, select

Debug. As described, a Launch Configurations dialog will appear. Select Run. The perspective will change to the Debug perspective automatically, with a number of 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 toolbar

in

the title bar that allows you to control the execution

of

the program, including buttons to resume, sus-

pend, or terminate the program, step into the next statement, step over the next statement or return from a method. The panel at the top right contains a number of tabbed views, including Variables, Breakpoints, Expressions, and Display. I've clicked Variables so we can see the current value of i.

You can obtain more information about any of the views with the context-sensitive help; click on the title of the view and press F1.

Additional Plug-ins

In addition to plug-ins like the JDT for editing, compiling, and debugging applications, plug-ins are available that support the complete development process from modeling, build automa- tion, unit testing, performance testing, version control, and con- figuration management.

testing, version control, and con- figuration management. Figure 7. The Debug perspective 7 © 2008, Jupitermedia

Figure 7. The Debug perspective

7 © 2008, Jupitermedia Corp.

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

7 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] Figure 8. Simplified Eclipse Platform architecture Eclipse comes

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 8. Simplified Eclipse Platform architecture Eclipse comes
[ Eclipse: Java EE Applications Made Easy ] Figure 8. Simplified Eclipse Platform architecture Eclipse comes

Figure 8. Simplified Eclipse Platform architecture

Eclipse comes with a plug-in for working with the open source Concurrent Versions System (CVS) for source control. The Team plug-in connects to a CVS server, allowing the members of a development team to work on a set of source-code files without stepping on each other's changes. Source control from within Eclipse won't be explored here further because it requires setting up a CVS server, but the capability for supporting a development team, not just stand-alone development, is an important and integral feature of Eclipse.

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

Eclipse Platform Architecture

The Eclipse Platform comes with a powerful set of plug-ins (see Figure 8) that support projects, such as JDT and the PDE.

The dark blue pieces signify components that are the core part of Eclipse's Rich Client Platform (RCP). The concept 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 Lotus Notes® 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 which I'll cover several:

Runtime The runtime is the code that defines Eclipse's plug-in model, based on the OSGi specification, and notion

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

JFace/SWT The Standard Widget Toolkit (SWT) is the widget set that gives Eclipse its look and feel. JFace is simply a layer on top of SWT that provides some Model-View- Controller (MVC) classes to make it easier to develop graphical applications.

Workbench The workbench gives Eclipse its personality. The con- cept of views, perspectives, and things like editors are 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 help system, which allows users to search for help docu- mentation or through cheatsheets, which can be thought of interactive task lists for end users.

Update The update component of Eclipse provides the facili- ties to allow you to update your applications from version to version.

Team The team component consists of a framework to allow vendors to plug in their own version-control systems. An exemplary implementation of a provider is the CVS plug-in provided out of the box in Eclipse.

Conclusion

From an initial contribution of code from IBM, Eclipse has grown into a full-fledged open source ecosystem in which more than 100 companies participate. A portable, extensible open source framework isn't a new idea, but because of its mature, robust, and elegant design, Eclipse brings a whole new dynamic into play.

Welcome to the Eclipse ecosystem. Our goal was to get you started with the Eclipse platform quickly. We accomplished this with some introductory text accom- panied with a simple hands-on exercise. Take the knowledge gained from reading this article and become an active member of the Eclipse ecosystem.

8 © 2008, Jupitermedia Corp.

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

8 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] Resources Learn • Interested in what's happening inside

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Resources Learn • Interested in what's happening inside

Resources

Learn

• Interested in what's happening inside the Eclipse

community? Check out PlanetEclipse.

• Read the Eclipse Public License V1.0 to learn more

about its terms and conditions.

• Check out the available Eclipse plug-ins at Eclipse Plug-in Central.

• Information about open source software, including

certified open source licenses, such as the Eclipse Public License, is available at OpenSource.org.

• Check out EclipseLive for webinars featuring various

Eclipse 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" describes

the tenets of copyright and explains the intents of an open 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. You can get an RSS feed of the latest plug-ins.

• The Rich Client Platform (RCP) provides a foundation

for 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 project resources' Start Here.

• Expand your Eclipse skills by checking out IBM

developerWorks' Eclipse project resources.

• To listen to interesting interviews and discussions for software developers, check out check out

developerWorks podcasts.

• Stay current with developerWorks' Technical events and webcasts.

• Watch and learn about IBM and open source tech-

nologies and product functions with the no-cost developerWorks On demand demos.

• Check out upcoming conferences, trade shows, web-

casts, and other Events around the world that are of

interest to IBM open source developers.

• Visit the developerWorks Open source zone for

extensive how-to information, tools, and project updates 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 from

the Eclipse Foundation.

• Download IBM product evaluation versions, and get

your hands on application development tools and mid-

dleware products from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.

• Innovate your next open source development project

with IBM trial software, available for download or on DVD.

Discuss

• The Eclipse Platform newsgroups should be your first

stop to discuss questions regarding Eclipse. (Selecting this 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 involved

in the developerWorks community.

About the Authors

Chris Aniszczyk is an Eclipse committer at IBM Lotus who works on OSGi-related development. His primary focus these days is improving Eclipse's Plug-in Development Environment (PDE) and spreading the Eclipse love inside of IBM's Lotus organization. He is an open source enthusiast at heart, specializing in open source evangelism. He evangelizes about Eclipse in his blog, 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 and Eclipse over a frosty beverage.

David Gallardo is an independent software consultant and author specializing in software internationalization, Java Web applications and database development. He has been a professional software engineer for over 15 years and has experience with many operating systems, programming languages and network protocols. His recent experience includes leading database and inter- nationalization development at a business-to-business e-commerce company, TradeAccess, Inc. Prior to that, he was a senior engineer in the International Product Development group at Lotus Development Corporation where 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, an Internet.com Developer eBook sponsored by

9 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook sponsored

[

[ Eclipse: Java EE Applications Made Easy ] A Whirlwind Tour of Eclipse Europa Eclipse V3.3

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] A Whirlwind Tour of Eclipse Europa Eclipse V3.3

A Whirlwind Tour of Eclipse Europa

Eclipse V3.3 contains significant changes to 21 projects; learn how Europa will boost your productivity

By Chris Aniszczyk (zx@us.ibm.com), 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.

W ith the simultaneous release of 21 projects this year, the Eclipse Europa release marks a significant improvement 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 21 major Eclipse projects.

The important thing to note about Europa and Eclipse release trains is that even though it's a simultaneous release, it doesn't mean these projects are unified at all. Each project remains a separate open source proj- ect, operating with its own project leadership, its own committers, 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 a more transparent and predictable development cycle. It's easier to ship software when you know it will always be available on a certain date.

Getting Europa

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

site information for your locale if it isn't avail- Figure 1. Update site configuration able at

Figure 1. Update site configuration

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 are part of the Europa release train (see Figure 2). It's as simple as that. Once connected to the update site, you simply choose the features you want to install into your copy of Eclipse and start using them. In these two sim- ple steps, you are primed to take advantage of the Europa release.

1 0

© 2008, Jupitermedia Corp.

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

1 0 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Figure 2. Europa update site The release train

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 2. Europa update site The release train
[ Eclipse: Java EE Applications Made Easy ] Figure 2. Europa update site The release train

Figure 2. Europa update site

The release train

A brief overview of each project will be given, followed by a quote from an Eclipse committer about what's exciting about the project in the Europa release. The quotes are from e-mail conversations I had with each project committer. Consider this a dialog between developers--no fluff or marketing hand-waving was expected or allowed.

Eclipse Platform The Eclipse Platform project is the heart of Eclipse. The project actually consists of many "subprojects," but in my view, the platform project consists of four main pieces:

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

Core The core of the Eclipse Platform mostly comes from the Equinox project. Equinox serves as the reference implementation for OSGi, which can be considered as forming the building blocks of Eclipse. Eclipse's plug-in model and notions of extensions are housed within 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 come across when they initially use Eclipse. Eclipse ships with a world-class Java development environment, known as the JDT.

Aspect Java Development Tools (AJDT)

The AJDT project provides Eclipse Platform-based tool support for aspect-oriented software development with AspectJ. The AJDT makes the life of an aspect devel- oper easier, similar to the way the JDT made the life of a Java developer easier.

"The AspectJ Development Tools project (AJDT) joins the 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's level of maturity and widespread usage. The project provides everything required for aspect-oriented pro- gramming: the AspectJ compiler and weaver, an editor for AspectJ source code, and additional views and other functionality designed to allow developers to get the maximum benefit from AOP," said Matt Chapman, AJDT lead and IBM employee. "Since last year's 1.4 release, there have been a number of improvements, including:

• "Refactoring participant to update aspects when Java types are renamed

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

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

• "Improvements to the Crosscutting Comparison view

• "New functionality to highlight changes to the crosscutting relationships in a project"

1 1

© 2008, Jupitermedia Corp.

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

1 1 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Business Intelligence and Reporting Tools (BIRT) The BIRT

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Business Intelligence and Reporting Tools (BIRT) The BIRT

Business Intelligence and Reporting Tools (BIRT)

The BIRT project strives to bring an Eclipse-based reporting system that integrates with your application to produce compelling reports for Web and PDF. BIRT provides core reporting features such as a graphical report designer, data access, and scripting support.

"BIRT 2.2, which is part of the Europa release, offers many 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 level aggregation, filtering and sorting, new emitters for XLS, Doc, PPT, and postscript formats, a new Web service data access driver, and many improvements to existing features," said Jason Weathersby, BIRT evangelist and Actuate employee. "Additionally, BIRT provides several new project types, such as the Web project, which allows the BIRT Viewer and new tag libraries to be deployed using WTP mechanisms and new ODA proj- ects that facilitate building your own data drivers."

Buckminster

The Buckminster project consists of frameworks and tools for automating build, assemble, and deploy devel- opment processes in complex or distributed component- based development. Buckminster allows development organizations to define fine-grain "production lines" for the 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 a new team and being expected to set up the develop- ment environment from scratch. Buckminster allows new developers to materialize their development workspaces and quickly become productive team members.

"Europa will be the first formal release of Buckminster, which has been expanded significantly in scope and production quality. Buckminster now supports fine-grain control and greater variability in the configuration reso- lution process through dynamic component queries and 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. Extensibility is greatly improved through formal XML schemas for all

artifacts, and usability is enhanced with an initial set of graphical editors," said Thomas Hallgren, Buckminster committer and Cloudsmith employee.

C/C++ Development Tooling (CDT)

The CDT project aims to bring a fully functional C and C++ 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® and embedded. The CDT enjoys a large community of users working with the Windows® GNU compilers, as well. The breadth of the CDTs user base--from tiny barebones embedded systems to high-performance computing applications running on massive clusters-- really highlights the flexibility of the frameworks and features that it provides," said Doug Schaefer, CDT lead 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 CDT to the next level of adoption. The user experience, especially when creating new projects has been greatly simplified with a streamlined New Project wizard that hides 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 gone into the CDT editor, which offers many more identifier coloring options and a faster content assist. Three new views give users greater insight into the structure of their code, including an Includes Browser, Call Hierarchy View, and a new Type Hierarchy View. The set of build and debug tool chain integrations grows with a cleaner MinGW 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 the introduction of new mechanisms for handling additional programming languages that includes a new experi- mental C parser and a parser for UPC, Unified Parallel C, using the LPG parser generator."

Dynamic Languages Toolkit (DLTK)

The DLTK is a tool for vendors, researchers, and end users who rely on dynamic languages. DLTK comprises a set of extensible frameworks designed to reduce the complexity of building full-featured development envi-

1 2

© 2008, Jupitermedia Corp.

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

1 2 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] ronments for dynamic languages, such as PHP and

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] ronments for dynamic languages, such as PHP and

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 and Ruby components with a set of features you may find in Java Development Tools. Starting from code editor with code assistance and code outline, code navigation features like Open Type and Go to declaration, power- ful search features like find references up to interactive console and integrated debugger, these features bring Europa a powerful development environment for Ruby and TCL programming languages," said Andrei Sobolev, DLTK project co-lead and XORED employee.

DSDP Device Debugging (DSDP-DD) and Target Management (DSDP-TM)

The DSDP-DD project creates new frameworks and extensions to the existing platform debug framework to support the three phases of device software develop- ment: hardware bring-up, platform software develop- ment, and application software development. The Device Debugging project will build enhanced debug models, APIs, and views to provide greater visibility into and control over device software targets. The DSDP-TM project creates data models and frameworks to configure and manage remote systems, their con- nections, and their services.

"With the Europa release, DSDP introduces V2.0 of the Target Management project and V0.9 of the Device Debugging project. TM 2.0 focuses on several architec- tural improvements, including better separation between 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 shell processes subsystem, a Telnet subsystem and associat- ed view, DNS-SD discovery, an FTP listing parser exten- sion point, and an improved EFS provider. TM continues to 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 new adaptable debug APIs introduced in Eclipse 3.2. DSF is

geared toward commercial-embedded debug engine implementations in Eclipse. DD 0.9 also provides a memory rendering for the platform memory view that mimics the traditional memory view found in embed- ded debuggers. Finally, DD 0.9 provides a preview release of an XML editor that implements the SPIRIT consortium's IP-XACT V1.3 standard for System On Chip (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 to the domain of data management. Examples of frame- works include location and management of data source drivers, and configurations for access to particular data source instances. Once a connection is successfully made, the next task often is to explore the data source with tools. Some of these operations might be carried out by GUI actions, others directly through commands. For example, users--both developers and administra- tors--typically will create, edit, and test SQL for these commands. Assistance with editing SQL through code completion, formatting, and dialect specialization greatly enhances productivity. Further, the ability to execute or debug commands--both SQL and stored procedures--rounds out the rapid development process that Eclipse supports so well.

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

Eclipse Communication Framework (ECF)

The ECF project consists of a framework for supporting the development of distributed Eclipse-based tools and applications. 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.

1 3

© 2008, Jupitermedia Corp.

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

1 3 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] "ECF brings communication capabilities to the Europa release

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] "ECF brings communication capabilities to the Europa release

"ECF brings communication capabilities to the Europa release with a uniform set of APIs to be consumed by developers. Support for transferring files through HTTP, BitTorrent, and messaging protocols like XMPP and IRC is provided by ECF out of the box. ISVs that wish to add their own protocols and communications layers can contribute them directly through the framework. The framework itself is stripped-down enough that it can even be used on embedded devices, allowing devel- opers to easily write applications that require having Pocket PCs and notebooks talk to each other," said Remy Chi Jian Suen, ECF committer, and Scott Lewis, ECF committer.

Project Dash (Eclipse Monkey)

Project Dash (also known as Eclipse Monkey) makes it possible to script Eclipse similar to what BeanShell does for Java.

"Simply put, the Eclipse Monkey project 'script- enables' Eclipse. It enables developers to use JavaScript (extensibility points are provided to support other scripting languages, such as Ruby) to control any aspect of their Eclipse environment. Examples of what could be done include scripts to configure Eclipse con- sistently across installations, macros for performing a set of actions (including inserting/modifying code), and inserting code snippets," said Paul Colton, Eclipse Monkey lead and Aptana employee.

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

Eclipse Modeling Framework (EMF)

EMF is a modeling framework and code-generation tool for building tools and other applications based on

a structured model. EMF lets you build models quickly by taking advantage of EMF facilities. For example, one feature EMF provides is support for persisting models to XML and other formats.

"The Eclipse Modeling Framework provides powerful generative and runtime capabilities for applications based on structured data models. From a simple class diagram, XML Schema, or even Java interfaces, you can generate a complete Java implementation of the model, along with an editor for it, and take advantage of EMF's facilities for persistence, notification, validation, and change recording in your application," Marcelo Paternostro, 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 supported in 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 include Ecore model validation, Ant support for code genera- tion based on annotated Java interfaces, and reference keys, which provide a more robust alternative to the default index-based reference serialization. Finally, EMF 2.3 will be delivered in fine-grain features, allowing for more flexible use in projects and products, without introducing unwanted code, user interface, or depend- encies."

Eclipse Modeling Framework Technology (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 graduate into EMF. Some example technologies found in EMFT include the ability to generically search, compare, and persist EMF models to a database.

Graphical Editing Framework (GEF)

The GEF project allows developers to take an existing application model and create a rich graphical editor quickly. GEF also contains a lightweight visualization

1 4

© 2008, Jupitermedia Corp.

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

1 4 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] layer, known as Draw2D, which is similar to

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] layer, known as Draw2D, which is similar to

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 small features 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.3 release engineering tools, and so on," said Anthony Hunter, 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 tools for select domain models that illustrate its capabilities.

"GMF remains an active and popular project within the Eclipse Modeling Project, and provides several enhancements with the 2.0 release to its runtime and tooling components to further simplify the task of building diagram-based editors for EMF models," said Richard Gronback, GMF lead and Borland employee. "GMF has also found two clients within the Eclipse ecosystem, with the introduction of the UML2 Tools component in MDT and the BPMN modeler within the SOA Tools project."

Model Development Tools (MDT)

The MDT project focuses on "big M" modeling within the Eclipse Modeling project. The project has two main purposes: Provide an implementation of industry stan- dard metamodels; and provide exemplary tools for developing models based on those metamodels. For example, the MDT project contains implementations (as metamodels) of UML2, XSD, and OCL.

Model To Text (M2T)

The M2T project focuses on the generation of textual artifacts from models. Its purpose is threefold:

• To provide implementations of industry standard

and de-facto Eclipse standard model-to-text engines

• To provide exemplary development tools for these

languages

• 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 code generator designed to work in the Eclipse workspace environment. Instead of producing HTML Web pages in response to an HTTP request, JET produces Eclipse resources (files, folders, projects) when given an input model. JET can read a number of input model types, including simple XML documents and any Eclipse Modeling Framework (EMF) based document," said Paul Edler, JET lead and IBM employee.

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

Eclipse Mylyn (formerly known as Mylar)

"Mylyn is a task-focused UI that reduces information overload and makes multitasking easy. It does this by making tasks a first-class part of Eclipse, and integrat- ing rich and offline editing for repositories, such as Bugzilla, 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 task context to focus the Eclipse UI on the interesting infor- mation, hide the uninteresting, and automatically find what's related," said Mik Kersten, Mylar lead and Tasktop employee.

"Mylyn 2.0 makes tasks as easy to browse and navigate as files and Java elements," Kersten said. "Tasks can be viewed with flexible presentations, focused to show the most relevant ones and organized with working sets. Just as the Eclipse JDT makes Java references easy to navigate, with Mylyn 2.0, pervasive hyperlinking tasks are only a click away whether referenced in source code or revision histories.

1 5

© 2008, Jupitermedia Corp.

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

1 5 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] "Mylyn provides a Rich Internet Application (RIA) infra-

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] "Mylyn provides a Rich Internet Application (RIA) infra-

"Mylyn provides a Rich Internet Application (RIA) infra- structure and UI for working with task repositories. This means that issue tracking and project management tools, including Bugzilla, JIRA, Trac, Rally, CollabNet Enterprise Edition, and XPlanner, can all be used with Mylyn's rich editor, opened instantly with no roundtrips to the server, and accessed easily when offline. Mylyn's Task List can now be used as a single in-box for all your tasks, allowing you to unclutter your e-mail inbox by turning off e-mail notifications," Kersten said.

"The fundamental productivity benefits of Mylyn come from the Task-Focused UI, which reduces information overload 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 such as the task context pop-up dialog and task activation dialog it easier to adopt the Task-Focused UI without changing existing work practice," Kersten said. "In addition, context sharing has been streamlined and a context 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 quality frameworks and tools to aid developers in constructing and deploying services using popular SOA solution technologies.

"SOA Tools is new addition to the mid-year big-bang Eclipse release train this year, and as part of it, we will be shipping new frameworks for Java Annotation-driv- en service development approaches, such as JAX-WS and SCA/Java, a BPMN Modeler framework, and a BPEL compiler," said Oisin Hurley, STP lead and IONA employee. "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 that you can reuse any code you already have for deploying to single servers."

Eclipse Test & Performance Tools Platform (TPTP) TPTP provides an open platform supplying powerful frameworks and services that allow software developers to build unique test and performance tools--both open source and commercial--that can be easily integrated with the platform and with other tools. The platform

supports a broad spectrum of computing systems, including embedded, stand-alone, enterprise, and high-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 realized by being part of a core typical user use case," said Harm Sluiman, TPTP committer, IBM employee. "The main new feature of TPTP (besides the normal main- tainer and bug fixing) is that we have moved to JVMTI from JVMPI, which has given us better and more stable heap and thread analysis support, along with the ability to support Java 6 going forward."

Web Tools Platform (WTP)

The WTP project extends the Eclipse Platform with tools for developing J2EE Web applications. The WTP project includes source editors for HTML, JavaScript, CSS, JSP, SQL, XML, DTD, XSD, and WSDL; graphical editors for XSD and WSDL; J2EE project natures, builders, and models, and a J2EE navigator; and a Web service wizard and explorer. Generally speaking, if the task 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, so users can install just our XML tools, from Europa's Discovery 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 smaller installs have been much requested by the community and I am hoping they will attract a whole new set of users and integration with other Eclipse-based proj- ects," said David Williams, WTP project management committee co-lead, and IBM employee.

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

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

1 6

© 2008, Jupitermedia Corp.

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

1 6 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] improving usability and 'out of the box' experience.

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] improving usability and 'out of the box' experience.

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

Go try Europa--It's free

I have explained the Europa release train as efficiently as possible while remaining relevant technically. This was accomplished by giving a unique developer-to- developer perspective on each of the projects by gath- ering a relevant quote from project developers. From my perspective, the differences between the Callisto and 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. So

what are you waiting for? Give Europa a try.

Resources

Learn

• Read "Europa Simultaneous Release project."

• Home of the Europa release train.

• Documentation, articles, and downloads of Eclipse are 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 Eclipse Plug-in Central.

• Check out EclipseLive for webinars featuring vari- ous Eclipse technologies.

• Check out the "Recommended Eclipse reading list."

• Browse all the Eclipse content on

developerWorks.

• Users new to Eclipse should check out Eclipse

project resources' Start Here.

• Expand your Eclipse skills by checking out IBM

developerWorks' Eclipse project resources.

• To listen to interesting interviews and discussions for software developers, check out check out developerWorks podcasts.

• For an introduction to the Eclipse platform, see "Getting started with the Eclipse Platform."

• Stay current with developerWorks' Technical events and webcasts.

• Watch and learn about IBM and open source

technologies and product functions with the no-cost developerWorks On demand demos.

• Check out upcoming conferences, trade shows,

webcasts, and other Events around the world that are of interest to IBM open source developers.

• Visit the developerWorks Open source zone for

extensive how-to information, tools, and project updates 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, and

get your hands on application development tools

and middleware products from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.

• Innovate your next open source development

project 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 news reader application and open eclipse.platform.)

• The Eclipse newsgroups has many resources for

people interested in using and extending Eclipse.

• Participate in developerWorks blogs and get involved in the developerWorks community.

About the author

Chris Aniszczyk is an Eclipse committer at IBM Lotus who works on OSGi-related development. His primary focus these days is improving Eclipse's Plug-in Development Environment (PDE) and spreading the Eclipse love inside of IBM's Lotus organization. He is an open source enthusiast at heart, specializing in open source evangelism. He evangelizes about Eclipse in his blog, 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

1 7

© 2008, Jupitermedia Corp.

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

1 7 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Installing and Using Eclipse-based IBM Rational Products By

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Installing and Using Eclipse-based IBM Rational Products By

Installing and Using Eclipse-based IBM Rational Products

By Khawar Z. Ahmed (kzahmed@us.ibm.com), Technical Marketing, IBM

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

T his article is for anyone who wants to install

Eclipse-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 Platform products (including Rational Web Developer, Rational Application Developer, Rational Software Modeler, Rational Software Architect, Rational Systems Developer, Rational Functional Tester, and Rational Performance Tester), this article discusses the implica- tions of the product packaging architecture for your installation.

Introduction

This article provides an overview of the Eclipse-based IBM Rational products and their high level product packaging architecture. The IBM Rational product packaging architecture has certain implications on the installation, especially where multiple product installa- tion on the same physical machine is desirable. This article provides a detailed overview of such issues and offers guidance on the best approach to achieving such co-existence installs and specific considerations in such a setup.

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

Eclipse Overview

Eclipse is an open platform for building software development tools. It operates under the open source model, which provides a common public license and royalty-free worldwide distribution. Written in the Java language, the Eclipse platform provides a plug-in architecture that simplifies the development of soft- ware products based on it.

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

Eclipse provides a common user interface (UI) model for 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 programming interfaces) and run unchanged on any of the support- ed operating systems.

The platform UI provides you with a standard user navigation model. This helps you create plug-ins that are focused on doing a small number of tasks well (for example, testing, animating, publishing, compiling, debugging, diagramming, and so on).

1 8

© 2008, Jupitermedia Corp.

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

1 8 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Figure 1. Simplified view of the Eclipse platform

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 1. Simplified view of the Eclipse platform
[ Eclipse: Java EE Applications Made Easy ] Figure 1. Simplified view of the Eclipse platform

Figure 1. Simplified view of the Eclipse platform

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

The platform gives you a common way to work with the tools, and provides integrated management of the resources they create with plug-ins. Figure 1 shows a simplified 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 Rational Software Development Platform

The IBM Rational Software Development Platform is an Eclipse-based common development environment that 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 Rational Software Development Platform is automatically installed as part of the product. Even if you have more than one of these products installed, the development platform is installed only once. All of these products have the same UI, called a workbench, and each product adds functionality to the workbench by con- tributing plug-ins. Another way to think of this is that products installed in this manner share the same Eclipse ecosystem.

Figure 2 depicts the nested structure of the products listed previously:

Overview of IBM Rational Products

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

differ- ent products in the IBM Rational portfolio. For more Figure 2. Eclipse-based IBM Rational product

Figure 2. Eclipse-based IBM Rational product packaging

1 9

© 2008, Jupitermedia Corp.

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

1 9 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] information about any of these products, please refer

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] information about any of these products, please refer

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

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

Rational Application Developer for WebSphere Software Rational Application Developer is a comprehensive IDE 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 sophisticated static code visualization tools. Like Rational Web Developer, Rational Application Developer is capable of supporting multi-vendor runtime environments, and is optimized for WebSphere Software.

Rational Software Modeler Rational Software Modeler is a Unified Modeling Language (UML)-based visual modeling and design tool for architects, systems analysts, and designers who 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 that enables you to clearly document and communicate these system views. Rational Software Modeler also supports team development by integrating with other tools in your environment.

Rational Software Architect Rational Software Architect is a design and construc- tion tool for software architects and senior developers creating applications in either the Java platform or C++. It leverages model-driven development with UML, and unifies all aspects of software application architecture. It is intended to help you create well- architected applications and services.

Rational Systems Developer Rational Systems Developer is a design and construc- tion tool that takes advantage of the full power of Eclipse and includes plug-ins that enable software architects and model-driven developers to create well-architected C/C++, Java, J2SE and CORBA- based applications leveraging the Unified Modeling Language (UML 2).

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

Rational Functional Tester also supports testing of 3270 (zSeries) and 5250 (iSeries) applications using the IBM Rational Functional Tester Extension for Terminal-based Applications.

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

Rational Performance Tester's fully customizable test workload scheduler permits highly accurate models of true user profiles. Finally, its real-time reports show up-to-the second response times across users and user groups, exposing system bottlenecks as soon as they occur.

Note: as of March 1, 2005, the above is pre-release information on Rational Performance Tester and is subject to change. Please consult the Rational Performance Tester link in the Resources section for scheduled release date and details.

2 0

© 2008, Jupitermedia Corp.

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

2 0 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Co-existence Scenarios When you try to install multiple

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Co-existence Scenarios When you try to install multiple

Co-existence Scenarios

When you try to install multiple Eclipse-based Rational products (described in the prior sections), you may encounter one of the following three coexistence situ- ations (depending on the specific combination):

1. Shared Eclipse ecosystem

2. Blocked install

3. Upgrade

4. Co-exist

The exact action you take depends on the specific combination of products you are trying to install. The following sections elaborate on each of the above coexistence situations, and the rationale for the actions you should take. The section following this one provides a matrix of product installs and associat- ed actions.

Shared Eclipse Ecosystem Shared Eclipse ecosystem refers to a situation where an Eclipse platform-based product uses the compo- nents installed by another Eclipse platform-based product. For example, when you install Eclipse-based products A and B, product B relies on components installed by product A. In this situation, A and B are considered to be sharing the same Eclipse ecosystem.

In this situation, the second product typically extends the capabilities of an existing product without installing another copy of components such as the UI. For example, if you install Rational Performance Tester, and then you install Rational Application Developer, they will both share the same Eclipse ecosystem. They will share a single UI, and the user interface will contain all the functionality that both products offer.

Blocked Install Some product combinations are blocked from installa- tion on the same machine. This typically happens when an installed product offers more functionality than the one that you are trying to install (in other words, 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 Architect installed, and you try to install Rational Application Developer, your installation request will be blocked. This is because the Rational Software Architect product already contains all the functionality offered by Rational Application 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, then you must uninstall the first product before installing the second.

Upgrade Some product combinations lead to a situation where the existing product must be upgraded to the product that offers more functionality. When a product is upgraded, the existing product is removed and replaced. However, your workspace associated with the first product is not removed. Typically, this hap- pens when you install a product that contains all the functionality of the existing product and some addi- tional functionality beyond that (in other words, the product being installed is a superset of the product that is already installed).

For example, if you have Rational Web Developer installed, and you try to install Rational Application Developer, you will be upgraded to the Rational Application Developer product because it is a superset of Rational Web Developer. The first product, Rational Web Developer, will be uninstalled, but both the user interface and the workspace that contain your work for Rational Web Developer will remain in the same loca- tion. Note also that the installed product is re-branded to reflect the name of the recently installed product.

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

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

2 1

© 2008, Jupitermedia Corp.

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

2 1 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] share any common Eclipse components. Product installation matrix

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] share any common Eclipse components. Product installation matrix

share any common Eclipse components.

Product installation matrix

Table 1 illustrates what happens when you attempt to install more than one product, common to the Rational Software Development Platform, on the same machine.

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

Example Scenarios

Rational Application Developer is already

installed, and you want to install Rational Software Modeler

Rational Application Developer does not contain the Rational Software Modeler functionality. Nor is there an upgrade path from Rational Application Developer to Rational Software Modeler, or vice versa.

In this situation, then, the install will go ahead and lead to Rational Software Modeler in a shared Eclipse ecosystem with Rational Application Developer. Rational Software Modeler menus and options will appear alongside Rational Application Developer, and they will share the Eclipse ecosys-

Table 1. IBM Rational product installation matrix

Attempt to

Rational

Rational

Rational

Rational

Rational

Rational

Rational

install

Software

Web

Application

Software

Systems

Functional

Performance

Modeler

Developer

Developer

Architect

Developer

Tester

Tester

Rational

N/A

Share

Share

Upgrade

Co-exist

Share

Share

Software

Modeler

 

Rational

Share

N/A

Upgrade

Upgrade

Co-exist

Share

Share

Web

Developer

   

Rational

Share

Block

N/A

Upgrade

Co-exist

Share

Share

Application

Developer

Rational

Block

Block

Block

N/A

Co-exist

Share

Share

Software

Architect

Rational

Co-exist

Co-exist

Co-exist

Co-exist

N/A

Co-exist

Co-exist

Systems

Developer

Rational

Share

Share

Share

Share

Co-exist

N/A

Share

Functional

Tester

Rational

Share

Share

Share

Share

Co-exist

Share

N/A

Performance

Tester

2 2

© 2008, Jupitermedia Corp.

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

2 2 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] tem resources. A shared situation would also arise

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] tem resources. A shared situation would also arise

tem resources.

A shared situation would also arise if you had

Rational Functional Tester and installed it on a machine that had Rational Application Developer. Note that in such installations, the system maintains internal details of resources being used, so if you uninstall a shared product it does not negatively affect the operations for the other installed prod- ucts.

As a general rule, Rational Software Modeler exists

in a shared Eclipse ecosystem when installed with

any of the following products:

o

Rational Functional Tester

o

Rational Performance Tester

o

Rational Web Developer

o

Rational Application Developer

Similarly, Rational Functional Tester and Rational Performance Tester can exist in a shared Eclipse ecosystem with any of the following products:

o

Rational Web Developer

o

Rational Application Developer

o

Rational Software Modeler

o

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 because Rational Software Architect is a superset of the Rational Software Modeler product and includes all of its functionality. Therefore, permitting you to install Rational Software Modeler in this situation would lead to a degradation of the Rational Software Architect installation's capabilities.

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

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

uct would be re-branded Rational Software Architect. That is, you will not have side-by-side installations of Rational Web Developer and Rational Software Architect. Instead, a single install of Rational Software Architect will give you all the Rational Software Architect functionality as well as the Rational Web Developer functionality.

Doing so will result in Rational Software Architect reusing all the common content from Rational Web Developer. It would also install Rational Application Developer content, because Rational Software Architect includes all of the functionality of Rational Application Developer. Furthermore, additional Rational Software Architect-specific content would be installed to complete the installation. At the end of installation, everything would be branded Rational Software Architect.

• Rational Web Developer is already installed, and

you want to install Rational Application Developer

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

• Rational Web Developer is already installed and you want to install Rational Systems Developer

Rational Web Developer does not contain the Rational Systems Developer functionality. Nor is there an upgrade path from Rational Web Developer to Rational Systems Developer, or vice versa.

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

Common Questions and Considerations

Some questions routinely come up in connection with

2 3

© 2008, Jupitermedia Corp.

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

2 3 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] using and deploying Eclipse-based IBM Rational prod- ucts.

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] using and deploying Eclipse-based IBM Rational prod- ucts.

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

Can I co-install Eclipse 2- and Eclipse 3-based

IBM products? You can install and run Eclipse 2-based Rational products and Eclipse 3-based Rational products side by side.

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

When running WebSphere Studio Application Developer 5.x and Rational Application Developer 6.x, you do need to ensure that the application servers for the test environments are set up to use different ports for the two products; otherwise you will run into conflicts.

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

While direct sharing of project artifacts between Eclipse 2 and Eclipse 3 side-by-side installations (that is, locating your project roots outside of the workspaces of either installation, and pointing both workspaces at the same projects) may work to some degree, this approach has not been officially tested and 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 Rational products on top of an existing Eclipse install. For example, if you already have Eclipse 3 installed on your system, it is not possible to install Rational Application Developer on top of it. When you install Rational Application Developer, it will install a new version of Eclipse 3 and install the Rational Application 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 into Eclipse based Rational products. However, keep in mind that if you encounter any problems while using IBM Rational products after such plug-ins have been installed, any problems with IBM Rational products must be reproducible in an unmodified shell for support purposes.

Summary

IBM offers several Rational software products based on the Eclipse platform. These products provide vital functionality for the software development lifecycle, including modeling and architecture, design and con- struction, and testing.

You can take advantage of these products via multiple installation configurations. Depending on what is already installed on your machine, you may encounter different responses to new installation attempts. In all situations, the action you need to take is well-thought out, and results in a final installation that offers the most functionality for a given combination of selected products.

Resources

Learn

• The IBM Software Developer Platform home-

page provides detailed information on the overall IBM Software Development platform, of which

IRAD, IRSA, IRSM, and the other products listed in this 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, and more.

• Find more product related information by visit-

ing the IBM Rational marketing pages. You can find more information about Rational Performance Tester

and all other IBM Rational products by viewing these pages.

Get products and technologies

• Get the evaluation version of Rational

Application Developer, Rational Software Architect

2 4

© 2008, Jupitermedia Corp.

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

2 4 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] and the other products listed in this article

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] and the other products listed in this article

and the other products listed in this article from the Trials and betas page.

• Purchase Rational books at discounted prices in the Rational section of the Developer Bookstore.

Discuss

• Get involved in the developerWorks community by participating in developerWorksblogs.

• Ask questions about Rational Application

Developer and Rational Software Architect in the

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

Khawar Z. Ahmed is a member of the IBM Rational XDE technical marketing team, where he focuses on the Java Platform Edition, and is co-author of the book Developing Enterprise Java Applications with J2EE and UML. He can be reached via e-mail.

2 5

© 2008, Jupitermedia Corp.

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

2 5 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] An Introduction to Eclipse for Visual Studio Users

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] An Introduction to Eclipse for Visual Studio Users

An Introduction to Eclipse for Visual Studio Users

By Genady Beryozkin (mail@genady.org), 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.

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

workspace-centric project structure, and automatic build can seem counterintuitive at first. Learn about these and other differences between the two environments, so that you can begin 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 these can be attributed to application domains, but others result from the IDE design.

Obviously, Microsoft Visual Studio and Eclipse differ:

The Java™ programming language is different from C/C++/.NET, and Java was the first language support- ed by Eclipse. The two are also different because Eclipse aims to be an IDE for "everything and nothing in 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 Visual Studio.

Without being too philosophic about IDE design, this article presents the main differences between these IDEs. It's intended for anybody who has been using Visual Studio for a while and is beginning to use Eclipse. This article doesn't teach Java programming in Eclipse and doesn't focus on Java-specific features (a

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

The Eclipse Workspace

The workspace directory The Eclipse workspace is a directory in the filesystem that contains a special .metadata subdirectory. The .metadata directory con- tains all the workspace's private information, such as settings, caches, etc. Normally, you shouldn't modify any files in the .metadata directory. The workspace directory is also the default location for new projects in Eclipse.

Generally speaking, the Eclipse workspace serves the same purpose as a Visual Studio solution: It organizes top-level projects, folders, and files in a hierarchical structure. 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. It manages most of the nonproject information, such as global preferences, windows layout, and search and navigation history. Eclipse can't start without a work- space, and you can't close a workspace the same way you can close a Visual Studio solution. Although it is possible to switch workspaces in Eclipse, many users use a single workspace that contains all their projects.

2 6

© 2008, Jupitermedia Corp.

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

2 6 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Project Structure Origins of the Eclipse project structure

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Project Structure Origins of the Eclipse project structure

Project Structure

Origins of the Eclipse project structure The strict correspondence between a pro- ject's structure and its filesystem layout was probably influenced by the mandatory corre- spondence between Java packages and their layout on the filesystem. In the Java lan- guage, the class p1.p2.p3.Class1 must reside in the directory p1/p2/p3. Visual Studio languages (C/C++/C#, and even J#) don't mandate such a directory structure. Consequently, the correspondence between the project's structure and its filesystem layout isn't that strict in Visual Studio.

Eclipse projects differ from Visual Studio projects in the way they interact with the underlying filesystem. In Visual Studio, a project isn't strongly connected to its layout on the filesystem: You can add a file from c:\temp\ to a project located in d:\work, and Visual Studio records the reference to a new file and opens it like any other file. Folders (like "header files") don't correspond to filesystem folders (internally, such folders are 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 (see Figure 1) is located at c:\eclipse\workspace\HelloWorld, then README.TXT is located at c:\eclipse\workspace\HelloWorld\src\README.TXT.

located at c:\eclipse\workspace\HelloWorld\src\README.TXT. Figure 1. A simple HelloWorld project Eclipse also wants to

Figure 1. A simple HelloWorld project

Eclipse also wants to be in sync with the files under the project directory. If you delete a file or a folder in Eclipse, it disappears from the filesystem. However, when you add or delete the same file using Windows® Explorer, the related resource in Eclipse becomes out of sync, which may upset Eclipse during some opera- tions. In such a case, you should manually refresh the project 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 Eclipse

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

Linked resources in Eclipse behave much like UNIX symbolic links. For example, to add a large test input file to the project without copying it from its original location, choose File > New > File, and, in the window that opens, click Advanced (see Figure 2). After they're added, linked resources are decorated with a small arrow over their icons (see Figure 3).

with a small arrow over their icons (see Figure 3). Figure 2. Adding a linked file

Figure 2. Adding a linked file

2 7

© 2008, Jupitermedia Corp.

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

2 7 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Figure 3. Linked file in the HelloWorld project

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Figure 3. Linked file in the HelloWorld project
[ Eclipse: Java EE Applications Made Easy ] Figure 3. Linked file in the HelloWorld project

Figure 3. Linked file in the HelloWorld project

Tip: Using Linked Resources to Improve Performance

Using a linked folder as a Java output folder To use a linked folder as a Java output folder for an existing project, you first need to make sure your project uses separate folders for source and .class files (if it doesn't, you need to move the source files to a separate folder). Then, open the Navigator view, turn off the automatic build, delete the old output folder, create a new linked folder with the same name, turn the automatic build back on, and rebuild the project with Project > Clean.

Linked folders can be useful when you're dealing with large projects that reside on remote locations, such as file servers or ClearCase dynamic views. Although source files can benefit from being properly backed up and otherwise managed, there are few reasons to store the generated .class files on such remote storage. In projects with more than a few hundred source files, you can dramatically improve the performance of many operations if you store the generated files on the local machine.

In Visual Studio C++ projects, you can improve build performance by setting the intermediate directory to a local location. In Eclipse, you can achieve the same effect by using a linked output folder that points to a directory on the local machine.

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

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

Reducing Clutter with Working Sets

As mentioned, many developers load all their projects into a single Eclipse workspace. It's convenient, but it can sometimes create too much clutter. In addition to closing unnecessary projects, you can define working sets: 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 History

One of Eclipse's coolest features--and one that Visual Studio doesn't have--is the local history. Each time you change a file, class, or method, Eclipse records the

change in its local history. Then, you can compare a file

to what it was a few minutes, hours, or days ago. If a

file is deleted, invoking Restore from Local History from its parent's context menu can bring it back.

The local history isn't a version-control replacement. It's more like a super-undo engine with configurable limits for the number of history days and the allotted storage capacity.

Building Projects

Contrary 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, and Dynamic Web projects (created using Eclipse WTP; see Resources) have a Java and a (metaphoric) Web nature.

A project nature defines a list of builders that run when

the project is being built. For example, the Java nature adds 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 Automatically

Building non-Java projects Automatic build is perfect for Java projects because the internal incremental compiler (Eclipse doesn't use javac) can handle small code changes quickly. Although builds run in the background, for project types (such as

2 8

© 2008, Jupitermedia Corp.

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

2 8 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] CDT projects), in which a small update can

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] CDT projects), in which a small update can

CDT projects), in which a small update can trigger lengthy compilation, you may prefer to turn off automatic build (Project > Build Automatically). You can then run the build manually (Project > Build All) or let Eclipse do the build before running an application.

At their first encounter with Eclipse, many look for the Build command. But to their surprise, either they can't find it or they find it's disabled. That's because unlike Visual Studio and some other IDEs, Eclipse has an automatic build feature. In Java projects, every time a Java 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 Builds

Often--mainly for C++ projects--Visual Studio projects use custom build steps to perform nonstandard build tasks. Custom build commands are plain command-line instructions in Visual Studio projects. Eclipse, on the other hand, can run stand-alone programs and Ant build scripts. For example, you can use an Ant script to build and deploy a Java Archive (JAR) file containing the project's classes whenever a project is rebuilt. An editor for Ant's build.xml files is included. You can configure custom project builders on the Builders page in the project's properties window, and you can define and run global scripts by choosing Run > External Tools.

Run and Debug

Languages and entry points Visual Studio languages (C++/C#) can have only one entry point per executable, which is determined at link time. The Java program- ming language allows multiple entry points (main methods) at compile time. The entry point is determined on the command line when the program is launched.

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

rations. Managing multiple configurations just for the sake of having different command-line arguments is a bad 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 arguments are such parameters. You can have separate launch configurations for any class with a main() method in the project. A new configuration is automatically created when you launch an application with a new main class using the Run > Run As command. You can also use the Run window (Run > Run) to create and delete launch configurations.

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

The Debug Perspective

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

view lists all the programs being run or debugged and lets Figure 4. Changing the location

Figure 4. Changing the location of launch configuration

2 9

© 2008, Jupitermedia Corp.

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

2 9 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] you debug several programs at the same time,

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] you debug several programs at the same time,

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

Eclipse Plug-ins

In addition to being a great free open source Java IDE, the most important feature of Eclipse--which accounts for much of its success--is its open extensibility architec- ture. Most Eclipse features can be extended or are accepting contributions from plug-ins. In fact, many Eclipse features use the same extensibility architecture that is available for the general public.

The business-friendly open source license Eclipse uses encourages the development of commercial and open source plug-ins. No wonder more than 800 plug-ins are listed on the official plug-in marketplace at Eclipse Plugin Central.

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

Additional Eclipse Projects

The 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 umbrella and can be installed as Eclipse plug-ins. See Resources for 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 in June 2006.

The Update Manager

Whenever you download Eclipse for the first time or as an upgrade, you get a plain compressed file you extract 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 disable plug-ins, similar to what the Add-in Manager does in Visual Studio.

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

To a lesser extent, Eclipse supports installing plug-ins by manually copying them into the appropriate directo- ries. This method isn't recommended, and it can cause inconsistency in the Eclipse configuration. See "Basic troubleshooting" for more information.

When You Need Help

If you're new to Eclipse, you'll probably have some questions. And after using it for a while, you may dis- cover a couple of bugs or may wish to suggest new features. This section surveys the different support options.

Basic Troubleshooting

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

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

Newsgroups

If you've been working with Microsoft products, you know that you can get help on the Microsoft Developer Network (MSDN) forums and newsgroups. The Eclipse community has its own newsgroups (see Resources), and many Eclipse regulars are there to help you out.

3 0

© 2008, Jupitermedia Corp.

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

3 0 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Report Bugs and Ask for New Features Unlike

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Report Bugs and Ask for New Features Unlike

Report Bugs and Ask for New Features

Unlike the Microsoft feedback feature on the Microsoft Connect Web site, which is aimed at providing cus- tomer support, Eclipse Bugs is the actual bug-tracking system used by Eclipse developers. With Eclipse Bugs, you can not only search, report and vote on bugs but also add yourself as a CC on somebody else's bug, see who is assigned to fix it, learn the version in which it should be fixed, and much more. You can post feature requests using the same interface (see Resources).

Premium Support

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

Conclusion

We have discussed how Eclipse approaches some com- mon IDE principles and tasks. The workspace-centric approach and project structure on one hand and the great flexibility of the UI design and launch configura- tions on the other make Eclipse unique in its IDE design. And the open-extensibility architecture makes Eclipse a platform for a great variety of third-party plug-ins and products.

If you haven't done so yet, read the "Eclipse for Visual

Studio developers" tutorial (see Resources), which gives

a good introduction to Java development in Eclipse.

However, Eclipse isn't all about the Java programming language. Check the Callisto and Europa releases for additional Eclipse projects, such as the C++ IDE. Then visit Eclipse Plugin Central and download some popular

Eclipse plug-ins.

Resources

Learn

• Eclipse.org is the home of the Eclipse project. You

can 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 tutorial

about creating your first Java program in Eclipse

• "Migrate Visual Studio C and C++ projects to

Eclipse CDT" discusses C/C++ with Eclipse.

• The Eclipse Foundation's most recent changes to

Eclipse have been in the form of "release trains," which are simultaneous releases of updates to the Eclipse Platform and key projects. Learn more about

the October 2006 release in "What's hot in Eclipse V3.2 Callisto" and the June 2007 release in "A Whirlwind Tour of Eclipse Europa."

• Learn more about "Debugging with the Eclipse Platform."

• Creating linked resources explains how to use vari- ables to create platform-independent target loca- tions.

• Visit the Eclipse.org documentation to learn about using working sets.

• Check out the "Recommended Eclipse reading list."

• Browse all the Eclipse content on

developerWorks.

• New to Eclipse? Read the developerWorks article

"Get started with Eclipse Platform" to learn its origin and architecture, and how to extend Eclipse with plug-ins.

• Expand your Eclipse skills by checking out IBM developerWorks' Eclipse project resources.

• To listen to interesting interviews and discussions for software developers, check out check out developerWorks podcasts.

• Stay current with developerWorks' Technical events and webcasts.

• Watch and learn about IBM and open source

technologies and product functions with the no-cost developerWorks On demand demos.

• Check out upcoming conferences, trade shows,

webcasts, and other Events around the world that are

of interest to IBM open source developers.

• Visit the developerWorks Open source zone for

extensive how-to information, tools, and project updates 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 source

for Eclipse plug-ins, but more plug-in directories are

3 1

© 2008, Jupitermedia Corp.

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

3 1 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] also available through the Eclipse Portals. • Get

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] also available through the Eclipse Portals. • Get

also available through the Eclipse Portals.

• Get Rational Application Developer for

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

from the Eclipse Foundation.

• Download IBM product evaluation versions, and

get your hands on application development tools and middleware products from DB2®, Lotus®,

Rational®, Tivoli®, and WebSphere®.

• Innovate your next open source development

project 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 your first stop to discuss questions regarding Eclipse.

• The Eclipse newsgroups has many resources for

people interested in using and extending Eclipse.

• Participate in developerWorks blogs and get involved in the developerWorks community.

About the author

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

3 2

© 2008, Jupitermedia Corp.

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

3 2 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Taking a Lifecycle Approach to Software Quality Testing

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Taking a Lifecycle Approach to Software Quality Testing

Taking a Lifecycle Approach to Software Quality Testing and Management

With Eclipse-based testing tools from Rational, your organization can easily manage software quality across the entire application lifecycle. See how this family of integrated tools can help in meeting your organization's quality goals while ensuring project and business success

By By Rikki Kirzner

N omatterhowinnovativeorstrategicyourorganization's

SOAorbusinessstrategy;orhowmuchtimeandeffort

goesintosoftwaredesignanddevelopment;orhow

muchmoneyisspentonsalesandmarketingcampaigns,the ultimateoutcomeofanysoftwareproject,intermsofincreased sales,customersatisfaction,andcustomerretentionisonlyas goodasthequalityofthesoftwareproduced.Softwarequality managementisimportant,butitentailsfarmorethanmerely testingsoftwarecodeattheendofthesoftwaredevelopment cycle.Itnecessitatesanorganizationaltransitionfromthe prac- tices ofcorrectingsoftwaredefectsandproblemsattheendof eachphaseofthedevelopmentcycletoanalyzingandtesting outcomesatthestartandthroughouteachphaseofthe soft- ware project.Moreover,eachdecision--beginningwiththe requirementsdefinitionandmodelcreation--allthewaythrough theapplication'sinterfaceandusability,choiceofplatforms,and otherfactorsneedtobecarefullyconsidered,analyzed, man- aged, andcommunicatedtotheentiredevelopment, deploy- ment, andtestingteamstoavoidconflictinggoalsandefforts furtherintothedevelopmentordeploymentcycles.

Increasingly, more of the world's most business-savvy organizations understand these principles. They are using a combination of well designed and integrated tools with automation capabilities throughout the soft- ware lifecycle that can prevent or minimize defects, control and/or reduce development and deployment costs, and optimize team efficiency throughout the organization.

How IBM Rational Facilitates Lifecycle Quality Management

IBM Rational has created a holistic approach to quality management with a comprehensive suite of Java/Eclipse-based collaborative and integrated tools incorporating automated workflow processes all throughout various phases of software development. IBM Rational products are tightly integrated with one another, facilitating your development efforts. Using these tools to implement consistent, predictable, and repeatable software quality management processes throughout the software development lifecycle ensures projects come in on time and on budget. It helps com- panies leverage their software teams, assets, resources and meet the organizational objectives for the project. It also ensures that companies can meet time-to-market objectives, as well as customer expectations.

Quality and Testing Capabilities of IBM Rational Application Developer

Quality management of code is an integrated function when you develop your code using IBM Rational Application Developer. Your code is automatically checked against more than 200 J2EE coding standards and either out-of-the-box or customized best practices to ensure your code adheres to general good coding practices as well as your own corporate policies. Any violations are flagged and repairs are often automati- cally suggested. Automatic fixes can be achieved by

3 3

© 2008, Jupitermedia Corp.

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

3 3 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] using the tool's one-click quick fix capability. Rational

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] using the tool's one-click quick fix capability. Rational

using the tool's one-click quick fix capability. Rational Application Developer also includes tools to eliminate tedious code quality reviews. Its automated code review feature applies existing rule categories for Java SE/J2EE best practices, globalization, and accessibility. New rules can be imported with an Interactive Rules editor.

IBM Rational Application Developer is shipped with recent versions of IBM WebSphere Application Server, and IBM WebSphere Portal Server to help you test and debug applications that are deployed on these two platforms. The test servers are automatically configured for the application under test. Automated support for creating and debugging the application's WebSphere administration and configuration files also expedite your testing and deployment processes.

From within IBM Rational Application Developer, you can access requirements that have been stored and managed in IBM Rational RequisitePro and link them to corresponding modeling elements and code. Since the quality 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 sure you create a defect-free deliverable that is ready for deployment into production and capable of meeting all exit criteria. To easily find where problems have occurred traceability reports can be generated from requirements to test cases, requirements to defects, and requirements to design.

IBM Rational ClearQuest Integration Further Improves Testing Efficiencies

Let's not forget, Rational Application Developer is tightly integrated with IBM Rational ClearCase and IBM Rational ClearQuest change management tools, letting you easily perform a multitude of configuration and change management operations. Since IBM Rational ClearQuest manages the full range of testing activities, including test planning, test execution, and capture and analysis 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 the manual steps you worry about today so you and your team can spend your time on other tasks thereby

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

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

IBM Rational ClearQuest promotes team collaboration and 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 that the right people are working on the right change at the right time. Secure access guarantees only those people who are authorized to view or change project assets can do so.

Frequent Changes Are No Problem with IBM Rational Testing Tools

Testing web services is easier than ever with IBM Rational Tester for SOA Quality. Designed specifically for Web Services testing it's the tool most likely to be used by both developers and testers since it eliminates the need for manual coding with automated data corre- lation and data driven testing through its code free test environment. IBM Rational Tester for SOA Quality offers all the power and flexibility you require to test web services, with a simple wizard driven approach that QA teams 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 to create some basic web service tests during develop- ment. Then they hand those tests off to QA teams who expand and use them as part of their larger QA regres- sion suite.

3 4

© 2008, Jupitermedia Corp.

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

3 4 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] IBM Rational Tester for SOA Quality is both

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] IBM Rational Tester for SOA Quality is both

IBM Rational Tester for SOA Quality is both a functional and performance testing tool. You can use it to func- tionally validate web service calls (i.e.: validating that a web service returns consistent and correct responses for 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 a functional test validation.

When you are ready to transition to more traditional types of testing, consider using Rational Functional Tester for automated and manual functional testing and regression testing of a wide array of applications includ- ing Java, .Net, SAP, and Siebel. IBM Rational Functional Tester is designed to support the type of frequent changes that occur to services or dynamic applications. It uses fuzzy matching algorithms to locate objects dur- ing test execution, even if the objects have changed since the test was first created. The tool can accommo- date a dynamic environment by automatically detecting data entered during test recording. It lets you create customized data sets to be used by the test during playback, so you can re-use scripts without resorting to manual coding and it allows testers to define support for custom controls. You can also set sensitivity levels on object recognition, making test scripts more resilient to application changes.

Rational Functional Tester employs a common scripting language that enhances communication and code reuse opportunities between developers and testers. Reusable test scripts are automatically generated by recording user interactions with the application. The executable test scripts accurately reproduce users' actions and display the system's responses to those interactions. During the recording you can insert verifi- cation points to extract data from the application that is under test, which can be compared with live informa- tion or previous data to be certain that everything is functioning correctly. Custom code can be added to the test scripts to perform whatever additional tests you require to ascertain the application's performance is consistent with expectations and business require- ments. Individual tests can be compiled into a suite of tests to exercise all of its features and functions.

Since Rational Functional Tester is automated, the tests perform precisely the same operations each time they are run, thereby eliminating human error. It lets you

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

Since it is built on Eclipse, both testers and developers can leverage a common development IDE for better team collaboration and testers only need to learn one tool to support various types of application testing. Rational Functional Tester can be used as a stand-alone tool, to record, play back, and analyze the result of tests, or it can be used in conjunction with Rational Test Manager for enhanced test execution capabilities and results logging.

Rational Functional Tester is also well integrated with several other products. When used in conjunction with IBM 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 goals and customers' expectations.

Performance Testing is a Crucial Component of the Quality Equation

No test process is complete until your applications can run reliably with the requisite levels of performance. Once you are satisfied that your new code (or any changes or upgrades to your software) has not pro- duced any quality, system, or functional defects, you need to make sure that no residual performance and scalability glitches were created in the process of gen- erating your latest version of software. Performance and scalability issues are critical factors when it comes to keeping customers satisfied and coming back, so it is essential that you capture and correct performance problems before your software is ever deployed.

Rational Performance Tester enables testers to find sys- tem bottlenecks before deployment by simplifying the creation, execution and results analysis of multi-user performance tests. Testers are not required to have any programming knowledge since tests are automatically generated by recording a user's activity within a Web browser. It accurately measures and tests the ability of

3 5

© 2008, Jupitermedia Corp.

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

3 5 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] your software to support the number of multiple

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] your software to support the number of multiple

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

IBM Rational Performance Tester uses an intuitive visual test editor to create each multi-user test, so you don't have to write any code to successfully load test your application. Actual recordings of an individual user's activity are used ensuring your performance testing accurately mirrors your user base. Using an intuitive graphical test scheduler, you can consolidate these tests into a suite and subsequently group and organize them to simulate multiple users performing the types of activities your software is designed to support.

Rational Performance Tester generates performance and throughput reports in real time, enabling you to detect performance problems throughout a test run. Multiple filtering and configuration options can be set before, during, and after a test run to identify perform- ance degradation, transactional bottlenecks, poorly performing Web pages, and other problems that impact overall performance or scalability.

One of the most important reports you can run after a test is the "Response Time Breakdown" report which breaks down the response time for a given web page by application tier and type of code executed. For a given web page response time you can see how much of that time was actually spent on each physical tier (or machine) used in your architecture. On each of those machines you can also see how much time was spent executing different types of code (such as executing Web Services, doing database calls, or running servlets and JSPs).

Additional reports are available at the end of the test run to perform deeper analysis on items such as response time percentile distributions and standard response time deviations. This capability lets you find and correct these types of problems before you deploy the new version.

IBM Rational Functional Tester and IBM Rational Performance Tester go beyond simply supporting your testing 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 find and correct defects, as well as performance and scala- bility problems--even in large, complex applications-- before you deploy any new release. Whether used alone or together, these products reduce your testing time and costs associated with regression and perform- ance testing. They increase the efficiency of your entire team, giving you more time to analyze existing defects and 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 numerous benefits of these tools go far beyond allowing develop- ers and testers to share scripts and testing tools to deliver defect free software. Using IBM Rational's holis- tic approach to quality management testing lets you accelerate problem detection and resolution and quick- ly pinpoint and identify the root cause of a failure before it impacts your bottom line. And that keeps your business running smoothly and your customers coming

back 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 computer industry professional with experience as an analyst and former Research Director for IDC, Gartner Group, and Meta Group and as a Senior Editor. Rikki writes about software, development tools, open source, SOA, domaining, and Web-based computing.

3 6

© 2008, Jupitermedia Corp.

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

3 6 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] Rational Application Developer for WebSphere Outshines Eclipse Have

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] Rational Application Developer for WebSphere Outshines Eclipse Have

Rational Application Developer for WebSphere Outshines Eclipse

Have you stopped to consider that productivity from Eclipse is not enough when it comes to quickly designing, developing, and deploying high-quality Web, Web2.0, SOA, Java EE and portal applications? Even though Rational Application Developer for WebSphere is based on Eclipse, learn why Rational Application Developer for WebSphere is a better value proposition for your next project

By By Rikki Kirzner

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

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

IBM has once again expanded its industry-leading robust, powerful, and full-featured Integrated Development Environment, so it literally and figurative- ly pays for you to consider many of Rational Application Developer for WebSphere's new capabili- ties for your next software development project. Rational Application Developer for WebSphere empowers you and your team with features needed to rapidly develop, assemble, test, profile and deploy high quality Java/J2EE, Portal, Web, Web services and SOA applications with strong support for IBM WebSphere Application Server.

Improved Productivity

Rational Application Developer for WebSphere version 7.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.4 open source software development framework, it extends Eclipse with best of breed, visual construction, graphical development tools to improve Java develop- er productivity in numerous and important ways with a far more sophisticated set of features that are easy to install, customize, and use. It has full support for WebSphere 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 deployment tools. It incorporates features for visualizing Java code in class diagrams, topic diagrams, and browse dia- grams, as well as visualizing methods in static sequence diagrams. Rational Application Developer for WebSphere also offers visualization of database schemas in UML notation, as well as visualization of XML Schemas. Developers can visualize Java, EJB, XSD, WSDL and database objects so they can review their code or share designs with other team members improving team communication regarding new and existing applications

IBM has simplified and shortened the code develop-

3 7

© 2008, Jupitermedia Corp.

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

3 7 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] ment cycle with new wizards and adapters. The

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] ment cycle with new wizards and adapters. The

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

Another and arguably more significant productivity advantage Rational Application Developer for WebSphere offers over Eclipse is that it facilitates the creation of complex Web applications including SOA services without requiring you to write a single line of code. Using and creating Web services are easier than ever with Rational Application Developer for WebSphere's new Web Services Wizard. Drag-and- drop and WYSIWYG features make developing Web pages easier and much simpler to use. The wizards walk you through the process of building a Web serv- ice, including generating all the infrastructure code for you. All that is required is for you to design the busi- ness logic and add any additional content to the Web pages.

Rational Application Developer for WebSphere's sup- port of WSDL and XSD modeling, XSD refactoring, intuitive skeleton merge for creating top down Web services, support for complex schemas with server data objects (SDO), and many other features will speed up the development process and increase the quality of all your SOA projects. Significant enhancements for Web, portal, and Java application development also makes SOA 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 and provides tools for enhancing productivity with code assist, annotations view, Quickfixes, validation and refactoring. Rational Application Developer for WebSphere has enhanced support for creation, valida- tion, refactoring, and deletion of artifacts. Rational Application Developer for WebSphere also will include enhanced capabilities to develop and deploy complex applications using the latest programming models and standards including EJB 3.0, JPA, Web Services with JAX-WS 2.0/JAX-B 2.0 and many more.

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

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

Rational Application Developer for WebSphere has many features that support Web 2.0 development. Function-rich JSF library (JWL) with JSF components introduce important common AJAX behaviors including scrolling data tables with no page refresh, tab panels that populate when the page is displayed, dynamic menus, and a host of others will help you build and evolve your Web 2.0 solutions. Rational Application Developer for WebSphere is built on the Eclipse AJAX Tools Framework (ATF).

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

There are far more productivity features than we have

space to list here, but we would be remiss not to men- tion that Rational Application Developer for WebSphere also supports the following standards and technologies:

• 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 you consume as many or as few of the tools functions as you require saving valuable resources and the cost associated with them. The Installation Manager facili- tates flexibility of your installation letting you select only those tools you want to have on your desktop without having to install software components you don't want or will never use. This gives you greater control over the size footprint and specific product fea-

3 8

© 2008, Jupitermedia Corp.

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

3 8 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy ] tures you want to have on your own

Eclipse: Java EE Applications Made Easy

]

[ Eclipse: Java EE Applications Made Easy ] tures you want to have on your own

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

The Rational Application Developer for WebSphere Process Advisor guides developers, who are new to the technology or the tool itself, step by step helping them to quickly become proficient and productive using the rich feature set built into the tool. Developers also have several options for learning how Rational Application Developer for WebSphere works before they start using it. A robust tutorial environment along with lots of sam- ple code and demos are built right into the tool. IBM has created videos of the demos, and developers can install a sample application and step through the code, or access a number of current tutorials posted on the IBM developerWorks site from links within the product. IBM also includes code samples to jumpstart your development efforts.

An easy to use graphical interface of the Web Diagram Editor lets you access technical features in a way that makes it easier for you to understand your environment and get more information about software artifacts. You can customize your environment any way you prefer by building a perspective comprised of different views that reflect only those artifacts or screens (e.g. browser, debugging window, editor, etc.) you want to see on your desktop.

Improves Overall Quality from Design to Deployment

Why do you care about quality? By catching and elimi- nating bugs as early in the process as possible, you can avoid having to stay late (or have your team stay late) to fix problems that show up. You can improve the quality of the software you develop and deploy through Rational Application Developer for WebSphere's comprehensive code review and debug capabilities. To improve code quality assurance, Rational Application Developer for WebSphere con- tains Code Review tools that are rule-based static analysis tools for automatic validation of Java code. It checks for correctness and compliance with coding standards and best practices. Rational Application Developer for WebSphere 7.5 has line level coverage

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

IBM also understands that organizations have invested in mission critical, enterprise systems that need to be supported or with which your development project must interoperate. Therefore development time sup- port to access data and operations on these systems is provided for Enterprise Information System (EIS) Adapters, tooling for JD Edwards, Oracle, SAP, Siebel and PeopleSoft.

Since it is well integrated with the rest of the IBM development and testing suite of tools, you can easily access and use a broad range of testing as well as requirements, 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 of the other well integrated IBM Rational Quality manage- ment tools as other perspectives. If you are working in the Web perspective developing a SOA component and need to do some functional testing, you can popu- late the "testing perspective" with IBM Rational Functional Tester and switch between each of the dif- ferent perspectives depending on the tools you require for each stage of your project. Another perspective could contain IBM Rational ClearQuest for defect track- ing or workflow management, IBM Rational PurifyPlus for code coverage and identifying memory leaks, or any of the other IBM Rational tools you need to man- age your quality across the lifecycle from design to deployment.

Support for Enterprise Systems and Your Project

And finally, IBM is there whenever you need help or advice because Rational Application Developer for WebSphere includes 24x7 IBM support as well as patches and bug fixes--so your project always runs smoother. IBM even offers training to accelerate time to market and reduce the learning curve; even for novice developers.

With all these improvements and ways to make your

3 9

© 2008, Jupitermedia Corp.

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

3 9 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer eBook

[

[ Eclipse: Java EE Applications Made Easy software project faster, smarter, and better, you need to

Eclipse: Java EE Applications Made Easy

software project faster, smarter, and better, you need to consider Rational Application Developer for WebSphere for your next project Why continue using good tools if they are not good enough to save you

time and money on your next project?

More information is available at the Rational Application Developer for WebSphere v7.5 Open Beta Website where you can try it out for free:

http://www.devx.com/ibm/Link/36481.

Rikki Kirzner is a freelance writer and veteran computer industry professional with experience as an analyst and former Research Director for IDC, Gartner Group, and Meta Group and as a Senior Editor with Open Computing Magazine. Rikki covers software, develop- ment, open source, SOA, domaining, and mobile com- puting.

]

ment, open source, SOA, domaining, and mobile com- puting. ] 4 0 © 2008, Jupitermedia Corp.

4 0

© 2008, Jupitermedia Corp.

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

] 4 0 © 2008, Jupitermedia Corp. Eclipse: Java EE Applications Made Easy, an Internet.com Developer