SlideShare a Scribd company logo
Automating the consumption of
Eclipse for internal use
Pascal Rapicault
Emilio Palmiero
Automating the consumption of Eclipse for internal use
› Building Eclipse distros
› Creating an aggregated update site
› End-2-end automation
Outline
Building Eclipse Distros
› Key concepts
– Product file
– Product extension
– .eclipseproduct
– Plugin customization (aka default preferences)
– p2.inf
› Tools used
– Tycho
– PDE
– JBehave
› Describes a complete eclipse installation
› Facade over multiple concerns
– Features / plugins
– Branding (icon, splash, about dialog)
– Configuration (start level, VM settings, system property)
› Development time “artefact”
– Spread in product extension and p2 metadata
Product file
› Product extension (extends org.eclipse.core.runtime.products xpt)
– Reference branding images
– Default preferences
– Default application
– Extensible set of key/value pairs
› Available at runtime (e.g. accessed by the workbench, see IProduct API)
Note: There can be multiple products in an installation, but only one runs.
Product extension
Plug-in for branding
com.ericsson.eecs.single.branding
Product extension
com.ericsson.eecs.single.branding.product
Features being used
org.eclipse.sdk
Product file
com.ericsson.eecs.sdk.ide
› Customizing default preferences
› Removing undesirable root files (or p2 IUs)
› Adding root files
› Adding a default repo
<demo>
› Marker file used when install is read-only to compute the
folder where eclipse will store configuration information.
Should be changed.
<demo support>
.eclipseproduct
E.g. ~/.eclipse/org.eclipse.platform_4.3.0_1354634885…
› You may want to replace or remove
– bundles, features, root files, …
› Several possibilities
– Re-create feature
– Create feature patches (only add and replace)
– Forge identity
CHANGE / REPLACE THINGS
FORGING IUs
org.eclipse.sdk
org.eclipse.platform_root
Product IU
com.ericsson.eecs.sdk.ide
com.ericsson.no_root
BDD-based testing
It is about implementing an application by describing it from the point of view of its stakeholders.
BDD chooses to use a semi-formal format for behavioral specification which is borrowed
from user story specifications from the field of object-oriented analysis and design.
Definition
Scenario: check proxy setting
Given eclipse
Then the proxy for <protocol> should be <proxy> on port <port>
Examples:
|protocol|proxy|port|
|http|www-proxy.lmc.ericsson.se|8080|
|https|www-proxy.lmc.ericsson.se|8080|
Lessons learnED
› Building a product is a detail oriented task
– Start by the details! Prototype in the IDE using product editor and
export from there. Adding all the plugins will slow down the feedback
loop because the export will be slower.
› Production build with Tycho
› BDD is great way to get readable tests
– Positive experience with JBehave community
› Problems
– Discrepancies between the real exported product and PDE and Tycho
– The product file could use some improvements.
› What we build?
– Standalone repository
– Pre-validated for a given stream
– Categorized for our users
› Key concepts
– p2 repository
– Category
› Tools used
– b3
– p2 mirror
– p2 category publisher
One Update site to RULE
tHEM ALL
› Each entry in the site must install
› b3
– Validate, aggregate
- Works great for “one-offs”
› Problems
– Not able to append to an existing repo
Gather / ValidatE
aggregation
› Entries must be categorized for our users
› Category publisher
– Write a category.xml
– Run p2 category publisher
› Category IUs are added by a composite repo
categorization
categories
composite
aggregation
› Don’t assume anything about repos
(unless being told otherwise)
› Completely isolate yourself from external repos
–Mirror internally
–Remove references
› Problems
–Duplication of the feature IDs between categories and aggregation
Lessons LEARNED
› Key concepts
– CI
– Matrix jobs
› Tool used
– Jenkins + plugins
End-2-end automation
WORKFLOW
Merge with
previous repo
Create
categories
Mirror in Ericsson
(p2 and legacy)
Validate
Aggregate
Generate
webpage
Composite repo
› Jenkins is not an SCM
– Keep the list of sites to mirror in your SCM
› Minimize the number of jobs
– E.g. we use Matrix builds
› Work on a shared drive or specific Jenkins workspace
– Save time by saving on files copy
– Does not clutter slaves
› Problems
– Some duplication of URLs between what the b3 files refers to and our
list of sites.
– Build avoidance not supported on p2 metadata
LESSONS LEARNED
Future WORK
Future WoRK
› Contribute where there are limitations
– B3 to generate the categories separately
– Product file
– Build avoidance
› Express workflows using Jenkins’ Jenkow plug-in
› “Standardize” structure of Eclipse repos to make discovery
more easy.
› Many tools with their strengths and weaknesses but we
love them for what they are
ConcLUSION
p2
Automating the consumption of Eclipse for internal use

More Related Content

What's hot (20)

PDF
Jenkins Best Practices
Gergely Brautigam
 
PPTX
Jenkins introduction
Gourav Varma
 
PDF
Deep Dive into the AOSP
Dr. Ketan Parmar
 
