ALL_CACHE_MANAGERS CacheManager net .sf.ehcache - PullRequest
3 голосов
/ 22 января 2020

Есть ли замена для net.sf.ehcache.CacheManager.ALL_CACHE_MANAGERS в

    <!-- https://mvnrepository.com/artifact/org.ehcache/ehcache -->
    <dependency>
        <groupId>org.ehcache</groupId>
        <artifactId>ehcache</artifactId>
        <version>3.8.1</version>
    </dependency>

?

Это код, который мне нужно изменить для работы с версией 3.8.1:

import org.ehcache.CacheManager;
    .
    .
    .
        List list = CacheManager.ALL_CACHE_MANAGERS;

        for (int i = 0, n = list.size(); i < n; i++) {
            CacheManager cm = (CacheManager) list.get(i);
            log.debug("CacheManager: " + cm.getName());

            if (cm.getName().equals(CACHE_MANAGER_NAME)) {
                log.debug("CM " + CACHE_MANAGER_NAME + " existed. Destroying it.");
                cm.shutdown();
            }
        }

Есть ли способ сделать это в ehcache 3.8.1?

1 Ответ

0 голосов
/ 09 февраля 2020

Похоже, ALL_CACHE_MANAGERS заменено на org.ehcache.clustered.operations команду ListCacheManagers в ehcache 3.8.1.

Может использоваться следующим образом.

OperationsTool.main (...)

public static void main(String[] args) {
 System.exit(innerMain(args));
}

OperationsTool.innerMain (...)

public static int innerMain(String[] args) {
 BaseOptions base = new BaseOptions();
 JCommander jc = new JCommander(base);
 jc.setProgramName("ehcache-ops");
 jc.addCommand(new ListCacheManagers(base));
 jc.addCommand(new CreateCacheManager(base));
 jc.addCommand(new UpdateCacheManager(base));
 jc.addCommand(new DestroyCacheManager(base));
 jc.setParameterDescriptionComparator(REQUIRED_FIRST);
 for (JCommander jcc : jc.getCommands().values()) {
  jcc.setParameterDescriptionComparator(REQUIRED_FIRST);
 }
 try {
  jc.parse(args);
  if (base.isHelp()) {
   return usage(jc, new StringBuilder());
  } else {
   int result = 0;
   for (Object o : jc.getCommands().get(jc.getParsedCommand()).getObjects()) {
    result |= ((Command) o).execute();
   }
   return result;
  }
 } catch (ParameterException e) {
  return usage(jc, new StringBuilder(e.getMessage()).append("\n"));
 }
}

OperationsToolTest.run (...)

 public static int run(String command) {
  return OperationsTool.innerMain(command.split("\\s+"));
 }
}

Ссылка:

  1. https://www.codota.com/web/assistant/code/rs/5c76b38b49efcb0001524b15#L36
  2. https://www.codota.com/code/java/classes/org.ehcache.clustered.operations.OperationsTool
...