ServiceReference not fetching the all class names for activation

71 views Asked by At

I'm using the below code to fetch the all reference classes in-order to activate it :

String filter = "(component.factory=com.requestclasses.mypack)";
bundleContext = componentContext.getBundleContext();
ServiceReference[] references = bundleContext.getAllServiceReferences(ComponentFactory.class.getCanonicalName(), filter);

But in reference i'm not getting all the classes.I'm not sure whether the issue is with code or AEM 5.6 . Any suggestions ?

1

There are 1 answers

0
mickleroy On BEST ANSWER

I generally wouldn't recommend querying for service references using low level APIs like these.

You might be better off retrieving those references using the @Reference annotation like so:

@Reference(
   name = "componentFactories",
   referenceInterface = ComponentFactory.class,
   cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
   policy = ReferencePolicy.DYNAMIC
)
protected List<ComponentFactory> componentFactories = new ArrayList<ComponentFactory>();