Expand my Community achievements bar.

Convert jars to OSGi bundles

Avatar

Level 1

Hi,

I have a maven dependency

<dependency>

    <groupId>org.apache.hive</groupId>

    <artifactId>hive-jdbc</artifactId>

    <version>2.1.1</version>

</dependency>

The jar and its dependencies don't have any OSGi bundle definition like symbolic bundle name under the manifest file. How do I convert it into OSGi bundle so that the jar and its dependencies can be successfully installed into AEM.

9 Replies

Avatar

Level 1

Hi, this method applies only to jar that doesn't have any dependencies. hive-jdbc has dependency on 12 other jars. please suggest

Avatar

Employee Advisor

tapana19997047​ What was the outcome of [1]? If you don't need to have this package in OSGI, you can also embedd it into your application bundle.

[1] AEM Hive error

Avatar

Level 4

How to embed a 3rf party jar file into our bundle as part of maven build?

Avatar

Level 4

Here in this thread we are creating an osgi bundle and manually deploying to system/consile.

But this is not the way we can do it in prod rt...

So my question is what changes we need to make in pom.xml so once the package is build this 3rd party is automatically included into our bundle and deployed into server without deploying the 3rd party jar files to system console.

Avatar

Level 4

Did you try adding the osgi wrapped bundle to your apps install folder
(through code package, with the help of filter.xml) and use the maven-bundle-plugin or content-package-maven-plugin. Please refer [0] & [1] option #4

[0]

cq5 - How to use third party JAR into AEM? - Stack Overflow

[1]

Adobe CQ/Adobe AEM: How to Integrate 3rd party Jar file in CQ / WEM

Avatar

Level 1

I tried to embed the "hive-jdbc" jar into my application bundle. Following were the changes I did.

core pom.xml

1757315_pastedImage_0.png

1757316_pastedImage_2.png

ui-apps pom.xml

1757318_pastedImage_4.png

1757317_pastedImage_3.png

main pom.xml

1757319_pastedImage_7.png

However, the application bundle is in installed stage and found this in the error.log

1757320_pastedImage_9.png

Anything I am missing here?

Avatar

Level 7

check the bundle error ..if it is not active then other dependent dependencies are not resolved . you have to add all those dependencis also in class path of osgi bundle . 

 

Not sure if this also a good approch as if so many dependencies of the same jar your embed list will be getting increasing and untill and unless all dependent jar is not included in bundle classpath you have to keep on adding those .

 

If anyone having some better way please reply here ..will be helpful for community..

 

 

Another way of converting jar into bundle and then that bundle you can add in pacakge itself by adding inside content maven plugin scetion of pom.xml . with <embedded tag> and create isntall folder and add ur bundle in that location /app/../install/bundle,jar ....and once you will hit autoinstallpacakge it will deploy that custom bundle as well.