public static void validateUpdateLink(StackManager stackManager, StackInfo stack, ExtensionInfo oldExtension, ExtensionInfo newExtension) throws AmbariException {
    validateSupportedStackVersion(stack, newExtension);
    validateServiceDuplication(stackManager, stack, oldExtension, newExtension);
    validateRequiredExtensions(stack, newExtension);
  }
An extension version is like a stack version but it contains custom services.  Linking an extension
version to the current stack version allows the cluster to install the custom services contained in
the extension version.
ambari-server/src/main/java/org/apache/ambari/server/stack/ExtensionHelper.java