Title: The Eclipse Ecosystem: Exploring Tools and Plug-ins
1The Eclipse Ecosystem Exploring Tools and
Plug-ins
2Agenda
- 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?
3My 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
4Updates and source code
- Updates for presentation and source code for
demos are available at - http//www.gallardo.org
5What is Eclipse?
6What 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)
7What 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)
8An 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
9Eclipse 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
10Visual Age for Java
11Java IDE (JDT)
Eclipse Platform
12Java IDE
Eclipse Platform
C/CIDE
More
13Java IDE
Eclipse RCP
Eclipse Tool Platform
C/CIDE
More
14The 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, ?)
15CVS
Team
Subversion
More
16Swing/AWT
Visual Editor
SWT
More
17What is Eclipse?
- Its a floorwax AND its a dessert topping!
18What is Eclipse?
- Its a floorwax AND its a dessert topping!
- Just kidding!
- Its a framework and a reference implementation
19What is Eclipse?
- An open and extensible application framework
The Rich Client Platform
20What is Eclipse?
- An open and extensible application framework
The Rich Client Platform - A open tool platform for developing extensible
IDEs
21What 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
22SWT
- A replacement for Swing/AWT
- AWT controls were native, but took lowest-common
denominator approach to achieve cross-platform
compatibility - Swing emulated controls dont 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 arent available - SWT applications have the look responsiveness
of native applications - SWT is relatively simple and easy to use
23JFace
- 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
24Essential components for an RCP application
25The complete RCP framework
26A complete RCP application
27An Eclipse-based IDE
28Extending an IDE with plug-ins
29Eclipse 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
30Commercial-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
31Some 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.
32RCP benefits
- Framework for menus, toolbars, views, and
perspectives - Help
- Plug-in basedextensible
- Remote update
- Proven scaleable and extensible applications
33Some 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.
34Some 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.
35Eclipse Java IDE plug-ins
- Visual Editor
- AspectJ
- Log4E
- Omondo EclipseUML
36Eclipse 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
37Even more Eclipse plug-ins
- Clock
- Games, including Tetris and Minesweeper
- Email
- MP3 players
- RSS readers
- (Just like EMACS, you can live inside Eclipse!)
38Eclipse-based IDEs
- Rational Application Developer (the former
Websphere Studio Application Developer) - MyEclipse
- JBoss IDE
- Borland JBuilder (2006?)
39For 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