Migrating from PDE to Bndtools in Practice Meet The Speakers 2 - - PowerPoint PPT Presentation

migrating from pde to bndtools in practice meet the
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Migrating from PDE to Bndtools in Practice

slide-2
SLIDE 2

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

slide-3
SLIDE 3

3

Agenda

01

About QIVICON

02

PDE Pain Points

03

Motivation

04

Comparison

05

Get Ready

06

Challenges

slide-4
SLIDE 4

4

01

About QIVICON

Agenda

slide-5
SLIDE 5

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

slide-6
SLIDE 6

6

01

About QIVICON

02

PDE Pain Points

Agenda

slide-7
SLIDE 7

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
slide-8
SLIDE 8

8

01

About QIVICON

02

Motivation

03

PDE Pain Points

Agenda

slide-9
SLIDE 9

9

Single Workspace leads to Smooth Induction to the Project Better Support of API based Development Explicit Dependency Management Higher Modularity Maturity

Motivation

slide-10
SLIDE 10

10

01

About QIVICON

02

PDE Pain Points

03

Motivation

04

Comparison

Agenda

slide-11
SLIDE 11

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

slide-12
SLIDE 12

12

01

About QIVICON

02

PDE Pain Points

03

Motivation

04

Comparison

05

Get Ready

Agenda

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

15

Setting Up - Workspace

Maven Repository

Maven Bnd Repository plugin provides a full interface to any type of Maven repositories (Nexus or Artifactory)

slide-16
SLIDE 16

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

slide-17
SLIDE 17

17

Setting Up - Workspace

Directory Structure Project Specific Config

https://bnd.bndtools.org

slide-18
SLIDE 18

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

slide-19
SLIDE 19

19

Post Conversion

Generated Descriptor

Persist PDE Manifest Automated Analysis

Choice of existing MANIFEST Usage should be configurable in Bnd

slide-20
SLIDE 20

20

slide-21
SLIDE 21

21

Timeline

Ideation Phase for Migration

2018 Research/Analysis 2018 April May Migration Trials 2018 June

slide-22
SLIDE 22

22

Finalizing Solutions Milestone Set for Migration

2018 August 2018 July

Coping with the Current System Finding Solutions

2018 Early September

Final Migration

slide-23
SLIDE 23

23

01

About QIVICON

02

PDE Pain Points

03

Motivation

04

Comparison

05

Get Ready

06

Challenges

Agenda

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

26

Credits

01

Colleagues for Valuable Feedbacks

02 03

Jan Hendriks

04

Alexander Hoffman

05

Benedikt Niehues Peter Kriens

06

Bndtools Community

slide-27
SLIDE 27

27

slide-28
SLIDE 28

Thank You :)