/** * This method is called when a new handler factory is detected. Test if the factory can be used * or not. This method need to be synchronized as it accesses to the content of required handlers. * * @param reference the new service reference. * @return <code>true</code> if the given factory reference matches with a required handler. * @see * org.apache.felix.ipojo.util.TrackerCustomizer#addingService(org.osgi.framework.ServiceReference) */ public synchronized boolean addingService(ServiceReference reference) { for (int i = 0; i < m_requiredHandlers.size(); i++) { RequiredHandler req = (RequiredHandler) m_requiredHandlers.get(i); if (req.getReference() == null && match(req, reference)) { int oldP = req.getLevel(); req.setReference(reference); // If the priority has changed, sort the list. if (oldP != req.getLevel()) { // Manipulate the list. Collections.sort(m_requiredHandlers); } return true; } } return false; }