PPTX
Hooking Docker With Selenium
Sujith Vakathanam
 
PDF
Rise of the Machines - Automate your Development
Sven Peters
 
PDF
DNUG Webcast: IBM Notes V10 Performance Boost
Christoph Adler
 
PPT
The Build System of Commercial RCP Application A Case Study
gustavoeliano
 
PDF
OSDC 2017 - Julien Pivotto - Automating Jenkins
NETWAYS
 
PPT
Maven Introduction
Sandeep Chawla
 
PDF
Using Docker for Testing
Carlos Sanchez
 
PPT
Apache Ant
Vinod Kumar V H
 
PPT
Sleep Peacefully as Maven Tycho Builds your Product
Subramanyam C
 
PDF
Who *is* Jenkins?
Andrew Bayer
 
PPTX
Learning Maven by Example
Hsi-Kai Wang
 
PPT
Demystifying Maven
Mike Desjardins
 
PDF
Java Builds with Maven and Ant
David Noble
 
PPTX
Jenkins tutorial
Mamun Rashid, CCDH
 
PPTX
Jenkins CI presentation
Jonathan Holloway
 
PDF
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Marcel Birkner
 
PPT
Using Maven 2
andyhot
 
Jenkins Best Practices
Gergely Brautigam
 
Jenkins introduction
Gourav Varma
 
Deep Dive into the AOSP
Dr. Ketan Parmar
 
Hooking Docker With Selenium
Sujith Vakathanam
 
Rise of the Machines - Automate your Development
Sven Peters
 
DNUG Webcast: IBM Notes V10 Performance Boost
Christoph Adler
 
The Build System of Commercial RCP Application A Case Study
gustavoeliano
 
OSDC 2017 - Julien Pivotto - Automating Jenkins
NETWAYS
 
Maven Introduction
Sandeep Chawla
 
Using Docker for Testing
Carlos Sanchez
 
Apache Ant
Vinod Kumar V H
 
Sleep Peacefully as Maven Tycho Builds your Product
Subramanyam C
 
Who *is* Jenkins?
Andrew Bayer
 
Learning Maven by Example
Hsi-Kai Wang
 
Demystifying Maven
Mike Desjardins
 
Java Builds with Maven and Ant
David Noble
 
Jenkins tutorial
Mamun Rashid, CCDH
 
Jenkins CI presentation
Jonathan Holloway
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Marcel Birkner
 
Using Maven 2
andyhot
 

Similar to Automating the consumption of Eclipse for internal use (20)

PPT
Understanding and extending p2 for fun and profit
Pascal Rapicault
 
PPTX
PDE builds or Maven
Eclipse Day India
 
PDF
Eclipse IDE, 2019.09, Java Development
Pei-Hsuan Hsieh
 
PDF
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
spatzoachskq
 
PDF
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
shirkamiahlp
 
PDF
Eclipse plug in development
Martin Toshev
 
PDF
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
marijgabari
 
PPT
Brane.Storm
kturgut
 
PDF
P2 Introduction
irbull
 
PDF
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
PPT
Eclipse Training - Introduction
Luca D'Onofrio
 
PPT
"Eclipse Application Development" at GNUnify 07
KetanPadegaonkar
 
PPT
What's new in p2 (2009)?
Pascal Rapicault
 
PDF
Eclipse Packaging Project Usage Data Collector
Markus Knauer
 
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
Tonny Madsen
 
PPT
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
PDF
Eclipse HandsOn Workshop
Bastian Feder
 
PDF
Beyond Domino Designer
Paul Withers
 
PPT
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Tonny Madsen
 
KEY
Tycho - Building plug-ins with Maven
Pascal Rapicault
 
Understanding and extending p2 for fun and profit
Pascal Rapicault
 
PDE builds or Maven
Eclipse Day India
 
Eclipse IDE, 2019.09, Java Development
Pei-Hsuan Hsieh
 
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
spatzoachskq
 
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
shirkamiahlp
 
Eclipse plug in development
Martin Toshev
 
Eclipse Rich Client Platform 2nd Edition Jeff Mcaffer
marijgabari
 
Brane.Storm
kturgut
 
P2 Introduction
irbull
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
Eclipse Training - Introduction
Luca D'Onofrio
 
"Eclipse Application Development" at GNUnify 07
KetanPadegaonkar
 
What's new in p2 (2009)?
Pascal Rapicault
 
Eclipse Packaging Project Usage Data Collector
Markus Knauer
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
Tonny Madsen
 
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
Eclipse HandsOn Workshop
Bastian Feder
 
Beyond Domino Designer
Paul Withers
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Tonny Madsen
 
Tycho - Building plug-ins with Maven
Pascal Rapicault
 
Ad

Recently uploaded (20)

PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
Best Web development company in india 2025
Greenusys
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Dipole Tech Innovations – Global IT Solutions for Business Growth
dipoletechi3
 
PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Simplify React app login with asgardeo-sdk
vaibhav289687
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Best Web development company in india 2025
Greenusys
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Dipole Tech Innovations – Global IT Solutions for Business Growth
dipoletechi3
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Simplify React app login with asgardeo-sdk
vaibhav289687
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
Ad

