Including Adobe Target SDK in Custom OSGI Bundles | Adobe Higher Education
Skip to main content
Level 3
June 7, 2022

Including Adobe Target SDK in Custom OSGI Bundles

  • June 7, 2022
  • 1 の返信
  • 2451 ビュー

Hello.

I have a custom OSGI bundle deployed to an AEM 6.5 instance. I wanted to include the Adobe Target Java SDK in the project (so it can be utilized by another service class).

 

I have added it to my pom.xml:

 

<dependency> <groupId>com.adobe.target</groupId> <artifactId>target-java-sdk</artifactId> <scope>compile</scope> </dependency>

 

 

However, after publishing the package, I see the following error in the Web Console:

com.adobe.target.delivery.v1.model -- Cannot be resolved
com.adobe.target.edge.client.model -- Cannot be resolved

 After noting this error, I configured the maven-bundle-plugin as follows:

 

<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <exportScr>true</exportScr> <instructions> <Embed-Dependency>target-java-sdk;scope=compile|runtime</Embed-Dependency> <Embed-Transitive>true</Embed-Transitive> </instructions> </configuration> </plugin>

 

 

However, this led to another set of errors relating to dependencies used by the Target SDK (json-logic-java, unirest-java, etc). I added those to the `Embed-Dependency` option and then got another error for another set of dependencies.

 

So, rather than having to explicitly include an endless chain of dependencies, I am would like to know that is the recommended practice for integrating the Target SDK with AEM? Does Adobe provide OSGI bundles for the SDK?

このトピックへの返信は締め切られました。

1 の返信

SantoshSai
Community Advisor
Community Advisor
June 7, 2022

Hi @kmarchewa ,

The best way to install the Adobe Target Java SDK is to embed the bundle into your. here's instructions on how to do it:

You can do this easily (after building and deploying code into your AEM local, you should be able to find the jar file existing under /apps/my-site/install:

1. Include the Adobe Target Java SDK as a dependency in the ui.apps pom.xml

<!-- Adobe Target Java SDK -->
<dependency>
<groupId>com.adobe.target</groupId>
<artifactId>target-java-sdk</artifactId>
</dependency>

2. Embed the Adobe Target Java SDK as a package for deployment in ui.apps/all pom.xml

<embedded>
<groupId>com.adobe.target</groupId>
<artifactId>target-java-sdk</artifactId>
<target>/apps/my-site/install</target>
</embedded>

3. Include the Adobe Target Java SDK as a dependency in the parent pom.xml

<!-- Adobe Target Java SDK -->
<dependency>
<groupId>com.adobe.target</groupId>
<artifactId>target-java-sdk</artifactId>
<version>2.3.0</version>
</dependency>


 Hope that helps!

Regards,
Santosh

Santosh Sai
KMarchewa作成者
Level 3
June 7, 2022

Thanks much for the quick response. Unfortunately, this app does not have a `ui.apps` directory (it is a mature code base and I assume was not built using the current maven archetype). Is there an alternative for such a project? Thanks much.

SantoshSai
Community Advisor
Community Advisor
June 7, 2022

@kmarchewa 
May I see your project structure? where your AEM components are present? If you have old version maven archetype please visit this article https://www.techinnovia.com/osgi-bundle-lifecycle/ in video we have described hoe to do that.

Santosh Sai