1 Introduction

This compendium contains the specifications of all current OSGi services.

1.1 Reader Level

This specification is written for the following audiences:

  • Application developers

  • Framework and system service developers (system developers)

  • Architects

This specification assumes that the reader has at least one year of practical experience in writing Java programs. Experience with embedded systems and server-environments is a plus. Application developers must be aware that the OSGi environment is significantly more dynamic than traditional desktop or server environments.

System developers require a very deep understanding of Java. At least three years of Java coding experience in a system environment is recommended. A Framework implementation will use areas of Java that are not normally encountered in traditional applications. Detailed understanding is required of class loaders, garbage collection, Java 2 security, and Java native library loading.

Architects should focus on the introduction of each subject. This introduction contains a general overview of the subject, the requirements that influenced its design, and a short description of its operation as well as the entities that are used. The introductory sections require knowledge of Java concepts like classes and interfaces, but should not require coding experience.

Most of these specifications are equally applicable to application developers and system developers.

1.2 Version Information

This document is the Compendium Specification for the OSGi Compendium Release 8.

1.2.1 OSGi Core Release 8

This specification is based on OSGi Core Release 8. This specification can be downloaded from:

https://docs.osgi.org/specification/

1.2.2 Component Versions

Components in this specification have their own specification version, independent of this specification. The following table summarizes the packages and specification versions for the different subjects.

Table 1.1 Packages and versions

Item Package Version
100 Remote Services - Version 1.1
102 Http Service Specification org.osgi.service.http Version 1.2
103 Device Access Specification org.osgi.service.device Version 1.1
104 Configuration Admin Service Specification

org.osgi.service.cm

org.osgi.service.cm.annotations

Version 1.6
105 Metatype Service Specification

org.osgi.service.metatype

org.osgi.service.metatype.annotations

Version 1.4
106 PreferencesService Specification org.osgi.service.prefs Version 1.1
107 User Admin Service Specification org.osgi.service.useradmin Version 1.1
108 Wire Admin Service Specification org.osgi.service.wireadmin Version 1.0
110 Initial Provisioning Specification org.osgi.service.provisioning Version 1.2
111 Device Service Specification for UPnP™ Technology org.osgi.service.upnp Version 1.2
112 Declarative Services Specification

org.osgi.service.component

org.osgi.service.component.annotations

org.osgi.service.component.propertytypes

org.osgi.service.component.runtime

org.osgi.service.component.runtime.dto

Version 1.5
113 Event Admin Service Specification

org.osgi.service.event

org.osgi.service.event.annotations

org.osgi.service.event.propertytypes

Version 1.4
117 Dmt Admin Service Specification

org.osgi.service.dmt

org.osgi.service.dmt.notification

org.osgi.service.dmt.notification.spi

org.osgi.service.dmt.security

org.osgi.service.dmt.spi

Version 2.0
122 Remote Service Admin Service Specification

org.osgi.service.remoteserviceadmin

org.osgi.service.remoteserviceadmin.namespace

Version 1.1
123 JTA Transaction Services Specification - Version 1.0
124 Management Model Specification for JMX™ Technology org.osgi.jmx1 Version 1.1
125 Data Service Specification for JDBC™ Technology org.osgi.service.jdbc Version 1.0
126 JNDI Services Specification org.osgi.service.jndi Version 1.0
127 JPA Service Specification

org.osgi.service.jpa

org.osgi.service.jpa.annotations

Version 1.1
128 Web Applications Specification - Version 1.0
130 Coordinator Service Specification org.osgi.service.coordinator Version 1.0
131 TR069 Connector Service Specification org.osgi.service.tr069todmt Version 1.0
132 Repository Service Specification org.osgi.service.repository Version 1.1
133 Service Loader Mediator Specification org.osgi.service.serviceloader Version 1.0
135 Common Namespaces Specification

org.osgi.namespace.contract

org.osgi.namespace.extender

org.osgi.namespace.implementation

org.osgi.namespace.service

org.osgi.namespace.unresolvable

Version 1.2
137 REST Management Service Specification

org.osgi.service.rest

