diff options
5 files changed, 27 insertions, 13 deletions
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 97322fc1c55..5367bdcf13f 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 @@ -659,6 +659,11 @@ public class FilesApplicationPackage implements ApplicationPackage { @Override public ApplicationPackage preprocess(Zone zone, RuleConfigDeriver ignored, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { + return preprocess(zone, logger); + } + + @Override + public ApplicationPackage preprocess(Zone zone, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { IOUtils.recursiveDeleteDir(preprocessedDir); IOUtils.copyDirectory(appDir, preprocessedDir, -1, (dir, name) -> ! name.equals(".preprocessed") && ! name.equals(SERVICES) && diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java index 89a5769ff0c..5a052851458 100644 --- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java @@ -76,7 +76,7 @@ public class FilesApplicationPackageTest { } @Test - public void testDeploymentXmlNotAvailable() throws IOException, TransformerException, ParserConfigurationException, SAXException { + public void testDeploymentXmlNotAvailable() { File appDir = new File("src/test/resources/multienvapp"); assertFalse(new File(appDir, "deployment.xml").exists()); FilesApplicationPackage app = FilesApplicationPackage.fromFile(appDir); @@ -84,7 +84,7 @@ public class FilesApplicationPackageTest { } @Test - public void testDeploymentXml() throws IOException, TransformerException, ParserConfigurationException, SAXException { + public void testDeploymentXml() { File appDir = new File("src/test/resources/app-with-deployment"); final File deployment = new File(appDir, "deployment.xml"); assertTrue(deployment.exists()); 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 aca7b595249..acb537debe7 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 @@ -271,9 +271,25 @@ public interface ApplicationPackage { * * @return A new application package instance pointing to a new location */ + // TODO: Remove when last version in use is 6.170 default ApplicationPackage preprocess(Zone zone, RuleConfigDeriver ruleConfigDeriver, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { throw new UnsupportedOperationException("This application package does not support preprocessing"); } + /** + * Preprocess an application for a given zone and return a new application package pointing to the preprocessed + * application package. This is the entry point for the multi environment application package support. This method + * will not mutate the existing application package. + * + * @param zone A valid {@link Zone} instance, used to decide which parts of services to keep and remove + * @param logger A {@link DeployLogger} to add output that will be returned to the user + * + * @return A new application package instance pointing to a new location + */ + default ApplicationPackage preprocess(Zone zone, DeployLogger logger) + throws IOException, TransformerException, ParserConfigurationException, SAXException { + throw new UnsupportedOperationException("This application package does not support preprocessing"); + } + } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java index 17d1841cf0c..372e196b3d8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java @@ -4,18 +4,14 @@ package com.yahoo.vespa.model.container.search; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.io.IOUtils; import com.yahoo.io.reader.NamedReader; -import com.yahoo.prelude.semantics.RuleBase; -import com.yahoo.prelude.semantics.RuleImporter; -import com.yahoo.prelude.semantics.parser.ParseException; -import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; /** - * Reads the semantic rules from the application package by delegating to RuleConfigDeriver. + * Reads the semantic rules from the application package by delegating to SemanticRules. * * @author bratseth */ 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 1d4b83ce7d3..1f3ff652224 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 @@ -8,7 +8,7 @@ import java.nio.file.{FileSystems, Files, Path, Paths} import com.google.inject.name.Names import com.google.inject.{AbstractModule, Inject, Injector, Key} import com.yahoo.collections.CollectionUtil.first -import com.yahoo.config.application.api.{ApplicationPackage, FileRegistry, RuleConfigDeriver} +import com.yahoo.config.application.api.{ApplicationPackage, FileRegistry} import com.yahoo.config.model.application.provider._ import com.yahoo.config.model.builder.xml.XmlHelper import com.yahoo.config.model.deploy.DeployState @@ -33,7 +33,7 @@ import scala.collection.JavaConverters._ import scala.util.Try /** - * @author tonytv + * @author Tony Vaagenes * @author gjoranv */ class StandaloneContainerApplication @Inject()(injector: Injector) extends Application { @@ -157,10 +157,7 @@ object StandaloneContainerApplication { configModelRepo: ConfigModelRepo = new ConfigModelRepo): (VespaModel, Container) = { val logger = new BaseDeployLogger val rawApplicationPackage = new FilesApplicationPackage.Builder(applicationPath.toFile).includeSourceFiles(true).preprocessedDir(preprocessedApplicationDir).build() - // TODO: Needed until we get rid of semantic rules - val applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone(), new RuleConfigDeriver { - override def derive(ruleBaseDir: String, outputDir: String): Unit = {} - }, logger) + val applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone(), logger) validateApplication(applicationPackage) val deployState = new DeployState.Builder(). applicationPackage(applicationPackage). |