diff options
author | Arne Juul <arnej@yahooinc.com> | 2023-01-24 13:56:04 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2023-01-24 14:00:10 +0000 |
commit | 091e1b11ecfeb09025cea8316c681e1e8da8c6ea (patch) | |
tree | e0d240e63c3b1f01021b51aeeab6cedc4553154b /config-application-package | |
parent | 16b5b25f8c7512c122bb3e7c1cd5c412f8506c48 (diff) |
ignore ._foo.sd and other "resource fork" like names
Diffstat (limited to 'config-application-package')
2 files changed, 16 insertions, 2 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java index c616784c7be..005c54498fc 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java @@ -41,4 +41,18 @@ public abstract class AbstractApplicationPackage implements ApplicationPackage { return result; } + public static boolean validSchemaFilename(String fn) { + if (! fn.endsWith(SD_NAME_SUFFIX)) { + return false; + } + int lastSlash = fn.lastIndexOf('/'); + if (lastSlash >= 0) { + fn = fn.substring(lastSlash+1); + } + if (fn.startsWith(".")) { + return false; + } + return true; + } + } diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java index c095b9ad586..5707206019f 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java @@ -432,11 +432,11 @@ public class FilesApplicationPackage extends AbstractApplicationPackage { File sdDir = applicationFile(appDir, SEARCH_DEFINITIONS_DIR.getRelative()); if (sdDir.isDirectory()) - schemaFiles.addAll(Arrays.asList(sdDir.listFiles((dir, name) -> name.matches(".*\\" + SD_NAME_SUFFIX)))); + schemaFiles.addAll(Arrays.asList(sdDir.listFiles((dir, name) -> validSchemaFilename(name)))); sdDir = applicationFile(appDir, SCHEMAS_DIR.getRelative()); if (sdDir.isDirectory()) - schemaFiles.addAll(Arrays.asList(sdDir.listFiles((dir, name) -> name.matches(".*\\" + SD_NAME_SUFFIX)))); + schemaFiles.addAll(Arrays.asList(sdDir.listFiles((dir, name) -> validSchemaFilename(name)))); return schemaFiles; } |