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