Blog posts tagged with "osgi"

  • Mockito#mock causes NoClassDefFoundException in OSGi

    Today I migrated some of our OSGi integration tests in our bnd workspace to the OSGi-Test support. We already used our own wrapper test classes, to deal with services, service availability and configurations. With the great initial work and some support of a good friend, most of our existing features... [more]

  • Upload to maven central with individually versioned bundles

    We recently started uploading our bundles to maven central. To do that a trusted staging repository is needed (in our case sonatype). They perform certain checks, to make sure your artifacts meet the standards (like e.g. jars need to be signed) of maven central. BND can smoothly handle the the... [more]

  • OSGi in a Nutshell: Working with service configurations

    Today we will see a slightly more complicated version of the use case we saw last week. We will always talk about services, but of configurable services. Use Case Imagine you have two or more implementations for the same service, and you have a consumer which needs one of your... [more]

  • OSGi in a Nutshell: Launch a simple Service

    This week we are finally ready to start working on our first use case: how to create and launch a simple service component in OSGi. We will proceed as follows: we first describe how this can be done in a pure Java environment, and then we will move to OSGi.... [more]

  • OSGi in a Nutshell: What is OSGi? (continued)

    In the previous post of the series we started with a simple definition of OSGi, as an additional layer which can be put on top of Java, and provides a set of functionalities to help you develop an application as a *modular* and *dynamic* system. We also looked into the... [more]

  • OSGi in a Nutshell What is OSGi

    Here we are with our first episode of this new series about OSGi. Before entering the details of our use cases, we first need to give a brief definition of what OSGi is, and what it has tried to accomplish over the years. The OSGi Alliance was founded in March... [more]

  • Talk OSGi Asynchronous Messaging at EclipseCon 2020

    Today I gave a talk at the EclipseCon 2020 about the new upcoming OSGi Messaging Specification. We work on this specification for a while. The idea is based on one of our OpenSource Projects that is hosted on Gitlab: https://gitlab.com/gecko.io/geckoMessageAdapter The idea is to harmonize the API for asynchronous messaging.... [more]

  • OSGi in a Nutshell

    With this post we would like to announce a new blog series, aimed to describe the world of OSGi. Data In Motion Consulting GmbH has been an OSGi Alliance member for many years now, and we also provide trainings for both developers and project managers, who want to start using... [more]

  • The OSGi and the universal Taskmanagment of the City of Jena

    How OSGi helps the City of Jena to unify their Task Management Content comming soon by Jürgen Albert [more]

  • The native bnd Workspace and Maven

    NOTE: If you are looking information about the bnd-maven-plugin or bnd-export-maven-plugin this is the wrong article. Have a look here and here to find examples and the documentation of the plugins. Preamble This article will describe the following things: The difference between the aQute.bnd.repository.maven.provider.MavenBndRepository and the aQute.bnd.repository.maven.pom.provider.BndPomRepository How to deploy... [more]

  • Starting bndrun files using Gradle

    Running bndrun files using gradle Bnd provides gradle tasks to run bndrun files and start an application. When listing all gradle tasks using gradlew tasks, you will find the bndrun tasks in the exports section of the list. Usually the tasks look like run.<bndrun-file-name>. If you want to start you... [more]

  • OSGi Configuration Admin and Plugin start ordering

    The current ConfigurationAdmin specification can be found here: https://osgi.org/specification/osgi.cmpn/7.0.0/service.cm.html One feature of this specification is the Configuration Plugin. An implementation can be used to participate in the configuration process. You can e.g. add new properties or modify existing properties for a configuration. A use case could be to substitute credential... [more]

  • Bootstraping OSGi Applications with the Gecko.io Runtime Exporter

    We recently updated our documentation for the Gecko.io runtime project. The Gecko.io Runtime contains small helpers to improve the handling of your OSGi application in production environments and development. The org.gecko.templates project contains bndtools project templates, to ease the creation of project within your Eclipse IDE. Our org.gecko.runtime.boot registers some... [more]

  • Resolution failed. Capabilities satisfying the following requirements could not be found and how to read it!

    Before we start: The Resolver works with the Requirements and Capabilities of OSGi and I strongly suggest to have a look at them, if you work with the Resolver. To give an Answer to the question above, we take the following example output: Resolution failed. Capabilities satisfying the following requirements... [more]

  • The Gecko.io Documentation Project

    We just started a documentation project on Gecko.io Gitlab. It started with a FAQ / Nive to know collection of information about OSGi, bndtools, Eclipse we want to share. This is what we have till now: Plain OSGi I want to use a LDAP style target filter as service property.... [more]

  • DIamAnt auf der Medica 2019

    Die weltgrößte Medizinprodukte-Messe, die Medica 2019 in Düsseldorf ist nun zu Ende. Für die Data In Motion Consulting GmbH war dieses Jahr eine Premiere. Wir waren auf dem Gemeinschaftsstand Thüringen mit vertreten und präsentierten den ersten Prototyp des DIamAnt Projekts. Technologisch basiert dieses System auf dem Industriestandard für modulare Software... [more]

  • Building and deploying SNAPSHOT and RELEASE Versions for maven with BND

    BND is a nice build tool, but in some cases it makes actually trivial things, seem impossible or at least not really obvious. Doing RELEASE and SNAPSHOT Builds is one of these things. Thus, here is a quick guide on how this can be done. By default OSGi uses Semantic... [more]

  • From Monolith to Microservice, an appeal to Modularity

    Part 1: What can go wrong, will go wrong! Over the years we have been part of a couple of migration efforts to a more modern infrastructure and architecture. We have seen the good, the bad and the ugly side such projects bring with them. All of them could be... [more]

  • A bit of Queuing Theory

    We want to share a small study we made when trying to optimize the queue policy for a messaging system. We wanted to find an optimal configuration for a messaging system in terms of buffer size, number of threads and queue blocking policy, or at least to get a feeling... [more]

  • RCP development with bnd

    About one and a half years ago we switched all our projects from using PDE together with Maven Tycho to bnd. The increase in development speed we reached was immense. Additionally bnd automatically pushed us towards writing better OSGi software. Over the time we experienced a lot of fallacies PDE... [more]

  • Gecko EMF

    Last week we had a talk at the EclipseCon Europe 2018 in Ludwigsburg, presenting one of our OpenSource projects. It is called Gecko EMF and available here: https://gitlab.com/gecko.io/geckoEMF The Slides for the talk can be found here: EMF and OSGi What is Gecko EMF? It is an addition to EMF... [more]

  • Handling SNAPSHOT and RELEASE builds with BND

    A while back, we reactivated our Nexus and wanted to use bnd to release to an OBR and an the Nexus at the same time. As usual, we have an automated build handled by jenkins, which does a snapshot build from our develop branch and a release build from changes... [more]

  • Remote launching OSGi applications with bnd

    Recently, I wanted to build an OSGi application that should run on my RaspberryPi. So I wanted an easy way to test this application on the Pi. After some research I found the possibility to use a remote laucher in bnd. There are two parts necessary for that: the remote... [more]

  • subscribe via RSS