code: public void reload()
     {
        providers = new HashSet<S>();
        loadedImplementations = new HashSet<Class<?>>();
  
        for (URL serviceFile : loadServiceFiles())
        {
           loadServiceFile(serviceFile);
        }
  
        if (locatorLoader == null)
           locatorLoader = java.util.ServiceLoader
                    .load(ServiceLocator.class);
  
        for (ServiceLocator locator : locatorLoader)
        {
           Collection<Class<S>> serviceTypes = locator.locate(expectedType);
           if ((serviceTypes != null) && !serviceTypes.isEmpty())
           {
              for (Class<S> type : serviceTypes) {
                 loadClass(type); // TODO lb3 test this now
              }
           }
        }
  
     }
docs: Clear this loader's provider cache so that all providers will be reloaded.
  
  After invoking this method, subsequent invocations of the iterator method will lazily look up and instantiate
  providers from scratch, just as is done by a newly-created loader.
  
  This method is intended for use in situations in which new providers can be installed into a running Java virtual
  machine.