Hi,
I would like to know if there is a possibility to somehow pass dynamic values to the properties sling.servlet.resourceTypes, sling.servlet.selectors, sling.servlet.extensions while registering a servlet.
Is there a way to use custom OSGi configuration nodes in this case?
A sample use case :
I have a servlet registered using resourceType= /something/xyz, selectors = [json, tab, img, pdf], extension = html. In case, i would like to add more selectors to the same servlet in future based on my extending requirement, how can i do it without a code change?
Thanks in advance!
Regards,
Bhavya S
You can register your servlet to a more generic resource type and then use OptingServlet interface to accept requests which meets your dynamic qualification criteria.
For more details see this documentation - OptingServlet (Apache Sling 7 API) - Your logic can be defined in accepts method.
If you don't use the @SlingServlet annotation, but rather the standard way using SCR/OSGI properties, these special properties are available via OSGI webconsole (unless you configure them with privateProperties=true). So you should be able to do that by default :-)
Regards,
Jörg
Views
Replies
Total Likes
Thank you Jörg!
Could you please post a code snippet or an example.
It would be really helpful to understand better
Views
Replies
Total Likes
From the top of my head (haven't found a good example in the net that fast):
@Component
@Service
@Properties{(
@Property(name="sling.servlet.selectors" value={"pdf","txt"})
@Property(name="sling.servlet.resourceTypes" value="my/super/resource/type")
)}
Something along that line should work.
I think we need to set metatype=true also to change these properties from /system/console/configMgr UI.
@Component(metatype=true)
@Service
@Properties{(
@Property(name="sling.servlet.selectors" value={"pdf","txt"})
@Property(name="sling.servlet.resourceTypes" value="my/super/resource/type")
)}
Yepp, forgot the metatype property. Although technically it's not really necessary, it just makes the webconsole displaying the configuration as editable.
regards,
Jörg
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies