The Eclipse Ecosystem Exploring Tools and Plugins David

  • Slides: 39
Download presentation
The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo

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

Agenda • Overview of Eclipse Architecture • JDT plug-in examples: – Log 4 E

Agenda • Overview of Eclipse Architecture • JDT plug-in examples: – Log 4 E – Aspect. J – Omondo Eclipse. UML • IDE examples: – My. Eclipse – IBM Rational Application Developer – CDT • Developing an Eclipse RCP-based application • Haystack, Bio. Dash and the Semantic Web • Some miscellaneous plug-ins – Games, desk accessories…?

My books • Java Oracle Database Development • Eclipse in Action, (lead author) •

My books • Java Oracle Database Development • Eclipse in Action, (lead author) • Eclipse in Action, 2 nd edition due out in December • Preview article, Introducing the Eclipse Visual Editor at: http: //www. manning. com/books/gallardo 2

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

Updates and source code Updates for presentation and source code for demos are available at: http: //www. gallardo. org

What is Eclipse?

What is Eclipse?

What is Eclipse? • “Eclipse is a kind of universal tool platform - an

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)

What is Eclipse? • “Eclipse is a kind of universal tool platform - an

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)

An Eclipse history lesson • Based on Visual Age for Java developed by OTI

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 VA 4 J ported to Java • Donated to the IBM-created Eclipse Consortium Nov 2001 • Consortium creates the Eclipse Foundation in Feb 2004

Eclipse is language neutral • Written in Java, but provides languageneutral support • First

Eclipse is language neutral • Written in Java, but provides languageneutral support • First generalized as and open, extensible IDE framework • Generalized even further, an open, extensible application framework

Visual Age for Java

Visual Age for Java

Eclipse Platform Java IDE (JDT)

Eclipse Platform Java IDE (JDT)

Eclipse Platform Java IDE C/C++IDE More…

Eclipse Platform Java IDE C/C++IDE More…

Eclipse RCP Eclipse Tool Platform Java IDE C/C++IDE More…

Eclipse RCP Eclipse Tool Platform Java IDE C/C++IDE More…

The Eclipse approach • Generalize: Build a framework • Develop a reference implementation--e. g.

The Eclipse approach • Generalize: Build a framework • Develop a reference implementation--e. g. JDT • Other examples: – Team support (CVS, Clear. Case, Subversion, VSS) – Visual Editor (Swing/AWT, SWT, …? )

Team CVS Subversion More…

Team CVS Subversion More…

Visual Editor Swing/ AWT SWT More…

Visual Editor Swing/ AWT SWT More…

What is Eclipse? It’s a floorwax AND it’s a dessert topping!

What is Eclipse? It’s a floorwax AND it’s a dessert topping!

What is Eclipse? It’s a floorwax AND it’s a dessert topping! Just kidding! It’s

What is Eclipse? It’s a floorwax AND it’s a dessert topping! Just kidding! It’s a framework and a reference implementation

What is Eclipse? • An open and extensible application framework – The Rich Client

What is Eclipse? • An open and extensible application framework – The Rich Client Platform

What is Eclipse? • An open and extensible application framework – The Rich Client

What is Eclipse? • An open and extensible application framework – The Rich Client Platform • A open tool platform for developing extensible IDEs

What is Eclipse? • An open and extensible application framework – The Rich Client

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

SWT • A replacement for Swing/AWT – AWT controls were native, but took lowest-common

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

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

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

Essential components for an RCP application

Essential components for an RCP application

The complete RCP framework

The complete RCP framework

A complete RCP application

A complete RCP application

An Eclipse-based IDE

An Eclipse-based IDE

Extending an IDE with plug-ins

Extending an IDE with plug-ins

Eclipse open-source licensing • Eclipse licensed under Common Public License • Open Source Initiative

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

Commercial-friendly open-source • Allows co-mingling of open-source and commercially developed code • Basic functionality

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

Some SWT apps • Azureus - Bittorrent client that is one of the most

Some SWT apps • Azureus - Bittorrent client that is one of the most popular apps on Source. Forge. • 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.

RCP benefits • Framework for menus, toolbars, views, and perspectives • Help • Plug-in

RCP benefits • Framework for menus, toolbars, views, and perspectives • Help • Plug-in based—extensible • Remote update • Proven scaleable and extensible applications

Some open-source RCP apps • BIRT - reporting system for web applications, especially those

Some open-source RCP apps • BIRT - reporting system for web applications, especially those based on Java and J 2 EE • Gum. Tree - Multi-platform scientific workbench for performing scientific experiment under a server-client environment. • Schoolclipse - An Eclipse RCP application for private school management. • u. Dig GIS - Desktop Internet GIS providing a graphical interface to OGC standard internet mapping servers (WMS, WFS), local data files, and spatial databases.

Some commercial RCP apps • IBM Workplace Managed Client - Servermanaged access to messaging,

Some commercial RCP apps • IBM Workplace Managed Client - Servermanaged access to messaging, documents, instant messaging, Activity Explorer, productivity tools, and data access. • XMFMosaic - Next generation metamodelling tool and meta-programming environment. • ITscope Marketviewer - Catalogue and purchasing software for business to business relations in the IT sector.

Eclipse Java IDE plug-ins • • Visual Editor Aspect. J Log 4 E Omondo

Eclipse Java IDE plug-ins • • Visual Editor Aspect. J Log 4 E Omondo Eclipse. UML

Eclipse Java IDE plug-ins • • • Eclipse Visual Editor Eclipse Aspect. J Eclipse

Eclipse Java IDE plug-ins • • • Eclipse Visual Editor Eclipse Aspect. J Eclipse Web Tools Sysdeo Tomcat Omondo Eclipse. UML • Log 4 E • Eclipse. Colorer • • • Subclipse (subversion) VSS Call Hierarchy View Eclipse. Profiler Free. Mem Hibernate Synchronizer • Spring IDE

Even more Eclipse plug-ins… • • • Clock Games, including Tetris and Minesweeper Email

Even more Eclipse plug-ins… • • • Clock Games, including Tetris and Minesweeper Email MP 3 players RSS readers (Just like EMACS, you can live inside Eclipse!)

Eclipse-based IDEs • Rational Application Developer (the former Websphere Studio Application Developer) • My.

Eclipse-based IDEs • Rational Application Developer (the former Websphere Studio Application Developer) • My. Eclipse • JBoss IDE • Borland JBuilder (2006? )

For more info… • RCP applications: http: //www. eclipse. org/community/rcp. html • Eclipse plugins:

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