summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2022-01-14 21:38:18 +0100
committerHåkon Hallingstad <hakon@yahooinc.com>2022-01-14 21:38:18 +0100
commit7043580abed16b6ced09de706f89c7657d3112c6 (patch)
treeec5ce85c7a56ab6badd1e4f35a4b1fe41d2ccade
parent85ab960e1969501577296edbb150510fb0c2c645 (diff)
Remove Templar
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Templar.java75
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/template/Template.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/file/TemplarTest.java21
3 files changed, 3 insertions, 96 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Templar.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Templar.java
deleted file mode 100644
index 553f2ffba36..00000000000
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Templar.java
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.node.admin.task.util.file;
-
-import java.nio.file.Path;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A very simple template engine when there's little complexity and lots of Velocity special characters $ and #,
- * i.e. typically shell script.
- *
- * @author hakonhall
- */
-public class Templar {
- private final String template;
-
- private static final String prefix = "<%=";
- private static final String suffix = "%>";
-
- private final Map<String, String> settings = new HashMap<>();
-
- public static Templar fromUtf8File(Path path) {
- return new Templar(new UnixPath(path).readUtf8File());
- }
-
- public Templar(String template) {
- this.template = template;
- }
-
- public Templar set(String name, String value) {
- settings.put(name, value);
- return this;
- }
-
- public String resolve() {
- StringBuilder text = new StringBuilder(template.length() * 2);
-
- int start= 0;
- int end;
-
- for (; start < template.length(); start = end) {
- int prefixStart = template.indexOf(prefix, start);
-
-
- if (prefixStart == -1) {
- text.append(template, start, template.length());
- break;
- } else {
- text.append(template, start, prefixStart);
- }
-
- int suffixStart = template.indexOf(suffix, prefixStart + prefix.length());
- if (suffixStart == -1) {
- throw new IllegalArgumentException("Prefix at offset " + prefixStart + " is not terminated");
- }
-
- int prefixEnd = prefixStart + prefix.length();
- String name = template.substring(prefixEnd, suffixStart).trim();
- String value = settings.get(name);
- if (value == null) {
- throw new IllegalArgumentException("No value is set for name '" + name + "' at offset " + prefixEnd);
- }
-
- text.append(value);
-
- end = suffixStart + suffix.length();
- }
-
- return text.toString();
- }
-
- public FileWriter getFileWriterTo(Path path) {
- return new FileWriter(path, this::resolve);
- }
-}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/template/Template.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/template/Template.java
index ea55af17a0e..6d80ac2cad9 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/template/Template.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/template/Template.java
@@ -26,12 +26,15 @@ import java.util.Optional;
* id: a valid Java identifier
* </pre>
*
+ * <p>Other directive delimiters than "%{" and "}" may be used, see {@link TemplateDescriptor}.</p>
+ *
* <p>Fill the template with variable values ({@link #set(String, String) set()}, set if conditions
* ({@link #set(String, boolean)}), add list elements ({@link #add(String) add()}, etc, and finally
* render it as a String ({@link #render()}).</p>
*
* <p>To reuse a template, create the template and work on snapshots of that ({@link #snapshot()}).</p>
*
+ * @see TemplateDescriptor
* @author hakonhall
*/
public class Template implements Form {
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/file/TemplarTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/file/TemplarTest.java
deleted file mode 100644
index ed410ffc1d1..00000000000
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/file/TemplarTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.node.admin.task.util.file;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * @author hakonhall
- */
-public class TemplarTest {
- @Test
- public void test() {
- Templar templar = new Templar("x y <%= foo %>, some other <%=bar%> text");
- templar.set("foo", "fidelity")
- .set("bar", "halimov")
- .set("not", "used");
-
- assertEquals("x y fidelity, some other halimov text", templar.resolve());
- }
-} \ No newline at end of file