public <P extends Plugin> Iterator<P> load(Class<P> service) {
		try (TemporaryClassLoaderContext classLoaderContext = new TemporaryClassLoaderContext(pluginClassLoader)) {
			return new ContextClassLoaderSettingIterator<>(
				ServiceLoader.load(service, pluginClassLoader).iterator(),
				pluginClassLoader);
		}
	}
public < P extends Plugin > Iterator < P > load ( Class < P > service ) { try ( TemporaryClassLoaderContext classLoaderContext = new TemporaryClassLoaderContext ( pluginClassLoader ) ) { return new ContextClassLoaderSettingIterator < > ( ServiceLoader . load ( service , pluginClassLoader ) . iterator ( ) , pluginClassLoader ) ; } }
Returns in iterator over all available implementations of the given service interface (SPI) for the plugin.

@param service the service interface (SPI) for which implementations are requested.
@param <P> Type of the requested plugin service.
@return An iterator of all implementations of the given service interface that could be loaded from the plugin.