diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-16 10:51:02 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-16 10:51:02 +0200 |
commit | 046378a34ec0758963f4c2308b5f58d4d8a08d3f (patch) | |
tree | 410a6d40e1387a5061766ec43fc31562d3924652 /configserver | |
parent | e536003faa53fd4df212010357d2327946122c14 (diff) |
Reduce dependency on PregeneratedFileregistry.
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java index cc9b799f2d9..c88b0cf7099 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java @@ -29,9 +29,11 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import static com.yahoo.vespa.config.server.zookeeper.ZKApplication.DEFCONFIGS_ZK_SUBPATH; import static com.yahoo.vespa.config.server.zookeeper.ZKApplication.USERAPP_ZK_SUBPATH; @@ -45,7 +47,7 @@ public class ZKApplicationPackage implements ApplicationPackage { private final ZKApplication zkApplication; - private final Map<Version, PreGeneratedFileRegistry> fileRegistryMap = new HashMap<>(); + private final Map<Version, FileRegistry> fileRegistryMap = new HashMap<>(); private final Optional<AllocatedHosts> allocatedHosts; public static final String fileRegistryNode = "fileregistry"; @@ -91,7 +93,7 @@ public class ZKApplicationPackage implements ApplicationPackage { importFileRegistry(Joiner.on("/").join(fileRegistryNode, version)))); } - private PreGeneratedFileRegistry importFileRegistry(String fileRegistryNode) { + private FileRegistry importFileRegistry(String fileRegistryNode) { try { return PreGeneratedFileRegistry.importRegistry(zkApplication.getDataReader(Path.fromString(fileRegistryNode))); } catch (Exception e) { @@ -159,9 +161,9 @@ public class ZKApplicationPackage implements ApplicationPackage { return Collections.unmodifiableMap(fileRegistryMap); } - private Optional<PreGeneratedFileRegistry> getPreGeneratedFileRegistry(Version vespaVersion) { + private Optional<FileRegistry> getFileRegistry(Version vespaVersion) { // Assumes at least one file registry, which we always have. - Optional<PreGeneratedFileRegistry> fileRegistry = Optional.ofNullable(fileRegistryMap.get(vespaVersion)); + Optional<FileRegistry> fileRegistry = Optional.ofNullable(fileRegistryMap.get(vespaVersion)); if (fileRegistry.isEmpty()) { fileRegistry = Optional.of(fileRegistryMap.values().iterator().next()); } @@ -241,11 +243,21 @@ public class ZKApplicationPackage implements ApplicationPackage { return Optional.empty(); } + private static Set<String> getPaths(FileRegistry fileRegistry) { + Set<String> paths = new LinkedHashSet<>(); + synchronized (fileRegistry) { + for (FileRegistry.Entry e : fileRegistry.export()) { + paths.add(e.relativePath); + } + } + return paths; + } + @Override public List<ComponentInfo> getComponentsInfo(Version vespaVersion) { List<ComponentInfo> components = new ArrayList<>(); - PreGeneratedFileRegistry fileRegistry = getPreGeneratedFileRegistry(vespaVersion).get(); - for (String path : fileRegistry.getPaths()) { + FileRegistry fileRegistry = getFileRegistry(vespaVersion).get(); + for (String path : getPaths(fileRegistry)) { if (path.startsWith(COMPONENT_DIR + File.separator) && path.endsWith(".jar")) { ComponentInfo component = new ComponentInfo(path); components.add(component); |