OSGi Bundles:
Open Services Gateway Initiative (OSGi) helps developing
and deploying modular applications and libraries in Java.Some of the major OSGi
container implementations are Equinox, Knopflerfish, and Apache Felix. OSGi
works on a set of services that an OSGi container must implement and a contract
between the container and your application.
Resource folder can be used to put resource files like
configuration files, xml files properties files etc.
·
Export-Package: *
Tells to export all packages to cq - makes available to
cq
If we mention,
Export-Package: com.cq.test; it just makes this package
available
·
Import-Package: *
Tells to import all packages from other bundles to our
bundle - makes available to use those clases.
·
Private-Package:
Packages that should not be exposed to
the OSGi container
·
Include-Resource:
used to include resource files like
properties files available to our bundle.
Bundle-Activator Class:
Start() and stop() are the lifecycle of bundle activator
class.
stop() can be implemented if any resource to be stopped,
if our bundle failure happens abruptly.
public void stop(BundleContext context) throws Exception
-------Similar Posts---------------
Mapping of requests in AEM
Interact With AEM
Run Modes
AEM
Apache Sling in AEM
-------------------------------------
Mapping of requests in AEM
Interact With AEM
Run Modes
AEM
Apache Sling in AEM
-------------------------------------
OSGi Vs
JAR
-------------------
OSGi can be told as an advanced version of JAR. It uses
more metadata to show/hide the visibility of classes in bundle. JAR is a
private collection of classes where OSGI provides a safe way to make the
classes available across.
Sample to create anAEM /Adobe CQ bundle and use it in a
page
-------------------------------------------------------
Create the folder structure as below.
Create a bundle by right clicking on src folder. Enter
the details as required.
Now the new bundle will have below structure.
Now under the test folder create an impl folder. This is
used to write our custom Java class.
Now add TestService.class with a common output as below.
-------------
packagecom.cq.adobe.test.impl;
public class TestService{
public String getTestService(){
return "CQ developer training sessions";
}
}
--------------
Right click com.adobe.test.bnd and build bundle
(Tools>Build Bundle)
This creates jar file under install folder which is
automatically placed to OSGi packages.