Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
SYS-CON.TV
Simplifying Development with Eclipse
Take the drudgery out of it!

Every IDE will allow you to manage files and build projects. Eclipse goes beyond that by dealing with the code you are writing on a more intimate level than the typical file-centric view embraced by most IDEs. As a developer, you can use that familiarity to your advantage by letting Eclipse do the drudgework of finding, changing, switching, moving, waiting, and just a little bit of writing.

With Eclipse on your tool belt, you can focus yourself on the real task at hand: writing code that does what it's supposed to.

Start with the UI
Let's first note this article refers to the new Eclipse 3, which differs in some respects from older 2.1 builds, as well as WSAD and RAD.

Eclipse looks very similar to most other IDEs because the basic user interface has become so familiar to developers everywhere--except those who still hack away with Emacs or vi, although they too will find something to love in Eclipse, which can support either of those keybindings.

The basic Eclipse UI is shown in Figure 1. On the left of the screen, you'll see a list of development Resources: source code, jars, and other ingredients used to bake your latest development project. In fact, the list is separated into the different Projects that you are currently working on, which can depend on each other or be completely separate.

Eclipse keeps data about the projects in two files, called .project and .classpath. The .project file keeps information about what files are included in the project, how to use them, how to build the project, and many more details. The .classpath file can be found in any Java project, and tells Eclipse what to use as the CLASSPATH variable while building.

All of the current Projects exist in your current Workspace. A Workspace in Eclipse is a folder that contains lots of files, possibly including the Resources necessary for the Project. Eclipse starts with a default Workspace; however, you can easily set it to open multiple Workspaces. To open a different Workspace, just use the -data flag when you launch the executable; for example:


	eclipse.exe -data E:/shared/workspaces/artemis

In the middle is a source viewer, which will display the source code for the currently-open file. Notice that it is tabbed, so you can open many files at once. On the right is an outline of the currently-open file. Eclipse lists the classes, methods, and other parts of the file. Double-clicking an item will take you to it. Finally, on the bottom is another tabbed area that is used to convey information about what Eclipse has done, found, or has problems with. Note that each of these lower tabs are Views, which can be moved around as you like You can combine views into stacks by dragging them on top of each other. The information Views are all separate and can be pulled apart if you have a gigantic screen and want to see all of them at once.

Views are grouped into Perspectives, which are generally environment-oriented; there is a Java Perspective for working with Java projects, a Debug Perspective for tracking down runtime problems, a CVS Perspective for managing CVS connections, and many more. In fact, the number of Perspectives and Views is extensible, as is most every part of Eclipse. The IDE offers numerous ways to plug in and augment the existing functionality, which is taken advantage of by many in the Eclipse community.

Eclipse has Properties for all its Resources as well as its Projects. If you right-click on anything in the list at left, you can select "Properties" to view more detailed information. For files, you can see some basic information about the file itself, like modification dates, location, and permissions. For projects, more advanced options are available that allow you to set up the way that Eclipse will build that project.

If you click on "Java Build Path," you will see four tabs to control build behavior. The first is "Source," which lets you set up where Eclipse will look for source files, and specify which source files to use and which to ignore. The next tab is "Projects," which allows you to set what projects the current project depends on, so that you can set up some libraries or common code in one project and simply include it from other projects.

Speaking of "Libraries," the next tab is named just that and allows you to put JAR files, Libraries, and Class Folders onto the classpath. Finally, you can specify what resources are exported by this project, so that this project's properties will be applied to other projects that import this project.

Eclipse is built around the large source view in the middle, and that's where all of the editing occurs. But note a few things that Eclipse provides aside from the simple text view. First, there is a small trough on the left of the text that Eclipse will use to stash icons that communicate interesting information. A red "x" appears next to lines that Eclipse can't compile. A yellow "warning" street sign appears next to code when Eclipse finds something it thinks is probably wrong, like an unused import statement (as shown in Figure 1).

Second, the code in question can be underlined with an appropriate color. Again, red underlining indicates a compilation error, and yellow indicates a warning. Finally, to the right of the scrollbar, there is another small trough. Once again, colors are used to convey information: red blocks mark code areas with errors, and yellow blocks mark code areas with warnings. Clicking on a block will move the cursor directly to the code in question. Hovering over any of these three color-coded items (icons, underlines, or blocks-all of which are shown in Figure 1) will open a description of the related problem. Right-clicking will bring up a contextual menu.

Automatic Builds
One of the first things you will notice about using Eclipse for Java development is how smart it is about compiling. Go into the preferences (Window Menu > Preferences) and enable automatic building (Workbench > Build Automatically). Now, whenever you save a file, Eclipse will silently build that file and those that depend upon it. As a result, the next time you want to run your application, most of it is already saved and up-to-date. This can be a real timesaver when you are working on a large code base. The simplicity of this feature makes it one of the first things you'll miss if you're forced back onto some other IDE.

The underlying principal here is one that will surface over and over as you use Eclipse: the IDE understands the code. Eclipse is not just a compiler that can deal with the code and everything else on a file-centric basis. Rather, Eclipse has the smarts to look at the source and deal with it intelligently. Its smart compilation capability demonstrates that intelligence by its understanding of the dependencies expressed in the import statements.

