Download presentation
Presentation is loading. Please wait.
Published byEileen Bond Modified over 9 years ago
1
Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at http://www.eclipse.org/eclipse/presentation/eclipse-slides.ppt
2
Objectives and Outline Myth: “Eclipse is a Java IDE” How does Eclipse support Application developer Platform developer System administrator Outline Eclipse philosophy and architecture Plug-ins Eclipse productivity features for software developers Rational Software Architect (RSA)
3
Eclipse Project Aims Provide open platform for application development tools “Open extensible platform for anything and nothing in particular” Language agnostic Must teach Eclipse about types (editors, compilation, execution) Accomplished with plug-ins – editors, views, perspectives Permit unrestricted content types - HTML, Java, C, JSP, EJB, XML, Word, PPT Facilitate seamless tool integration At UI and deeper through plug-in extension points Easily add new tools to existing products Attract community of tool developers Including independent software vendors (ISVs) Capitalize on popularity of Java for writing tools Adopted by major vendors
4
Workbench Terminology Tool bar Perspective and Fast View bar Resource Navigator view Stacked views Properties view Tasks view Outline view Bookmarks view Menu bar Message area Editor Status area Editor
5
Editors, Views, and Perspectives Workbench (1) Window (0-N) Page (0-1) – an arrangement of views and editors defined by a perspective Editors - Open, edit, save, close lifecycle Customized for various content types – Java, XML, C++, … Views Provide information on some object Views augment editors (ex/ Outline view summarizes content) Views augment other views (ex/ Properties view describes selection) Perspectives Arrangements of views and editors Different perspectives suited for different user task Task orientation limits visible views, actions
6
Brief History of Eclipse 1999 April- Work begins on Eclipse inside OTI/IBM 2000 June - Eclipse Tech Preview ships 2001 March- http://www.eclipsecorner.org/ openshttp://www.eclipsecorner.org/ June- Eclipse 0.9 ships October- Eclipse 1.0 ships November- IBM donates Eclipse source base - eclipse.org board announced – independent control - http://www.eclipse.org/ openshttp://www.eclipse.org/ 2002 June- Eclipse 2.0 ships 2004 June- Eclipse 3.0 ships
7
Eclipse Architecture Microkernel – everything is a plug-in RCP – minimal set of plug-ins for a rich client application IDE – plugins for application development Products simply sets of plug-ins – not necessarily hierarchical Rich Client Platform (~6M) IDE (factored out in 3.0) JDTCDT RCP Example - Eclipse Trader http://sourceforge.net/projects/eclipsetrader/ EMF RSA (IBM Rational) Partner … Base Community Commercial Customer
8
What’s in the RCP? Compelling value proposition Leverage large community of plug-ins Help, automatic update, search, compare, CM Branding Focus effort on core competencies
9
Windows, Views, Perspectives Code compilation, execution, debugging Tool integration (ant, tomcat) Eclipse Demo
10
Eclipse Plug-ins Eclipse is a microkernel architecture Everything is a plug-in Behavior provided through plug-ins that communicate via Eclipse APIs Plug-in structure Set of contributions (menu actions, editors, views, tool tips, preferences, etc.) Define extension points for integration between plug-ins Scope Currently ~600 3rd party plug-ins Rational Software Architect has ~1700 plug-ins
11
Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their Tool Your Tool Another Tool Eclipse Architecture Overview Plug-in Development Environment (PDE) Eclipse Platform Debug
12
Eclipse Plug-in Terminology Plug-in - smallest unit of Eclipse function Big example: HTML editor Small example: Action to create zip files Extension point - named entity for collecting “contributions” Example: extension point for workbench preference UI Extension - a contribution Example: specific HTML editor preferences Fragment - holds some of plug-in’s files Separately installable Logical plug-in = Base plug-in + fragments
13
Type of Plug-ins Containment - contains all code for tool’s execution Must execute inside Eclipse Examples – AspectJ Reference – connects to tool installed externally May or may not execute inside Eclipse Examples – Sysdeo Tomcat Plug-in installation Install as zip file Use the plug-in installer Installs plug-ins via the web Can automatically search for latest updates
14
Menu items and toolbars Descriptor information – plugin.xml, manifest Simple Plug-in Demo
15
Java Development Tools (JDT) State of the art Java development environment Packed with productivity features and niceties Built atop Eclipse Platform Implemented as Eclipse plug-ins Using Eclipse Platform APIs and extension points Included in Eclipse Project releases Available as separately installable feature Part of Eclipse SDK drops
16
JDT Goals Goal: To be #1 Java IDE Goal: To make Java programmers smile JDT elements Several views Java editor Incremental compiler Debugger Overkill of configurable preferences Useful keystrokes - space, 1, right-click
17
Java Editor “When coding, code is centric” Put all everything (information and actions) around code Help Java developers write good code Auxiliary views Package Explorer Outline Browse Type Hierarchy Search Inside current editor with highlighting Includes javadoc if source is available Across project or entire workspace Spell check
18
Java Editor: At your fingertips Text manipulation Tab indentation Comment/uncomment select code Add a comment Automatic reformatting Add overriding method Generate attribute getter and setter methods Externalize strings to resource bundle for internationalization Code templates and completion Compound statements – for, while, try, etc. (control-space) Create inherited method stubs (Source-Override Methods) Callable methods (‘.’) Lists methods – add javadoc!
19
Java Editor: At your fingertips (cont) Code Review Semantic indications of issues in multiple locations – Explorer, Editor, Problems pane Quick Fix automatically updates source for common solutions Programming by intention Productivity tricks that mimic usage patterns Example – add a parameter to constructor and update rest of system Example – externalize Strings for internationalization
20
Refactoring Refactoring actions rewrite source code Within a single Java source file Across multiple interrelated Java source files Refactoring actions preserve program semantics Does not alter what program does Just affects the way it does it Value add Encourages exploratory programming Facilitates Agile programming techniques Encourages higher code quality Makes it easier to refactor poor code
21
Java Editor: Refactoring Examples Promote/demote properties in inheritance hierarchy Create an interface from existing class Generalize a type to a supertype in declarations Inline a method invocation Move local variable to attribute Rename class Updates all usages Move a class to another package Adds imports for all usages Can ‘undo’ all refactoring changes
22
Rational Software Architect Part of the Software Development Platform (SDP) Merging of several Rational products “RSA is the most feature-rich product” – IT Manager’s Journal 3/25/05 Compared Borland, IBM, Oracle, Sun http://productguide.itmanagersjournal.com/pg/05/03/26/148205.shtml?tid=14487&tid=11105&tid=106 Rational Software Architect Rose Eclipse WebSphere XDE Clear Case Req Pro …
23
RSA Features Modeling ala Rose/XDE (built on top of EMF) But, supports *all* UML diagrams and UML 2.0 Compare and merge models Transformations from UML models (Java, C++, EJBs) Integration with application servers ‘Code Review’ – Preferences ->Java->Code Review Lots of opportunities for customer and partner enhancements Built on the Eclipse open, extensible plug-in model Why extend? Generate design and architecture documents Metrics reports Import/export “Integration” - duct tape and glue* *credit to Joe Mooney, General Dynamics
25
Extending Eclipse and RSA Looks Familiar?
26
Eclipse Domain Broader than Software
27
For More Information Eclipse http://www.eclipse.org/ Rich Client Platformhttp://www.eclipse.org/rcp/ Eclipse plug-inshttp://www.eclipseplugincentral.com/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.