This proposal has been approved and the OSGi® Specification Project project has been created.
Visit the project page for the latest information and development.

OSGi Specification Project

Thursday, December 3, 2020 - 16:35 by BJ Hargrave
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

The OSGi Working Group is being formed as part of the asset and mission tranfser of the former OSGi Alliance to the Eclipse Foundation. Since the work is a specification effort, this project is being proposed to house the specification work and be matrix managed by the Specification Committee of the OSGi Working Group.

Scope

The OSGi Specification Project provides specifications, implementations of those specifications, and Technology Compatibility Kits (TCKs) for those specifications, that enable development, deployment, and management of embedded, server-side, and cloud-native applications by using software modularity to vastly improve the evolution, maintainability, and interoperability of applications and infrastructure.

Description

The OSGi Specification Project is an open source initiative to create new, and evolve existing, software specifications, implementations of those specifications, and Technology Compatibility Kits (TCKs) for those specifications that enable development, deployment, and management of embedded, server-side and cloud-native applications. The OSGi Specification Project is based on Specifications, Reference Implementations and Compliance Tests of the former OSGi Alliance and uses those materials as the baseline for creating new specifications, implementations and TCKs, or revising existing OSGi Alliance specifications, reference implementations and compliance tests.

The OSGi Specification Project software specifications enable development, deployment and management of embedded, server-side, and cloud-native applications by using software modularity to vastly improve the evolution, maintainability, and interoperability of applications and infrastructure.

Why Here?

The OSGi Working Group is being formed as part of the asset and mission tranfser of the former OSGi Alliance to the Eclipse Foundation. Since the work is a specification effort, this project is being proposed to house the specification work and be matrix managed by the Specification Committee of the OSGi Working Group.

Project Scheduling

The initial contribution is available in the repostories https://github.com/osgi/osgi, https://github.com/osgi/design, https://github.com/osgi/docs, https://github.com/osgi/draft, https://github.com/osgi/materials, and https://github.com/osgi/bugzilla-archive. Once formed, project members are ready to continue work that was underway prior to the initiation of the move to Eclipse.

Future Work

This is an outline of items, in no specific order, in the pipeline for future OSGi specification enhancements.

  • Declarative Services updates to support Conditions, "any" service references, and using Optional injection type.
  • CDI Integration updates to support Conditions.
  • Messaging (RFC 246) is a new messaging API providing an easy to use solution in OSGi, to connect to and work with messaging systems.
  • Type safe events (RFC 244) is a companion to the existing event service which uses untyped maps. Improvement include the type safety of event data, monitoring of event flow, and tracking of undelivered events.
  • Features (RFC 241) is an organization, assembly and delivery mechanism for OSGi based solutions. It allows the description of an entire OSGi-based application based on reusable components and includes everything related to this application, including configuration, framework properties, capabilities, requirements and custom artifacts.
  • Http Whiteboard updates to address several feature gaps in the current specification including support for ServletContainerInitializer.
  • DTO Graph Query API (RFP 194) to reduce data creation and transmission to the information actually needed by the caller.
  • Jakarta EE currency. Jakarta is renaming packages and enterprise specification at OSGi will need updating. This will require updating numerous enterprise specifications and defining new Java contracts.
  • JAX-RS specification updates for Java 8 to support Promise/CompletableFuture interoperation.
  • MVC-1/Eclipse Krazo/JSR 371 support.
  • JWT support for Http Whiteboard and JAX-RS. Update the specification regarding properly manage auth.
  • Support the Actor concurrency model in the OSGi environment (RFP 195).
  • Service Loader Mediator specification enhancements including prototype scope service support.
  • Support for new Java language features such as Record types.

 

Initial Contribution

The main code base is in https://github.com/osgi/osgi. This holds the source code for the OSGi specifications, API, implementations and tests. Supporting git repositories to also be part of the OSGi Specification project include: https://github.com/osgi/design, https://github.com/osgi/docs, https://github.com/osgi/draft, https://github.com/osgi/materials, and https://github.com/osgi/bugzilla-archive.

Source Repository Type