private Set<String> getUserCommandPackages() {
    final Set<String> userCommandPackages = new HashSet<>();

    List<String> userCommandSources = new ArrayList<>();
    // Find by packages specified by the system property
    if (System.getProperty(USER_CMD_PACKAGES_PROPERTY) != null) {
      userCommandSources.add(System.getProperty(USER_CMD_PACKAGES_PROPERTY));
    }

    // Find by packages specified by the environment variable
    if (System.getenv().containsKey(USER_CMD_PACKAGES_ENV_VARIABLE)) {
      userCommandSources.add(System.getenv().get(USER_CMD_PACKAGES_ENV_VARIABLE));
    }

    // Find by packages specified in the distribution config
    String cacheUserCmdPackages =
        cacheProperties.getProperty(ConfigurationProperties.USER_COMMAND_PACKAGES, "");
    if (!cacheUserCmdPackages.isEmpty()) {
      userCommandSources.add(cacheUserCmdPackages);
    }

    for (String source : userCommandSources) {
      userCommandPackages.addAll(Arrays.asList(source.split(",")));
    }

    return userCommandPackages;
  }
this is used when getting the instance in a cache server. We are getting the
user-command-package from distribution properties. used by OnlineCommandProcessor.
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java