Presentation is loading. Please wait.

Presentation is loading. Please wait.

Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang Many slides in this presentation can be found at

Similar presentations


Presentation on theme: "Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang Many slides in this presentation can be found at"— Presentation transcript:

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

24

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/


Download ppt "Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang Many slides in this presentation can be found at"

Similar presentations


Ads by Google