SlideShare a Scribd company logo
Eclipse Plug-ins
and RCP
Training Course
Introduction and Architecture
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
1
1. Eclipse Introduction and Architecture
2. Standard Widgets Toolkit
3. JFace
4. Standard Extension Points and APIs
5. Defining your own Extension Points
6. Rich Client Platforms & Industrialization
Training Course Agenda
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
2
∗ Eclipse IDE is a multi-domain, multi-language
Integrated Development Environment
∗ Eclipse is an Extensible platform for tool integration
based on industry standards
∗ Cross-platform environment
∗ EPL (Eclipse Public License): let you build an distribute
commercially-friendly open/closed source software
∗ Eclipse Foundation and Development Community
support
Introduction
Why Eclipse?
October 2013
3
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Overcome the following challenges that may
arise regularly in the development of tools:
∗ Pressure to cut costs
∗ Reducing integration time
∗ Cost effective, secure and easy maintenance
∗ Deliver value and reduce risks
∗ Automation of software updates
∗ Standardization
Introduction
Advantages (1/3)
October 2013
4
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Create a new business model that relies on
shifting the commercial value away from the
actual products and generating revenue from
the auxiliary services around the product:
∗ systems integration
∗ enrich business solutions
∗ support
∗ customizations
∗ tutorials and documentation
Introduction
Advantages (2/3)
October 2013
5
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Proprietary software lack in imagination. They have only one business model:
∗ “EULA Ware — Give me money. Now go away. It doesn’t work? Go away. You want your
money back? Read your EULA, and go away. You want to see the software? Go away.”
∗ Open source forces companies to use their imagination. They can’t feed people EULA
Ware, so they must make money in other ways:
∗ “Support Ware — Pay us money and we’ll support the software. We’ll answer your
questions. Or we’ll try to. Over the phone, on the Web, whatever. Pay us enough and we’ll
come over.”
∗ “Project Ware — Need something done? We’ll do it. Pay us for our work, and pay us for
the project. Or try our software and buy our hardware.”
∗ “Foundation Ware — Our software has a foundation. (e.g. base your product on the
Eclipse related environment and tools)”
∗ The great thing about Eclipse World is that you don’t have to use just one business model.
You can mix-and-match as you see fit.
A new business model
October 2013
6
Copyright © 2013 Luca D’Onofrio – RCP Solutions
Eclipse Releases and Packages
∗ Current releases
∗ Eclipse Kepler (4.3)
∗ Archived releases
∗ Eclipse Juno (4.2)
∗ Eclipse Indigo (3.7)
∗ Eclipse Helios (3.6)
∗ Eclipse Galileo (3.5)
∗ Main Packages
∗ JDT (Java/Java EE)
∗ PDE (RCP/RAP)
∗ CDT (C/C++)
∗ WTP (Web)
∗ EMF (Modeling)
∗ XML
∗ BIRT
∗ GIT, SVN, …
∗ UML
∗ XText
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
7
∗Java
∗XML
∗Design Patterns
Course Pre-Requisites
October 2013
8
Copyright © 2013 Luca D’Onofrio – RCP Solutions
1. Eclipse General Architecture
2. Eclipse UI
a) Workbench, Workspace and Resources, Perspectives, Views
and editors, Preference and Properties pages, Menu and
Toolbar, Launch configurations.
3. Eclipse Plug-ins Ecosystem
a) OSGI, Bundles and Manifest
b) Plugins, Extensions, Extension Points, Features, RCP
4. Using the PDE
a) Creating, debugging and delivering plugins, fragments,
features and update sites.
Agenda
October 2013
9
Copyright © 2013 Luca D’Onofrio – RCP Solutions
Eclipse General Architecture
October 2013
10
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ The term Workbench refers to the desktop development environment. The
Workbench aims to achieve seamless tool integration and controlled
openness by providing a common paradigm for the creation, management,
and navigation of workspace resources.
∗ Each Workbench window contains one or more perspectives. Perspectives
contain views and editors and control what appears in certain menus and
tool bars.
∗ More than one Workbench window can exist on the desktop at any given
time.
TIP: command line and JVM arguments
Eclipse UI
Workbench
October 2013
11
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ The workspace is the container that allows a user to gather
various source code files and resources and work with them as a
cohesive unit.
∗ TIP: “Do I have to duplicate then my projects if using with different
versions of Eclipse in parallel?” NO, because the workspace folder
does not have to have the projects in it (as folders). They can, but
it is not needed.
∗ TIP: Workspace preferences
∗ TIP: Workspace .metadata (workspace structure and platform
dependent settings)
Eclipse UI
Workspace
October 2013
12
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Eclipse handles its own file system that manage resources
∗ Eclipse file system provides internal features that allow the synchronization between local platform-
dependent file system.
∗ Files: Comparable to files as you see them in the file system.
∗ Folders: Comparable to directories on a file system. In the Workbench, folders are contained in
projects or other folders. Folders can contain files and other folders.
∗ Projects: Contain folders and files. Projects are used for builds, version management, sharing, and
resource organization. Like folders, projects map to directories in the file system. (When you create a
project, you specify a location for it in the file system.) ( .project, Working sets). A project is either
open or closed.
TIP: closed projects require less memory. Since they are not examined during builds, closing a project can
improve build time.
∗ Linked Resources: Folders and files can be linked to locations in the file system outside of the
project's location. These special folders and files are called linked resources.
TIP: Different tools that plug into the Workbench use their own specialized types of projects, folders, and
files.
Eclipse UI
Resources
October 2013
13
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Perspective:
∗ A perspective defines the initial set and layout of views in the Workbench window. Within the
window, each perspective shares the same set of editors. Each perspective provides a set of
functionality (menus / toolbars) aimed at accomplishing a specific type of task or works with
specific types of resources.
∗ Editor:
∗ Specialized view that USUALLY operates on file resources and provides mechanisms for
resource life-cycle. ( sync example)
∗ Any number of editors can be open at once, but only one can be active at a time. The main
menu bar and toolbar for the Workbench window contain operations (editor contribution)
that are applicable to the active editor.
∗ View:
∗ Views support editors and provide alternative presentations as well as ways to navigate the
information in your Workbench. ( Project Explorer, Problems, Errors, Properties, …)
∗ Views can have their own menus and toolbars
TIP: Editor can be instantiated more then once; usually there is only one instance of a view.
Eclipse UI
Perspectives, Editors and Views
October 2013
14
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Menus:
∗ Menu bar
∗ Popup menu
∗ Toolbars:
∗ Workbench main toolbar and editor contributions
∗ Views related toolbar
∗ Preferences:
∗ Control the behavior of Workbench features
∗ Properties:
∗ Control the behavior of Resources features.
∗ Workspace related (.settings)
Eclipse UI
Menus, Toolbars, Preference and Properties
October 2013
15
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Toobar commands
∗ Popup menu commands
∗ Build-in run configurations
∗ Run / Debug
∗ External tools
Eclipse UI
Launch configurations
October 2013
16
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Everything can be extended
∗ Everything can be referenced by its own id
Eclipse UI Concepts and Terms
October 2013
17
Platform
PlatformUI
Selection Providers
Selection Events
Resource Change
Jobs
Commands
Handlers
Actions
Multipage Editor
Form Editor
Pref/Prop Pages
Project Natures
Project Builders
Resource Path
Copyright © 2013 Luca D’Onofrio – RCP Solutions
Eclipse Plug-ins Ecosystem
OSGI
October 2013
18
∗ The OSGi technology is a set of specifications that
define a dynamic component system for Java.
∗ These specifications enable a development model
where applications are (dynamically) composed of
many different (reusable) components.
∗ Bundles : Bundles are the OSGi components made by the developers. terms
plug-in and bundle are interchangeable ( class hierarchy).
∗ Services : The services layer connects bundles in a dynamic way by offering a
publish-find-bind model for plain old Java objects.
∗ Life-Cycle : The API to install, start, stop, update, and uninstall bundles.
∗ Modules : The layer that defines how a bundle can import and export code.
∗ Security : The layer that handles the security aspects.
∗ Execution Environment : Defines what methods and classes are available in a
specific platform.
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Manifest-Version
∗ Bundle-ManifestVersion:
∗ Bundle-Name
∗ Bundle-SymbolicName
∗ Bundle-Version
∗ Bundle-Activator
∗ Bundle-Vendor
∗ Require-Bundle
∗ Bundle-RequiredExecutionEnvironment
∗ Bundle-ActivationPolicy
∗ Bundle-ClassPath
∗ Export-Package
TIP: An Activator class can be «singleton»
TIP: Accessing an activator or a plugin class requires the containing plugin to be loaded,
where interacting with the Bundle interface not.
Eclipse Plug-ins Ecosystem
Bundles and Manifest
October 2013
19
Copyright © 2013 Luca D’Onofrio – RCP Solutions
Eclipse Plug-ins Ecosystem
October 2013
20
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ The PDE provides a comprehensive plug-in development environment.
∗ PDE Views
∗ The Plugin registry view
∗ The Plugins view
∗ The Plugin dependencies view
∗ The Plugin Spy (Alt+Shift+F1)
∗ PDE Wizards
∗ Plugins Wizard & Extension Templates
∗ Features Wizard
∗ Update Site Wizard
∗ Running and Debugging your plugins
TIP: You can use fragments to extends functionality of another plugin: typically there are
used to supply alternative language packs or platform specific implementation classes.
Using the PDE
October 2013
21
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ www.eclipse.org
∗ Eclipse SDK update site
∗ help.eclipse.org
∗ wiki.eclipse.org
∗ www.osgi.org
References
October 2013
22
Copyright © 2013 Luca D’Onofrio – RCP Solutions
∗ Eclipse Plug-ins (3rd Edition): Building Commercial-Quality Plug-ins
(Eclipse Series) - Eric Clayberg e Dan Rubel (11 dic. 2008)
∗ Design Patterns: Elements of Reusable Object-Oriented Software -
Gamma, Erich, Helm, Richard, Johnson, Ralph e Vlissides, John (31
ott. 1994)
∗ Thinking In Java: The definitive introduction to object-oriented
programming in the language of the world wide... - Bruce Eckel (3
feb. 2006)
∗ Xml Bible di Elliotte Rusty Harold e Harold (17 ago. 1999)
∗ XML Programming Bible: Bible Series, Book 129
Books
October 2013
23
Copyright © 2013 Luca D’Onofrio – RCP Solutions

