code: private synchronized void resolveService()
      {
          T newService = null;
          final Iterator<T> it = m_serviceCollection.iterator();
          while( newService == null && it.hasNext() )
          {
              final T candidateService = it.next();
              if( !candidateService.equals( getService() ) )
              {
                  newService = candidateService;
              }
          }
          setService( newService );
      }
docs: Resolves a new service by serching the services collection for first available service.