summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java2
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java24
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java10
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java10
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java10
-rw-r--r--standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala8
7 files changed, 43 insertions, 31 deletions
diff --git a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
index 1762a4b9884..fe9225cd7a6 100644
--- a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
+++ b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
@@ -42,7 +42,7 @@ public class ApplicationPreprocessor {
new Zone(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())),
(a, b) -> {
}, logger);
- preprocessed.validateXML(logger);
+ preprocessed.validateXML();
}
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
index 393bd1c2de7..81cb1f83b6e 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
@@ -7,12 +7,10 @@ import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.provision.Version;
import com.yahoo.path.Path;
import com.yahoo.io.reader.NamedReader;
-import com.yahoo.log.LogLevel;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
-import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
@@ -24,7 +22,6 @@ import java.util.Optional;
public class ApplicationPackageXmlFilesValidator {
private final AppSubDirs appDirs;
- private final DeployLogger logger;
private final Optional<Version> vespaVersion;
private static final FilenameFilter xmlFilter = new FilenameFilter() {
@@ -34,25 +31,24 @@ public class ApplicationPackageXmlFilesValidator {
}
};
- public ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, DeployLogger logger, Optional<Version> vespaVersion) {
+
+ public ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, Optional<Version> vespaVersion) {
this.appDirs = appDirs;
- this.logger = logger;
this.vespaVersion = vespaVersion;
}
- public static ApplicationPackageXmlFilesValidator createDefaultXMLValidator(File appDir, DeployLogger logger, Optional<Version> vespaVersion) {
- return new ApplicationPackageXmlFilesValidator(new AppSubDirs(appDir), logger, vespaVersion);
+ // TODO: Remove when no version older than 6.33 is used
+ public ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, DeployLogger logger, Optional<Version> vespaVersion) {
+ this.appDirs = appDirs;
+ this.vespaVersion = vespaVersion;
}
- public static ApplicationPackageXmlFilesValidator createTestXmlValidator(File appDir) {
- return new ApplicationPackageXmlFilesValidator(new AppSubDirs(appDir), new BaseDeployLogger(), Optional.<Version>empty());
+ public static ApplicationPackageXmlFilesValidator createDefaultXMLValidator(File appDir, Optional<Version> vespaVersion) {
+ return new ApplicationPackageXmlFilesValidator(new AppSubDirs(appDir), vespaVersion);
}
- // Verify that files a and b does not coexist.
- private void checkConflicts(String a, String b) throws IllegalArgumentException {
- if (appDirs.file(a).exists() && appDirs.file(b).exists())
- throw new IllegalArgumentException("Application package in " + appDirs.root() + " contains both " + a + " and " + b +
- ", please use just one of them");
+ public static ApplicationPackageXmlFilesValidator createTestXmlValidator(File appDir) {
+ return new ApplicationPackageXmlFilesValidator(new AppSubDirs(appDir), Optional.<Version>empty());
}
@SuppressWarnings("deprecation")
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 3b85e617f87..1f39e2474da 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
@@ -44,10 +44,8 @@ import java.net.URL;
import java.security.MessageDigest;
import java.util.*;
import java.util.jar.JarFile;
-import java.util.logging.Level;
import java.util.logging.Logger;
-import static com.yahoo.io.IOUtils.readAll;
import static com.yahoo.text.Lowercase.toLowerCase;
@@ -626,13 +624,13 @@ public class FilesApplicationPackage implements ApplicationPackage {
}
@Override
- public void validateXML(DeployLogger logger) throws IOException {
- validateXML(logger, Optional.empty());
+ public void validateXML() throws IOException {
+ validateXML(Optional.empty());
}
@Override
- public void validateXML(DeployLogger logger, Optional<Version> vespaVersion) throws IOException {
- ApplicationPackageXmlFilesValidator xmlFilesValidator = ApplicationPackageXmlFilesValidator.createDefaultXMLValidator(appDir, logger, vespaVersion);
+ public void validateXML(Optional<Version> vespaVersion) throws IOException {
+ ApplicationPackageXmlFilesValidator xmlFilesValidator = ApplicationPackageXmlFilesValidator.createDefaultXMLValidator(appDir, vespaVersion);
xmlFilesValidator.checkApplication();
ApplicationPackageXmlFilesValidator.checkIncludedDirs(this);
}
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
index 2a4751af083..a5fb7a152d8 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
@@ -217,14 +217,24 @@ public interface ApplicationPackage {
throw new UnsupportedOperationException("This application package cannot return file references");
}
+ // TODO: Remove when no version older than 6.33 is in use
default void validateXML(DeployLogger logger) throws IOException {
throw new UnsupportedOperationException("This application package cannot validate XML");
}
+ default void validateXML() throws IOException {
+ throw new UnsupportedOperationException("This application package cannot validate XML");
+ }
+
+ // TODO: Remove when no version older than 6.33 is in use
default void validateXML(DeployLogger logger, Optional<Version> vespaVersion) throws IOException {
throw new UnsupportedOperationException("This application package cannot validate XML");
}
+ default void validateXML(Optional<Version> vespaVersion) throws IOException {
+ throw new UnsupportedOperationException("This application package cannot validate XML");
+ }
+
default void writeMetaData() throws IOException {
throw new UnsupportedOperationException("This application package cannot write its metadata");
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
index 731410c9bf3..c30c62b44bc 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
@@ -232,6 +232,16 @@ public class MockApplicationPackage implements ApplicationPackage {
" </host>" +
"</hosts>";
+
+ @Override
+ public void validateXML() throws IOException {
+ if (failOnValidateXml) {
+ throw new IllegalArgumentException("Error in application package");
+ } else {
+ throw new UnsupportedOperationException("This application package cannot validate XML");
+ }
+ }
+
@Override
public void validateXML(DeployLogger logger) throws IOException {
if (failOnValidateXml) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
index 9b234435ce2..adbd4d7bae1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.model;
import com.google.inject.Inject;
import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.config.application.api.ApplicationPackage;
-import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelRegistry;
import com.yahoo.config.model.MapConfigModelRegistry;
import com.yahoo.config.model.NullConfigModelRegistry;
@@ -89,7 +88,6 @@ public class VespaModelFactory implements ModelFactory {
if (modelContext.appDir().isPresent()) {
ApplicationPackageXmlFilesValidator validator =
ApplicationPackageXmlFilesValidator.createDefaultXMLValidator(modelContext.appDir().get(),
- modelContext.deployLogger(),
modelContext.vespaVersion());
try {
validator.checkApplication();
@@ -101,7 +99,7 @@ public class VespaModelFactory implements ModelFactory {
}
} else {
- validateXML(modelContext.applicationPackage(), modelContext.deployLogger(), ignoreValidationErrors);
+ validateXML(modelContext.applicationPackage(), ignoreValidationErrors);
}
DeployState deployState = createDeployState(modelContext);
VespaModel model = buildModel(deployState);
@@ -173,9 +171,9 @@ public class VespaModelFactory implements ModelFactory {
return modelContext.properties().hostedVespa() && id.isHostedVespaRoutingApplication();
}
- private void validateXML(ApplicationPackage applicationPackage, DeployLogger deployLogger, boolean ignoreValidationErrors) {
+ private void validateXML(ApplicationPackage applicationPackage, boolean ignoreValidationErrors) {
try {
- applicationPackage.validateXML(deployLogger);
+ applicationPackage.validateXML();
} catch (IllegalArgumentException e) {
rethrowUnlessIgnoreErrors(e, ignoreValidationErrors);
} catch (Exception e) {
@@ -185,7 +183,7 @@ public class VespaModelFactory implements ModelFactory {
private List<ConfigChangeAction> validateModel(VespaModel model, DeployState deployState, boolean ignoreValidationErrors) {
try {
- deployState.getApplicationPackage().validateXML(deployState.getDeployLogger());
+ deployState.getApplicationPackage().validateXML();
return Validation.validate(model, ignoreValidationErrors, deployState);
} catch (IllegalArgumentException e) {
rethrowUnlessIgnoreErrors(e, ignoreValidationErrors);
diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala
index 8157170e6d1..3f31dcd67ca 100644
--- a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala
+++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala
@@ -2,7 +2,7 @@
package com.yahoo.container.standalone
import com.google.inject.{Key, AbstractModule, Injector, Inject}
-import com.yahoo.config.application.api.{DeployLogger, RuleConfigDeriver, FileRegistry, ApplicationPackage}
+import com.yahoo.config.application.api.{RuleConfigDeriver, FileRegistry, ApplicationPackage}
import com.yahoo.config.provision.Zone
import com.yahoo.jdisc.application.Application
import com.yahoo.container.jdisc.ConfiguredApplication
@@ -134,9 +134,9 @@ object StandaloneContainerApplication {
tmpDir.toFile
}
- private def validateApplication(applicationPackage: ApplicationPackage, logger: DeployLogger) = {
+ private def validateApplication(applicationPackage: ApplicationPackage) = {
try {
- applicationPackage.validateXML(logger)
+ applicationPackage.validateXML()
} catch {
case e: IOException => throw new IllegalArgumentException(e)
}
@@ -171,7 +171,7 @@ object StandaloneContainerApplication {
val applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone(), new RuleConfigDeriver {
override def derive(ruleBaseDir: String, outputDir: String): Unit = {}
}, logger)
- validateApplication(applicationPackage, logger)
+ validateApplication(applicationPackage)
val deployState = new DeployState.Builder().
applicationPackage(applicationPackage).
fileRegistry(fileRegistry).