aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-12-01 12:47:34 +0100
committergjoranv <gv@verizonmedia.com>2021-12-02 10:24:17 +0100
commit5f5b2c2592f5b3f65b4678feb11d796d29bbf2bf (patch)
treefb059f4e7058afc953a051eabb2890aef62bf99d /config-model
parent89e48adac8d32bf72d8618c52d469b239f569ece (diff)
Remove support for 'servlet' from config-model.
- Keep it in rnc schema for at least one release.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/AwsAccessControlValidator.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/first/AccessControlOnFirstDeploymentValidator.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/ServletBuilder.java56
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java32
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/Servlet.java22
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/ServletProvider.java38
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java36
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'>",