Welcome!

Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Eclipse, Weblogic

Eclipse: Article

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!

More Stories By 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.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Eclipse beginner 04/06/05 05:56:35 AM EDT

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

@ThingsExpo Stories
Nordstrom is transforming the way that they do business and the cloud is the key to enabling speed and hyper personalized customer experiences. In his session at 21st Cloud Expo, Ken Schow, VP of Engineering at Nordstrom, discussed some of the key learnings and common pitfalls of large enterprises moving to the cloud. This includes strategies around choosing a cloud provider(s), architecture, and lessons learned. In addition, he covered some of the best practices for structured team migration an...
Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, discussed how they built...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even coding. Raju Shreewastava is the founder of Big Data Trunk (www.BigDataTrunk.com), a Big Data Training and consulting firm with offices in the United States. He previously led the data warehouse/business intelligence and B...
In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, led attendees through the exciting evolution of the cloud. He looked at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering m...
With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, examined the regulations and provided insight on how it affects technology, challenges the established rules and will usher in new levels of diligence arou...
The 22nd International Cloud Expo | 1st DXWorld Expo has announced that its Call for Papers is open. Cloud Expo | DXWorld Expo, to be held June 5-7, 2018, at the Javits Center in New York, NY, brings together Cloud Computing, Digital Transformation, Big Data, Internet of Things, DevOps, Machine Learning and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding busin...
Smart cities have the potential to change our lives at so many levels for citizens: less pollution, reduced parking obstacles, better health, education and more energy savings. Real-time data streaming and the Internet of Things (IoT) possess the power to turn this vision into a reality. However, most organizations today are building their data infrastructure to focus solely on addressing immediate business needs vs. a platform capable of quickly adapting emerging technologies to address future ...
No hype cycles or predictions of a gazillion things here. IoT is here. You get it. You know your business and have great ideas for a business transformation strategy. What comes next? Time to make it happen. In his session at @ThingsExpo, Jay Mason, an Associate Partner of Analytics, IoT & Cybersecurity at M&S Consulting, presented a step-by-step plan to develop your technology implementation strategy. He also discussed the evaluation of communication standards and IoT messaging protocols, data...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
DevOps at Cloud Expo – being held June 5-7, 2018, at the Javits Center in New York, NY – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real results. Among the proven benefits,...
@DevOpsSummit at Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, is co-located with 22nd Cloud Expo | 1st DXWorld Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait...
Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major focus with the introduction of DX Expo within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive ov...
SYS-CON Events announced today that T-Mobile exhibited at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on qua...
SYS-CON Events announced today that Cedexis will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Cedexis is the leader in data-driven enterprise global traffic management. Whether optimizing traffic through datacenters, clouds, CDNs, or any combination, Cedexis solutions drive quality and cost-effectiveness. For more information, please visit https://www.cedexis.com.
SYS-CON Events announced today that Google Cloud has been named “Keynote Sponsor” of SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Companies come to Google Cloud to transform their businesses. Google Cloud’s comprehensive portfolio – from infrastructure to apps to devices – helps enterprises innovate faster, scale smarter, stay secure, and do more with data than ever before.
SYS-CON Events announced today that Vivint to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. As a leading smart home technology provider, Vivint offers home security, energy management, home automation, local cloud storage, and high-speed Internet solutions to more than one million customers throughout the United States and Canada. The end result is a smart home solution that sav...
SYS-CON Events announced today that Opsani will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Opsani is the leading provider of deployment automation systems for running and scaling traditional enterprise applications on container infrastructure.
SYS-CON Events announced today that Nirmata will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Nirmata provides a comprehensive platform, for deploying, operating, and optimizing containerized applications across clouds, powered by Kubernetes. Nirmata empowers enterprise DevOps teams by fully automating the complex operations and management of application containers and its underlying ...
SYS-CON Events announced today that Opsani to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. Opsani is creating the next generation of automated continuous deployment tools designed specifically for containers. How is continuous deployment different from continuous integration and continuous delivery? CI/CD tools provide build and test. Continuous Deployment is the means by which...