Skip to content

Release Notes 0.9.0

Fr Jeremy Krieg edited this page Jun 30, 2020 · 3 revisions

osgi-test 0.9.0

First public release, ready for early adopters

As with any new project of this nature, we face a chicken-and-egg problem: on the one hand, it is often not until you've started trying to use it in real-world implementations that you fully understand the needs and the best design approach to use to address them. On the other hand, you can't really start using it in real-world scenarios until you've done a release - which means you have to make some design decisions early on without the benefit of the real-world experience. The problem that this can lead to is that some of those early design decisions prove to be not only sub-optimal, but difficult to change without being highly disruptive. The experience of the JDK itself has shown this time and again.

Rather than baking in some of these sub-optimal design flaws into a full-fledged release, the osgi-test team has made the decision to do an early access release. This will be a full release in the sense that it will be permanently available in Maven Central - making it available for early adopters. The caveat is that the osgi-test team reserve the right to make significant breaking changes so that can fix any significant design flaws before moving to a 1.0.0 release. if the experience of the early adopters reveals any significant design flaws. Once it has been used by a variety of early adopters without encountering any serious issues, we will move to a 1.0.0 release and things will become more stable and ready for wider use.

The current featureset of osgi-test is small, but quite rich and powerful in the subset of functionality that it covers. It has already proven useful to members of the core team who have used it in their own projects (and we've even used parts of it in osgi-test itself). We hope that there will be members of the OSGi community out there who are eager (and brave!) enough to try it out and help contribute to this initiative.

Features

  • AssertJ classes for R6 of the OSGi Promise API and most of org.osgi.framework.
  • Utility functions that are commonly used in testing, including functions for handling/ducking exceptions, converting functional interfaces with checked exceptions into unchecked ones, etc.
  • JUnit 4 rules for simplifying management of temporary BundleContext operations (BundleContextRule) and for accessing dynamic services (ServiceRule).
  • JUnit 5 extensions for simplifying management of temporary BundleContext operations (BundleContextExtension) and for accessing dynamic services (ServiceExtension). In particular, BundleContextExtension can handle multiple layers of context.
Clone this wiki locally