SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Eclipse Plug-ins
and RCP
Training Course
RCP and Industrialization
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
1
1. Internationalization (I18N)
2. Building RCPs
a) RCP startup classes
b) Product Configuration and Branding
c) Features and Branding
d) Update Site
e) Building a Product
f) Target Platform and Delta Packs
g) P2 Repository
Agenda
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
2
∗ Eclipse and the underlying JRE (Java Runtime
Environment) provide APIs for separating language
and UI human readable strings from code.
∗ By isolating those strings an application can be
«localized»
∗ Main Concepts:
∗ Property files containing the strings collected by language
∗ APIs or tools create/access string properties
Internationalization (I18N)
(1/2)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
3
∗ Internationalize plug-in manifest:
∗ PDE Tools Internationalize/Externalize Strings
∗ Extract strings and create fragments for each selected language (see ISO
639, ISO 3166)
bundle_<language>_<country>.properties
∗ Externalize plugin-in strings:
∗ SourceExternalize Strings
∗ A property(ies) file(s) contains the set strings
∗ An accessor class(es) extending org.eclipse.osgi.util.NLS provides
mechanisms to load and access property file according to environment
locale
<basename>_<language>_<country>.properties
TIP: factor any common values and create a common key.
TIP: use in your code «Name»+ «:» instead of «Name:»
Internationalization (I18N)
(2/2)
Copyright © 2013 Luca D’Onofrio – RCP Solutions
4
October 2013
∗ Define the application which you would like to run using the
platform runtime.
∗ Declared applications can be run directly from the main platform
launcher by specifying the application argument where the
parameter is the id of an extension supplied to the applications
extension point.
∗ This application is instantiated and run by the platform.
∗ An IApplication represent executable entry points.
Building RCPs
Extension points and APIs (1/2)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
5
Purpose Define the application entry point.
Package org.eclipse.core.runtime
Extension Point org.eclipse.core.runtime.applications
Interface(s) org.eclipse.equinox.app.IApplication
∗ IApplication
∗ Start/stop
∗ WorkbenchAdvisor
∗ Initialize
∗ Performs arbitrary actions just
before the first workbench window
is opened (or restored) / closed
∗ WorkbenchWindowAdvisor
∗ Performs arbitrary actions before
the window is opened/closed
∗ ActionBarAdvisor
∗ Configure menu, action bar, status
bar, …
Building RCPs
Extension points and APIs (2/2)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
6
class rcp
ActionBarAdvisor
ApplicationActionBarAdvisor
WorkbenchAdvisor
ApplicationWorkbenchAdvisor
WorkbenchWindowAdvisor
ApplicationWorkbenchWindowAdvisor
IApplication
TrainingApplication
Enry Point
Configure the
Workbench
Configure action bar
and menu of a
workcench window.
Configure the
workbench window.
∗ Products are the Eclipse unit of branding.
∗ A Product defines the default application to run when running
the product.
∗ There are two possible forms of product extension
∗ Static product extensions directly contain all relevant information
about the product.
∗ Dynamic product extensions identify a class (an IProductProvider)
which is capable of defining one or more products when queried.
Product Configuration and
Branding (1/3)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
7
Purpose Define the product application to launch and its
branding.
Package org.eclipse.core.runtime
Extension Point org.eclipse.core.runtime.products
∗ An Eclipse based product is a stand-alone program built with the Eclipse
platform.
∗ A product may optionally be packaged and delivered as one or more
features, which are simply groupings of plug-ins that are managed as a single
entity by the Eclipse update mechanisms.
∗ Products include all the code and plug-ins needed to run them. This includes a
Java runtime environment (JRE) and the Eclipse platform code.
∗ Once installed, the user launches the product and is presented with an
Eclipse workbench configured specifically for the purpose supported by the
product.
∗ The platform makes it easy to configure labels, about dialogs, graphics, and
splash screens.
∗ PDE provides a product configuration file and associated editor to make it
easy to create products in the correct format.
Product Configuration and
Branding (2/3)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
8
Product Configuration and
Branding (3/3)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
9
∗ Product Branding:
∗ Splash screen
∗ About dialog image and text
∗ Windows Images (and icons associated to the launcher)
∗ A Feature groups together one or more plug-ins
∗ A Feature can be deployed as an installation
unit.
∗ A Feature specifies:
∗ Category (optional)
∗ Branding plugin (optional)
∗ Feature update site URL (optional)
∗ Licence, copyright, … information
∗ Dependencies
Features and Branding
(1/3)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
10
Features and Branding
(2/3)
Copyright © 2013 Luca D’Onofrio – RCP Solutions
11
October 2013
∗ Contains:
∗ about.ini
∗aboutText: short multi-line description of the
feature
∗featureImage: 32x32 pixel image used in the
product About dialog
Features and Branding
Branding Plugin (3/3)
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
12
∗ More features can be collected in an update site described by a
site.xml file.
∗ An update site contains:
∗ Features categories
∗ Features
∗ Web page(s) (optional)
∗ Feature/Update site exported packages can be installed using
Eclipse installation wizard
∗ Installed Features can be uninstalled using the Eclipse About
dialog
Update Site
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
13
∗ Package those elements to be delivered to the customer in a
form suitable for the installation.
∗ Automated build using PDE
∗ Customized build using ANT script file
Building a Product
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
14
Target Platform
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
15
∗ The Target Platform refers to the
plug-ins which your workspace
will be built and run against. It
describes the platform that you
are developing for.
∗ The Target Definition Editor is
used to edit target definition files
in the workspace, which should
end with the extension ".target".
∗ Target definition files can be
created using the New Target
Definition Wizard or by moving
them to the workspace on the
Target Platform Preference Page.
∗ Eclipse package containing all the needed plugins to export your
RCP product to different platforms (Windows, Linux, Mac, …)
without having to use a platform’s native Eclipse installation.
∗ The archives contains all the platform specific fragments from
the Eclipse SDK.
∗ Delta pack can be installed using:
WindowPreferencesPlug-in DevelopmentTarget Platform
Delta Packs
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
16
∗ The p2 project is a sub-project of Equinox (OSGI
services) that focuses on provisioning technology for
OSGi-based applications.
∗ It provides Eclipse with installation facilities.
∗ In order to use P2 you need to add
org.eclipse.equinox.p2.* packages in your installation
unit.
∗ An installable unit can be augmented at generation time
by writing a p2 advice file (p2.inf). The format of this file
is java properties file containing key=value pairs.
P2 Repository
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
17
∗ www.eclipse.org
∗ help.eclipse.org
∗ wiki.eclipse.org
∗ Eclipse SDK update site
∗ http://download.eclipse.org/eclipse/updates/4.3
∗ www.eclipse.org/equinox/
∗ http://wiki.eclipse.org/Equinox_Provisioning
References
October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions
18

