SlideShare a Scribd company logo
1 of 14
Download to read offline
Premek Brada | University of West Bohemia, CZ


Automated Semantic
Versioning for OSGi Bundles
Wednesday, 29th September 2010




Supported by the Grant Agency of the Czech Republic, project 201/08/0266
Agenda
• Versioning in OSGi
• How tools can help
• Tooling available
• Technical background
• Status
“Humans are already incapable of handling version
management on the scale required today. Tools need
rules and guidelines … [and] it is paramount that
versions have semantics.”
                                     Semantic Versioning,
                             Technical Whitepaper, rev 1.0
Versioning in OSGi
    • Enables version co-existence at runtime
    • Used by the resolver
       – exported package: version
       – imported package: range
       – matched as part of constraint solving
Manifest-Version: 1.0
Bundle-ManifestVersion: 2                                                References
Bundle-Name: Apache Felix Configuration Admin Service                    • R4 Core spec,
Bundle-SymbolicName: org.apache.felix.configadmin                          mainly 3.6.2
Bundle-Version: 1.0.10
                                                                           Version Matching
Export-Package: org.apache.felix.cm;version="1.0",org.apache.felix.cm.
 file;uses:="org.apache.felix.cm,org.osgi.framework";version="1.0“ (…)   • Semantic
Import-Package: org.apache.felix.cm;version="1.0",org.apache.felix.cm.     versioning
 file;version="1.0",org.osgi.framework;version="1.3“ (…)                   whitepaper
Versions yes, but semantic…?
  • Bundle-Version: 0.9.0                        “Marketing” vs
     x                                           “Semantic”
                                                 version IDs
    Bundle-Version: 1.0.0

Original   Semantic   Changes     Original   Semantic   Changes
0.9.0      1.0.0      n/a         …          …          …
0.9.2      1.1.0      extension   1.0.4      1.0.2      (none)
1.0.0      2.0.0      removal     1.2.0      2.0.0      modification
                                  …          …          …
  Example – revision streams of   1.2.2      2.0.2      (none)
          two bundles             1.4.0      2.1.0      extension
Versions yes, but semantic…?
• Export-Package: x.y.z;version=0.9.0
   x
  Export-Package: x.y.z;version=1.0.0


 Resolver believes
 package version IDs
OSGi Semantic versions
• 1.0.0 -> 1.1.0 -> 2.0.0 signal changes
  – Semantics = versioning policy


• OSGi world has one
  – R4 Core suggests M.m..q as common
  – Semantic versioning whitepaper requires this
• Note: different contexts => different
  consequences
  – API x implementation package
  – consumer x provider x implementer (API)
“Humans are already incapable …”



How tools can support OSGi
semantic versions
 IDE: bundle development,
  manifest editing
   o inferring / generating version IDs
 Bnd/maven/.../repository: assembly,
  deployment, distribution
 Resolver: dependency resolution, wiring
   o version matching

„Open world“ scenario:
   – development / release tool extensions
„Closed world“ (controlled bundle set):
   – repository extensions
Tool support for the
                         „Open world“ case
OBVS: The versioning service



     Bundle-Name: Apache Felix Bundle Repository
     Bundle-SymbolicName: org.apache.felix.bundlerepository
     Bundle-Version: 1.0.1
     DynamicImport-Package: org.apache.felix.shell
     Export-Package: org.osgi.service.obr;version="1.0.0";uses:="org.osgi.framework"
     Import-Package: org.osgi.framework;version="1.3",org.osgi.service.log;
      resolution:=optional;version="1.3.0",org.osgi.service.obr;version="1.0"
     Bnd-LastModified: 1238533562871
     OBVS-Reference: 201009071638414
     OBVS-Bundle-Version-Orig: 1.4.0
     OBVS-Export-Package-Orig: org.osgi.service.obr;version="1.0";uses:="org.osgi.framework"
The „Closed world“ case

      Apache ACE integration                                                   (WiP)
      • Enhanced repository enforces versions
      • API
         – extended BundleStore interface
         – String put(InputStream bundle)
      • Implementation
         – generates filename (returned)
         – stores versioned copy of bundle
