code: private <T extends Assignable> T createFromLoadExtension(Class<T> extensionClass, Archive<?> archive) {
          ExtensionWrapper extensionWrapper = loadExtensionMapping(extensionClass);
          if (extensionWrapper == null) {
              throw new RuntimeException("Failed to load ExtensionMapping");
          }
  
          Class<T> extensionImplClass = loadExtension(extensionWrapper);
  
          if (!extensionClass.isAssignableFrom(extensionImplClass)) {
              throw new RuntimeException("Found extension impl class " + extensionImplClass.getName()
                  + " not assignable to extension interface " + extensionClass.getName());
          }
          return createExtension(extensionImplClass, archive);
      }
docs: Creates a new instance of a <code>extensionClass</code> implementation. The implementation class is found in a
  provider-configuration file in META-INF/services/
  
  @param <T>
  @param extensionClass
  @param archive
  @return an instance of the <code>extensionClass</code>' implementation.