diff options
4 files changed, 20 insertions, 54 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationFile.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationFile.java index d262c7bc862..36d6efdf59b 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationFile.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationFile.java @@ -27,21 +27,21 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { } /** - * Checks whether this file is a directory. + * Check whether or not this file is a directory. * * @return true if it is, false if not. */ public abstract boolean isDirectory(); /** - * Tests whether this file exists. + * Test whether or not this file exists. * * @return true if it exists, false if not. */ public abstract boolean exists(); /** - * Creates a {@link Reader} for the contents of this file. + * Create a {@link Reader} for the contents of this file. * * @return A {@link Reader} that should be closed after use. * @throws FileNotFoundException if the file is not found. @@ -50,7 +50,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { /** - * Creates an {@link InputStream} for the contents of this file. + * Create an {@link InputStream} for the contents of this file. * * @return An {@link InputStream} that should be closed after use. * @throws FileNotFoundException if the file is not found. @@ -58,7 +58,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { public abstract InputStream createInputStream() throws FileNotFoundException; /** - * Creates a directory at the path represented by this file. Parent directories will + * Create a directory at the path represented by this file. Parent directories will * be automatically created. * * @return this @@ -67,7 +67,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { public abstract ApplicationFile createDirectory(); /** - * Writes the contents from supplied reader to this file. Any existing content will be overwritten! + * Write the contents from this reader to this file. Any existing content will be overwritten! * * @param input A reader pointing to the content that should be written. * @return this @@ -82,7 +82,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { public abstract ApplicationFile appendFile(String value); /** - * Lists the files under this directory. If this is file, an empty list is returned. + * List the files under this directory. If this is file, an empty list is returned. * Only immediate files/subdirectories are returned. * * @return a list of files in this directory. @@ -92,7 +92,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { } /** - * Lists the files under this directory. If this is a file, an empty list is returned. + * List the files under this directory. If this is file, an empty list is returned. * Only immediate files/subdirectories are returned. * * @param filter A filter functor for filtering path names @@ -101,7 +101,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { public abstract List<ApplicationFile> listFiles(PathFilter filter); /** - * Lists the files in this directory, optionally lists files for subdirectories recursively as well. + * List the files in this directory, optionally list files for subdirectories recursively as well. * * @param recurse Set to true if all files in the directory tree should be returned. * @return a list of files in this directory. @@ -121,7 +121,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { } /** - * Deletes the file pointed to by this. If this is a non-empty directory, the operation will throw. + * Delete the file pointed to by this. If it is a non-empty directory, the operation will throw. * * @return this. * @throws RuntimeException if the file is a directory and not empty. @@ -129,7 +129,7 @@ public abstract class ApplicationFile implements Comparable<ApplicationFile> { public abstract ApplicationFile delete(); /** - * Gets the path that this file represents. + * Get the path that this file represents. * * @return a Path */ diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java index f434d056bfc..9821f3b9568 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java @@ -166,8 +166,7 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat UserConfiguredFiles files = new UserConfiguredFiles(deployState.getFileRegistry(), deployState.getDeployLogger(), deployState.featureFlags(), - userConfiguredUrls, - deployState.getApplicationPackage()); + userConfiguredUrls); for (Component<?, ?> component : getAllComponents()) { files.register(component); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java index b10da29ee04..47ae2f40414 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java @@ -3,8 +3,6 @@ package com.yahoo.vespa.model.filedistribution; import com.yahoo.config.FileReference; import com.yahoo.config.ModelReference; -import com.yahoo.config.application.api.ApplicationFile; -import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; @@ -39,17 +37,14 @@ public class UserConfiguredFiles implements Serializable { private final DeployLogger logger; private final UserConfiguredUrls userConfiguredUrls; private final String unknownConfigDefinition; - private final ApplicationPackage applicationPackage; public UserConfiguredFiles(FileRegistry fileRegistry, DeployLogger logger, ModelContext.FeatureFlags featureFlags, - UserConfiguredUrls userConfiguredUrls, - ApplicationPackage applicationPackage) { + UserConfiguredUrls userConfiguredUrls) { this.fileRegistry = fileRegistry; this.logger = logger; this.userConfiguredUrls = userConfiguredUrls; this.unknownConfigDefinition = featureFlags.unknownConfigDefinition(); - this.applicationPackage = applicationPackage; } /** @@ -160,8 +155,8 @@ public class UserConfiguredFiles implements Serializable { path = Path.fromString(builder.getValue()); } - ApplicationFile file = applicationPackage.getFile(path); - if (file.isDirectory() && (file.listFiles() == null || file.listFiles().isEmpty())) + File file = path.toFile(); + if (file.isDirectory() && (file.listFiles() == null || file.listFiles().length == 0)) throw new IllegalArgumentException("Directory '" + path.getRelative() + "' is empty"); FileReference reference = registeredFiles.get(path); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFilesTest.java b/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFilesTest.java index 92fb89a5c4c..523b0e74be1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFilesTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFilesTest.java @@ -9,7 +9,6 @@ import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.producer.UserConfigRepo; -import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.model.test.MockRoot; import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionKey; @@ -20,7 +19,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import java.io.File; import java.nio.ByteBuffer; import java.nio.file.Path; import java.util.HashMap; @@ -71,23 +69,12 @@ public class UserConfiguredFilesTest { public String toString() { return export().toString(); } } - private UserConfiguredFiles userConfiguredFiles() { - return new UserConfiguredFiles(fileRegistry, - new BaseDeployLogger(), - new TestProperties(), - new ApplicationContainerCluster.UserConfiguredUrls(), - new MockApplicationPackage.Builder().build()); - } - private UserConfiguredFiles userConfiguredFiles(File root, com.yahoo.path.Path path) { + private UserConfiguredFiles userConfiguredFiles() { return new UserConfiguredFiles(fileRegistry, new BaseDeployLogger(), new TestProperties(), - new ApplicationContainerCluster.UserConfiguredUrls(), - new MockApplicationPackage.Builder() - .withRoot(root) - .withFiles(Map.of(path, "")) - .build()); + new ApplicationContainerCluster.UserConfiguredUrls()); } @BeforeEach @@ -302,31 +289,16 @@ public class UserConfiguredFilesTest { } @Test - void require_that_using_empty_dir_fails(@TempDir Path tempDir) { - String relativeTempDir = tempDir.toString().substring(tempDir.toString().lastIndexOf("target") + 7); + void require_that_using_empty_dir_gives_sane_error_message(@TempDir Path tempDir) { + String relativeTempDir = tempDir.toString().substring(tempDir.toString().lastIndexOf("target")); try { def.addPathDef("pathVal"); builder.setField("pathVal", relativeTempDir); fileRegistry.pathToRef.put(relativeTempDir, new FileReference("bazshash")); - userConfiguredFiles(tempDir.toFile().getParentFile(), - com.yahoo.path.Path.fromString(tempDir.toFile().getAbsolutePath())).register(producer); - fail("Should have thrown exception"); - } catch (IllegalArgumentException e) { - assertEquals("Invalid config in services.xml for 'mynamespace.myname': Directory '" + relativeTempDir + "' is empty", - e.getMessage()); - } - } - - @Test - void require_that_using_non_existing_dir_fails() { - String relativeTempDir = "non-existing"; - try { - def.addPathDef("pathVal"); - builder.setField("pathVal", relativeTempDir); userConfiguredFiles().register(producer); fail("Should have thrown exception"); } catch (IllegalArgumentException e) { - assertEquals("Invalid config in services.xml for 'mynamespace.myname': No such file or directory '" + relativeTempDir + "'", + assertEquals("Invalid config in services.xml for 'mynamespace.myname': Directory '" + relativeTempDir + "' is empty", e.getMessage()); } } |