> vers-ace-demo d:tmporg.apache.felix.fileinstall-0.9.0.jar
File successfully stored with name 'org.apache.felix.fileinstall-0.9.0.jar„
> vers-ace-demo d:tmporg.apache.felix.fileinstall-0.9.2.jar
File successfully stored with name 'org.apache.felix.fileinstall-0.10.0.jar„
> vers-ace-demo d:tmpfileinstall-1.0.0.jar
File successfully stored with name 'org.apache.felix.fileinstall-0.10.1.jar'
Under the hood
• Scope: detects and versions
  syntactical changes on the public
  interface of packages => bundles

• Works on bundle .jar (bytecode)
• Checks for subtype relation
• Stubs => ignores user-defines
  packages
• Modifies bundle meta-data
Under the hood

    comparator         difference



                         version
                        generator
   structure
    structure
representation
 representation
(BundleTypes)
  (BundleTypes)
        class repre   MANIFEST
                        MANIFEST
       (JavaTypes)




          loader

                       base         sequel
                        .jar         .jar
What (not) to expect, aka Status
• Service: currently in „beta“
  – open use, free access
  – beta testing: failing bundles can be stored
• Apache ACE integration: a prototype

• Some limitations
  – changes in imported packages
    (reconstruction non-trivial)
  – Declarative Services, "include" and "exclude"
    directives
  – Java 5 features (generics, annotations)
Summary
• Tooling for OSGi semantic versioning
  – package and bundle versions
  – API and implementation packages
  – standalone bundles, repositories
• OBVS at http://osgi.kiv.zcu.cz/obvs/

• Plans for the future
   – improve (integrate what‟s done)
   – REST API, tool integration?
http://osgi.kiv.zcu.cz/obvs/




THANK YOU
                            This work was
                        brought to you by:

                             Lukáš Valenta,
                            Tomáš Ptáčník,
                             Jaroslav Plzák,
                               Jarda Bauml,
                                 Jiří Kučera,
                Grant Agency of the Czech
            Republic, project 201/08/0266

More Related Content

What's hot

Usage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on LinuxUsage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on LinuxWilliam Lee
 
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 William Lee
 
Usage Note of PlayCap
Usage Note of PlayCapUsage Note of PlayCap
Usage Note of PlayCapWilliam Lee
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesWilliam Lee
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHPWilliam Lee
 
CMake Talk 2008
CMake Talk 2008CMake Talk 2008
CMake Talk 2008cynapses
 
Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3William Lee
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency ManagerUjjwal Ojha
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeJulien Pivotto
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101Rami Sayar
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...mfrancis
 

What's hot (17)

Usage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on LinuxUsage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on Linux
 
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
 
Usage Note of PlayCap
Usage Note of PlayCapUsage Note of PlayCap
Usage Note of PlayCap
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP Languages
 
C++ for the Web
C++ for the WebC++ for the Web
C++ for the Web
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
Cmake kitware
Cmake kitwareCmake kitware
Cmake kitware
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
 
CMake Talk 2008
CMake Talk 2008CMake Talk 2008
CMake Talk 2008
 
C make tutorial
C make tutorialC make tutorial
C make tutorial
 
Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3
 
Network programming
Network programmingNetwork programming
Network programming
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency Manager
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101
 
!!! Huong dan !!!
!!! Huong dan !!!!!! Huong dan !!!
!!! Huong dan !!!
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
 

Viewers also liked

CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APIPremek Brada
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture OverviewPremek Brada
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtcPremek Brada
 
Safe Bundle Updates
Safe Bundle UpdatesSafe Bundle Updates
Safe Bundle UpdatesPremek Brada
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)Premek Brada
 
UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramPremek Brada
 

Viewers also liked (6)

CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná API
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture Overview
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtc
 
Safe Bundle Updates
Safe Bundle UpdatesSafe Bundle Updates
Safe Bundle Updates
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
 
UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class Diagram
 

Similar to Brada -semantic-versioning-tool

Managing Change
Managing ChangeManaging Change
Managing ChangeMirko Jahn
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The FactLuciano Resende
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with ComposerAdam Englander
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi WebinarWSO2
 
Improvements in the OOo Release
Improvements in the OOo ReleaseImprovements in the OOo Release
Improvements in the OOo ReleaseAlexandro Colorado
 
FASTEN presentation at SFScon, November 2020
FASTEN presentation at SFScon, November 2020FASTEN presentation at SFScon, November 2020
FASTEN presentation at SFScon, November 2020Fasten Project
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereGanesh Raju
 
