docs: public Map<String, ProvisioningFeatureDefinition> getFeatureDefinitions() {
          Map<String, ProvisioningFeatureDefinition> featureDefs = new TreeMap<String, ProvisioningFeatureDefinition>();
  
          // Add feature definitions from Liberty core.
          featureDefs.putAll(getCoreProductFeatureDefinitions());
  
          // Add product extension feature definitions in the default usr location.
          Map<String, ProvisioningFeatureDefinition> userFeatureDefs = getUsrProductFeatureDefinitions();
          if (userFeatureDefs != null && !userFeatureDefs.isEmpty()) {
              featureDefs.putAll(userFeatureDefs);
          }
  
          // Add product extension feature definitions that are not in the default usr location.
          readProductExtFeatureLocations();
          if (!productExtNameInfoMap.isEmpty()) {
              for (String productExtName : BundleRepositoryRegistry.keys()) {
                  if (productExtName.isEmpty() || USR_PRODUCT_EXT_NAME.equals(productExtName))
                      continue;
  
                  Map<String, ProvisioningFeatureDefinition> prodExtFeatureDefs = getProductExtFeatureDefinitions(productExtName);
                  if (prodExtFeatureDefs != null && !prodExtFeatureDefs.isEmpty())
                      featureDefs.putAll(prodExtFeatureDefs);
              }
          }
  
          return featureDefs;
      }