docs: private Map<String, I_CmsAppCategory> loadCategories() {
  
          Map<String, I_CmsAppCategory> appCategories = new HashMap<String, I_CmsAppCategory>();
          CmsAppCategory main = new CmsAppCategory(MAIN_CATEGORY_ID, null, 0, 0);
          appCategories.put(main.getId(), main);
          CmsAppCategory admin = new CmsAppCategory(ADMINISTRATION_CATEGORY_ID, null, 5, 0);
          appCategories.put(admin.getId(), admin);
          CmsAppCategory legacy = new CmsAppCategory(LEGACY_CATEGORY_ID, null, 10, 0);
          appCategories.put(legacy.getId(), legacy);
          List<I_CmsFolderAppCategory> folder = loadAppFolder();
          for (I_CmsFolderAppCategory appFolder : folder) {
              appCategories.put(appFolder.getId(), appFolder);
          }
          Iterator<I_CmsAppCategory> categoryIt = ServiceLoader.load(I_CmsAppCategory.class).iterator();
          while (categoryIt.hasNext()) {
              try {
                  I_CmsAppCategory cat = categoryIt.next();
                  if (!appCategories.containsKey(cat.getId())
                      || (appCategories.get(cat.getId()).getPriority() < cat.getPriority())) {
                      appCategories.put(cat.getId(), cat);
                  }
              } catch (Throwable t) {
                  LOG.error("Error loading workplace app category from classpath.", t);
              }
          }
          return appCategories;
      }