
The specification defines an infrastructure for a bundle’s life cycle and determines how bundles will interact. The first part is a specification for modular components called bundles, which are commonly referred to as plug-ins.
#List of annotations in aem software#
It is a Java framework for developing and deploying modular software programs and libraries. OSGi stands for Open Service Gateway initiative. But it should be free to change its internal implementation. This means that a change in that module should not change its behavior i.e., it should function same as before. And in order for A to work correctly, the module B should be present in the framework (OSGi, in this case) and behave as A expects.Ī module which is used by other components should try to keep its API stable. For e.g., let’s say module A uses some functionality provided by the module B, then A has dependency on B. If a module uses an API from another module, it has a dependency on the other module, i.e., it requires the other module exists and works correctly. The API is defined as a set of classes and methods which can be used from other components/modules.

These modules interact with each other via an API. These modules are normally independent of each other and modification in one module does not affect the other modules.

In modern times, complex software can be thought of as a collection of various modules or components. Hello fellow developers 👋! In this post, we will dive into the basic blocks of OSGi bundles - Components and Services (remember OSGi Components are different from AEM authoring component).
