summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-11-26 10:16:51 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-11-26 10:20:42 +0100
commit4429843d149d0f5761ec2fb92b342bc66bc3871b (patch)
tree76458cc95a4c9c3b2d1032a1df185bfae75c56a2 /config
parent59f02f2cad73aff2d586b440d92a889835b0eb3f (diff)
Remove dead code
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/CompilationTask.java44
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/CompiledBuilder.java13
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigCompiler.java13
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinition.java8
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinitionClass.java27
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/LazyConfigCompiler.java85
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/buildergen/StringSourceObject.java23
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/buildergen/ConfigBuilderGeneratorTest.java49
8 files changed, 0 insertions, 262 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/CompilationTask.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/CompilationTask.java
deleted file mode 100644
index 05125f8b08b..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/CompilationTask.java
+++ /dev/null
@@ -1,44 +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.vespa.config.buildergen;
-
-import javax.tools.Diagnostic;
-import javax.tools.DiagnosticCollector;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-
-/**
- * Represents a compilation task that can be run and also collects diagnostic messages from the compilation.
- * TODO: Assumes that diagnostics is the same as given to the task, not ideal.
- *
- * @author Ulf Lilleengen
- */
-class CompilationTask {
- private final JavaCompiler.CompilationTask task;
- private final DiagnosticCollector<JavaFileObject> diagnostics;
-
- CompilationTask(JavaCompiler.CompilationTask task, DiagnosticCollector<JavaFileObject> diagnostics) {
- this.task = task;
- this.diagnostics = diagnostics;
- }
-
- void call() {
- boolean success = task.call();
- if (!success) {
- throw new IllegalArgumentException("Compilation diagnostics: " + getDiagnosticMessage());
- }
- }
-
- private String getDiagnosticMessage() {
- StringBuilder diagnosticMessages = new StringBuilder();
- for (Diagnostic<?> diagnostic : diagnostics.getDiagnostics()) {
- diagnosticMessages.append(diagnostic.getCode()).append("\n");
- diagnosticMessages.append(diagnostic.getKind()).append("\n");
- diagnosticMessages.append(diagnostic.getPosition()).append("\n");
- diagnosticMessages.append(diagnostic.getStartPosition()).append("\n");
- diagnosticMessages.append(diagnostic.getEndPosition()).append("\n");
- diagnosticMessages.append(diagnostic.getSource()).append("\n");
- diagnosticMessages.append(diagnostic.getMessage(null)).append("\n");
- }
- return diagnosticMessages.toString();
- }
-}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/CompiledBuilder.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/CompiledBuilder.java
deleted file mode 100644
index fa5cf427aad..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/CompiledBuilder.java
+++ /dev/null
@@ -1,13 +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.vespa.config.buildergen;
-
-import com.yahoo.config.ConfigInstance;
-
-/**
- * Represents a builder that can be instantiated.
- *
- * @author Ulf Lilleengen
- */
-public interface CompiledBuilder {
- <BUILDER extends ConfigInstance.Builder> BUILDER newInstance();
-}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigCompiler.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigCompiler.java
deleted file mode 100644
index 9473a05332f..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigCompiler.java
+++ /dev/null
@@ -1,13 +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.vespa.config.buildergen;
-
-/**
- * Interface towards compilers for compiling builders from a config class definition.
- *
- * @author Ulf Lilleengen
- */
-public interface ConfigCompiler {
-
- CompiledBuilder compile(ConfigDefinitionClass defClass);
-
-}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinition.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinition.java
index 7ded55e046a..e145f8ee090 100644
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinition.java
+++ b/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinition.java
@@ -30,12 +30,4 @@ public class ConfigDefinition {
return cnode;
}
- public ConfigDefinitionClass generateClass() {
- File tempDir = Files.createTempDir();
- DefParser parser = new DefParser(name, new StringReader(StringUtilities.implode(defSchema, "\n")));
- JavaClassBuilder builder = new JavaClassBuilder(parser.getTree(), parser.getNormalizedDefinition(), tempDir, null);
- String className = builder.className();
- return new ConfigDefinitionClass(className, builder.javaPackage(), builder.getConfigClass(className));
- }
-
}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinitionClass.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinitionClass.java
deleted file mode 100644
index 8f222de3b55..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/ConfigDefinitionClass.java
+++ /dev/null
@@ -1,27 +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.vespa.config.buildergen;
-
-/**
- * @author Ulf Lilleengen
- */
-class ConfigDefinitionClass {
-
- private final String name;
- private final String pkg;
- private final String definition;
-
- ConfigDefinitionClass(String name, String pkg, String definition) {
- this.name = name;
- this.pkg = pkg;
- this.definition = definition;
- }
-
- String getDefinition() {
- return definition;
- }
-
- String getName() {
- return pkg + "." + name;
- }
-
-}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/LazyConfigCompiler.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/LazyConfigCompiler.java
deleted file mode 100644
index 2af19d1c6f2..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/LazyConfigCompiler.java
+++ /dev/null
@@ -1,85 +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.vespa.config.buildergen;
-
-import com.yahoo.config.ConfigInstance;
-
-import javax.tools.*;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Arrays;
-import java.util.Locale;
-
-/**
- * Represents a compiler that waits performing the compilation until the requested builder is requested from the
- * {@link CompiledBuilder}.
- *
- * @author Ulf Lilleengen
- */
-public class LazyConfigCompiler implements ConfigCompiler {
-
- private final File outputDirectory;
- private final ClassLoader classLoader;
- private final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
-
- public LazyConfigCompiler(File outputDirectory) {
- this.outputDirectory = outputDirectory;
- try {
- this.classLoader = new URLClassLoader(new URL[]{outputDirectory.toURI().toURL()});
- } catch (MalformedURLException e) {
- throw new IllegalArgumentException("Unable to create class loader for directory '" + outputDirectory.getAbsolutePath() + "'", e);
- }
- }
-
- @Override
- public CompiledBuilder compile(ConfigDefinitionClass defClass) {
- Iterable<? extends JavaFileObject> compilationUnits = Arrays.asList(new StringSourceObject(defClass.getName(), defClass.getDefinition()));
- DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
-
- StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, Locale.ENGLISH, null);
- Iterable<String> options = Arrays.asList("-d", outputDirectory.getAbsolutePath());
- JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits);
- return new LazyCompiledBuilder(classLoader, defClass.getName(), new CompilationTask(task, diagnostics));
- }
-
- /**
- * Lazy implementation of compiled builder that defers compilation until class is requested.
- */
- private static class LazyCompiledBuilder implements CompiledBuilder {
- private final ClassLoader classLoader;
- private final String classUrl;
- private final CompilationTask compilationTask;
- private LazyCompiledBuilder(ClassLoader classLoader, String classUrl, CompilationTask compilationTask) {
- this.classLoader = classLoader;
- this.classUrl = classUrl;
- this.compilationTask = compilationTask;
- }
-
- @Override
- public <BUILDER extends ConfigInstance.Builder> BUILDER newInstance() {
- compileBuilder();
- String builderClassUrl = classUrl + "$Builder";
- return loadBuilder(builderClassUrl);
-
- }
-
- private void compileBuilder() {
- try {
- compilationTask.call();
- } catch (IllegalArgumentException e) {
- throw new IllegalArgumentException("Error compiling '" + classUrl + "'", e);
- }
- }
-
- @SuppressWarnings("unchecked")
- private <BUILDER extends ConfigInstance.Builder> BUILDER loadBuilder(String builderClassUrl) {
- try {
- Class<BUILDER> clazz = (Class<BUILDER>) classLoader.loadClass(builderClassUrl);
- return clazz.getDeclaredConstructor().newInstance();
- } catch (ReflectiveOperationException e) {
- throw new RuntimeException("Error creating new instance of '" + builderClassUrl + "'", e);
- }
- }
- }
-}
diff --git a/config/src/main/java/com/yahoo/vespa/config/buildergen/StringSourceObject.java b/config/src/main/java/com/yahoo/vespa/config/buildergen/StringSourceObject.java
deleted file mode 100644
index c67d2121844..00000000000
--- a/config/src/main/java/com/yahoo/vespa/config/buildergen/StringSourceObject.java
+++ /dev/null
@@ -1,23 +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.vespa.config.buildergen;
-
-import javax.tools.SimpleJavaFileObject;
-import java.net.URI;
-
-/**
- * Represents an in memory source object that can be compiled.
- *
- * @author Ulf Lilleengen
- */
-class StringSourceObject extends SimpleJavaFileObject {
- private final String code;
- StringSourceObject(String name, String code) {
- super(URI.create("string:///" + name.replace('.', '/') + Kind.SOURCE.extension),Kind.SOURCE);
- this.code = code;
- }
-
- @Override
- public CharSequence getCharContent(boolean ignoreEncodingErrors) {
- return code;
- }
-}
diff --git a/config/src/test/java/com/yahoo/vespa/config/buildergen/ConfigBuilderGeneratorTest.java b/config/src/test/java/com/yahoo/vespa/config/buildergen/ConfigBuilderGeneratorTest.java
deleted file mode 100644
index 4501768822c..00000000000
--- a/config/src/test/java/com/yahoo/vespa/config/buildergen/ConfigBuilderGeneratorTest.java
+++ /dev/null
@@ -1,49 +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.vespa.config.buildergen;
-
-import com.google.common.io.Files;
-import com.yahoo.config.ConfigInstance;
-import com.yahoo.slime.Cursor;
-import com.yahoo.slime.Slime;
-import com.yahoo.vespa.config.ConfigDefinitionKey;
-import com.yahoo.vespa.config.ConfigPayload;
-import com.yahoo.vespa.config.ConfigPayloadApplier;
-import org.junit.Test;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-
-import static com.yahoo.config.codegen.ConfiggenUtil.createClassName;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-/**
- * @author Ulf Lilleengen
- */
-public class ConfigBuilderGeneratorTest {
-
- @Test
- public void require_that_custom_classes_can_be_generated() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
- String[] schema = new String[] {
- "namespace=foo.bar",
- "intval int",
- "stringval string"
- };
- File tempDir = Files.createTempDir();
- ConfigDefinitionKey key = new ConfigDefinitionKey("quux", "foo.bar");
- ConfigCompiler compiler = new LazyConfigCompiler(tempDir);
- ConfigInstance.Builder builder = compiler.compile(new ConfigDefinition(key.getName(), schema).generateClass()).newInstance();
- assertNotNull(builder);
- ConfigPayloadApplier<?> payloadApplier = new ConfigPayloadApplier<>(builder);
- Slime slime = new Slime();
- Cursor root = slime.setObject();
- root.setString("intval", "3");
- root.setString("stringval", "Hello, world");
- payloadApplier.applyPayload(new ConfigPayload(slime));
- String className = createClassName(key.getName());
- ConfigInstance instance = (ConfigInstance) builder.getClass().getClassLoader().loadClass("com.yahoo." + key.getNamespace() + "." + className).getConstructor(new Class<?>[]{builder.getClass()}).newInstance(builder);
- assertNotNull(instance);
- assertEquals("intval 3\nstringval \"Hello, world\"", instance.toString());
- }
-
-}