Storage Is Not Virtualized Enough - part 1
Storage Is Not Virtualized Enough - part 1Storage Is Not Virtualized Enough - part 1
Storage Is Not Virtualized Enough - part 1Zhipeng Huang
 
Continuous Automated Deployment with Apache ACE
Continuous Automated Deployment with Apache ACEContinuous Automated Deployment with Apache ACE
Continuous Automated Deployment with Apache ACEJan Willem Janssen
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"IT Event
 
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloReal-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloJoe Stein
 
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit
 
CVST - Smalltalk Solutions 2001
CVST - Smalltalk Solutions 2001CVST - Smalltalk Solutions 2001
CVST - Smalltalk Solutions 2001Martin Kobetic
 
Modularity of The Java Platform Javaday (http://javaday.org.ua/)
Modularity of The Java Platform Javaday (http://javaday.org.ua/)Modularity of The Java Platform Javaday (http://javaday.org.ua/)
Modularity of The Java Platform Javaday (http://javaday.org.ua/)Martin Toshev
 
A look at Apache OODT Balance framework
A look at Apache OODT Balance frameworkA look at Apache OODT Balance framework
A look at Apache OODT Balance frameworkskhudiky
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 

Similar to Brada -semantic-versioning-tool (20)

Managing Change
Managing ChangeManaging Change
Managing Change
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The Fact
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
 
Improvements in the OOo Release
Improvements in the OOo ReleaseImprovements in the OOo Release
Improvements in the OOo Release
 
Composer
ComposerComposer
Composer
 
FASTEN presentation at SFScon, November 2020
FASTEN presentation at SFScon, November 2020FASTEN presentation at SFScon, November 2020
FASTEN presentation at SFScon, November 2020
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
Storage Is Not Virtualized Enough - part 1
Storage Is Not Virtualized Enough - part 1Storage Is Not Virtualized Enough - part 1
Storage Is Not Virtualized Enough - part 1
 
Docker-v3.pdf
Docker-v3.pdfDocker-v3.pdf
Docker-v3.pdf
 
Continuous Automated Deployment with Apache ACE
Continuous Automated Deployment with Apache ACEContinuous Automated Deployment with Apache ACE
Continuous Automated Deployment with Apache ACE
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloReal-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
 
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
 
CVST - Smalltalk Solutions 2001
CVST - Smalltalk Solutions 2001CVST - Smalltalk Solutions 2001
CVST - Smalltalk Solutions 2001
 
Mastering composer
Mastering composerMastering composer
Mastering composer
 
Modularity of The Java Platform Javaday (http://javaday.org.ua/)
Modularity of The Java Platform Javaday (http://javaday.org.ua/)Modularity of The Java Platform Javaday (http://javaday.org.ua/)
Modularity of The Java Platform Javaday (http://javaday.org.ua/)
 
A look at Apache OODT Balance framework
A look at Apache OODT Balance frameworkA look at Apache OODT Balance framework
A look at Apache OODT Balance framework
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 

Brada -semantic-versioning-tool

  • 1. Premek Brada | University of West Bohemia, CZ Automated Semantic Versioning for OSGi Bundles Wednesday, 29th September 2010 Supported by the Grant Agency of the Czech Republic, project 201/08/0266
  • 2. Agenda • Versioning in OSGi • How tools can help • Tooling available • Technical background • Status “Humans are already incapable of handling version management on the scale required today. Tools need rules and guidelines … [and] it is paramount that versions have semantics.” Semantic Versioning, Technical Whitepaper, rev 1.0
  • 3. Versioning in OSGi • Enables version co-existence at runtime • Used by the resolver – exported package: version – imported package: range – matched as part of constraint solving Manifest-Version: 1.0 Bundle-ManifestVersion: 2 References Bundle-Name: Apache Felix Configuration Admin Service • R4 Core spec, Bundle-SymbolicName: org.apache.felix.configadmin mainly 3.6.2 Bundle-Version: 1.0.10 Version Matching Export-Package: org.apache.felix.cm;version="1.0",org.apache.felix.cm. file;uses:="org.apache.felix.cm,org.osgi.framework";version="1.0“ (…) • Semantic Import-Package: org.apache.felix.cm;version="1.0",org.apache.felix.cm. versioning file;version="1.0",org.osgi.framework;version="1.3“ (…) whitepaper
  • 4. Versions yes, but semantic…? • Bundle-Version: 0.9.0 “Marketing” vs x “Semantic” version IDs Bundle-Version: 1.0.0 Original Semantic Changes Original Semantic Changes 0.9.0 1.0.0 n/a … … … 0.9.2 1.1.0 extension 1.0.4 1.0.2 (none) 1.0.0 2.0.0 removal 1.2.0 2.0.0 modification … … … Example – revision streams of 1.2.2 2.0.2 (none) two bundles 1.4.0 2.1.0 extension
  • 5. Versions yes, but semantic…? • Export-Package: x.y.z;version=0.9.0 x Export-Package: x.y.z;version=1.0.0 Resolver believes package version IDs
  • 6. OSGi Semantic versions • 1.0.0 -> 1.1.0 -> 2.0.0 signal changes – Semantics = versioning policy • OSGi world has one – R4 Core suggests M.m..q as common – Semantic versioning whitepaper requires this • Note: different contexts => different consequences – API x implementation package – consumer x provider x implementer (API)
  • 7. “Humans are already incapable …” How tools can support OSGi semantic versions  IDE: bundle development, manifest editing o inferring / generating version IDs  Bnd/maven/.../repository: assembly, deployment, distribution  Resolver: dependency resolution, wiring o version matching „Open world“ scenario: – development / release tool extensions „Closed world“ (controlled bundle set): – repository extensions
  • 8. Tool support for the „Open world“ case OBVS: The versioning service Bundle-Name: Apache Felix Bundle Repository Bundle-SymbolicName: org.apache.felix.bundlerepository Bundle-Version: 1.0.1 DynamicImport-Package: org.apache.felix.shell Export-Package: org.osgi.service.obr;version="1.0.0";uses:="org.osgi.framework" Import-Package: org.osgi.framework;version="1.3",org.osgi.service.log; resolution:=optional;version="1.3.0",org.osgi.service.obr;version="1.0" Bnd-LastModified: 1238533562871 OBVS-Reference: 201009071638414 OBVS-Bundle-Version-Orig: 1.4.0 OBVS-Export-Package-Orig: org.osgi.service.obr;version="1.0";uses:="org.osgi.framework"
  • 9. The „Closed world“ case Apache ACE integration (WiP) • Enhanced repository enforces versions • API – extended BundleStore interface – String put(InputStream bundle) • Implementation – generates filename (returned) – stores versioned copy of bundle > vers-ace-demo d:tmporg.apache.felix.fileinstall-0.9.0.jar File successfully stored with name 'org.apache.felix.fileinstall-0.9.0.jar„ > vers-ace-demo d:tmporg.apache.felix.fileinstall-0.9.2.jar File successfully stored with name 'org.apache.felix.fileinstall-0.10.0.jar„ > vers-ace-demo d:tmpfileinstall-1.0.0.jar File successfully stored with name 'org.apache.felix.fileinstall-0.10.1.jar'
  • 10. Under the hood • Scope: detects and versions syntactical changes on the public interface of packages => bundles • Works on bundle .jar (bytecode) • Checks for subtype relation • Stubs => ignores user-defines packages • Modifies bundle meta-data
  • 11. Under the hood comparator difference version generator structure structure representation representation (BundleTypes) (BundleTypes) class repre MANIFEST MANIFEST (JavaTypes) loader base sequel .jar .jar
  • 12. What (not) to expect, aka Status • Service: currently in „beta“ – open use, free access – beta testing: failing bundles can be stored • Apache ACE integration: a prototype • Some limitations – changes in imported packages (reconstruction non-trivial) – Declarative Services, "include" and "exclude" directives – Java 5 features (generics, annotations)
  • 13. Summary • Tooling for OSGi semantic versioning – package and bundle versions – API and implementation packages – standalone bundles, repositories • OBVS at http://osgi.kiv.zcu.cz/obvs/ • Plans for the future – improve (integrate what‟s done) – REST API, tool integration?
  • 14. http://osgi.kiv.zcu.cz/obvs/ THANK YOU This work was brought to you by: Lukáš Valenta, Tomáš Ptáčník, Jaroslav Plzák, Jarda Bauml, Jiří Kučera, Grant Agency of the Czech Republic, project 201/08/0266