diff options
author | gjoranv <gv@verizonmedia.com> | 2021-12-01 12:47:34 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2021-12-02 10:24:17 +0100 |
commit | 5f5b2c2592f5b3f65b4678feb11d796d29bbf2bf (patch) | |
tree | fb059f4e7058afc953a051eabb2890aef62bf99d /config-model | |
parent | 89e48adac8d32bf72d8618c52d469b239f569ece (diff) |
Remove support for 'servlet' from config-model.
- Keep it in rnc schema for at least one release.
Diffstat (limited to 'config-model')
8 files changed, 5 insertions, 189 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/AwsAccessControlValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/AwsAccessControlValidator.java index e5c8a27debf..a07e07169d1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/AwsAccessControlValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/AwsAccessControlValidator.java @@ -31,7 +31,7 @@ public class AwsAccessControlValidator extends Validator { || ! http.getAccessControl().get().writeEnabled || ! http.getAccessControl().get().readEnabled) - if (hasHandlerThatNeedsProtection(cluster) || ! cluster.getAllServlets().isEmpty()) + if (hasHandlerThatNeedsProtection(cluster)) offendingClusters.add(cluster.getName()); } if (! offendingClusters.isEmpty()) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/first/AccessControlOnFirstDeploymentValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/first/AccessControlOnFirstDeploymentValidator.java index a64f93a046a..dd6e6ad590d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/first/AccessControlOnFirstDeploymentValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/first/AccessControlOnFirstDeploymentValidator.java @@ -38,7 +38,7 @@ public class AccessControlOnFirstDeploymentValidator extends Validator { || ! cluster.getHttp().getAccessControl().isPresent() || ! cluster.getHttp().getAccessControl().get().writeEnabled) - if (hasHandlerThatNeedsProtection(cluster) || ! cluster.getAllServlets().isEmpty()) + if (hasHandlerThatNeedsProtection(cluster)) offendingClusters.add(cluster.getName()); } if (! offendingClusters.isEmpty()) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/ServletBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/ServletBuilder.java deleted file mode 100644 index fc3002ab3e3..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/ServletBuilder.java +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.builder.xml.dom; - -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.osgi.provider.model.ComponentModel; -import com.yahoo.text.XML; -import com.yahoo.vespa.model.container.component.Servlet; -import com.yahoo.vespa.model.container.component.ServletProvider; -import com.yahoo.vespa.model.container.component.SimpleComponent; -import com.yahoo.vespa.model.container.xml.BundleInstantiationSpecificationBuilder; -import org.w3c.dom.Element; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author stiankri - * @since 5.32 - */ -public class ServletBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Servlet> { - @Override - protected ServletProvider doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element servletElement) { - SimpleComponent servlet = createServletComponent(servletElement); - ServletProvider servletProvider = createServletProvider(servletElement, servlet); - - return servletProvider; - } - - private SimpleComponent createServletComponent(Element servletElement) { - ComponentModel componentModel = new ComponentModel(BundleInstantiationSpecificationBuilder.build(servletElement)); - return new SimpleComponent(componentModel); - } - - private ServletProvider createServletProvider(Element servletElement, SimpleComponent servlet) { - Map<String, String> servletConfig = getServletConfig(servletElement); - return new ServletProvider(servlet, getPath(servletElement), servletConfig); - } - - private String getPath(Element servletElement) { - Element pathElement = XML.getChild(servletElement, "path"); - return XML.getValue(pathElement); - } - - private Map<String, String> getServletConfig(Element servletElement) { - Map<String, String> servletConfig = new HashMap<>(); - - Element servletConfigElement = XML.getChild(servletElement, "servlet-config"); - XML.getChildren(servletConfigElement).forEach( parameter -> - servletConfig.put(parameter.getTagName(), XML.getValue(parameter)) - ); - - return servletConfig; - } -} - 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 df617bf3eed..e8be43fdc96 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 @@ -23,7 +23,6 @@ import com.yahoo.container.handler.metrics.MetricsV2Handler; import com.yahoo.container.handler.metrics.PrometheusV1Handler; import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.container.jdisc.messagebus.MbusServerProvider; -import com.yahoo.jdisc.http.ServletPathsConfig; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.config.search.RankProfilesConfig; @@ -34,9 +33,7 @@ import com.yahoo.vespa.model.AbstractService; import com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainer; import com.yahoo.vespa.model.container.component.BindingPattern; import com.yahoo.vespa.model.container.component.Component; -import com.yahoo.vespa.model.container.component.ConfigProducerGroup; import com.yahoo.vespa.model.container.component.Handler; -import com.yahoo.vespa.model.container.component.Servlet; import com.yahoo.vespa.model.container.component.SystemBindingPattern; import com.yahoo.vespa.model.container.configserver.ConfigserverCluster; import com.yahoo.vespa.model.utils.FileSender; @@ -45,11 +42,9 @@ import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.Stream; import static com.yahoo.config.model.api.ApplicationClusterEndpoint.RoutingMethod.shared; import static com.yahoo.config.model.api.ApplicationClusterEndpoint.RoutingMethod.sharedLayer4; @@ -66,7 +61,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat RankingConstantsConfig.Producer, OnnxModelsConfig.Producer, RankingExpressionsConfig.Producer, - ServletPathsConfig.Producer, ContainerMbusConfig.Producer, MetricsProxyApiConfig.Producer, ZookeeperServerConfig.Producer, @@ -86,7 +80,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat private final Set<FileReference> applicationBundles = new LinkedHashSet<>(); - private final ConfigProducerGroup<Servlet> servletGroup; private final Set<String> previousHosts; private ContainerModelEvaluation modelEvaluation; @@ -103,7 +96,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat public ApplicationContainerCluster(AbstractConfigProducer<?> parent, String configSubId, String clusterId, DeployState deployState) { super(parent, configSubId, clusterId, deployState, true); this.tlsClientAuthority = deployState.tlsClientAuthority(); - servletGroup = new ConfigProducerGroup<>(this, "servlet"); previousHosts = deployState.getPreviousModel().stream() .map(Model::allocatedHosts) .map(AllocatedHosts::getHosts) @@ -172,22 +164,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat this.modelEvaluation = modelEvaluation; } - public Map<ComponentId, Servlet> getServletMap() { - return servletGroup.getComponentMap(); - } - - public void addServlet(Servlet servlet) { - servletGroup.addComponent(servlet.getGlobalComponentId(), servlet); - } - - public Collection<Servlet> getAllServlets() { - return allServlets().collect(Collectors.toCollection(ArrayList::new)); - } - - private Stream<Servlet> allServlets() { - return servletGroup.getComponents().stream(); - } - public void setMemoryPercentage(Integer memoryPercentage) { this.memoryPercentage = memoryPercentage; } @@ -266,14 +242,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat } @Override - public void getConfig(ServletPathsConfig.Builder builder) { - allServlets().forEach(servlet -> - builder.servlets(servlet.getComponentId().stringValue(), - servlet.toConfigBuilder()) - ); - } - - @Override public void getConfig(RankProfilesConfig.Builder builder) { if (modelEvaluation != null) modelEvaluation.getConfig(builder); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/Servlet.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/Servlet.java deleted file mode 100644 index 667b0759f86..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/Servlet.java +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.container.component; - -import com.yahoo.jdisc.http.ServletPathsConfig; -import com.yahoo.osgi.provider.model.ComponentModel; - -/** - * @author stiankri - */ -public class Servlet extends SimpleComponent { - public final String bindingPath; - - public Servlet(ComponentModel componentModel, String bindingPath) { - super(componentModel); - this.bindingPath = bindingPath; - } - - public ServletPathsConfig.Servlets.Builder toConfigBuilder() { - return new ServletPathsConfig.Servlets.Builder() - .path(bindingPath); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ServletProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ServletProvider.java deleted file mode 100644 index 8c0ec0e8a6f..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ServletProvider.java +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.container.component; - -import com.yahoo.component.ComponentId; -import com.yahoo.component.ComponentSpecification; -import com.yahoo.container.bundle.BundleInstantiationSpecification; -import com.yahoo.container.servlet.ServletConfigConfig; -import com.yahoo.osgi.provider.model.ComponentModel; - -import java.util.Map; - -/** - * @author stiankri - */ -public class ServletProvider extends Servlet implements ServletConfigConfig.Producer { - public static final String BUNDLE = "container-core"; - public static final String CLASS = "com.yahoo.container.servlet.ServletProvider"; - - private static final ComponentId SERVLET_PROVIDER_NAMESPACE = ComponentId.fromString("servlet-provider"); - private final Map<String, String> servletConfig; - - public ServletProvider(SimpleComponent servletToProvide, String bindingPath, Map<String, String> servletConfig) { - super(new ComponentModel( - new BundleInstantiationSpecification(servletToProvide.getComponentId().nestInNamespace(SERVLET_PROVIDER_NAMESPACE), - ComponentSpecification.fromString(CLASS), - ComponentSpecification.fromString(BUNDLE))), - bindingPath); - - inject(servletToProvide); - addChild(servletToProvide); - this.servletConfig = servletConfig; - } - - @Override - public void getConfig(ServletConfigConfig.Builder builder) { - builder.map(servletConfig); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index 319f334ffc2..d1091829cc5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -47,7 +47,6 @@ import com.yahoo.vespa.model.builder.xml.dom.DomComponentBuilder; import com.yahoo.vespa.model.builder.xml.dom.DomHandlerBuilder; import com.yahoo.vespa.model.builder.xml.dom.ModelElement; import com.yahoo.vespa.model.builder.xml.dom.NodesSpecification; -import com.yahoo.vespa.model.builder.xml.dom.ServletBuilder; import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; import com.yahoo.vespa.model.builder.xml.dom.chains.docproc.DomDocprocChainsBuilder; import com.yahoo.vespa.model.builder.xml.dom.chains.processing.DomProcessingBuilder; @@ -523,9 +522,10 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { return http; } + // TODO Vespa 8: Remove private void addServlets(DeployState deployState, Element spec, ApplicationContainerCluster cluster) { - for (Element servletElem : XML.getChildren(spec, "servlet")) - cluster.addServlet(new ServletBuilder().build(deployState, cluster, servletElem)); + if (XML.getChildren(spec, "servlet").size() > 0) + throw new IllegalArgumentException("The 'servlet' tag is no longer supported in services.xml. Please use a handler instead."); } private void addDocumentApi(Element spec, ApplicationContainerCluster cluster) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java index 5516c74f9a6..f02e99c5820 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java @@ -34,10 +34,8 @@ import com.yahoo.container.handler.metrics.MetricsV2Handler; import com.yahoo.container.handler.observability.ApplicationStatusHandler; import com.yahoo.container.jdisc.JdiscBindingsConfig; import com.yahoo.container.jdisc.secretstore.SecretStoreConfig; -import com.yahoo.container.servlet.ServletConfigConfig; import com.yahoo.container.usability.BindingsOverviewHandler; import com.yahoo.jdisc.http.ConnectorConfig; -import com.yahoo.jdisc.http.ServletPathsConfig; import com.yahoo.net.HostName; import com.yahoo.path.Path; import com.yahoo.prelude.cluster.QrMonitorConfig; @@ -321,40 +319,6 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { } @Test - public void servlets_are_included_in_ServletPathConfig() { - createClusterWithServlet(); - ServletPathsConfig servletPathsConfig = root.getConfig(ServletPathsConfig.class, "default"); - assertThat(servletPathsConfig.servlets().values().iterator().next().path(), is("p/a/t/h")); - } - - @Test - public void servletconfig_is_produced() { - createClusterWithServlet(); - - String configId = getContainerCluster("default").getServletMap(). - values().iterator().next().getConfigId(); - - ServletConfigConfig servletConfig = root.getConfig(ServletConfigConfig.class, configId); - - assertThat(servletConfig.map().get("myKey"), is("myValue")); - } - - private void createClusterWithServlet() { - Element clusterElem = DomBuilderTest.parse( - "<container id='default' version='1.0'>", - " <servlet id='myServlet' class='myClass' bundle='myBundle'>", - " <path>p/a/t/h</path>", - " <servlet-config>", - " <myKey>myValue</myKey>", - " </servlet-config>", - " </servlet>", - "</container>"); - - createModel(root, clusterElem); - } - - - @Test public void processing_handler_bindings_can_be_overridden() { Element clusterElem = DomBuilderTest.parse( "<container id='default' version='1.0'>", |