HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The revision of the best-selling Eclipse book on the market, completely revised for Eclipse 3.0!
° Loaded with examples and exercises that reinforce knowledge and support selfpaced learning
° Author team has extensive Eclipse training experience and provides proven learning tips and techniques
° Over 18M downloads of Eclipse so far
“Fully updated and revised for Eclipse 3.0, this book is the definitive Eclipse reference—an indispensable guide for tool builders, rich client application developers, and anyone customizing or extending the Eclipse environment.”The Ultimate Guide to Eclipse 3.0 for the Java Developer. No Eclipse Experience Required!
—Dave Thomson, Eclipse Project Program Director, IBM
Eclipse is a world-class Java integrated development environment (IDE) and an open source project and community. Written by members of the IBM Eclipse Jumpstart team, The Java™ Developer’s Guide to Eclipse, Second Edition, is the definitive Eclipse companion. As in the best-selling first edition, the authors draw on their considerable experience teaching Eclipse and mentoring developers to provide guidance on how to customize Eclipse for increased productivity and efficiency.
In this greatly expanded edition, readers will find
Using this book, those new to Eclipse will become proficient with it, while advanced developers will learn how to extend Eclipse and build their own Eclipse-based tools. The accompanying CD-ROM contains Eclipse 3.0, as well as exercise solutions and many code examples.
Whether you want to use Eclipse and Eclipse-based offerings as your integrated development environment or customize Eclipse further, this must-have book will quickly bring you up to speed.
Visit the author's web site to take a "sneak peek" of the Companion CD
Download the Sample Chapters related to this title.
Foreword.
Preface.
Origin of the Book.
Goals.
Intended Audience and Prerequisites.
How the Book Is Organized.
Coding Conventions.
CD-ROM.
Where to Find Further Information.
Guide to Reading This Book.
Acknowledgments.
About the Authors.
1. Read Me First.
Eclipse as a Host for Application Development Tools.
Beyond Tools: Eclipse as a Host for Client Applications.
What Is Eclipse?
Getting and Installing Eclipse.
Chapter Summary.
References.
I. USING ECLIPSE.
2. Getting Started with Eclipse.
Your First Steps.
Basic Eclipse Use.
Resource Management.
Customizing Eclipse.
Exercise Summary.
Chapter Summary.
Reference.
3. Using Java Development Tools.
Getting Started with JDT.
Writing Java Code.
Working with Java Elements.
Tuning the Performance of the JDT.
More on the JDT Views and Preferences.
Exercise Summary.
Chapter Summary.
Reference.
4. Running and Debugging Java.
Running Java Code.
Debugging.
Remote Debugging.
Exercise Summary.
Chapter Summary.
Reference.
5. Teaming Up with Eclipse.
Eclipse Support for CVS.
General Team Support by Eclipse.
An Overview of CVS for the Novice.
The CVS User Interface in Eclipse.
Special Situations and How to Handle Them.
Additional Features.
Exercise Summary.
Chapter Summary.
References.
6. Managing Your Eclipse Environment.
An Overview of Your Eclipse Installation.
Understanding the Runtime Configuration.
Coordinating Preferences.
Understanding Configuration Management Fundamentals.
Interacting with the Update Manager.
Managing Your Configuration.
Chapter Summary.
Reference.
II. FUNDAMENTALS OF EXTENDING ECLIPSE.
7. Extending Eclipse for Fun and Profit.
Excited About Extending Eclipse? You Should Be!
An Easy and Practical Example.
A Brief Tour of "Hello, World".
Asking the Right Question Is More Important Than Knowing the Answer.
Where to Go from Here?
8. Overview of the Eclipse Architecture.
That Was Then, This Is Now.
Architectural Top Priorities: Extensibility and Integration.
Eclipse the IDE Platform and Rich Client Application.
The Eclipse Platform Runtime.
User Interface Frameworks.
Workbench Frameworks.
Chapter Summary.
References.
9. Getting Started: Plug-in Development.
Getting Started with Plug-ins.
Getting Started with Extensions and Extension Points.
Basic Steps of Implementing a Plug-in.
Using the Plug-in Development Environment.
Exercise Summary.
Chapter Summary.
References.
10. Creating Applications Using the Rich Client Platform.
Reasons Applications Are Being Built on the RCP.
Eclipse Architecture, Revisited.
Opportunities for Reuse of Eclipse.
Implementing Your Own Workbench.
Exercise Summary.
Chapter Summary.
References.
11. Creating Extension Points: How Others Can Extend Your Plug-ins.
Relationship Between Extension Points and Extensions.
Viewing the Official List of Enabled Plug-ins, Extensions, and Extension Points.
How to Define Extension Points.
Handling Dynamic Plug-ins.
How to Enable the Schema-Based New Extension Wizard.
Example Summary.
Chapter Summary.
References.
12. Advanced Plug-in Development.
Migrating Your Plug-ins from Eclipse 2.1.
Plug-in Class Loader.
Runtime Discovery and Delayed Loading.
Forcing Early Plug-in Activation.
Plug-in Granularity.
Plug-in Fragments.
Chapter Summary.
References.
13. Defining Features and Products.
Features.
Products.
Exercise Summary.
Chapter Summary.
References.
III. EXTENDING THE ECLIPSE WORKBENCH.
14. The Standard Widget Toolkit: A Lean, Mean Widget Machine.
The Basic Structure of an SWT Application.
Common SWT Widgets.
Responding to Events.
How to Arrange SWT Widgets Using Layout Managers.
Error Handling.
Widgets Have Special Disposal Requirements.
Using Threads to Separate UI and Non-UI Activities.
An Overview of SWT Packages.
SWT Support for Swing.
Eclipse Forms.
Example Summary.
Chapter Summary.
References.
15. JFace Viewers.
Viewer Basics.
Viewer Framework.
Creating the Basic Content Viewer Arrangement.
Controlling the Content Displayed in a Structured Viewer.
Interacting with Viewer Objects.
Using Alternative Viewer Types.
Advanced Workbench Integration Options.
Example Summary.
Chapter Summary.
References.
16. Dialogs and Wizards.
Dialogs-The User Interface Beyond Workbench Parts.
Contributing to the Preferences Dialog.
Contributing to the Properties Dialog.
Contributing Wizards.
Directly Opening a Wizard Dialog for Your Wizard.
Example Summary.
Chapter Summary.
References.
17. Dialog Settings, Preferences, and User Settings.
Overview of the Options.
Storing Values in Dialog Settings.
Storing Preference Values for a Plug-in.
Scoped Value Management with User Settings.
Example Summary.
Chapter Summary.
References.
18. Views.
Views: The General-Purpose Workbench Part.
View Implementation.
Supporting Action Contributions.
Interacting with Other Workbench Components.
Examples Summary.
Chapter Summary.
References.
19. Editors.
Editor Behavior and Architecture.
Basic Implementation Steps.
Beyond the Basic Implementation Steps.
Example Summary.
Chapter Summary.
References.
20. Perspectives.
Creating a Perspective.
Using the perspectiveExtensions Extension Point.
Example Summary.
Chapter Summary.
Reference.
21. Action Contributions: The Integration Fast Track.
Action Contribution Extension Points.
The Fundamentals of Action Contributions.
Contributing to the Workbench Menu Bar and Toolbar.
Contributing to the View's Menu and Toolbar.
Contributing to an Editor's Menu and Toolbar.
Contributing Context Menus to Views and Editors.
Assigning Accelerator Keys to Your Actions.
Example Summary.
Chapter Summary.
References.
22. Providing Help.
Integrating Your Online Documentation.
Creating Context-Sensitive Help.
Running the Standalone Help Infocenter.
Customizing Your Help System.
Example Summary.
Chapter Summary.
References.
IV. EXTENDING THE ECLIPSE IDE.
23. Workspace Resource Programming.
Resource Concepts.
Workspace API.
Resource Properties.
Processing Workspace Resource Change Events.
Resource Modification Event Management.
Using Workspace Save Events to Save Critical Data.
Examples Summary.
Chapter Summary.
References.
24. Managing Resources with Natures and Builders.
Customizing Project Processing.
Defining and Implementing a Nature.
Defining and Implementing an Incremental Project Builder.
Example Summary.
Chapter Summary.
References.
25. Resource Tagging Using Markers.
Using Markers.
Adding New Marker Types.
Extending Markers with Generators for Resolution and Help Support.
Example Summary.
Chapter Summary.
References.
26. Building a Custom Text Editor with JFace Text.
Standard Text Editor Functions.
Editor Configuration: Customization Points.
Under the Covers of the Text Editor.
Example Summary.
Chapter Summary.
References.
27. Extending the Java Development Tools.
What Is the JDT and What Does It Do?
Java Model.
Accessing Reusable JDT Functionality.
Compiling Java Source Code.
Analyzing Java Source Code.
Manipulating Java Source Code.
Where the JDT Extends Eclipse.
Extending the JDT User Interface.
Examples Summary.
Chapter Summary.
References.
V. EXTENSIBILITY SPECIAL TOPICS.
28. Serviceability.
Plug-in Diagnostics: System and Configuration Information.
Eclipse Status Objects: A Status Collector.
Exception Handling: Error Detection.
Error Dialogs: Providing Detailed Status in Error Messages.
Runtime Tracing: A Runtime Diagnostic Tool.
Using Tracing in a Production Environment.
Diagnostics: A Comprehensive Error Log.
Error Logging: Writing to the Workbench Error Log.
Example Summary.
Chapter Summary.
Reference.
29. Implementing Responsiveness and Concurrency Using Jobs.
Concurrency Framework.
Using Jobs.
User Interaction Options.
Job Contention Management Options.
Example Summary.
Chapter Summary.
References.
30. Using Capabilities to Manage Too Much of a Good Thing.
Introducing Capabilities.
The Capabilities Extension Point.
Defining Primary Wizards.
The Activities API.
Defining Your Own Triggers.
Example Summary.
Chapter Summary.
References.
31. Internationalization and Accessibility.
What Does Internationalization Affect in Your Plug-in?
Internationalization Steps.
Accessibility.
Example Summary.
Chapter Summary.
References.
32. Performance Tuning.
Why Eclipse Should Start Quickly.
Diagnosing Startup Problems Using the Runtime Spy.
Case Study: Improving IBM WebSphere Studio's Startup.
Avoiding Performance Regressions Using the Performance Monitor.
Common Solutions to Eclipse-Specific Performance Problems.
Chapter Summary.
References.
33. Swing Interoperability.
Embedding AWT and Swing in Views and Editors.
Launch-and-Edit Integration.
ABCEditor Example-In-Process Invocation.
Example Summary.
Chapter Summary.
References.
34. OLE and ActiveX Interoperability.
COM Support in Eclipse.
COM Container Support.
OLE Automation-Accessing Extended Behavior.
Example Summary.
Chapter Summary.
Reference.
VI. EXERCISES.
Exercise 1: Using Eclipse.
Section 1: Your First Eclipse Project.
Section 2: Editors and Views.
Section 3: Working with Resources.
Section 4: Perspectives.
Section 5: Using Multiple Eclipse Windows and Workspaces.
Section 6: Getting Assistance.
Exercise Activity Review.
References.
Exercise 2: Using Java Development Tools.
Section 1: Hello World.
Section 2: Quick Fix.
Section 3: Code Generation.
Section 4: Refactoring.
Exercise Activity Review.
References.
Exercise 3: Running and Debugging Java.
Section 1: Launch Configurations.
Section 2: Debugging.
Section 3: Debugging II.
Section 4: Debugging Threads.
Section 5: Remote Debugging.
Exercise Activity Review.
References.
Exercise 4: Developing a Simple Web Commerce Application with Eclipse.
Exercise Setup.
Section 1: Setting up the Runtime Environment.
Section 2: Creating a Project for the Example.
Section 3: Debugging the Example.
Section 4: Deploying the Example.
Exercise Activity Review.
References.
Exercise 5: Working as a Team with CVS.
Exercise Setup.
Section 1: Getting Started.
Section 2: Updating, Committing, and Resolving Conflicts.
Section 3: Branching and Merging.
Exercise Activity Review.
Reference.
Exercise 6: Developing Your First Plug-in.
Exercise Setup 954Section 1: "Hello, World" in Five Minutes or Less.
Section 2: "Hello, World" with Detailed Step-by-Step Instructions.
Section 3: Testing with the Runtime Workbench.
Section 4: Debugging with the Runtime Workbench.
Section 5: Defining a Feature to Support the Plug-in.
Section 6: Deploying a Feature and Its Associated Plug-ins.
Section 7: Exploring (and Sometimes Correcting) the Eclipse Platform Code.
Section 8: Correcting Common Problems.
Exercise Activity Review.
Exercise 7: Developing Your First Rich Client Application.
Exercise Setup.
Getting Started.
Section 1: Creating an Application Extension.
Section 2: Creating a Perspective Extension.
Section 3: Creating a Workbench Advisor.
Section 4: Implementing the Application's Main Program.
Section 5: Running and Testing Your RCP Application.
Section 6: Configuring Workbench Window User Interface Elements.
Section 7: Adding Menu and Toolbar Actions.
Section 8: Deploying Your Application.
Section 9: Adding "Optional" Components.
Exercise Activity Review.
Exercise 8: Developing a Rich Client Application with Dynamically Added Plug-ins.
Exercise Setup.
Section 1: Create Your RCP Application Launch Configuration.
Section 2: Implement Your Plug-in Life Cycle start() Method.
Section 3: Implement Your Configurator.
Section 4: Develop a Simple Plug-in Discovery Mechanism.
Section 5: Installing the Bonus Pack Dynamically.
Exercise Activity Review.
Exercise 9: Deploying Your Product Using Features.
Exercise Setup.
Section 1: Tasks of a Feature Developer.
Section 2: Tasks of an Eclipse User.
Section 3: Tasks of a Product Developer.
Section 4: Tasks for a Product Service Team-Implementing an Update Site.
Section 5: Tasks of an Eclipse User-Redux.
Exercise Activity Review.
Index.
Starting in late 1999, the authors formed the core of a group within IBM called the Eclipse Jumpstart team. The team was created to share knowledge of what would become Eclipse technology throughout IBM and with its business partners—that is, to “jumpstart” the IBM and IBM partner development community on Eclipse. Part of this effort included the creation of a set of presentations, lecture materials, and accompanying exercises. Over the ensuing months, as the Eclipse technology matured, the presentations and exercises matured as well. As the Eclipse community grew to include various companies and academic institutions, requests for this information also grew. After every class we taught, we revised and improved the materials. When our schedules could not keep pace with the demand, we adapted the materials and made them available for use in a self-study mode. This was the genesis of this book. You can think of each chapter in the book as a classroom lesson. The exercises and examples reinforce the concepts of the chapters and provide you with practice using or extending aspects of Eclipse.
Late 2003 found most of the original authors still actively engaged in Eclipse. We have been unexpectedly and very pleasantly surprised with the public acceptance of the first edition. The public and private commentary on the first edition was very positive. In July 2004 the first edition received an Editors’ Choice Award from the Java Developers Journal. The authors express their sincerest thanks and appreciation to our many readers. With the first edition barely six months old, we realized that Eclipse 3.0 would be very special and has the potential to take Eclipse to new heights. It will reach a much larger developer community and potentially millions of users now that Eclipse is not limited to integrated development environments (IDEs) but can host any kind of client application. The authors remain passionate about this technology and the opportunities it offers for innovative tools and applications. We decided to create a second edition earlier than planned. Our objectives for the second edition were to upgrade the book to Eclipse 3.0, improve it based on reader feedback, and add a select number of new topics. This edition is nearing the limit in sheer weight and volume that anyone should have to carry. We hope it continues to serve you and the Eclipse community well.
Final screenshots in this book were created just as Eclipse 3.0 was about to ship. There may be minor discrepancies between the images in this book and the final version of Eclipse.
We have several goals in bringing this book to you.
Although the term “Eclipse” conveys the image of a solar event causing darkness, the intent of this book is to shed light, add clarity, and focus on a powerful new platform. Whether you are new to Eclipse or one of the early adopters, we welcome you to the Eclipse community.
The audience for this book includes Java programmers who plan to use Eclipse as their development environment, those who will use Eclipse-based offerings, advanced users who want to customize Eclipse further, tool providers who seek to develop tools that will integrate with Eclipse, and application developers who want to use Eclipse as the framework for their client applications. Prior experience with Eclipse is not necessary; however, this book assumes that you are familiar with the Java programming language. While it describes how to use the Java Development Tools provided by Eclipse, it does not teach the syntax and semantics of the Java programming language.
This comprehensive book can help you learn to use and extend Eclipse. After you have mastered the basics, you will likely use this book as a reference. To help you learn Eclipse, you should start with the Guide to Reading This Book section. It breaks down this formidable text into manageable chunks that you can read in a sequence better suited for learning.
The book is divided into six parts. Part I, Using Eclipse, applies to those using Eclipse as their development environment. The book begins by covering the basic navigation and terminology of Eclipse. You will learn about the Java development environment, including secrets to becoming a power user. Using Eclipse in a team programming environment is explained. You will learn how to use the flexibility of Eclipse to maximize your productivity and fit your own personal style. Students who are studying the Java programming language may find using Eclipse, instead of simply a command line environment, a much more productive and exciting way to learn the richness and power of the language. Instructors may discover how using Eclipse in the classroom will accelerate the student’s mastery of the language and be a productive tool to use in research.
Part II, Fundamentals of Extending Eclipse, focuses on the important elements of extending Eclipse independent of whether you are extending Eclipse to develop tools or creating a client application. It covers the architecture of Eclipse, how to develop plug-ins, the creation of client applications using the rich client support, how to make your plug-ins extensible to others, and packaging and deployment.
Part III, Extending the Eclipse Workbench, covers the most commonly required topics to extend Eclipse functionality. Using the Eclipse architecture as a base, Part III covers the frameworks needed to extend the Eclipse user interface. It covers basic graphical user interface (GUI) development using the Standard Widget Toolkit (SWT), dialogs and wizards, menus, viewers, views, editors, perspectives, and online documentation.
Part IV, Extending the Eclipse IDE, focuses on those services that apply when extending Eclipse as an IDE. This is in contrast to Part II, which covers services that apply to both IDE-based and non-IDE-based applications. Part IV includes topics like accessing the workspace and extending the Java Development Tools.
Part V, Extensibility Special Topics, rounds out your knowledge of Eclipse by covering a variety of topics that you may not need right away or that are specialized to specific situations. Chapters covering serviceability, Swing interoperability, concurrency, capabilities, performance tuning, OLE and ActiveX support (Windows), and internationalization are among the topics in Part V.
Learning in a programming environment without actually writing code is difficult. Part VI, Exercises, contains a series of detailed exercises to reinforce the concepts presented in the book. Part VI depends on the files included on the CD-ROM. The CD-ROM contains solutions to all of the exercises and contains many code samples augmenting the material in the chapters. The exercises do not depend on one another, so you can perform them in any order.
Many chapters contain a reference to the book Official Eclipse 3.0 FAQs by John Arthorne and Chris Laffra (Boston, MA: Addison-Wesley, 2004). We recommend it as a complementary addition to this book. Specific frequently asked questions (FAQs) that augment the chapter content are cited in the chapter references and on the CD-ROM. See also http://eclipsefaq.org.
Download the Foreword
file related to this title.
Download the Index
file related to this title.