private void addOrRemoveJarFromFilesystem(EntryEvent<String, Configuration> event) {
    String group = event.getKey();
    Configuration newConfig = event.getNewValue();
    Configuration oldConfig = event.getOldValue();
    Set<String> newJars = newConfig.getJarNames();
    Set<String> oldJars = (oldConfig == null) ? new HashSet<>() : oldConfig.getJarNames();

    Set<String> jarsRemoved = new HashSet<>(oldJars);
    jarsRemoved.removeAll(newJars);

    for (String jarRemoved : jarsRemoved) {
      File jar = sharedConfig.getPathToJarOnThisLocator(group, jarRemoved).toFile();
      if (jar.exists()) {
        try {
          FileUtils.forceDelete(jar);
        } catch (IOException e) {
          logger.error(
              "Exception occurred while attempting to delete a jar from the filesystem: {}",
              jarRemoved, e);
        }
      }
    }

    String triggerMemberId = (String) event.getCallbackArgument();
    if (triggerMemberId == null || newJars.isEmpty()) {
      return;
    }

    DistributedMember locator = getDistributedMember(triggerMemberId);
    for (String jarAdded : newJars) {
      try {
        sharedConfig.downloadJarFromLocator(group, jarAdded, locator);
      } catch (Exception e) {
        logger.error("Unable to add jar: " + jarAdded, e);
      }
    }
  }
*
CacheListener on ConfigRegion on Locators to write the configuration changes to file-system.
geode-core/src/main/java/org/apache/geode/management/internal/configuration/callbacks/ConfigurationChangeListener.java