code: @SuppressWarnings( "unchecked" )
      public Iterator<T> iterator()
      {
          final List<T> services = new ArrayList<T>();
          if( m_serviceTracker != null )
          {
              final Object[] trackedServices = m_serviceTracker.getServices();
              if( trackedServices != null )
              {
                  for( Object trackedService : trackedServices )
                  {
                      services.add( (T) trackedService );
                  }
              }
          }
          return Collections.unmodifiableCollection( services ).iterator();
      }
docs: Returns an iterator over the tracked services at the call point in time.
  Note that a susequent call can produce a different list of services as the services are dynamic.
  If there are no services available returns an empty iterator.
  
  @see Iterable#iterator()