Automating the consumption of Eclipse for internal use

  • 1. Automating the consumption of Eclipse for internal use Pascal Rapicault Emilio Palmiero
  • 3. › Building Eclipse distros › Creating an aggregated update site › End-2-end automation Outline
  • 4. Building Eclipse Distros › Key concepts – Product file – Product extension – .eclipseproduct – Plugin customization (aka default preferences) – p2.inf › Tools used – Tycho – PDE – JBehave
  • 5. › Describes a complete eclipse installation › Facade over multiple concerns – Features / plugins – Branding (icon, splash, about dialog) – Configuration (start level, VM settings, system property) › Development time “artefact” – Spread in product extension and p2 metadata Product file
  • 6. › Product extension (extends org.eclipse.core.runtime.products xpt) – Reference branding images – Default preferences – Default application – Extensible set of key/value pairs › Available at runtime (e.g. accessed by the workbench, see IProduct API) Note: There can be multiple products in an installation, but only one runs. Product extension
  • 7. Plug-in for branding com.ericsson.eecs.single.branding Product extension com.ericsson.eecs.single.branding.product Features being used org.eclipse.sdk Product file com.ericsson.eecs.sdk.ide
  • 8. › Customizing default preferences › Removing undesirable root files (or p2 IUs) › Adding root files › Adding a default repo <demo>
  • 9. › Marker file used when install is read-only to compute the folder where eclipse will store configuration information. Should be changed. <demo support> .eclipseproduct E.g. ~/.eclipse/org.eclipse.platform_4.3.0_1354634885…
  • 10. › You may want to replace or remove – bundles, features, root files, … › Several possibilities – Re-create feature – Create feature patches (only add and replace) – Forge identity CHANGE / REPLACE THINGS
  • 12. BDD-based testing It is about implementing an application by describing it from the point of view of its stakeholders. BDD chooses to use a semi-formal format for behavioral specification which is borrowed from user story specifications from the field of object-oriented analysis and design. Definition Scenario: check proxy setting Given eclipse Then the proxy for <protocol> should be <proxy> on port <port> Examples: |protocol|proxy|port| |http|www-proxy.lmc.ericsson.se|8080| |https|www-proxy.lmc.ericsson.se|8080|
  • 13. Lessons learnED › Building a product is a detail oriented task – Start by the details! Prototype in the IDE using product editor and export from there. Adding all the plugins will slow down the feedback loop because the export will be slower. › Production build with Tycho › BDD is great way to get readable tests – Positive experience with JBehave community › Problems – Discrepancies between the real exported product and PDE and Tycho – The product file could use some improvements.
  • 14. › What we build? – Standalone repository – Pre-validated for a given stream – Categorized for our users › Key concepts – p2 repository – Category › Tools used – b3 – p2 mirror – p2 category publisher One Update site to RULE tHEM ALL
  • 15. › Each entry in the site must install › b3 – Validate, aggregate - Works great for “one-offs” › Problems – Not able to append to an existing repo Gather / ValidatE aggregation
  • 16. › Entries must be categorized for our users › Category publisher – Write a category.xml – Run p2 category publisher › Category IUs are added by a composite repo categorization categories composite aggregation
  • 17. › Don’t assume anything about repos (unless being told otherwise) › Completely isolate yourself from external repos –Mirror internally –Remove references › Problems –Duplication of the feature IDs between categories and aggregation Lessons LEARNED
  • 18. › Key concepts – CI – Matrix jobs › Tool used – Jenkins + plugins End-2-end automation
  • 19. WORKFLOW Merge with previous repo Create categories Mirror in Ericsson (p2 and legacy) Validate Aggregate Generate webpage Composite repo
  • 20. › Jenkins is not an SCM – Keep the list of sites to mirror in your SCM › Minimize the number of jobs – E.g. we use Matrix builds › Work on a shared drive or specific Jenkins workspace – Save time by saving on files copy – Does not clutter slaves › Problems – Some duplication of URLs between what the b3 files refers to and our list of sites. – Build avoidance not supported on p2 metadata LESSONS LEARNED
  • 22. Future WoRK › Contribute where there are limitations – B3 to generate the categories separately – Product file – Build avoidance › Express workflows using Jenkins’ Jenkow plug-in › “Standardize” structure of Eclipse repos to make discovery more easy.
  • 23. › Many tools with their strengths and weaknesses but we love them for what they are ConcLUSION p2

Editor's Notes

  • #2: Introduce ourselves, describe our roles, what Ericsson does. Introduce the talk and mention that we have a more technical talk tomorrow.
  • #8: To build IDE, the org.eclipse.platform plugin is a good starting point for the branding plugin
  • #9: To customize preferences the hardest is to figure out the actual key to use. To Help with this you can try the “export preferences” or “workspace mechaniscs” recorder
  • #16: B3 is also able to categorize but we don’t use it. We use b3 to also mirror the legacy update sites because it has the smarts to do it properly