code: private void initializeExtensionInNamespace(InstalledExtension installedExtension, String namespace,
          Map<String, Set<InstalledExtension>> initializedExtensions) throws ExtensionException
      {
          // Check if the extension can be available from this namespace
          if (!installedExtension.isValid(namespace)) {
              return;
          }
  
          Set<InstalledExtension> initializedExtensionsInNamespace = initializedExtensions.get(namespace);
  
          if (initializedExtensionsInNamespace == null) {
              initializedExtensionsInNamespace = new HashSet<>();
              initializedExtensions.put(namespace, initializedExtensionsInNamespace);
          }
  
          if (!initializedExtensionsInNamespace.contains(installedExtension)) {
              initializeExtensionInNamespace(installedExtension, namespace, initializedExtensions,
                  initializedExtensionsInNamespace);
          }
      }
docs: Initialize an extension in the given namespace.
  
  @param installedExtension the extension to initialize
  @param namespace the namespace in which the extention is initialized, null for global
  @param initializedExtensions the currently initialized extensions set (to avoid initializing twice a dependency)
  @throws ExtensionException when an initialization error occurs