org.osgi.service.rest.client

Version 1.0
138 Asynchronous Service Specification

org.osgi.service.async

org.osgi.service.async.delegate

Version 1.0
139 Device Service Specification for EnOcean™ Technology

org.osgi.service.enocean

org.osgi.service.enocean.descriptions

Version 1.0
140 Http Whiteboard Specification

org.osgi.service.http.whiteboard

org.osgi.service.http.whiteboard.annotations

org.osgi.service.http.whiteboard.propertytypes

org.osgi.service.http.context

org.osgi.service.http.runtime

org.osgi.service.http.runtime.dto

Version 1.1
141 Device Abstraction Layer Specification

org.osgi.service.dal

Version 1.0
142 Device Abstraction Layer Functions Specification

org.osgi.service.dal.functions

org.osgi.service.dal.functions.data

Version 1.0
143 Network Interface Information Service Specification

org.osgi.service.networkadapter

Version 1.0
144 Resource Monitoring Specification

org.osgi.service.resourcemonitoring

org.osgi.service.resourcemonitoring.monitor

Version 1.0
145 USB Information Device Category Specification

org.osgi.service.usbinfo

Version 1.0
146 Serial Device Service Specification

org.osgi.service.serial

Version 1.0
147 Transaction Control Service Specification

org.osgi.service.transaction.control

org.osgi.service.transaction.control.jdbc

org.osgi.service.transaction.control.jpa

org.osgi.service.transaction.control.recovery

Version 1.0
148 Cluster Information Specification

org.osgi.service.clusterinfo

org.osgi.service.clusterinfo.dto

Version 1.0
149 Device Service Specification for ZigBee™ Technology

org.osgi.service.zigbee

org.osgi.service.zigbee.descriptions

org.osgi.service.zigbee.descriptors

org.osgi.service.zigbee.types

Version 1.0
150 Configurator Specification

org.osgi.service.configurator

org.osgi.service.configurator.annotations

org.osgi.service.configurator.namespace

Version 1.0
151 JAX-RS Whiteboard Specification

org.osgi.service.jaxrs.runtime

org.osgi.service.jaxrs.runtime.dto

org.osgi.service.jaxrs.whiteboard

org.osgi.service.jaxrs.whiteboard.annotations

org.osgi.service.jaxrs.whiteboard.propertytypes

org.osgi.service.jaxrs.client

Version 1.0
152 CDI Integration Specification

org.osgi.service.cdi

org.osgi.service.cdi.annotations

org.osgi.service.cdi.propertytypes

org.osgi.service.cdi.reference

org.osgi.service.cdi.runtime

org.osgi.service.cdi.runtime.dto

org.osgi.service.cdi.runtime.dto.template

Version 1.0
153 Service Layer API for oneM2M™

org.osgi.service.onem2m

org.osgi.service.onem2m.dto

Version 1.0
154 Residential Device Management Tree Specification org.osgi.dmt.residential2 Version 1.0
155 TR-157 Amendment 3 Software Module Guidelines - Version 1.0
156 Condition Factory Specification - Version 1.0
157 Typed Event Service Specification

org.osgi.service.typedevent

org.osgi.service.typedevent.annotations

org.osgi.service.typedevent.monitor

org.osgi.service.typedevent.propertytypes

Version 1.0
158 Log Stream Provider Service Specification org.osgi.service.log.stream Version 1.0
702 XML Parser Service Specification org.osgi.util.xml Version 1.0
705 Promises Specification

org.osgi.util.promise

org.osgi.util.function

Version 1.2
706 Push Stream Specification

org.osgi.util.pushstream

Version 1.0
707 Converter Specification org.osgi.util.converter Version 1.0
708 Features Specification org.osgi.util.feature Version 1.0

When a component is represented in a bundle, a version attribute is needed in the declaration of the Import-Package or Export-Package manifest headers.

1.2.3 Notes

  1. The org.osgi.jmx sub-packages are individually versioned to be aligned with the service they manage.

  2. This is not a Java package but contains DMT Types.

1.3 References

1.4 Changes