Introduction To The Eclipse PlatformPresentation Transcript
Introduction to the Eclipse Platform
Overview of the platform Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
(Standard Widget Toolkit)
IBM developed VisualAge: IDE coded in Smalltalk
VisualAge becomes Open Source project: Eclipse, intended to compete against other IDEs such as Microsoft Visual Studio
Actions to allow users to define their own behavior and to assign that behavior to components (menu items, tool items, push buttons, etc.
JFace - MVC
Viewer classes that handle data populating, sorting, filtering, and updating widgets (the MVC pattern )
JFace - User Interaction
Defines standard dialogs and wizards, and defines a framework for building complex interactions with the user
JFace - Long-running operations
Long-running operations that require progress indicators or allow user cancellation of the operation.
JFace - SWT
JFace is completely dependent on SWT, but SWT is not dependent on JFace.
The Eclipse Workbench is built on both JFace and SWT. In some instances, it bypasses JFace and accesses SWT directly.
Workbench Native UI SWT JFace
JFace - Summary
Primary goal is to free the developer up, letting to focus on the implementation of an application without having to be concerned with the underlying widget system or solving problems that are common in almost all UI applications.
(Open Services Gateway initiative)
OSGi is an independent, non-profit corporation
Open specifications for the delivery of managed services to networked environments
The specification define the OSGi Service Platform:
the OSGi framework
a set of standard service definitions
The core part of the specifications is a framework that defines an application life cycle model and a service registry.
OSGi - Services Platform Publish Discover Bind Bundle Service Registry Service Provider Service Requester
OSGi Service Definition
A service is defined by:
the service interface - Java class or interface,
the service properties - name and value pairs
Wide range of services is already defined ...
Security; Module; Life Cycle, and Service Layers; Framework API; Package Admin Service; Start Level Service; Conditional Permission Admin; Permission Admin Service; URL Handlers Service; Log Service; HTTP Service (runs servlets); Device Access; Configuration Admin Service; Metatype Service; Preferences Service; User Admin Service; Wire Admin Service; I/O Connector Service; Initial Provisioning; UPnP Device Service; Declarative Services; Event Admin Service; Deployment Admin; Auto Configuration; Application Admin Service; DMT Admin Service; Monitor Admin Service; Foreign Application Service; Service Tracker; XML Parser Service; Position; Measurement and State; Execution Environments
... plus all your own services.
Mix'n'Match services from different vendors (e.g. Spring Dynamic Modules)
OSGi Eclipse Equinox
Equinox is one of many OSGi implementations
Solid base for Eclipse platform
Provide extension points
Contribute to extension points
Eclipse Plug-ins host plug-in exposes extension point extender plug-in contributes to an extension point extension point plug-in: org.eclipse.ui WorkbenchPlugin actionSets plug-in: org.eclipse.help.ui Help -> Help Contents menu item
Rich Client Platform (RCP)
Eclipse RCP is a platform for building and deploying rich client applications.
This is the heart of any Eclipse based application
Workspace Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
Why cover the file system?
IDE Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
Provides soild ground for building development environment:
team (code share: cvs, svn)
Java, C, Python, Ruby
any other language you like
views, perspectives, editors
RCP Application Help Update Text Workspace Native Resources Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE