The OSGi Alliance Community Event is co-located with EclipseCon Europe, and offers a full OSGi specific program that is open to all attendees. Talks related to OSGi technology and the OSGi ecosystem, including use cases and new initiatives around OSGi in enterprise, embedded, Cloud and IoT, should be submitted here. OSGi provides a vendor-independent, standards-based approach to modularizing Java software applications and infrastructure. Its proven services model enables app and infrastructure modules to communicate locally and distributed across the network, providing a coherent architecture for IoT services. OSGi specifications are tested and ready now to provide highly scalable remote management and effective maintenance over the long term.
In this talk I would like to share my story. In particular, about how I made the transition from the world of Physics to the one of OSGi. I have a PhD in Particle and Astroparticle Physics, and when I first arrived at Data In Motion Consulting GmbH, less than a year ago, I had never heard about Eclipse, OSGi, Microservices, Modular Infrastructure, Automated Builds etc.
It was a big change for me, but also an exciting challenge, which has not stopped surprising me.
Testing OSGi applications is a little different from other platforms. This talk aims to get people started with testing on OSGi and provide an overview of the options as well as practical examples.
Unit testing
Testing starts at the unit test level. Every project should have a good coverage by really fast tests (<10s for all tests). The talk will show practical cases of unit testing declarative services based code and how to shield your business code from OSGi API. We will also look into some typical pitfalls.
Integration testing
In this talk, I will show our initial findings and the methodology for answering the long-standing question if adhering to the best practices of modilarity in OSGi has a proveably positive impact on the quality and sustainability of software development. We discuss several software quality metrics that we identified as good indicators for this research and how OSGi can have an impact on them. We then present our initial findings on the impact of OSGi on real-world software projects that we determined by a broad empirical study of code available from open source projects.
Many people have the feeling or experience that OSGi is hard to use as a developer.
Most of this comes down to either the modular classpath or the dynamic nature of OSGi.
This talk shows best practices for coping with those special properties of OSGi in a
elegant and simple way.
Some highlights:
Modular and dynamic Realtime Java applications based on OSGi and RTSJ are not a novelty anymore. The combination of both technologies provides a powerful framework for dynamic and "open" real-time systems and platforms. In such systems real-time applications can be dynamically composed or updated based on newly deployed components and services.
Nowadays microservice infrastructures are widely used. OSGi is a very good choice realizing such projects. But somehow there is a missing link to show how existing build and deployment tools work seamlessly together with OSGi applications.
The talk shows an exemplary, existing OSGi application for managing traffic-information. This application runs in a Docker-based environment, with additional other services. You will learn, how OSGi a perfect base in this scenario, without having a OSGi only infrastructure.
Apache Sling is an OSGi-based framework for RESTful web-applications using an extensible content tree. In a nutshell, Sling maps HTTP request URLs to content resources based on the request’s path, extension and selectors. Using convention over configuration, requests are processed by scripts and servlets, dynamically selected based on the current resource. This fosters meaningful URLs and resource-driven request processing, while the modular nature of Sling allows for specialised server instances that include only what is needed.
Java agents are a little-known but extremely powerful part of the Java ecosystem. Agents are able to transform existing classes at runtime, allowing scenarios such as logging and monitoring, hot reload or gathering code coverage. However, their usage presents a number of pitfalls as well.
Writing good software isn't always easy; writing good and versatile open-source software that scales with time, with complexity, with amount and diversity of code authors, while increasing its development speed and keeping a huge ecosystem of extenders healthy for an extremely low to null maintenance cost on adopter's shoulders thanks to backward compatibility is even more challenging.
This is the challenge the Eclipse Platform has successfully faced for soon to be 2 decades, and has made it almost trivial to deal with in the last months.
Nowadays A.I. is the hype and everyone is talking on this awesome new neural network they trained. However, what is often overlooked is how to integrate such technology into a real system. In this talk I will show some results from our research lab on training a neural network to grasp objects. Instead of delving into the deep learning details however, I will focus on how we benefit from OSGi to integrate this onto a real robot system, and create some fancy API models using Promises and PushStreams.