diff options
author | gjoranv <gv@verizonmedia.com> | 2022-07-11 22:56:51 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-07-11 22:58:49 +0200 |
commit | 5dcdfe0f07f5a953e05ade1181c13835fd293dab (patch) | |
tree | a64bc59f9145253267361b8c915bf79a1f539192 | |
parent | e65c9d4cc7d4950f309b50b8d5443e97188d6321 (diff) |
Add test for ProcessingHandler bundle.
+ Constant for class name.
4 files changed, 20 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 2385b5b3812..d24651e9a46 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -73,6 +73,8 @@ import java.util.TreeSet; import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.yahoo.vespa.model.container.component.chain.ProcessingHandler.PROCESSING_HANDLER_CLASS; + /** * Parent class for all container cluster types. * @@ -308,8 +310,8 @@ public abstract class ContainerCluster<CONTAINER extends Container> // Cannot use the class object for ProcessingHandler, because its superclass is not accessible ProcessingHandler<?> processingHandler = new ProcessingHandler<>( processingChains, - "com.yahoo.processing.handler.ProcessingHandler", - null); + PROCESSING_HANDLER_CLASS, + null); for (BindingPattern binding: serverBindings) processingHandler.addServerBindings(binding); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/ProcessingHandler.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/ProcessingHandler.java index 3f68a0a2709..4754bf4c842 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/ProcessingHandler.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/ProcessingHandler.java @@ -17,6 +17,8 @@ public class ProcessingHandler<CHAINS extends Chains<?>> extends Handler<AbstractConfigProducer<?>> implements ChainsConfig.Producer { + public static final String PROCESSING_HANDLER_CLASS = "com.yahoo.processing.handler.ProcessingHandler"; + protected final CHAINS chains; public ProcessingHandler(CHAINS chains, String handlerClass) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleInstantiationSpecificationBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleInstantiationSpecificationBuilder.java index fbdefd0afb0..41f0c0792b0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleInstantiationSpecificationBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleInstantiationSpecificationBuilder.java @@ -5,11 +5,14 @@ import com.yahoo.config.model.builder.xml.XmlHelper; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.component.ComponentSpecification; import com.yahoo.vespa.model.container.PlatformBundles; +import com.yahoo.vespa.model.container.component.chain.ProcessingHandler; import org.w3c.dom.Element; import java.util.Arrays; import java.util.List; +import static com.yahoo.vespa.model.container.component.chain.ProcessingHandler.PROCESSING_HANDLER_CLASS; + /** * This object builds a bundle instantiation spec from an XML element. * @@ -39,7 +42,7 @@ public class BundleInstantiationSpecificationBuilder { private static void validate(BundleInstantiationSpecification instSpec) { List<String> forbiddenClasses = Arrays.asList( SearchHandler.HANDLER_CLASS, - "com.yahoo.processing.handler.ProcessingHandler"); + PROCESSING_HANDLER_CLASS); for (String forbiddenClass: forbiddenClasses) { if (forbiddenClass.equals(instSpec.getClassName())) { 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 3a241d9607f..2c72e9c0b03 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 @@ -41,6 +41,7 @@ import com.yahoo.vespa.model.container.ApplicationContainer; import com.yahoo.vespa.model.container.ApplicationContainerCluster; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.ContainerModelEvaluation; +import com.yahoo.vespa.model.container.PlatformBundles; import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.content.utils.ContentClusterUtils; import com.yahoo.vespa.model.test.VespaModelTester; @@ -62,6 +63,7 @@ import static com.yahoo.test.LinePatternMatcher.containsLineWithPattern; import static com.yahoo.vespa.defaults.Defaults.getDefaults; import static com.yahoo.vespa.model.container.ContainerCluster.ROOT_HANDLER_BINDING; import static com.yahoo.vespa.model.container.ContainerCluster.STATE_HANDLER_BINDING_1; +import static com.yahoo.vespa.model.container.component.chain.ProcessingHandler.PROCESSING_HANDLER_CLASS; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; @@ -324,12 +326,19 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { @Test public void processingHandler_gets_only_processing_chains_in_chains_config() { createClusterWithProcessingAndSearchChains(); - String processingHandlerConfigId = "default/component/com.yahoo.processing.handler.ProcessingHandler"; + String processingHandlerConfigId = "default/component/" + PROCESSING_HANDLER_CLASS; String chainsConfig = getChainsConfig(processingHandlerConfigId); assertThat(chainsConfig, containsLineWithPattern(".*\\.id \"testProcessor@default\"$")); assertThat(chainsConfig, not(containsLineWithPattern(".*\\.id \"testSearcher@default\"$"))); } + @Test + public void processingHandler_is_instantiated_from_the_default_bundle() { + createClusterWithProcessingAndSearchChains(); + ComponentsConfig.Components config = getComponent(componentsConfig(), PROCESSING_HANDLER_CLASS); + assertEquals(PROCESSING_HANDLER_CLASS, config.bundle()); + } + private void createClusterWithProcessingAndSearchChains() { Element clusterElem = DomBuilderTest.parse( "<container id='default' version='1.0'>" + |