the eclipse ecosystem: exploring tools and plug-ins david gallardo
TRANSCRIPT
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…?
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
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?
• “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 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 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
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
Visual Age for Java
Java IDE (JDT)
Eclipse Platform
Java IDE
Eclipse Platform
C/C++IDE More…
Java IDE
Eclipse RCP
C/C++IDE More…
Eclipse Tool Platform
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, …?)
CVS
Team
Subversion More…
Swing/AWT
Visual Editor
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!
Just kidding!
It’s a framework and a reference implementation
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 Platform
• A open tool platform for developing extensible IDEs
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 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 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
The complete RCP framework
A complete RCP application
An Eclipse-based IDE
Extending an IDE with plug-ins
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 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 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.
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 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.
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.
Eclipse Java IDE plug-ins
• Visual Editor
• AspectJ
• Log4E
• Omondo EclipseUML
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
Even more Eclipse plug-ins…
• Clock• Games, including Tetris and Minesweeper• Email• MP3 players• RSS readers
(Just like EMACS, you can live inside Eclipse!)
Eclipse-based IDEs
• Rational Application Developer (the former Websphere Studio Application Developer)
• MyEclipse
• JBoss IDE
• Borland JBuilder (2006?)
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