SlideShare a Scribd company logo
1 of 13
Download to read offline
© 2018 Software AG. All rights reserved.
Udo Hafermann
Todor Boev
MELD OSGI BUNDLES WITH
JAVA MODULES
OSGI RFP 190
2 |
MOTIVATION
Example: My bundle requires AWT—what is the minimum Java module set?
© 2018 Software AG. All rights reserved. For internal use only
3 |
OVERVIEW
This talk presents RFP 190: Resource Encoding of Java Modules
1. Application Domain and Problem Statement
2. Use Cases
3. Requirements
4. Proof of Concept
5. Open Ends
© 2018 Software AG. All rights reserved. For internal use only
4 |
PROBLEM STATEMENT
• We want self-contained Java applications with minimal footprint
• For OSGi, we can resolve the set of required bundles
• But JRE can easily dominate the overall size
• With JPMS, we can strip down to the modules required
• How to determine which ones are required?
• R7 provides the flat list of all boot layer packages
• Removing modules from the boot layer is a trial and error process
• We need the modules as such to be visible to tools and runtime
© 2018 Software AG. All rights reserved. For internal use only
5 |
USE CASES
• Build a compact Docker image
• Build a self-contained, no-installation tool
• Analyze JRE footprint, bundle by bundle
• Introspect JRE at runtime
• Create hybrid app of OSGi bundles and JPMS modules
© 2018 Software AG. All rights reserved. For internal use only
6 |
GENERAL REQUIREMENTS
• Resolver can still be used to build consistent set of modules and bundles
– Should not require a new tool or component
• Bundles are not forced to explicitly reference modules
– Just as we don’t want bundles to explicitly reference bundles
• A bundle may function as a module
– OSGi framework as a special case
• Includes third-party modules
• Best-effort JPMS validation
– Rejects duplicate and (optionally) conflicting and cyclic modules
© 2018 Software AG. All rights reserved. For internal use only
7 |
RESOLVING DEPENDENCIES
• Module identity and version
• Bundle package imports to module exports
• Modules to modules
• (Optional) Module services as resources
• (Optional) Requirements to module services
© 2018 Software AG. All rights reserved. For internal use only
8 |
ENHANCING METADATA
• Add version range requirements for modules
• Use bundle annotations for additional JPMS module dependencies
• Replace org.osgi.framework.system.packages with module resource
representations
© 2018 Software AG. All rights reserved. For internal use only
9 |
PROOF OF CONCEPT
• Modeling
– Module as special kind of bundle
– Require module as require-bundle
– Module exports as export-package
– Module provides as service-loader capability
– Module uses as service-loader requirement
• Extracts of actual metadata
• Run resolver on “awt” example
© 2018 Software AG. All rights reserved. For internal use only
10 |
MODULE METADATA
© 2018 Software AG. All rights reserved. For internal use only
java.desktop
osgi.identity
osgi.identity=java.desktop
type=java-module
singleton=true
version=10.0.2
osgi.wiring.bundle
filter:=(&(osgi.wiring.bundle=java.base)(bundle-version=10.0.2)(java-module=true))
resolution:=mandatory
osgi.wiring.bundle
filter:=(&(osgi.wiring.bundle=java.prefs)(bundle-version=10.0.2)(java-module=true))
visibility:=reexport
resolution:=mandatory osgi.serviceloader
filter:=(&(osgi.serviceloader=javax.imageio.spi.ImageOutputStreamSpi)(version>=0.0.0))
resolution:=optional
cardinality:=multiple ...
...
osgi.wiring.package
osgi.wiring.package=java.awt.color
bundle-symbolic-name=java.desktop
bundle-version=10.0.2
version=0.0.0
osgi.wiring.package
osgi.wiring.package=javax.swing
bundle-symbolic-name=java.desktop
bundle-version=10.0.2
version=0.0.0
osgi.serviceloader
osgi.serviceloader=javax.sound.midi.spi.MidiDeviceProvider
version=0.0.0
...
...
Provides
Requires
osgi.wiring.bundle
osgi.wiring.bundle=java.desktop
java-module=true
bundle-version=10.0.2
11 |
DEMO TEST
• org.example.awtclient 1.0.0
• osgi.wiring.package; filter:=(&(osgi.wiring.package=java.awt)(version>=0.0.0))
© 2018 Software AG. All rights reserved.
12 |
THANK YOU
• Feedback welcome on https://github.com/osgi/design/blob/master/rfps/rfp-0190-
Resource%20encoding%20for%20Java%20Modules.odt
© 2018 Software AG. All rights reserved. For internal use only
13 | © 2018 Software AG. All rights reserved.

More Related Content

More from mfrancis

Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
mfrancis
 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
mfrancis
 

More from mfrancis (20)

Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
 
Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)
Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)
Turtles all the Way Up – From OSGi bundles to Fog Computing - Tim Ward (Paremus)
 
OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...
OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...
OSGi in Action - How we use OSGi to build Open Liberty - Alasdair Nottingham ...
 
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
 
Eclipse microprofile config and OSGi config admin - E Jiang
Eclipse microprofile config and OSGi config admin - E JiangEclipse microprofile config and OSGi config admin - E Jiang
Eclipse microprofile config and OSGi config admin - E Jiang
 
