Showing posts with label pushstreams. Show all posts
Showing posts with label pushstreams. Show all posts

Tuesday, February 13, 2018

OSGi R7 Highlights: Proposed Final Draft Now Available

I am pleased to announce that the OSGi Alliance has published the Proposed Final Drafts of the OSGi Core R7 and Compendium R7 specifications. We expect that the final versions of these specifications will be published in April 2018 after OSGi Alliance member approval.

The R7 release builds upon the long history of the OSGi Alliance’s leadership in Java modularity and reflects a significant amount of effort from the technical members of the OSGi Alliance expert groups over the last 2 years. Thanks go to all of the members who have contributed to this release.

R7 represents many significant new features and capabilities and provides an open standards-based approach for a number of modern valuable and simple-to-use technologies important to Java developers.

This blog post is the start of a series of blog posts from the technical experts at the OSGi Alliance to share some of the key highlights of R7. The blog posts in this series will come out over the coming weeks and cover the following topics:
  • Java 9 Support – Multi-release JAR support and runtime discovery of the packages provided by the JPMS modules loaded by the platform.
  • Declarative Services – Constructor injection and component property types.
  • JAX-RS – A whiteboard model for building JAX-RS microservices.
  • Converter – A package for object type conversion.
  • Cluster Information – Support for using OSGi frameworks in clustered environments.
  • Transaction Control – An OSGi model for transaction life cycle management.
  • Http Whiteboard – Updates to the Http Whiteboard model.
  • Push Streams and Promises – The Promises packages is updated with new methods and an improved implementation and the new Push Streams package provides a stream programming model for asynchronously arriving events.
  • Configurator and Configuration Admin – Configuration Admin is updated to support the new Configurator specification for delivering configuration data in bundles.
  • LogService – A new logging API is added which supports logging levels and dynamic logging administration and a new Push Stream-based means of receiving log entries is also added.
  • Bundle Annotations – Annotations that allow the developer to inform tooling on how to build bundles.
  • CDI – Context and Dependency Injection support for OSGi developers.
Stay tuned and I hope you find the technical information in the blog post series useful to you as developers!

Tuesday, February 28, 2017

OSGi API Snapshots are Live!

Sometime back, OSGi began to make all design document (RFC) drafts available in real time from the OSGi Design GitHub repository. In furtherance of providing real time access to the latest design work at OSGi, OSGi made a change to the OSGi build process. Previously, the various OSGi specification's API code had only been published by the Alliance once a specification release has been declared final. Since mid February, however, the OSGi build has been publishing API snapshots to the public https://oss.sonatype.org/content/repositories/osgi/ group repository! Many thanks to BJ Hargrave for making this happen.

So why should you care?

Broadly speaking, the people who care about the pre-release OSGi APIs fall into two sets:
  1. The people who want to try out the new draft APIs in their applications.
  2. The people who want to implement the new draft APIs.
At first glance, it looks like the new release policy only helps the second group - after all it saves them from some issues
  • How do I keep up to date with the OSGi RFCs?
  • Is there a way to avoid duplicating the OSGi draft API source code?
But actually there are two important ways that publishing snapshots directly helps users:
  1. By making it easier for implementors to keep up to date with RFCs, users get faster access to new implementations of the draft API.
  2. For implementation code published by the OSGi Alliance, you get access to the draft code right now!
A good example of this would be OSGi Push Streams. You may have already watched the talk I gave in Portland about them, and been wondering when you could try them out. The answer is right now, and the same is true for the new 1.1 version of OSGi Promises!

Helping implementors

Open Source implementations of OSGi specifications are already moving to use the new draft API snapshots from OSGi (for example the Aries JAX-RS whiteboard). In most cases the API can be simply referenced from the OSGi group repository and no further action is needed.

One thing worthy of note is that the latest OSGi APIs are all compiled using Java 8. For some implementations, this is a problem as they wish to include the API inside their bundle but also to be usable on older versions of Java. In these cases, implementors may wish to try using a tool such as the Retrolambda project, so that they can still benefit from the published snapshots.

We hope that you enjoy the chance to play with all the cool new specifications!

Wednesday, February 1, 2017

OSGi PushStreams @ Portland JUG

The recent OSGi evening at the Portland JUG included a number of talks from members of the OSGi Expert Groups.  Co-chair of the IoT Expert Group, Tim Ward, can be seen in the video below discussing OSGi PushStreams and demonstrating them in use with real time train information.

Thanks to Portland JUG (@pjug) for organising the event and making the video. Thanks also to New Relic for hosting the meeting.

What are OSGi PushStreams? from Ian Downard on Vimeo.

In case you missed it previously, you can also watch a video of OSGi Alliance CTO, BJ Hargrave, presenting 'What is OSGi?' at the same meeting.