Everyone deploying an OSGi bundle on a running system will have encountered a Resolution failed exception, due to some missing import packages. Although it may seem as a pain in the ass, the OSGi resolver can actually make your life a lot easier when used properly. In this talk we will go through the process of resolution, explain the requirement-capability model, and show how you can automatically assemble your application by using the resolver at build time. It's time for the re(s/v)olution!
The objective of this tutorial is to sensitize the audience for actual problems with real-time sensor data processing and actuator control arising at the edge of current IoT and Fog systems. These are mostly "open" systems allowing a dynamic arrival of applications and functions. Often, they must also meet certain performance and QoS criteria for the applications.
Communications is error prone. Connections time out, servers fail to respond, returned data can be incomplete or corrupted. Bnd, the OSGi tooling project, has an HttpClient class which is used for communications including with remote repositories like Maven/Nexus and P2 repositories. The Bnd CI builds started having significant failures due to communications problems with the Eclipse download servers, so with some light code restructuring, I was able to add retry support to HttpClient using the Promises package from OSGi.
The OSGi Alliance via enroute.osgi.org and bndtools.org teams have spent a number of years focused on improving support for OSGi development in Maven. This talk will demonstrate the latest innovations demonstrating features such as quick setup, minimal configuration, use of bundle annotations, BOM support, integration testing, assembly and running, live coding, dual OSGi/JPMS library development.
The OSGi Alliance has developed a specification describing integration between OSGi and CDI. The combination of these two powerful development technologies opens the door to new possibilities. This talk will walk through the most essential features of the specification and show some code and running examples.
In an ever increasing race to increase scalability, reduce configuration and decrease hosting costs “Serverless” computing promises to run your business logic “on demand” without the need for fixed infrastructure. As a dynamic, modular platform OSGi makes an ideal platform upon which to deploy your serverless functions. Furthermore, OSGi’s Requirements and Capabilities model allows for more complex serverless functions to be dynamically assembled and deployed in response to incoming events.
In the search for a convenient, flexible and extensible OSGi deployment model for use by Apache Sling, the Apache Sling Feature model was created. Over the past 2 years this Feature Model has been taking shape in the community. The components developed include the model itself with a JSON serialisation, analysers that can check models for semantic consistency, and a Maven plugin that supports various tasks, such as producing minimal Docker images based on model definitions, and creating model aggregations.
Early 2019 OSGi Enterprise Release 7 was released where one of the new specs is the
OSGi-CDI integration specification. Carsten and David will dive deeper into this specification
which enables the use of CDI and CDI beans seamlessly in OSGi. Learn how to use existing CDI-based
code in OSGi and see how the OSGi/CDI specification integrates with the OSGi Service Registry
and with Configuration Admin. A live demo using the implementation from Apache Aries
demonstrates the usage of CDI.
OSGi is the only solution for proper modularity in Java, on the other hand Springboot is a popular framework in the Java ecosystem. If you have to choose between the two, you can only get the benefits of one of them. This talk demonstrates how to combine the two most popular approaches of developing Java applications and how to benefit from the combined advantages. The talk compares the two approaches in terms of service registration and service binding as well as handling of dynamics.