1
A Gentle Introduction to Eclipse
Ewa Matejska, PalmSource
December 5, 2006
Confidential | Date | Other Information, if necessary
© 2002 IBM Corporation
Disclaimer
I am going to talk about Eclipse as a user, not an expert. I stole some pictures and slides from previous presentations.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
2
Agenda
What is Eclipse? Some History Installing Eclipse and Launching it. Detailed description of the Eclipse platform. The Eclipse Community and Development Process. C/C++ Development in Eclipse (CDT)
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
3
Eclipse.org
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
4
Eclipse is a Java IDE
Widely regarded as the Java development environment With all the bells and whistles…
Language-aware editors, views, …
Refactoring support
Integrated unit testing and debugging Incremental compilation and build
Team development support
Out of the box support for CVS …
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
5
Eclipse is an IDE Framework
Eclipse + JDT = Java IDE
First class framework for Java Language aware editor
Incremental build
Integrated debugging
Eclipse + CDT = C/C++ IDE
First class framework for C/C++
Language aware editor
Refactoring, search
Eclipse + PHP = PHP IDE Eclipse + JDT + CDT + PHP = Java, C/C++, PHP IDE …
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
6
Eclipse is a Tools Framework
Focus on developing a universal platform of frameworks and exemplary tools Sample tools built on top of the Eclipse Platform
Business Intelligence and Reporting Tools (BIRT)
Eclipse Communications Framework (ECF) Web Tools Project (WTP) Eclipse Modelling Framework (EMF)
Graphical Editing Framework (GEF)
Test and Performance Tooling Project (TPTP)
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
7
Eclipse is a Application Framework
Remove the IDE elements, Java language support, team development support, … and you’re left with a pretty comprehensive general application framework
Support for multiple platforms
Linux, Windows, Mac OSX, UNIX, embedded Rich widget set, graphics Native-OS integration (drag and drop, OLE/XPCOM integration)
A platform for rich clients Some examples of this later…
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
8
Eclipse is an Open Source Project and Community
All Eclipse projects are open-source and available for free download. Hundreds of plug-ins provided by commercial companies, organizations, and individuals Eclipse conferences Enthusiastic blogger community
http://www.planeteclipse.org
Numerous Eclipse portals, etc…
EclipseZone (http://eclipsezone.com) Eclipse Plug-in Central (http://eclipseplugincentral.com) Others (http://eclipse.org/community)
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
9
Eclipse is an Eco-System
Eclipse is focused on nurturing the eco-system to complement, and enhance the Eclipse Platform Many members, including major Java, Linux and Embedded vendors
BEA, Borland, JBoss, IBM, SAP, RedHat, Novell, Monta Vista, Wind River, Mentor, ENEA, QNX
Dozens of open source projects Millions of downloads
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
10
Eclipse is a Foundation
The Eclipse Foundation
Was created to manage and direct the ongoing development of the Eclipse open source software project Is responsible for providing IT infrastructure required by development teams
Independent not-for-profit Foundation formed in 2004
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
11
Eclipse is all these things…meant for everything and nothing in particular
A Java IDE An IDE Framework A Tools Framework An Application Framework An Open Source Community An eco-system A foundation
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
12
Brief Sidetrack on History
First version released in Nov 2001. Just had 5 year anniversary.
IBM contributed the original code – worth $40 million
OTI developed dev environment for Smalltalk which was licences to IBM under the name Visual Age. Visual Age for Java was then developed then rewritten in Java to form basis of Eclipse
Sun Microsystems wasn't happy about it.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
13
Brief Sidetrack on History
The SWT and Jface libraries are an alternative to Sun's AWT and Swing.
SWT and Jface give native look and feel and allow access to native widgets. They're more resonsive than Swing but less portable.
Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft and Webgain formed the initial eclipse.org Board of Stewards in November 2001. On Feb 2, 2004 the Eclipse Board of Stewards announced Eclipse’s reorganization into a not-for-profit corporation.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
14
After 5 years
Many more members
Strategic members:
Actuate, BEA, Borland, CA, Compuware, IBM, Intel, Iona, Motorola, Nokia, Scapa, Serena, Simula Labs, Sybase, Wind River, Zend
Add-In Providers
Around 100 Including Palmsource, Google, Erisson, Texas Instruments
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
15
After 5 years
Many plugins Books written about it.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
16
Why is Eclipse interesting to SVLUG members?
Runs on Linux (and many other platforms)
Open-source community
It UI of Eclipse looks like a Linux application when it runs on Linux; the native widgets are used. Some of the the Eclipse projects deal with Linux. Ex. Tools for mobile Linux, etc.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
17
Sounds Great....Let's Try It
If it's all these things, what do we try?
We go to eclipse.org, go to Downloads
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
18
Install It (1/2)
Download Eclipse SDK 3.2.1
We need a JRE to run. JRE 1.4 or greater.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
19
Install (2/2)
Install the JRE
Untar eclipse-SDK-3.2.1-linux-gtk.tar.gz
We're done! It would be even easier if you were using Ubuntu where you can install it through the Synaptic Package manager.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
20
Launch Eclipse
Launch Eclipse with the jre specified.
eclipse -vm /path/to/your/java
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
21
What the heck did we just download and install? (1/2)
Ten (10) top level projects
TheTop-Level Eclipse Project - main project all the other top level project work to support this one Tools Web Tools Platform Test & Performance Tools Platform Business Intelligence and Reporting Tools Eclipse Modeling Project Data Tools Platform Device Software Development Platform SOA Tools Platform
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Technology (Incubators)
22
What the heck did we just install? (2/2)
ANSWER: Everything that is included in the Eclipse Top-Level Project. The Eclipse Top-Level Project has subprojects
Platform Defines the set of frameworks and common services used by everything Eclipse-based. Equinox An OSGi framework implementation Provides the component (plugin) model.
JDT - Java development tools
Implementation of frameworks (plugins) to add the Java IDE. PDE - Plug-in development environment
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 23
Platform (1/4)
Ant
Ant is a Java-based open-source build tool Used by the Eclipse projects to build the projects. Providing UI support for running Ant buildfiles and managing their output Providing Ant buildfile development facilities
Core
No UI, just frameworks. Support for defining and managing file content types
A generic XML-based expression language used in the markup of various extension points.
Management of resources - projects, folders, management
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 24
Platform (2/4)
CVS Platform CVS Integration
CVS perspective and Views
Debug
Generic debug framework providing common support for common debug actions: breakpoints, stepping, etc. A Java implementation of the debug framework.
Releng
Release Engineering – sets up builds
Search
Integrated search facility infrastructure search dialog that clients contribute to Search View to show results
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 25
Platform (3/4)
SWT Standard Widget Toolkit
efficient, portable access to native operating system widgets. buttons, menu bars, combos, tab folders, progress bar, etc.
Team/Compare frameworks
Generic Team and Compare support
provides compare with local history
Text Text editor framework
framework and default implementation of text editor
User Assistance Help system, initial user experience, cheat sheets etc.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
26
Platform (4/4)
UI Platform user interface
image,font registries dialog, preference and wizard frameworks progress reporting Workbench Purpose is seamless integration of tools Define extension points. Tools use these to integrate seamlessly in the same UI Platform UI provides the default workbench implementation. not meant to be reused if not an IDE. Outline Vie, Console Vie, Welcome.
Jface – toolkit for common UI tasks. Works with SWT
Update
Dynamic Update/Install/Field Service
27
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Equinox (1/2)
Equinox is the Eclipse component model
Based on OSGi R4 specification Standard Java lacks an explicit notion of components
Components == Bundles == Plug-in
Versioned Dynamically loadable/unloadable Support dynamic update and install
Explicitly define
Dependencies Runtime visibility Interactions (extension points/extensions)
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
28
Equinox (2/2)
Components integrate without interfering
Required components explicitly set Unrelated components do not have direct access to one-another
Downstream components can access upstream components through the extension mechanism
Downstream component registers (declaratively) an extension point Dependent components register (declaratively) extensions
This is the Eclipse runtime. This is one of the only thing that is not a plugin.
Can be run standalone. Introduced in Eclipse 3.0
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
29
JDT - Java Development Tools (1/2)
The JDT project contributes a set of plug-ins that add the capabilities of a full-featured Java IDE. Implementation of the platform frameworks. An incremental Java builder Code assist and code select support Refactoring Launching of a Java VM in either run or debug mode Attaching to a running Java VM Expression evaluation in the context of a stack framen Dynamic class reloading where supported by Java virtual machine Packages View
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
30
JDT - Java Development Tools (2/2)
Type Hierarchy View Java Outline View Wizards for creating Java elements Java Editor.
Keyword and syntax coloring
Context specific (Java, Javadoc) code assist and code select
Margin annotations for problems, break points, or search matches
Outliner updating as editing takes place Code formatting
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
31
PDT – Plugin Development Tools
Pretty Sweet! Form-Based Manifest Editors - multi-page editors that centrally manage all manifest files of a plug-in or feature.
New Project Creation Wizards - create a new plug-in, fragment, feature, feature patch and update sites.
Import Wizards - import plug-ins and features from the file system.
Export Wizards - wizards that build, package and export plug-ins, fragments and products with a single click.
Launchers - test and debug Eclipse applications and OSGi bundles. Views – Plugin development specific views.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
32
Java IDE
JDT Search Runtime Debug Update Equinox JFace UI Team PDE IDE UI
SWT
Ant
Help
LTK
Eclipse SDK
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 33
IDE Platform
JDT Search Runtime Debug Update Equinox JFace UI Team PDE IDE UI
SWT
Ant
Help
LTK
Eclipse SDK
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 34
Application Platform
JDT Search Runtime Debug Update Equinox JFace Ant Help UI Team PDE IDE UI
SWT LTK
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
35
Summary of Eclipse Top-Level Project
Platform provides the frameworks for all other projects. Everything in java and separated into plugins if possible. Plugins need to be written in Java. You can use the PDE to develop them. Full Java IDE is provided.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
36
The Eclipse Community and Development Process (1/3)
Ten (10) top level projects
TheTop-Level Eclipse Project - main project all the other top level project work to support this one Tools Web Tools Platform Test & Performance Tools Platform Business Intelligence and Reporting Tools Eclipse Modeling Project Data Tools Platform Device Software Development Platform SOA Tools Platform
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Technology (Incubators)
37
The Eclipse Community and Development Process (2/3)
Each Project has:
Possibly subprojects Mailing list Wiki Bugzilla
Newsgroup
PMC – Project Management Committee Project Lead for each subproject
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
38
The Eclipse Community and Development Process (3/3)
Higher Level:
Eclipse Foundation
Board of Directors
Eclipse Management Organization -facilitates development. Requirements Council
Architecture Council
Planning Council
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
39
“Europa” Release Train
Seventeen (17) projects will be released simultaneously on June 30, 2007 Improve the cohesion across projects and developer teams
Unified update site
Aspect J Development Tools Business Intelligence Reporting Tools Buckminster C/C++ Development Tools DSDP Device Debugging DSDP Target Management Data Tools Platform Eclipse Modeling Framework EMF Technology (OCL, Query, Transaction, Validation) EMF Technology (JET) Graphical Editing Framework Graphical Modeling Framework Eclipse Platform Test and Performance Tools Platform Web Tools Eclipse Communication Framework Model Development Tools
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
40
C/C++ Development (CDT)
The CDT Eclipse Project provide the plugins to add the C/C++ development functionality. Subproject of The top-level Tools Project. Standard features available
C/C++ Editor New Project Wizards Debugging and Running the programs.
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
41