Weitere ähnliche Inhalte

Was ist angesagt?

Python for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionPython for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionEmbarcadero Technologies
 
Getting started with the NDK
Getting started with the NDKGetting started with the NDK
Getting started with the NDKKirill Kounik
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartNokiaAppForum
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxEmbarcadero Technologies
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeKorhan Bircan
 
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机Rex Tsai
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorialoscon2007
 

Was ist angesagt? (8)

Python for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionPython for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 Introduction
 
Getting started with the NDK
Getting started with the NDKGetting started with the NDK
Getting started with the NDK
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
 
Turbo c++
Turbo c++Turbo c++
Turbo c++
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React Native
 
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
 

Andere mochten auch

Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...
Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...
Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...Эволюция и Филантропия
 
Empfehlungsschreiben_Media Total
Empfehlungsschreiben_Media TotalEmpfehlungsschreiben_Media Total
Empfehlungsschreiben_Media TotalErfaan Aftab
 
Formacion novedades formación
Formacion novedades formaciónFormacion novedades formación
Formacion novedades formaciónEduca-training
 
Intermediate writing persuasion and discussion skills - Lesson 5
Intermediate writing   persuasion and discussion skills - Lesson 5Intermediate writing   persuasion and discussion skills - Lesson 5
Intermediate writing persuasion and discussion skills - Lesson 5SkimaTalk
 
W smith assignment 40
W smith assignment 40W smith assignment 40
W smith assignment 40Will Smith
 
الذكاء
الذكاءالذكاء
الذكاءhessah_8s
 

Andere mochten auch (11)

Haze Kraze
Haze KrazeHaze Kraze
Haze Kraze
 
Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...
Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...
Как юридически грамотно оформить кампании по сбору пожертвований в сети ИНТЕР...
 
Empfehlungsschreiben_Media Total
Empfehlungsschreiben_Media TotalEmpfehlungsschreiben_Media Total
Empfehlungsschreiben_Media Total
 
Presentation on volunteer recruitment, Midlands Learn and Share event, Pat W...
 Presentation on volunteer recruitment, Midlands Learn and Share event, Pat W... Presentation on volunteer recruitment, Midlands Learn and Share event, Pat W...
Presentation on volunteer recruitment, Midlands Learn and Share event, Pat W...
 
Formacion novedades formación
Formacion novedades formaciónFormacion novedades formación
Formacion novedades formación
 
