summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationFile.java22
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java11
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFilesTest.java38
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());
}
}