private static MixedFormatCatalog loadCatalog(
      String metaStoreUrl, String catalogName, Map<String, String> properties) {
    AmsClient client = new PooledAmsClient(metaStoreUrl);
    try {
      CatalogMeta catalogMeta = client.getCatalog(catalogName);
      String type = catalogMeta.getCatalogType();
      catalogMeta.putToCatalogProperties(CatalogMetaProperties.AMS_URI, metaStoreUrl);
      MixedFormatCatalogUtil.mergeCatalogProperties(catalogMeta, properties);
      return createCatalog(
          catalogName,
          type,
          catalogMeta.getCatalogProperties(),
          CatalogUtil.buildMetaStore(catalogMeta));
    } catch (NoSuchObjectException e1) {
      throw new IllegalArgumentException("catalog not found, please check catalog name", e1);
    } catch (Exception e) {
      throw new IllegalStateException("failed when load catalog " + catalogName, e);
    }
  }
Entrypoint for loading catalog

@param metaStoreUrl mixed-format metastore url
@param catalogName mixed-format catalog name
@param properties client side catalog configs
@return mixed-format catalog object
amoro-format-iceberg/src/main/java/org/apache/amoro/mixed/CatalogLoader.java