Intermediate writing persuasion and discussion skills - Lesson 5
Intermediate writing   persuasion and discussion skills - Lesson 5Intermediate writing   persuasion and discussion skills - Lesson 5
Intermediate writing persuasion and discussion skills - Lesson 5
 
W smith assignment 40
W smith assignment 40W smith assignment 40
W smith assignment 40
 
الذكاء
الذكاءالذكاء
الذكاء
 
Holisticmarketing by poonam
Holisticmarketing by poonamHolisticmarketing by poonam
Holisticmarketing by poonam
 
ENGLAND
ENGLANDENGLAND
ENGLAND
 
TB drugs and ADR
TB drugs and ADRTB drugs and ADR
TB drugs and ADR
 

Ähnlich wie Eclipse Training - RCP & Industrialization

Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - IntroductionLuca D'Onofrio
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解Rex Tsai
 
Eclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIsEclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIsLuca D'Onofrio
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesLuca D'Onofrio
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabRon Munitz
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labRon Munitz
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitPascal Rapicault
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insTonny Madsen
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guidemagicshui
 
SpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople
 
EclipseCon Europe 2012 Tabris Workshop
EclipseCon Europe 2012 Tabris WorkshopEclipseCon Europe 2012 Tabris Workshop
EclipseCon Europe 2012 Tabris WorkshopHolger Staudacher
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success storyEOSC-hub project
 
