private Constructor<?> findBestFittingConstructor(Constructor<?>[] declaredConstructors) {
    return Arrays.stream(declaredConstructors)
      .filter(constructor -> Arrays.stream(constructor.getParameterTypes()).allMatch(this::isInjectable))
      .max(Comparator.comparing(Constructor::getParameterCount))
      .orElseThrow(() -> new ExtensionException("No suitable constructor found, only injectable parameters are permissible."));
  }
Maintains a registry of global Spock extensions and their configuration objects,
which can be used to configure other extensions.

@author Peter Niederwieser
spock-core/src/main/java/org/spockframework/runtime/GlobalExtensionRegistry.java