Testing is good, and as developers we should all do more of it. Test-Driven Development (TDD) is a principle and a development discipline that can help immensely to improve the quality of your finished code. But because TDD relies on a rapid development cycle that requires frequently rebuilding, re-deploying and re-running tests, it requires that your tests are able to deploy and run quickly in order to be feasible. If they are not, then the developer will naturally tend to become less disciplined in running the tests regularly and the benefits of TDD will be diminished.
The OSGi reactive service model provides a powerful way for components to wire with each other without global coordination. In some major use cases however this process is temporarily interrupted. This can cause subtle issues as well as backlash against using services due to perceived instability. One such use case is the well known whiteboard pattern. We will look at whiteboard from a holistic perspective: service providers, service consumers, and (often forgotten) OSGi system deployers.
In this talk we will follow a single rule to gradually discover the design principles at the root of most modular runtimes: OSGi, java modules, even microservices. We will contend that the degree to which a software system is committed to following this rule drives it's final shape in a way similar to natural evolution. We believe this will help software professionals understand why their modular applications exhibit certain traits like the particular distribution of complexity between modules.
Have you ever stumbled upon one of the following issues while developing RCP or RAP Applications:
Getting a clean Targetplatform.
Including Bundles that are not contained in a p2 Repository.
Assembling a Application that contain only the bundles it really requires.
Cloud solutions is an interest for every software company or software owner in the world.
But what if you have already an old and good software and a community uses it.
The migration of any software is always a huge work and needs a good plan.
On the other side, Eclipse Community has share over years a lot of technologies and libraries which enable us if we have in a good design to run an Eclipse OSGI plugins on any cloud native provider.
In todays connected world the requirement to connect applications across network boundaries has become a common requirement. With OSGi there are several ways to accomplish this, as there are different specifications to achieve this. In this talk we will look at some of these specifications to show what options there are and which might fit your requirements. Starting from an architecture that makes use of the HTTP Whiteboard pattern, over Remote Services to finally showing the usage of the JAX-RS Whiteboard specification introduced with R7.
OSGi is a Java framework that facilitates the development and deployment of modular software programs. It enables us to build larger applications from very loosely-coupled components. It improves the way Java classes interact within a single JVM using Java classloaders by encapsulating references to other codes in the same JVM in a well-defined architecture.
Microservices are often created by refactoring a service out of an existing monolithic application. There are some who suggest that for greenfield development it is actually preferable to build a monolith first and allow microservices to be pulled out as service boundaries are discovered. But whether you’re dealing with an existing Java-based monolith or are looking for ways to develop new functionality, the OSGi framework and Eclipse OSGi tooling can do a lot to improve your development process.
Even when using a modular software framework such as OSGi to structure software projects, architects and programmers can quickly lose the overview of how all the bundles and features correlate with each other and how the services as the bundle's interfaces are provided and used. Surely, some project members know about these connections and have some mental model of what is happening in the system. Documentation and the manifest, feature, etc. files will eventually provide that information to the curious reader.