More Related Content

KEY
OSGi, Eclipse and API Tooling
PDF
Sling IDE Tooling
PDF
Sling IDE Tooling @ adaptTo 2013
KEY
OPS4J Pax Tools - Kickstart your OSGi Adventure
PDF
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
PPTX
Entrevista bender plast ltda
PPT
Eclipse Training - Main eclipse ecosystem classes
PPT
Introduction To Eclipse RCP
OSGi, Eclipse and API Tooling
Sling IDE Tooling
Sling IDE Tooling @ adaptTo 2013
OPS4J Pax Tools - Kickstart your OSGi Adventure
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Entrevista bender plast ltda
Eclipse Training - Main eclipse ecosystem classes
Introduction To Eclipse RCP

Similar to Eclipse Training - Introduction (20)

PPT
ITU - MDD - Eclipse Plug-ins
PDF
Eclipse plug in development
PPT
"Eclipse Application Development" at GNUnify 07
ODP
Introduction To The Eclipse Platform
PDF
Overview of Eclipse technologies
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
PPT
Eclipse IDE
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
PDF
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
PDF
Eclipse_Building_Blocks
PPTX
Eclipse Overview
PPT
ABC of Platform Workspace
PDF
Advance RCP
PDF
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
PDF
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
ODP
OSGi Sticker Shock Eclipse Con 2010
PDF
Eclipse Way
PPT
Eclipse Training - Standard Extension Points and APIs
ODP
Plug yourself in and your app will never be the same (2 hr editon)
ODP
Plug yourself in and your app will never be the same (2 hour edition)
ITU - MDD - Eclipse Plug-ins
Eclipse plug in development
"Eclipse Application Development" at GNUnify 07
Introduction To The Eclipse Platform
Overview of Eclipse technologies
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
Eclipse IDE
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
Eclipse_Building_Blocks
Eclipse Overview
ABC of Platform Workspace
Advance RCP
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
OSGi Sticker Shock Eclipse Con 2010
Eclipse Way
Eclipse Training - Standard Extension Points and APIs
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hour edition)
Ad

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Diabetes mellitus diagnosis method based random forest with bat algorithm
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
NewMind AI Weekly Chronicles - August'25 Week I
Network Security Unit 5.pdf for BCA BBA.
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Ad

