Hi,
I am using granite select resourceType to populate list of options. My servlet is written in a way which render different list based upon different parameter.
Below is the sample servlet
@SlingServlet(paths = "/api/bin/dropdown/vivek.json",
selectors = {"abc","def"},
extensions = ".html",
methods = "GET")
public class AvailableThemeServlets extends SlingSafeMethodsServlet {
private static final long serialVersionUID = 1668099305241096740L;
@Override
protected void doGet(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException,
IOException {
/*String[] selector = request.getRequestPathInfo().getSelectors();
for (String obj : selector) {
System.out.println(obj);
}*/
List<Resource> themes = new ArrayList<Resource>();
// set fallback
ResourceResolver resolver = request.getResourceResolver();
request.setAttribute(DataSource.class.getName(),
EmptyDataSource.instance());
ValueMap vm = null;
for (int i = 0; i < 5; i++) {
// allocate memory to the Map instance
vm = new ValueMapDecorator(new HashMap<String, Object>());
// Specify the value and text values
String Value = "value" + i;
String Text = "text" + i;
// populate the map
vm.put("value", Value);
vm.put("text", Text);
themes.add(new ValueMapResource(resolver, new ResourceMetadata(),
"nt:unstructured", vm));
}
DataSource dataSource = new SimpleDataSource(themes.iterator());
request.setAttribute(DataSource.class.getName(), dataSource);
}
}
If I hit this servlet from browser say localhost:4502/api/bin/dropdown/vivek.json.abc.html , via debugging can see executions completes
If this servlet pass via datasource say /api/bin/dropdown/vivek.json.abc.html servlet doesn't execute.

If this servlet pass via datasource say /api/bin/dropdown/vivek.json servlet dynamic options displays in drop down [Expected Response]
Wondering why datasource doesn't working with selectors.
Regards