diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-11-26 10:16:51 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-11-26 10:20:42 +0100 |
commit | 4429843d149d0f5761ec2fb92b342bc66bc3871b (patch) | |
tree | 76458cc95a4c9c3b2d1032a1df185bfae75c56a2 /config | |
parent | 59f02f2cad73aff2d586b440d92a889835b0eb3f (diff) |
Remove dead code
Diffstat (limited to 'config')
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()); - } - -} |