aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-08-24 13:52:03 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-08-24 13:52:03 +0200
commit6708917a1699529e85be872b8c853da9a5298837 (patch)
tree8427fd4a407a8e09badcbec345ccc914ab07554a /config-application-package
parentd27622ab42bcedb731289e26fcb4800f488dcda6 (diff)
- Add testing of FileDBRegistry.
- Remove PreGeneratedRegistry. - Allow files to not exist after bootstrap.
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistry.java114
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistryTestCase.java40
2 files changed, 0 insertions, 154 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistry.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistry.java
deleted file mode 100644
index 5a7f2db1968..00000000000
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistry.java
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.config.model.application.provider;
-
-import com.yahoo.config.FileReference;
-import com.yahoo.config.application.api.FileRegistry;
-import com.yahoo.net.HostName;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-/**
- * Registry of files added earlier (i.e. during deployment)
- *
- * @author Tony Vaagenes
- */
-public class PreGeneratedFileRegistry implements FileRegistry {
-
- private final String fileSourceHost;
- private final Map<String, FileReference> path2Hash;
-
- private static final String entryDelimiter = "\t";
- private static final Pattern entryDelimiterPattern = Pattern.compile(entryDelimiter, Pattern.LITERAL);
-
- public static Map<String, FileReference> decode(BufferedReader reader) {
- Map<String, FileReference> refs = new HashMap<>();
- try {
- String line;
- while ((line = reader.readLine()) != null) {
- String[] parts = entryDelimiterPattern.split(line);
- if (parts.length < 2)
- throw new IllegalArgumentException("Cannot split '" + line + "' into two parts");
- refs.put(parts[0], new FileReference(parts[1]));
- }
- } catch (IOException e) {
- throw new RuntimeException("Error while reading pre-generated file registry", e);
- }
- return refs;
- }
- private PreGeneratedFileRegistry(Reader readerArg) {
- try (BufferedReader reader = new BufferedReader(readerArg)) {
- fileSourceHost = reader.readLine();
- if (fileSourceHost == null)
- throw new RuntimeException("Error while reading pre-generated file registry");
-
- path2Hash = decode(reader);
- } catch (IOException e) {
- throw new RuntimeException("Error while reading pre-generated file registry", e);
- }
- }
-
- public static String exportRegistry(FileRegistry registry) {
- List<Entry> entries = registry.export();
- StringBuilder builder = new StringBuilder();
-
- builder.append(HostName.getLocalhost()).append('\n');
- for (FileRegistry.Entry entry : entries) {
- builder.append(entry.relativePath).append(entryDelimiter).append(entry.reference.value()).append('\n');
- }
-
- return builder.toString();
- }
-
- public static PreGeneratedFileRegistry importRegistry(Reader reader) {
- return new PreGeneratedFileRegistry(reader);
- }
-
- public FileReference addFile(String relativePath) {
- FileReference reference = path2Hash.get(relativePath);
- if (reference == null) {
- throw new IllegalArgumentException("File '" + relativePath + "' not found");
- }
- return reference;
- }
-
- @Override
- public FileReference addUri(String uri) {
- FileReference reference = path2Hash.get(uri);
- if (reference == null) {
- throw new IllegalArgumentException("Uri '" + uri + "' not found");
- }
- return reference;
- }
- @Override
- public FileReference addBlob(ByteBuffer blob) {
- String blobName = FileRegistry.blobName(blob);
- FileReference reference = path2Hash.get(blobName);
- if (reference == null) {
- throw new IllegalArgumentException("Blob '" + blobName + "(" + blob.remaining()+ ")' not found");
- }
- return reference;
- }
-
- public Set<String> getPaths() {
- return path2Hash.keySet();
- }
-
- @Override
- public List<Entry> export() {
- List<Entry> entries = new ArrayList<>();
- for (Map.Entry<String, FileReference> entry : path2Hash.entrySet()) {
- entries.add(new Entry(entry.getKey(), entry.getValue()));
- }
- return entries;
- }
-}
diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistryTestCase.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistryTestCase.java
deleted file mode 100644
index 532ebb1ab81..00000000000
--- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/PreGeneratedFileRegistryTestCase.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.config.model.application.provider;
-
-import com.yahoo.config.application.api.FileRegistry;
-import org.junit.Test;
-
-import java.io.StringReader;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.Set;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * @author Tony Vaagenes
- */
-public class PreGeneratedFileRegistryTestCase {
-
- private static final String BLOB = "Some blob";
- @Test
- public void importAndExport() {
- FileRegistry fileRegistry = new MockFileRegistry();
- fileRegistry.addFile("1234");
- fileRegistry.addBlob(ByteBuffer.wrap(BLOB.getBytes(StandardCharsets.UTF_8)));
- String serializedRegistry = PreGeneratedFileRegistry.exportRegistry(fileRegistry);
-
- PreGeneratedFileRegistry importedRegistry = PreGeneratedFileRegistry.importRegistry(new StringReader(serializedRegistry));
-
- assertEquals(Set.of("1234", "c5674b55c15c9c95.blob"), importedRegistry.getPaths());
-
- assertEquals(2, importedRegistry.getPaths().size());
-
- checkConsistentEntry(fileRegistry.export().get(0), importedRegistry);
- checkConsistentEntry(fileRegistry.export().get(1), importedRegistry);
- }
-
- void checkConsistentEntry(FileRegistry.Entry entry, FileRegistry registry) {
- assertEquals(entry.reference, registry.addFile(entry.relativePath));
- }
-}