everything i always wanted to know about eclipse harry koehnemann rocket gang [email protected]...

27
Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang [email protected] Many slides in this presentation can be found at http://www.eclipse.org/eclipse/presentation/eclipse-slides.ppt

Upload: eileen-bond

Post on 12-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 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

Everything I Always Wanted to Know about Eclipse

Harry KoehnemannRocket Gang

[email protected]

Many slides in this presentation can be found at http://www.eclipse.org/eclipse/presentation/eclipse-slides.ppt

Page 2: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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)

Page 3: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 4: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Workbench Terminology

Tool bar

PerspectiveandFast Viewbar

ResourceNavigatorview

Stackedviews

Propertiesview

Tasksview

Outlineview

Bookmarksview

Menu bar

Messagearea

EditorStatusarea

Editor

Page 5: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 6: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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/ opens 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/ opens

2002 June - Eclipse 2.0 ships

2004 June - Eclipse 3.0 ships

Page 7: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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)

JDT CDT

RCP Example - Eclipse Traderhttp://sourceforge.net/projects/eclipsetrader/

EMF

RSA (IBM Rational)

Partner

Base

Community

CommercialCustomer

Page 8: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 9: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Windows, Views, Perspectives Code compilation, execution, debugging Tool integration (ant, tomcat)

Eclipse DemoEclipse Demo

Page 10: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 11: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Platform Runtime

Workspace

Help

Team

Workbench

JFace

SWT

Eclipse Project

JavaDevelopment

Tools(JDT)

Their Tool

Your Tool

AnotherTool

Eclipse Architecture Overview

Plug-inDevelopmen

tEnvironment

(PDE)

Eclipse Platform

Debug

Page 12: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 13: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 14: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Menu items and toolbars Descriptor information – plugin.xml, manifest

Simple Plug-in DemoSimple Plug-in Demo

Page 15: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 16: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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 - <ctrl>space, <ctrl>1, right-click

Page 17: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 18: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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!

Page 19: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 20: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 21: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 22: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

WebSphereXDE

Clear CaseReq Pro

Page 23: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

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

Page 24: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at
Page 25: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Extending Eclipse and RSA

Looks Familiar?

Page 26: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

Eclipse Domain Broader than Software

Page 27: Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang harry@rocketgang.com Many slides in this presentation can be found at

For More Information

Eclipse http://www.eclipse.org/

Rich Client Platform http://www.eclipse.org/rcp/

Eclipse plug-ins http://www.eclipseplugincentral.com/