the eclipse ecosystem: exploring tools and plug-ins david gallardo

39
The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Upload: andrew-morgan

Post on 13-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

The Eclipse Ecosystem: Exploring Tools and Plug-ins

David Gallardo

Page 2: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Agenda• Overview of Eclipse Architecture• JDT plug-in examples:

– Log4E– AspectJ– Omondo EclipseUML

• IDE examples:– MyEclipse– IBM Rational Application Developer– CDT

• Developing an Eclipse RCP-based application• Haystack, BioDash and the Semantic Web• Some miscellaneous plug-ins

– Games, desk accessories…?

Page 3: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

My books• Java Oracle Database Development• Eclipse in Action, (lead author)• Eclipse in Action, 2nd edition due out in December

• Preview article, Introducing the Eclipse Visual Editor at:

http://www.manning.com/books/gallardo2

Page 4: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Updates and source code

Updates for presentation and source code for demos are available at:

http://www.gallardo.org

Page 5: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

Page 6: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

• “Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.”

(From http://www.eclipse.org)

Page 7: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

• “Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.”

(From http://www.eclipse.org)

Page 8: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

An Eclipse history lesson

• Based on Visual Age for Java developed by OTI Object Technology International (an IBM subsidiary)

• Written in Smalltalk• Source kept in repository (not file system)• Versioning at method level• Eclipse is VA4J ported to Java• Donated to the IBM-created Eclipse Consortium

Nov 2001• Consortium creates the Eclipse Foundation in Feb

2004

Page 9: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Eclipse is language neutral

• Written in Java, but provides language-neutral support

• First generalized as and open, extensible IDE framework

• Generalized even further, an open, extensible application framework

Page 10: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Visual Age for Java

Page 11: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Java IDE (JDT)

Eclipse Platform

Page 12: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Java IDE

Eclipse Platform

C/C++IDE More…

Page 13: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Java IDE

Eclipse RCP

C/C++IDE More…

Eclipse Tool Platform

Page 14: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

The Eclipse approach

• Generalize: Build a framework

• Develop a reference implementation--e.g. JDT

• Other examples:– Team support (CVS, ClearCase, Subversion,

VSS)– Visual Editor (Swing/AWT, SWT, …?)

Page 15: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

CVS

Team

Subversion More…

Page 16: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Swing/AWT

Visual Editor

SWT More…

Page 17: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

It’s a floorwax AND it’s a dessert topping!

Page 18: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

It’s a floorwax AND it’s a dessert topping!

Just kidding!

It’s a framework and a reference implementation

Page 19: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

• An open and extensible application framework – The Rich Client Platform

Page 20: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

• An open and extensible application framework – The Rich Client Platform

• A open tool platform for developing extensible IDEs

Page 21: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

What is Eclipse?

• An open and extensible application framework – The Rich Client Platform

• A open tool platform for developing extensible IDEs

• An extensible IDE, especially the Java Development Toolkit, built using the Eclipse Platform

Page 22: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

SWT• A replacement for Swing/AWT

– AWT controls were native, but took lowest-common denominator approach to achieve cross-platform compatibility

– Swing emulated controls don’t always match platform– Swing controls performed poorly relative to native

controls

• SWT took a hybrid approach– Thin layer over native controls – Emulated controls where native controls for a particular

platform aren’t available

• SWT applications have the look & responsiveness of native applications

• SWT is relatively simple and easy to use

Page 23: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

JFace

• Platform-independent framework built on top of SWT, which supplements SWT

• Adds features similar to those in Swing, particularly data models and pre-built components, that SWT lacks:– Viewer classes– Dialogs and wizards

• Also some JFace specials:– Actions and contributions– Image and font registries

Page 24: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Essential components for an RCP application

Page 25: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

The complete RCP framework

Page 26: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

A complete RCP application

Page 27: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

An Eclipse-based IDE

Page 28: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Extending an IDE with plug-ins

Page 29: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Eclipse open-source licensing

• Eclipse licensed under Common Public License

• Open Source Initiative compliant license• Open-source but non-viral, unlike GNU• Different parts can be covered by different

licenses• Free stuff must remain free• Additions can be protected

Page 30: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Commercial-friendly open-source

• Allows co-mingling of open-source and commercially developed code

• Basic functionality becomes a shared commodity and is developed once

• Competition occurs at a higher level

Page 31: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Some SWT apps

• Azureus - Bittorrent client that is one of the most popular apps on SourceForge.

• SQL Admin - Java client application to connect and send queries to different databases through JDBC.

• RSSOwl - Platform-independent application to gathers, organize, update, and store information from any RSS-compliant site.

Page 32: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

RCP benefits

• Framework for menus, toolbars, views, and perspectives

• Help

• Plug-in based—extensible

• Remote update

• Proven scaleable and extensible applications

Page 33: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Some open-source RCP apps

• BIRT - reporting system for web applications, especially those based on Java and J2EE

• GumTree - Multi-platform scientific workbench for performing scientific experiment under a server-client environment.

• Schoolclipse - An Eclipse RCP application for private school management.

• uDig GIS - Desktop Internet GIS providing a graphical interface to OGC standard internet mapping servers (WMS, WFS), local data files, and spatial databases.

Page 34: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Some commercial RCP apps

• IBM Workplace Managed Client - Server-managed access to messaging, documents, instant messaging, Activity Explorer, productivity tools, and data access.

• XMFMosaic - Next generation meta-modelling tool and meta-programming environment.

• ITscope Marketviewer - Catalogue and purchasing software for business to business relations in the IT sector.

Page 35: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Eclipse Java IDE plug-ins

• Visual Editor

• AspectJ

• Log4E

• Omondo EclipseUML

Page 36: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Eclipse Java IDE plug-ins

• Eclipse Visual Editor• Eclipse AspectJ• Eclipse Web Tools• Sysdeo Tomcat• Omondo

EclipseUML• Log4E• EclipseColorer

• Subclipse (subversion)• VSS• Call Hierarchy View• EclipseProfiler• FreeMem• Hibernate

Synchronizer• Spring IDE

Page 37: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Even more Eclipse plug-ins…

• Clock• Games, including Tetris and Minesweeper• Email• MP3 players• RSS readers

(Just like EMACS, you can live inside Eclipse!)

Page 38: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

Eclipse-based IDEs

• Rational Application Developer (the former Websphere Studio Application Developer)

• MyEclipse

• JBoss IDE

• Borland JBuilder (2006?)

Page 39: The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

For more info…

• RCP applications:

http://www.eclipse.org/community/rcp.html

• Eclipse plugins:

http://www.eclipseplugincentral.com/

http://eclipse-plugins.info/

• More:

http://www.eclipse.org/community