Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

How to use a different OSGI bundle for your imported package

Avatar

Level 4

AEM 6.5 has two OSGi bundles (A and B). 

A = org.apache.sling.scripting.jsp

B = org.apache.sling.scripting.jsp-api

 

My project bundle has a Java class that uses:

import javax.servlet.jsp.PageContext;  

 I want this imported package to use OSGI bundle A, not B.

 

In AEM 6.4, this was our imported packages list:

javax.servlet.jsp,version=2.1.0 from org.apache.sling.scripting.jsp (525)
javax.servlet.jsp.tagext,version=2.1.0 from org.apache.sling.scripting.jsp (525)

 

But in AEM 6.5, these imported packages are using OSGI bundle B, which is causing a Jasper script evaluation exception:

javax.servlet.jsp,version=2.1.0 from org.apache.sling.scripting.jsp-api (644)
javax.servlet.jsp.tagext,version=2.1.0 from org.apache.sling.scripting.jsp-api (644)

 

How can I make my imported class use the bundle I need it to? I tried explicitly adding the dependency to bundle A in the pom.xml, no luck there.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

Did you try to import explicitly using Import-Package header

 

Import-Package: org.apache.sling.scripting.jsp;resolution:=optional,*

 

 

https://stackoverflow.com/questions/3094590/force-osgi-package-to-be-imported-by-maven-bundle-plugin...

 

View solution in original post

2 Replies

Avatar

Correct answer by
Community Advisor

Hi,

Did you try to import explicitly using Import-Package header

 

Import-Package: org.apache.sling.scripting.jsp;resolution:=optional,*

 

 

https://stackoverflow.com/questions/3094590/force-osgi-package-to-be-imported-by-maven-bundle-plugin...

 

Avatar

Level 4
Thanks Arun, I gave that a try. It didn't help. javax.servlet.jsp is still using org.apache.sling.scripting.jsp-api.