code: protected void installExtension(ExtensionId extensionId, boolean dependency, String namespace,
          DefaultExtensionPlanTree parentBranch) throws InstallException
      {
          if (getRequest().isVerbose()) {
              if (namespace != null) {
                  this.logger.info(LOG_RESOLVE_NAMESPACE, "Resolving extension [{}] on namespace [{}]", extensionId,
                      namespace);
              } else {
                  this.logger.info(LOG_RESOLVE, "Resolving extension [{}] on all namespaces", extensionId);
              }
          }
  
          // Check if the feature is already in the install plan
          if (checkExistingPlanNodeExtension(extensionId, true, namespace)) {
              return;
          }
  
          // Check if the feature is a core extension
          checkCoreExtension(extensionId.getId());
  
          ModifableExtensionPlanNode node = installExtension(extensionId, dependency, namespace);
  
          addExtensionNode(node);
          parentBranch.add(node);
      }
docs: Install provided extension.
  
  @param extensionId the identifier of the extension to install
  @param dependency indicate if the extension is installed as a dependency
  @param namespace the namespace where to install the extension
  @param parentBranch the children of the parent {@link DefaultExtensionPlanNode}
  @throws InstallException error when trying to install provided extension