/**
  * 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;
 }