Smart Searching
Eclipse has a very smart Search feature (Search Menu > Search), which allows you to search for occurrences of any string within a file, the entire project, or arbitrary groups of files. That's great, but it gets better. The Java Search (Search Menu > Java) allows you to limit the search to only find classes, methods, types, or other Java-savvy categories. Eclipse can find all of the method implementations that start with "set," and you can easily find all of your write accessors. Better yet, you can control-click on any method invocation to go to its implementation. Or control-click a class name to go to its implementation. To move the other way, you can right-click a method and find all places where it is used (References > Project). Eclipse's understanding of the code helps it navigate a large code base, and you reap the benefit.

"TODO" Task Link Creation
Eclipse can also remind you about tasks you still need to perform. Many developers add TODO comments into their code when they need to remember a specific task that has yet to be completed, or a certain case that needs to be handled. Eclipse once again draws on its knowledge of Java structure to find any comment that starts a line with TODO and marks it into a special View called Tasks (see it by opening Window Menu > Show View > Other > Basic > Tasks). In this way, Eclipse can provide a comprehensive list of all the tasks that still need to be performed.

Moreover, you can configure Eclipse to recognize other tags that you define. Open the Preferences (Window Menu > Preferences) and browse to the "Task Tags" page (Java > Task Tags). You can add new tags, remove the existing ones, set priorities for different tags, and specify a default for code that Eclipse writes for you.

Code Writing
You'll find that Eclipse can actually write code for you. Right-click a source file and look in the "Source" submenu. These are just a few of the ways that Eclipse can modify or extend your source code, taking a little of the boring work on itself to save you the effort. One of the most useful code writing capabilities is the "Generate Getters and Setters" option, which will scan a class for fields and generate appropriate accessor methods for those fields.

If you select it, a window will pop up to allow you to specify which fields you want accessors for, and which accessors you want (get, set, or both). You can also specify what access the generated methods will have (public, private, etc). Similarly, Eclipse can generate constructors based on the superclass, as well as methods to override or encapsulate superclass methods.

Refactoring
One of Eclipse's most powerful features is its robust support for refactoring. Highlight a method and right-click it, then look at the "Refactor" submenu. If you use this method to change a method name, Eclipse will locate all invocations of this method and change those invocations to use the new method name. You can also change the method signature by adding arguments and having Eclipse change all the existing calls to add that argument, using whatever value you specify. Additionally, you can remove arguments you've decided are unnecessary, or simply rearrange arguments to make the interface more consistent. Refactoring can also work on the class level, where you can pull internal classes into their own files, or move classes to other packages.

Robust Undo Support
Another wonderful feature is called the "Local History," which is a sort of super-simple local CVS repository. Every time you save a file, Eclipse will remember that save and allow you to revert back to it if needed. It remembers saves for the past seven days by default (this can be changed in Window Menu > Preferences > Workbench > Local History).

This can be a lifesaver when you tackle some new feature and end up breaking an unrelated feature. You can do a quick diff between the two versions and see what changes you've made, and you can undo your changes back to the previous version, or the version from yesterday. Better yet, you can revert only certain methods, and keep the changes in other methods.

JUnit Integration
Eclipse is also easy to use with the JUnit framework. If you have classes written to the JUnit standard, you can select the class in the Resources view at left and run the tests (Run Menu > Run As > JUnit Test). Eclipse will automatically find the defined test suite and run all the tests in it, using its own custom UI to display the tests run and the problems found. The familiar JUnit green line turns red if any of the tests fail, and Eclipse will show you the stack trace that generated the failure.

Let Eclipse Do It
So as you can see, Eclipse offers a host of features that make a developer's life easier by taking some of the drudgework and automating it. And because of the platform's architecture, there's a good chance that you can find a plugin that will help you with your specific task. If you can't find it, you can always use Eclipse to write it!

About Seth Roby
Seth Roby has spent his time at Parasoft training representatives from Fortune 500 companies in the Automated Error Prevention methodology. In his role as a Professional Services Engineer, he has written white papers about the process of testing, the infrastructure necessary to ensure quality code, and many other subjects. He has also written and taught courses on Unit Testing practices, with a focus on Java and JUnit. He lives with his wife Sonja in Costa Mesa, CA.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Thanks much for this article. It was a good place for me to start.


Your Feedback
Eclipse beginner wrote: Thanks much for this article. It was a good place for me to start.
SOA World Latest Stories
In Aug 2011, around 72 million people accessed social networking sites from mobile, increase of 37% from previous year (study by ComScore) and nearly 50% (of 72 million) access networking sites almost every day. Devising a cohesive strategy for addressing both mobility and social medi...
In a surprise move on Tuesday, January 10, Oracle wheeled out its Big Data Appliance. That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make the fi...
A Munich court Thursday found Motorola Mobility guilty of infringing an Apple patent and handed Apple a permanent injunction against two Android smartphones. Apple can enforce the injunction after posting a bond lest MMI succeed in invalidating the slide-to-unlock patent (EP1964022) ...
Quick Response (QR) codes are intended to help direct users quickly and easily to information about products and services, but they are also starting to be used for social engineering exploits. This article looks at the emergence of QR scan scams and the rising concern for users today....
The Chinese company that claims it owns the iPad trademark says it plans to seek a ban on iPad exports out of China, threatening global supplies. According to what a lawyer for Proview Technology (Shenzhen) Co Ltd told Reuters, the firm is petitioning Chinese customs to stop shipment...
Cisco Wednesday filed suit in the European Union’s second-highest court, the General Court in Luxembourg, challenging the European Commission’s rubber stamp last October of Microsoft’s $8.5 billion acquisition of Skype. Cisco says it isn’t opposed to the merger, but figures the EC sh...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE