Migrating from PDE to Bndtools in Practice Meet The Speakers 2 - - PowerPoint PPT Presentation
Migrating from PDE to Bndtools in Practice Meet The Speakers 2 - - PowerPoint PPT Presentation
Migrating from PDE to Bndtools in Practice Meet The Speakers 2 Jochen Hiller Developer Evangelist Deutsche Telekom AG Seasoned Java Developer OSGi and IoT Evangelist Eclipse Concierge Committer Amit Kumar Mondal Software Engineer
2
Meet The Speakers
Jochen Hiller
Seasoned Java Developer OSGi and IoT Evangelist Eclipse Concierge Committer
Developer Evangelist
Amit Kumar Mondal
Passionate Java Developer OSGi and IoT Enthusiast Eclipse Kura Committer Software Engineer Deutsche Telekom AG Deutsche Telekom AG
3
Agenda
01
About QIVICON
02
PDE Pain Points
03
Motivation
04
Comparison
05
Get Ready
06
Challenges
4
01
About QIVICON
Agenda
5
About QIVICON
Partner Applications Eclipse SmartHome OSGi Framework: OSGi R4.2 JavaSE Embedded 8 Compact 2/3 OS: Linux
Eclipse SmartHome based Home Gateway
QIVICON
6
01
About QIVICON
02
PDE Pain Points
Agenda
7
PDE Pain Points
How Issue Dependency Management
- Target Definition File
- Tycho
- pom.xml
- Complex Configuration
- Workaround to add bundles
not present in p2 repos
- Additional Dependencies
Manifest-First Approach
- MANIFEST.MF
- Semantic Versioning:
Manual and Error-Prone
- No Automated Generation
Run Configurations
- .launch
- Not reliable
- Non-deterministic Behavior
- Difficult to maintain
8
01
About QIVICON
02
Motivation
03
PDE Pain Points
Agenda
9
Single Workspace leads to Smooth Induction to the Project Better Support of API based Development Explicit Dependency Management Higher Modularity Maturity
Motivation
10
01
About QIVICON
02
PDE Pain Points
03
Motivation
04
Comparison
Agenda
11
Comparison
PDE vs Bndtools
PDE Bndtools
❖ Bytecode Based Import Analysis ❖ Instant JAR Creation ❖ Default Annotation Support ❖ Automated Semantic Versioning ❖ One Project Multi Bundles ❖ Default OBR Based Management ❖ Automated Header Generation ❖ Nested Workspace Structure ❖ Custom Project Template Support
12
01
About QIVICON
02
PDE Pain Points
03
Motivation
04
Comparison
05
Get Ready
Agenda
13
Setting Up - Workspace
A single directory with all its sub- directories and their files, similar to a git workspace Workspaces should be named according to the bundle symbolic names of its projects Valid if it contains a cnf file The advised model is to use a directory with a cnf/build.bnd file
14
Setting Up - Workspace
P2 Repository
Bndtools uses repositories to manage dependencies at build and runtime In Bndtools 3.3, P2 Repository Plugin has been introduced
15
Setting Up - Workspace
Maven Repository
Maven Bnd Repository plugin provides a full interface to any type of Maven repositories (Nexus or Artifactory)
16
Setting Up - Workspace
runtime.maven
An archive is a ZIP, POM, JAR, or any other type of file Contains a list of coordinates specifying an archive in a Maven revision
17
Setting Up - Workspace
Directory Structure Project Specific Config
https://bnd.bndtools.org
18
Conversion - PDE to Bnd
Control File Conversion Command
Creates a Bnd project in the provided workspace with the symbolic name The command will first parse the manifest to establish the BSN
19
Post Conversion
Generated Descriptor
Persist PDE Manifest Automated Analysis
Choice of existing MANIFEST Usage should be configurable in Bnd
20
21
Timeline
Ideation Phase for Migration
2018 Research/Analysis 2018 April May Migration Trials 2018 June
22
Finalizing Solutions Milestone Set for Migration
2018 August 2018 July
Coping with the Current System Finding Solutions
2018 Early September
Final Migration
23
01
About QIVICON
02
PDE Pain Points
03
Motivation
04
Comparison
05
Get Ready
06
Challenges
Agenda
24
Challenges
Complex Infrastructure
Bnd cannot easily handle complex maven based infrastructure, needed tweaks, unable to process client certs
Windows Environment
The development is bit slower on NTFS based systems. Gradle also doesn’t work as efficient as it works in Unix based platforms.
Integration Testing
Bnd ignores Fragments but most PDE users write tests in Fragments
Multi-Project Sync
Integrating PDE with Bnd Projects together makes Eclipse confused
25
01
Organize Trainings and Hackathons Adapt Tests during Migration
02
Disable Antivirus Scanning in:
Eclipse,Workspace, .m2, .p2, .gradle, .groovy, .bnd, .eclipse
03
Learn BND Commands
04
Insider Tips
26
Credits
01
Colleagues for Valuable Feedbacks
02 03
Jan Hendriks
04
Alexander Hoffman
05
Benedikt Niehues Peter Kriens
06
Bndtools Community
27