From b5286c811ada6d1aacce5498b7e9fbdff6d33576 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Fri, 24 Sep 2021 11:02:39 +0200 Subject: Revert "Revert "Install common bundles via config model [run-systemtest]" MERGEOK" --- .../ClusterControllerContainer.java | 2 +- .../metricsproxy/MetricsProxyContainerCluster.java | 2 +- .../container/ApplicationContainerCluster.java | 1 - .../vespa/model/container/ContainerCluster.java | 9 ++ .../model/container/ContainerModelEvaluation.java | 1 - .../vespa/model/container/PlatformBundles.java | 133 +++++++++++++++++++++ .../model/container/search/ContainerSearch.java | 3 +- .../container/search/DispatcherComponent.java | 2 +- .../container/search/RpcResourcePoolComponent.java | 2 +- .../BundleInstantiationSpecificationBuilder.java | 1 + .../model/container/xml/ContainerModelBuilder.java | 1 + .../vespa/model/container/xml/PlatformBundles.java | 119 ------------------ 12 files changed, 149 insertions(+), 127 deletions(-) create mode 100644 config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java delete mode 100644 config-model/src/main/java/com/yahoo/vespa/model/container/xml/PlatformBundles.java (limited to 'config-model/src/main/java/com/yahoo') diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java index ed1dc80d71d..af88d9c008a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java @@ -23,7 +23,7 @@ import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SimpleComponent; import com.yahoo.vespa.model.container.component.SystemBindingPattern; import com.yahoo.vespa.model.container.xml.ContainerModelBuilder; -import com.yahoo.vespa.model.container.xml.PlatformBundles; +import com.yahoo.vespa.model.container.PlatformBundles; import java.util.Set; import java.util.TreeSet; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index 0b2d0936235..14ead1cdece 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -38,7 +38,7 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; -import com.yahoo.vespa.model.container.xml.PlatformBundles; +import com.yahoo.vespa.model.container.PlatformBundles; import java.nio.file.Path; import java.util.Collections; 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 1dd7b35cda5..5574082e334 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 @@ -34,7 +34,6 @@ 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.container.xml.PlatformBundles; import com.yahoo.vespa.model.utils.FileSender; import java.util.ArrayList; 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 532ac78f17e..f5b168958c0 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 @@ -171,6 +171,8 @@ public abstract class ContainerCluster componentGroup = new ComponentGroup<>(this, "component"); + addCommonVespaBundles(); + addComponent(new StatisticsComponent()); addSimpleComponent(AccessLog.class); addComponent(new DefaultThreadpoolProvider(this, deployState.featureFlags().metricsproxyNumThreads())); @@ -458,6 +460,13 @@ public abstract class ContainerCluster } } + /** + * Adds the Vespa bundles that are necessary for all container types. + */ + public void addCommonVespaBundles() { + PlatformBundles.commonVespaBundles().forEach(this::addPlatformBundle); + } + /** * Adds a bundle present at a known location at the target container nodes. * Note that the set of platform bundles cannot change during the jdisc container's lifetime. diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java index 65247f29281..25cb684932b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java @@ -10,7 +10,6 @@ import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.config.search.core.RankingExpressionsConfig; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; -import com.yahoo.vespa.model.container.xml.PlatformBundles; import java.nio.file.Path; import java.util.List; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java b/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java new file mode 100644 index 00000000000..24412027e63 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java @@ -0,0 +1,133 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.container; + +import com.yahoo.vespa.defaults.Defaults; + +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * @author gjoranv + * @author Ulf Lilleengen + */ +public class PlatformBundles { + + private enum JarSuffix { + JAR_WITH_DEPS("-jar-with-dependencies.jar"), + DEPLOY("-deploy.jar"); + + public final String suffix; + + JarSuffix(String suffix) { + this.suffix = suffix; + } + } + + public static final Path LIBRARY_PATH = Paths.get(Defaults.getDefaults().underVespaHome("lib/jars")); + public static final String searchAndDocprocBundle = "container-search-and-docproc"; + + public static Set commonVespaBundles() { + var bundles = new LinkedHashSet(); + commonVespaBundles.stream().map(PlatformBundles::absoluteBundlePath).forEach(bundles::add); + return Collections.unmodifiableSet(bundles); + } + + public static Path absoluteBundlePath(String fileName) { + return absoluteBundlePath(fileName, JarSuffix.JAR_WITH_DEPS); + } + + public static Path absoluteBundlePath(String fileName, JarSuffix jarSuffix) { + if (fileName == null) return null; + return LIBRARY_PATH.resolve(Paths.get(fileName + jarSuffix.suffix)); + } + + public static boolean isSearchAndDocprocClass(String className) { + return searchAndDocprocComponents.contains(className); + } + + // Bundles that must be loaded for all container types. + private static final Set commonVespaBundles = Set.of( + "zkfacade", + "zookeeper-server" // TODO: not necessary in metrics-proxy. + ); + + // This is a hack to allow users to declare components from the search-and-docproc bundle without naming the bundle. + private static final Set searchAndDocprocComponents = Set.of( + "com.yahoo.docproc.AbstractConcreteDocumentFactory", + "com.yahoo.docproc.DocumentProcessor", + "com.yahoo.docproc.SimpleDocumentProcessor", + "com.yahoo.docproc.util.JoinerDocumentProcessor", + "com.yahoo.docproc.util.SplitterDocumentProcessor", + "com.yahoo.example.TimingSearcher", + "com.yahoo.language.simple.SimpleLinguistics", + "com.yahoo.prelude.cluster.ClusterSearcher", + "com.yahoo.prelude.fastsearch.FastSearcher", + "com.yahoo.prelude.fastsearch.VespaBackEndSearcher", + "com.yahoo.prelude.querytransform.CJKSearcher", + "com.yahoo.prelude.querytransform.CollapsePhraseSearcher", + "com.yahoo.prelude.querytransform.LiteralBoostSearcher", + "com.yahoo.prelude.querytransform.NoRankingSearcher", + "com.yahoo.prelude.querytransform.NonPhrasingSearcher", + "com.yahoo.prelude.querytransform.NormalizingSearcher", + "com.yahoo.prelude.querytransform.PhrasingSearcher", + "com.yahoo.prelude.querytransform.RecallSearcher", + "com.yahoo.prelude.querytransform.StemmingSearcher", + "com.yahoo.prelude.searcher.BlendingSearcher", + "com.yahoo.prelude.searcher.FieldCollapsingSearcher", + "com.yahoo.prelude.searcher.FillSearcher", + "com.yahoo.prelude.searcher.JSONDebugSearcher", + "com.yahoo.prelude.searcher.JuniperSearcher", + "com.yahoo.prelude.searcher.MultipleResultsSearcher", + "com.yahoo.prelude.searcher.PosSearcher", + "com.yahoo.prelude.searcher.QuotingSearcher", + "com.yahoo.prelude.searcher.ValidateSortingSearcher", + "com.yahoo.prelude.semantics.SemanticSearcher", + "com.yahoo.prelude.statistics.StatisticsSearcher", + "com.yahoo.prelude.templates.SearchRendererAdaptor", + "com.yahoo.search.Searcher", + "com.yahoo.search.cluster.ClusterSearcher", + "com.yahoo.search.cluster.PingableSearcher", + "com.yahoo.search.federation.FederationSearcher", + "com.yahoo.search.federation.ForwardingSearcher", + "com.yahoo.search.federation.http.ConfiguredHTTPClientSearcher", + "com.yahoo.search.federation.http.ConfiguredHTTPProviderSearcher", + "com.yahoo.search.federation.http.HTTPClientSearcher", + "com.yahoo.search.federation.http.HTTPProviderSearcher", + "com.yahoo.search.federation.http.HTTPSearcher", + "com.yahoo.search.federation.news.NewsSearcher", + "com.yahoo.search.federation.vespa.VespaSearcher", + "com.yahoo.search.grouping.GroupingQueryParser", + "com.yahoo.search.grouping.GroupingValidator", + "com.yahoo.search.grouping.vespa.GroupingExecutor", + "com.yahoo.search.handler.SearchWithRendererHandler", + "com.yahoo.search.pagetemplates.PageTemplate", + "com.yahoo.search.pagetemplates.PageTemplateSearcher", + "com.yahoo.search.pagetemplates.engine.Resolver", + "com.yahoo.search.pagetemplates.engine.resolvers.DeterministicResolver", + "com.yahoo.search.pagetemplates.engine.resolvers.RandomResolver", + "com.yahoo.search.pagetemplates.model.Renderer", + "com.yahoo.search.query.rewrite.QueryRewriteSearcher", + "com.yahoo.search.query.rewrite.SearchChainDispatcherSearcher", + "com.yahoo.search.query.rewrite.rewriters.GenericExpansionRewriter", + "com.yahoo.search.query.rewrite.rewriters.MisspellRewriter", + "com.yahoo.search.query.rewrite.rewriters.NameRewriter", + "com.yahoo.search.querytransform.AllLowercasingSearcher", + "com.yahoo.search.querytransform.DefaultPositionSearcher", + "com.yahoo.search.querytransform.LowercasingSearcher", + "com.yahoo.search.querytransform.NGramSearcher", + "com.yahoo.search.querytransform.VespaLowercasingSearcher", + "com.yahoo.search.rendering.Renderer", + "com.yahoo.search.rendering.SectionedRenderer", + "com.yahoo.search.searchchain.ForkingSearcher", + "com.yahoo.search.searchchain.example.ExampleSearcher", + "com.yahoo.search.searchers.CacheControlSearcher", + "com.yahoo.search.statistics.PeakQpsSearcher", + "com.yahoo.search.statistics.TimingSearcher", + "com.yahoo.vespa.streamingvisitors.MetricsSearcher", + "com.yahoo.vespa.streamingvisitors.VdsStreamingSearcher" + ); + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java index ef2eaeb4654..fec8dd76102 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.configdefinition.IlscriptsConfig; import com.yahoo.vespa.model.container.ApplicationContainerCluster; import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.container.component.ContainerSubsystem; -import com.yahoo.vespa.model.container.search.searchchain.LocalProvider; import com.yahoo.vespa.model.container.search.searchchain.SearchChains; import com.yahoo.vespa.model.search.AbstractSearchCluster; import com.yahoo.vespa.model.search.IndexedSearchCluster; @@ -23,7 +22,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import static com.yahoo.vespa.model.container.xml.PlatformBundles.searchAndDocprocBundle; +import static com.yahoo.vespa.model.container.PlatformBundles.searchAndDocprocBundle; /** * @author gjoranv diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/DispatcherComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/DispatcherComponent.java index 232e8fcbd1a..832aede858e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/DispatcherComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/DispatcherComponent.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.config.search.DispatchConfig; import com.yahoo.vespa.model.container.component.Component; -import com.yahoo.vespa.model.container.xml.PlatformBundles; +import com.yahoo.vespa.model.container.PlatformBundles; import com.yahoo.vespa.model.search.IndexedSearchCluster; /** diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/RpcResourcePoolComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/RpcResourcePoolComponent.java index 248b30eafa7..8c45e5b013f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/RpcResourcePoolComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/RpcResourcePoolComponent.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.model.container.search; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.component.Component; -import com.yahoo.vespa.model.container.xml.PlatformBundles; +import com.yahoo.vespa.model.container.PlatformBundles; public class RpcResourcePoolComponent extends Component { 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 12d74418f9f..ea0ad371e28 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 @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.container.xml; 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 org.w3c.dom.Element; import java.util.Arrays; 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 4b45979c698..c318180fd56 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 @@ -59,6 +59,7 @@ import com.yahoo.vespa.model.container.ContainerModel; import com.yahoo.vespa.model.container.ContainerModelEvaluation; import com.yahoo.vespa.model.container.ContainerThreadpool; import com.yahoo.vespa.model.container.IdentityProvider; +import com.yahoo.vespa.model.container.PlatformBundles; import com.yahoo.vespa.model.container.SecretStore; import com.yahoo.vespa.model.container.component.AccessLogComponent; import com.yahoo.vespa.model.container.component.BindingPattern; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/PlatformBundles.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/PlatformBundles.java deleted file mode 100644 index dc2437c1834..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/PlatformBundles.java +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.container.xml; - -import com.yahoo.vespa.defaults.Defaults; - -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Set; - -/** - * @author gjoranv - * @author Ulf Lilleengen - */ -public class PlatformBundles { - - private enum JarSuffix { - JAR_WITH_DEPS("-jar-with-dependencies.jar"), - DEPLOY("-deploy.jar"); - - public final String suffix; - - JarSuffix(String suffix) { - this.suffix = suffix; - } - } - - public static final Path LIBRARY_PATH = Paths.get(Defaults.getDefaults().underVespaHome("lib/jars")); - public static final String searchAndDocprocBundle = "container-search-and-docproc"; - - private static final Set searchAndDocprocComponents; - - public static boolean isSearchAndDocprocClass(String className) { - return searchAndDocprocComponents.contains(className); - } - - public static Path absoluteBundlePath(String fileName) { - if (fileName == null) return null; - return LIBRARY_PATH.resolve(Paths.get(fileName + JarSuffix.JAR_WITH_DEPS.suffix)); - } - - // This is a hack to allow users to declare components from the search-and-docproc bundle without naming the bundle. - static { - searchAndDocprocComponents = Set.of( - "com.yahoo.docproc.AbstractConcreteDocumentFactory", - "com.yahoo.docproc.DocumentProcessor", - "com.yahoo.docproc.SimpleDocumentProcessor", - "com.yahoo.docproc.util.JoinerDocumentProcessor", - "com.yahoo.docproc.util.SplitterDocumentProcessor", - "com.yahoo.example.TimingSearcher", - "com.yahoo.language.simple.SimpleLinguistics", - "com.yahoo.prelude.cluster.ClusterSearcher", - "com.yahoo.prelude.fastsearch.FastSearcher", - "com.yahoo.prelude.fastsearch.VespaBackEndSearcher", - "com.yahoo.prelude.querytransform.CJKSearcher", - "com.yahoo.prelude.querytransform.CollapsePhraseSearcher", - "com.yahoo.prelude.querytransform.LiteralBoostSearcher", - "com.yahoo.prelude.querytransform.NoRankingSearcher", - "com.yahoo.prelude.querytransform.NonPhrasingSearcher", - "com.yahoo.prelude.querytransform.NormalizingSearcher", - "com.yahoo.prelude.querytransform.PhrasingSearcher", - "com.yahoo.prelude.querytransform.RecallSearcher", - "com.yahoo.prelude.querytransform.StemmingSearcher", - "com.yahoo.prelude.searcher.BlendingSearcher", - "com.yahoo.prelude.searcher.FieldCollapsingSearcher", - "com.yahoo.prelude.searcher.FillSearcher", - "com.yahoo.prelude.searcher.JSONDebugSearcher", - "com.yahoo.prelude.searcher.JuniperSearcher", - "com.yahoo.prelude.searcher.MultipleResultsSearcher", - "com.yahoo.prelude.searcher.PosSearcher", - "com.yahoo.prelude.searcher.QuotingSearcher", - "com.yahoo.prelude.searcher.ValidateSortingSearcher", - "com.yahoo.prelude.semantics.SemanticSearcher", - "com.yahoo.prelude.statistics.StatisticsSearcher", - "com.yahoo.prelude.templates.SearchRendererAdaptor", - "com.yahoo.search.Searcher", - "com.yahoo.search.cluster.ClusterSearcher", - "com.yahoo.search.cluster.PingableSearcher", - "com.yahoo.search.federation.FederationSearcher", - "com.yahoo.search.federation.ForwardingSearcher", - "com.yahoo.search.federation.http.ConfiguredHTTPClientSearcher", - "com.yahoo.search.federation.http.ConfiguredHTTPProviderSearcher", - "com.yahoo.search.federation.http.HTTPClientSearcher", - "com.yahoo.search.federation.http.HTTPProviderSearcher", - "com.yahoo.search.federation.http.HTTPSearcher", - "com.yahoo.search.federation.news.NewsSearcher", - "com.yahoo.search.federation.vespa.VespaSearcher", - "com.yahoo.search.grouping.GroupingQueryParser", - "com.yahoo.search.grouping.GroupingValidator", - "com.yahoo.search.grouping.vespa.GroupingExecutor", - "com.yahoo.search.handler.SearchWithRendererHandler", - "com.yahoo.search.pagetemplates.PageTemplate", - "com.yahoo.search.pagetemplates.PageTemplateSearcher", - "com.yahoo.search.pagetemplates.engine.Resolver", - "com.yahoo.search.pagetemplates.engine.resolvers.DeterministicResolver", - "com.yahoo.search.pagetemplates.engine.resolvers.RandomResolver", - "com.yahoo.search.pagetemplates.model.Renderer", - "com.yahoo.search.query.rewrite.QueryRewriteSearcher", - "com.yahoo.search.query.rewrite.SearchChainDispatcherSearcher", - "com.yahoo.search.query.rewrite.rewriters.GenericExpansionRewriter", - "com.yahoo.search.query.rewrite.rewriters.MisspellRewriter", - "com.yahoo.search.query.rewrite.rewriters.NameRewriter", - "com.yahoo.search.querytransform.AllLowercasingSearcher", - "com.yahoo.search.querytransform.DefaultPositionSearcher", - "com.yahoo.search.querytransform.LowercasingSearcher", - "com.yahoo.search.querytransform.NGramSearcher", - "com.yahoo.search.querytransform.VespaLowercasingSearcher", - "com.yahoo.search.rendering.Renderer", - "com.yahoo.search.rendering.SectionedRenderer", - "com.yahoo.search.searchchain.ForkingSearcher", - "com.yahoo.search.searchchain.example.ExampleSearcher", - "com.yahoo.search.searchers.CacheControlSearcher", - "com.yahoo.search.statistics.PeakQpsSearcher", - "com.yahoo.search.statistics.TimingSearcher", - "com.yahoo.vespa.streamingvisitors.MetricsSearcher", - "com.yahoo.vespa.streamingvisitors.VdsStreamingSearcher" - ); - } - -} -- cgit v1.2.3