Smart IoTt on OSGi with Apache Openwhisk - C Ziegeler & D Bosschaert
Smart IoTt on OSGi with Apache Openwhisk - C Ziegeler & D BosschaertSmart IoTt on OSGi with Apache Openwhisk - C Ziegeler & D Bosschaert
Smart IoTt on OSGi with Apache Openwhisk - C Ziegeler & D Bosschaert
 
When whiteboards play together. JAX-RS and servlets the OSGi way - M Hoffmann...
When whiteboards play together. JAX-RS and servlets the OSGi way - M Hoffmann...When whiteboards play together. JAX-RS and servlets the OSGi way - M Hoffmann...
When whiteboards play together. JAX-RS and servlets the OSGi way - M Hoffmann...
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Meld OSGi Bundles with Java Modules - Udo Hafermann (Software AG)

  • 1. © 2018 Software AG. All rights reserved. Udo Hafermann Todor Boev MELD OSGI BUNDLES WITH JAVA MODULES OSGI RFP 190
  • 2. 2 | MOTIVATION Example: My bundle requires AWT—what is the minimum Java module set? © 2018 Software AG. All rights reserved. For internal use only
  • 3. 3 | OVERVIEW This talk presents RFP 190: Resource Encoding of Java Modules 1. Application Domain and Problem Statement 2. Use Cases 3. Requirements 4. Proof of Concept 5. Open Ends © 2018 Software AG. All rights reserved. For internal use only
  • 4. 4 | PROBLEM STATEMENT • We want self-contained Java applications with minimal footprint • For OSGi, we can resolve the set of required bundles • But JRE can easily dominate the overall size • With JPMS, we can strip down to the modules required • How to determine which ones are required? • R7 provides the flat list of all boot layer packages • Removing modules from the boot layer is a trial and error process • We need the modules as such to be visible to tools and runtime © 2018 Software AG. All rights reserved. For internal use only
  • 5. 5 | USE CASES • Build a compact Docker image • Build a self-contained, no-installation tool • Analyze JRE footprint, bundle by bundle • Introspect JRE at runtime • Create hybrid app of OSGi bundles and JPMS modules © 2018 Software AG. All rights reserved. For internal use only
  • 6. 6 | GENERAL REQUIREMENTS • Resolver can still be used to build consistent set of modules and bundles – Should not require a new tool or component • Bundles are not forced to explicitly reference modules – Just as we don’t want bundles to explicitly reference bundles • A bundle may function as a module – OSGi framework as a special case • Includes third-party modules • Best-effort JPMS validation – Rejects duplicate and (optionally) conflicting and cyclic modules © 2018 Software AG. All rights reserved. For internal use only
  • 7. 7 | RESOLVING DEPENDENCIES • Module identity and version • Bundle package imports to module exports • Modules to modules • (Optional) Module services as resources • (Optional) Requirements to module services © 2018 Software AG. All rights reserved. For internal use only
  • 8. 8 | ENHANCING METADATA • Add version range requirements for modules • Use bundle annotations for additional JPMS module dependencies • Replace org.osgi.framework.system.packages with module resource representations © 2018 Software AG. All rights reserved. For internal use only
  • 9. 9 | PROOF OF CONCEPT • Modeling – Module as special kind of bundle – Require module as require-bundle – Module exports as export-package – Module provides as service-loader capability – Module uses as service-loader requirement • Extracts of actual metadata • Run resolver on “awt” example © 2018 Software AG. All rights reserved. For internal use only
  • 10. 10 | MODULE METADATA © 2018 Software AG. All rights reserved. For internal use only java.desktop osgi.identity osgi.identity=java.desktop type=java-module singleton=true version=10.0.2 osgi.wiring.bundle filter:=(&(osgi.wiring.bundle=java.base)(bundle-version=10.0.2)(java-module=true)) resolution:=mandatory osgi.wiring.bundle filter:=(&(osgi.wiring.bundle=java.prefs)(bundle-version=10.0.2)(java-module=true)) visibility:=reexport resolution:=mandatory osgi.serviceloader filter:=(&(osgi.serviceloader=javax.imageio.spi.ImageOutputStreamSpi)(version>=0.0.0)) resolution:=optional cardinality:=multiple ... ... osgi.wiring.package osgi.wiring.package=java.awt.color bundle-symbolic-name=java.desktop bundle-version=10.0.2 version=0.0.0 osgi.wiring.package osgi.wiring.package=javax.swing bundle-symbolic-name=java.desktop bundle-version=10.0.2 version=0.0.0 osgi.serviceloader osgi.serviceloader=javax.sound.midi.spi.MidiDeviceProvider version=0.0.0 ... ... Provides Requires osgi.wiring.bundle osgi.wiring.bundle=java.desktop java-module=true bundle-version=10.0.2
  • 11. 11 | DEMO TEST • org.example.awtclient 1.0.0 • osgi.wiring.package; filter:=(&(osgi.wiring.package=java.awt)(version>=0.0.0)) © 2018 Software AG. All rights reserved.
  • 12. 12 | THANK YOU • Feedback welcome on https://github.com/osgi/design/blob/master/rfps/rfp-0190- Resource%20encoding%20for%20Java%20Modules.odt © 2018 Software AG. All rights reserved. For internal use only
  • 13. 13 | © 2018 Software AG. All rights reserved.