Eclipse Training - Introduction

  • 1. Eclipse Plug-ins and RCP Training Course Introduction and Architecture October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 1
  • 2. 1. Eclipse Introduction and Architecture 2. Standard Widgets Toolkit 3. JFace 4. Standard Extension Points and APIs 5. Defining your own Extension Points 6. Rich Client Platforms & Industrialization Training Course Agenda October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 2
  • 3. ∗ Eclipse IDE is a multi-domain, multi-language Integrated Development Environment ∗ Eclipse is an Extensible platform for tool integration based on industry standards ∗ Cross-platform environment ∗ EPL (Eclipse Public License): let you build an distribute commercially-friendly open/closed source software ∗ Eclipse Foundation and Development Community support Introduction Why Eclipse? October 2013 3 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 4. ∗ Overcome the following challenges that may arise regularly in the development of tools: ∗ Pressure to cut costs ∗ Reducing integration time ∗ Cost effective, secure and easy maintenance ∗ Deliver value and reduce risks ∗ Automation of software updates ∗ Standardization Introduction Advantages (1/3) October 2013 4 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 5. ∗ Create a new business model that relies on shifting the commercial value away from the actual products and generating revenue from the auxiliary services around the product: ∗ systems integration ∗ enrich business solutions ∗ support ∗ customizations ∗ tutorials and documentation Introduction Advantages (2/3) October 2013 5 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 6. ∗ Proprietary software lack in imagination. They have only one business model: ∗ “EULA Ware — Give me money. Now go away. It doesn’t work? Go away. You want your money back? Read your EULA, and go away. You want to see the software? Go away.” ∗ Open source forces companies to use their imagination. They can’t feed people EULA Ware, so they must make money in other ways: ∗ “Support Ware — Pay us money and we’ll support the software. We’ll answer your questions. Or we’ll try to. Over the phone, on the Web, whatever. Pay us enough and we’ll come over.” ∗ “Project Ware — Need something done? We’ll do it. Pay us for our work, and pay us for the project. Or try our software and buy our hardware.” ∗ “Foundation Ware — Our software has a foundation. (e.g. base your product on the Eclipse related environment and tools)” ∗ The great thing about Eclipse World is that you don’t have to use just one business model. You can mix-and-match as you see fit. A new business model October 2013 6 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 7. Eclipse Releases and Packages ∗ Current releases ∗ Eclipse Kepler (4.3) ∗ Archived releases ∗ Eclipse Juno (4.2) ∗ Eclipse Indigo (3.7) ∗ Eclipse Helios (3.6) ∗ Eclipse Galileo (3.5) ∗ Main Packages ∗ JDT (Java/Java EE) ∗ PDE (RCP/RAP) ∗ CDT (C/C++) ∗ WTP (Web) ∗ EMF (Modeling) ∗ XML ∗ BIRT ∗ GIT, SVN, … ∗ UML ∗ XText October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 7
  • 8. ∗Java ∗XML ∗Design Patterns Course Pre-Requisites October 2013 8 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 9. 1. Eclipse General Architecture 2. Eclipse UI a) Workbench, Workspace and Resources, Perspectives, Views and editors, Preference and Properties pages, Menu and Toolbar, Launch configurations. 3. Eclipse Plug-ins Ecosystem a) OSGI, Bundles and Manifest b) Plugins, Extensions, Extension Points, Features, RCP 4. Using the PDE a) Creating, debugging and delivering plugins, fragments, features and update sites. Agenda October 2013 9 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 10. Eclipse General Architecture October 2013 10 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 11. ∗ The term Workbench refers to the desktop development environment. The Workbench aims to achieve seamless tool integration and controlled openness by providing a common paradigm for the creation, management, and navigation of workspace resources. ∗ Each Workbench window contains one or more perspectives. Perspectives contain views and editors and control what appears in certain menus and tool bars. ∗ More than one Workbench window can exist on the desktop at any given time. TIP: command line and JVM arguments Eclipse UI Workbench October 2013 11 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 12. ∗ The workspace is the container that allows a user to gather various source code files and resources and work with them as a cohesive unit. ∗ TIP: “Do I have to duplicate then my projects if using with different versions of Eclipse in parallel?” NO, because the workspace folder does not have to have the projects in it (as folders). They can, but it is not needed. ∗ TIP: Workspace preferences ∗ TIP: Workspace .metadata (workspace structure and platform dependent settings) Eclipse UI Workspace October 2013 12 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 13. ∗ Eclipse handles its own file system that manage resources ∗ Eclipse file system provides internal features that allow the synchronization between local platform- dependent file system. ∗ Files: Comparable to files as you see them in the file system. ∗ Folders: Comparable to directories on a file system. In the Workbench, folders are contained in projects or other folders. Folders can contain files and other folders. ∗ Projects: Contain folders and files. Projects are used for builds, version management, sharing, and resource organization. Like folders, projects map to directories in the file system. (When you create a project, you specify a location for it in the file system.) ( .project, Working sets). A project is either open or closed. TIP: closed projects require less memory. Since they are not examined during builds, closing a project can improve build time. ∗ Linked Resources: Folders and files can be linked to locations in the file system outside of the project's location. These special folders and files are called linked resources. TIP: Different tools that plug into the Workbench use their own specialized types of projects, folders, and files. Eclipse UI Resources October 2013 13 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 14. ∗ Perspective: ∗ A perspective defines the initial set and layout of views in the Workbench window. Within the window, each perspective shares the same set of editors. Each perspective provides a set of functionality (menus / toolbars) aimed at accomplishing a specific type of task or works with specific types of resources. ∗ Editor: ∗ Specialized view that USUALLY operates on file resources and provides mechanisms for resource life-cycle. ( sync example) ∗ Any number of editors can be open at once, but only one can be active at a time. The main menu bar and toolbar for the Workbench window contain operations (editor contribution) that are applicable to the active editor. ∗ View: ∗ Views support editors and provide alternative presentations as well as ways to navigate the information in your Workbench. ( Project Explorer, Problems, Errors, Properties, …) ∗ Views can have their own menus and toolbars TIP: Editor can be instantiated more then once; usually there is only one instance of a view. Eclipse UI Perspectives, Editors and Views October 2013 14 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 15. ∗ Menus: ∗ Menu bar ∗ Popup menu ∗ Toolbars: ∗ Workbench main toolbar and editor contributions ∗ Views related toolbar ∗ Preferences: ∗ Control the behavior of Workbench features ∗ Properties: ∗ Control the behavior of Resources features. ∗ Workspace related (.settings) Eclipse UI Menus, Toolbars, Preference and Properties October 2013 15 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 16. ∗ Toobar commands ∗ Popup menu commands ∗ Build-in run configurations ∗ Run / Debug ∗ External tools Eclipse UI Launch configurations October 2013 16 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 17. ∗ Everything can be extended ∗ Everything can be referenced by its own id Eclipse UI Concepts and Terms October 2013 17 Platform PlatformUI Selection Providers Selection Events Resource Change Jobs Commands Handlers Actions Multipage Editor Form Editor Pref/Prop Pages Project Natures Project Builders Resource Path Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 18. Eclipse Plug-ins Ecosystem OSGI October 2013 18 ∗ The OSGi technology is a set of specifications that define a dynamic component system for Java. ∗ These specifications enable a development model where applications are (dynamically) composed of many different (reusable) components. ∗ Bundles : Bundles are the OSGi components made by the developers. terms plug-in and bundle are interchangeable ( class hierarchy). ∗ Services : The services layer connects bundles in a dynamic way by offering a publish-find-bind model for plain old Java objects. ∗ Life-Cycle : The API to install, start, stop, update, and uninstall bundles. ∗ Modules : The layer that defines how a bundle can import and export code. ∗ Security : The layer that handles the security aspects. ∗ Execution Environment : Defines what methods and classes are available in a specific platform. Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 19. ∗ Manifest-Version ∗ Bundle-ManifestVersion: ∗ Bundle-Name ∗ Bundle-SymbolicName ∗ Bundle-Version ∗ Bundle-Activator ∗ Bundle-Vendor ∗ Require-Bundle ∗ Bundle-RequiredExecutionEnvironment ∗ Bundle-ActivationPolicy ∗ Bundle-ClassPath ∗ Export-Package TIP: An Activator class can be «singleton» TIP: Accessing an activator or a plugin class requires the containing plugin to be loaded, where interacting with the Bundle interface not. Eclipse Plug-ins Ecosystem Bundles and Manifest October 2013 19 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 20. Eclipse Plug-ins Ecosystem October 2013 20 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 21. ∗ The PDE provides a comprehensive plug-in development environment. ∗ PDE Views ∗ The Plugin registry view ∗ The Plugins view ∗ The Plugin dependencies view ∗ The Plugin Spy (Alt+Shift+F1) ∗ PDE Wizards ∗ Plugins Wizard & Extension Templates ∗ Features Wizard ∗ Update Site Wizard ∗ Running and Debugging your plugins TIP: You can use fragments to extends functionality of another plugin: typically there are used to supply alternative language packs or platform specific implementation classes. Using the PDE October 2013 21 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 22. ∗ www.eclipse.org ∗ Eclipse SDK update site ∗ help.eclipse.org ∗ wiki.eclipse.org ∗ www.osgi.org References October 2013 22 Copyright © 2013 Luca D’Onofrio – RCP Solutions
  • 23. ∗ Eclipse Plug-ins (3rd Edition): Building Commercial-Quality Plug-ins (Eclipse Series) - Eric Clayberg e Dan Rubel (11 dic. 2008) ∗ Design Patterns: Elements of Reusable Object-Oriented Software - Gamma, Erich, Helm, Richard, Johnson, Ralph e Vlissides, John (31 ott. 1994) ∗ Thinking In Java: The definitive introduction to object-oriented programming in the language of the world wide... - Bruce Eckel (3 feb. 2006) ∗ Xml Bible di Elliotte Rusty Harold e Harold (17 ago. 1999) ∗ XML Programming Bible: Bible Series, Book 129 Books October 2013 23 Copyright © 2013 Luca D’Onofrio – RCP Solutions