The Eclipse Ecosystem Exploring Tools and Plugins David







































- Slides: 39
The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo
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) • 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 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 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 generalized as and open, extensible IDE framework • Generalized even further, an open, extensible application framework
Visual Age for Java
Eclipse Platform Java IDE (JDT)
Eclipse 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. JDT • Other examples: – Team support (CVS, Clear. Case, Subversion, VSS) – Visual Editor (Swing/AWT, SWT, …? )
Team CVS Subversion 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! 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 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 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 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, 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. UML
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 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 • 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