(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_netNico Ludwig
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
 

Ähnlich wie Eclipse Training - RCP & Industrialization (20)

Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
 
Eclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIsEclipse Training - Standard Extension Points and APIs
Eclipse Training - Standard Extension Points and APIs
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classes
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
How to Use OpenMP on Native Activity
How to Use OpenMP on Native ActivityHow to Use OpenMP on Native Activity
How to Use OpenMP on Native Activity
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering lab
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guide
 
SpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps Development
 
EclipseCon Europe 2012 Tabris Workshop
EclipseCon Europe 2012 Tabris WorkshopEclipseCon Europe 2012 Tabris Workshop
EclipseCon Europe 2012 Tabris Workshop
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success story
 
(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 

Kürzlich hochgeladen

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Kürzlich hochgeladen (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Eclipse Training - RCP & Industrialization

  • 1. Eclipse Plug-ins and RCP Training Course RCP and Industrialization October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 1
  • 2. 1. Internationalization (I18N) 2. Building RCPs a) RCP startup classes b) Product Configuration and Branding c) Features and Branding d) Update Site e) Building a Product f) Target Platform and Delta Packs g) P2 Repository Agenda October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 2
  • 3. ∗ Eclipse and the underlying JRE (Java Runtime Environment) provide APIs for separating language and UI human readable strings from code. ∗ By isolating those strings an application can be «localized» ∗ Main Concepts: ∗ Property files containing the strings collected by language ∗ APIs or tools create/access string properties Internationalization (I18N) (1/2) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 3
  • 4. ∗ Internationalize plug-in manifest: ∗ PDE Tools Internationalize/Externalize Strings ∗ Extract strings and create fragments for each selected language (see ISO 639, ISO 3166) bundle_<language>_<country>.properties ∗ Externalize plugin-in strings: ∗ SourceExternalize Strings ∗ A property(ies) file(s) contains the set strings ∗ An accessor class(es) extending org.eclipse.osgi.util.NLS provides mechanisms to load and access property file according to environment locale <basename>_<language>_<country>.properties TIP: factor any common values and create a common key. TIP: use in your code «Name»+ «:» instead of «Name:» Internationalization (I18N) (2/2) Copyright © 2013 Luca D’Onofrio – RCP Solutions 4 October 2013
  • 5. ∗ Define the application which you would like to run using the platform runtime. ∗ Declared applications can be run directly from the main platform launcher by specifying the application argument where the parameter is the id of an extension supplied to the applications extension point. ∗ This application is instantiated and run by the platform. ∗ An IApplication represent executable entry points. Building RCPs Extension points and APIs (1/2) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 5 Purpose Define the application entry point. Package org.eclipse.core.runtime Extension Point org.eclipse.core.runtime.applications Interface(s) org.eclipse.equinox.app.IApplication
  • 6. ∗ IApplication ∗ Start/stop ∗ WorkbenchAdvisor ∗ Initialize ∗ Performs arbitrary actions just before the first workbench window is opened (or restored) / closed ∗ WorkbenchWindowAdvisor ∗ Performs arbitrary actions before the window is opened/closed ∗ ActionBarAdvisor ∗ Configure menu, action bar, status bar, … Building RCPs Extension points and APIs (2/2) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 6 class rcp ActionBarAdvisor ApplicationActionBarAdvisor WorkbenchAdvisor ApplicationWorkbenchAdvisor WorkbenchWindowAdvisor ApplicationWorkbenchWindowAdvisor IApplication TrainingApplication Enry Point Configure the Workbench Configure action bar and menu of a workcench window. Configure the workbench window.
  • 7. ∗ Products are the Eclipse unit of branding. ∗ A Product defines the default application to run when running the product. ∗ There are two possible forms of product extension ∗ Static product extensions directly contain all relevant information about the product. ∗ Dynamic product extensions identify a class (an IProductProvider) which is capable of defining one or more products when queried. Product Configuration and Branding (1/3) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 7 Purpose Define the product application to launch and its branding. Package org.eclipse.core.runtime Extension Point org.eclipse.core.runtime.products
  • 8. ∗ An Eclipse based product is a stand-alone program built with the Eclipse platform. ∗ A product may optionally be packaged and delivered as one or more features, which are simply groupings of plug-ins that are managed as a single entity by the Eclipse update mechanisms. ∗ Products include all the code and plug-ins needed to run them. This includes a Java runtime environment (JRE) and the Eclipse platform code. ∗ Once installed, the user launches the product and is presented with an Eclipse workbench configured specifically for the purpose supported by the product. ∗ The platform makes it easy to configure labels, about dialogs, graphics, and splash screens. ∗ PDE provides a product configuration file and associated editor to make it easy to create products in the correct format. Product Configuration and Branding (2/3) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 8
  • 9. Product Configuration and Branding (3/3) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 9 ∗ Product Branding: ∗ Splash screen ∗ About dialog image and text ∗ Windows Images (and icons associated to the launcher)
  • 10. ∗ A Feature groups together one or more plug-ins ∗ A Feature can be deployed as an installation unit. ∗ A Feature specifies: ∗ Category (optional) ∗ Branding plugin (optional) ∗ Feature update site URL (optional) ∗ Licence, copyright, … information ∗ Dependencies Features and Branding (1/3) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 10
  • 11. Features and Branding (2/3) Copyright © 2013 Luca D’Onofrio – RCP Solutions 11 October 2013
  • 12. ∗ Contains: ∗ about.ini ∗aboutText: short multi-line description of the feature ∗featureImage: 32x32 pixel image used in the product About dialog Features and Branding Branding Plugin (3/3) October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 12
  • 13. ∗ More features can be collected in an update site described by a site.xml file. ∗ An update site contains: ∗ Features categories ∗ Features ∗ Web page(s) (optional) ∗ Feature/Update site exported packages can be installed using Eclipse installation wizard ∗ Installed Features can be uninstalled using the Eclipse About dialog Update Site October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 13
  • 14. ∗ Package those elements to be delivered to the customer in a form suitable for the installation. ∗ Automated build using PDE ∗ Customized build using ANT script file Building a Product October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 14
  • 15. Target Platform October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 15 ∗ The Target Platform refers to the plug-ins which your workspace will be built and run against. It describes the platform that you are developing for. ∗ The Target Definition Editor is used to edit target definition files in the workspace, which should end with the extension ".target". ∗ Target definition files can be created using the New Target Definition Wizard or by moving them to the workspace on the Target Platform Preference Page.
  • 16. ∗ Eclipse package containing all the needed plugins to export your RCP product to different platforms (Windows, Linux, Mac, …) without having to use a platform’s native Eclipse installation. ∗ The archives contains all the platform specific fragments from the Eclipse SDK. ∗ Delta pack can be installed using: WindowPreferencesPlug-in DevelopmentTarget Platform Delta Packs October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 16
  • 17. ∗ The p2 project is a sub-project of Equinox (OSGI services) that focuses on provisioning technology for OSGi-based applications. ∗ It provides Eclipse with installation facilities. ∗ In order to use P2 you need to add org.eclipse.equinox.p2.* packages in your installation unit. ∗ An installable unit can be augmented at generation time by writing a p2 advice file (p2.inf). The format of this file is java properties file containing key=value pairs. P2 Repository October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 17
  • 18. ∗ www.eclipse.org ∗ help.eclipse.org ∗ wiki.eclipse.org ∗ Eclipse SDK update site ∗ http://download.eclipse.org/eclipse/updates/4.3 ∗ www.eclipse.org/equinox/ ∗ http://wiki.eclipse.org/Equinox_Provisioning References October 2013Copyright © 2013 Luca D’Onofrio – RCP Solutions 18