diff options
author | Håkon Hallingstad <hakon@oath.com> | 2019-01-22 12:54:54 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2019-01-22 12:54:54 +0100 |
commit | 1db80c6ab30aafd0e8c3cc09091f9949e9488145 (patch) | |
tree | e4534ee6925175563beb5c294976f70755903d02 /config-model/src/main | |
parent | b1a1038d66df81646bed462295761d1aeed2c1e9 (diff) | |
parent | 8372a883c5a5fa100f88fc9b80824359b5bb70cd (diff) |
Merge branch 'master' into hakonhall/define-enable-logserver-flag
Diffstat (limited to 'config-model/src/main')
61 files changed, 233 insertions, 1436 deletions
diff --git a/config-model/src/main/.gitignore b/config-model/src/main/.gitignore new file mode 100644 index 00000000000..24600083db4 --- /dev/null +++ b/config-model/src/main/.gitignore @@ -0,0 +1 @@ +!Makefile diff --git a/config-model/src/main/Makefile b/config-model/src/main/Makefile index b1c37f4889f..f63f7dd832f 100644 --- a/config-model/src/main/Makefile +++ b/config-model/src/main/Makefile @@ -1,42 +1,46 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#all: services.xsd hosts.xsd + +srcdir=resources/schema +outputdir=../../target/generated-sources/trang/resources/schema trangjar=../../target/trang.jar -all: resources/schema/services.rng resources/schema/hosts.rng resources/schema/container-include.rng resources/schema/services.xsd resources/schema/hosts.xsd resources/schema/container-include.xsd resources/schema/deployment.xsd +all: ${outputdir} ${outputdir}/services.rng ${outputdir}/hosts.rng ${outputdir}/container-include.rng ${outputdir}/services.xsd ${outputdir}/hosts.xsd ${outputdir}/container-include.xsd ${outputdir}/deployment.xsd + +${outputdir}: + mkdir -p ${outputdir} -resources/schema/services.rng: resources/schema/services.rnc resources/schema/common.rnc resources/schema/admin.rnc resources/schema/clients.rnc resources/schema/docproc.rnc resources/schema/routing.rnc resources/schema/clients-v2.rnc resources/schema/content.rnc resources/schema/genericmodule.rnc resources/schema/legacygenericcluster.rnc resources/schema/genericcluster.rnc resources/schema/legacygenericmodule.rnc resources/schema/containercluster.rnc - java -jar $(trangjar) -I rnc -O rng resources/schema/services.rnc resources/schema/services.rng +${outputdir}/services.rng: ${srcdir}/services.rnc ${srcdir}/common.rnc ${srcdir}/admin.rnc ${srcdir}/clients.rnc ${srcdir}/docproc.rnc ${srcdir}/routing.rnc ${srcdir}/clients-v2.rnc ${srcdir}/content.rnc ${srcdir}/genericmodule.rnc ${srcdir}/legacygenericcluster.rnc ${srcdir}/genericcluster.rnc ${srcdir}/legacygenericmodule.rnc ${srcdir}/containercluster.rnc + java -jar $(trangjar) -I rnc -O rng ${srcdir}/services.rnc ${outputdir}/services.rng -resources/schema/services.xsd: resources/schema/services.rng - java -jar $(trangjar) -I rng -O xsd resources/schema/services.rng resources/schema/services.xsd +${outputdir}/services.xsd: ${outputdir}/services.rng + java -jar $(trangjar) -I rng -O xsd ${outputdir}/services.rng ${outputdir}/services.xsd -resources/schema/container-include.rng: resources/schema/common.rnc resources/schema/containercluster.rnc - java -jar $(trangjar) -I rnc -O rng resources/schema/container-include.rnc resources/schema/container-include.rng +${outputdir}/container-include.rng: ${srcdir}/common.rnc ${srcdir}/containercluster.rnc + java -jar $(trangjar) -I rnc -O rng ${srcdir}/container-include.rnc ${outputdir}/container-include.rng -resources/schema/container-include.xsd: resources/schema/container-include.rng - java -jar $(trangjar) -I rng -O xsd resources/schema/container-include.rng resources/schema/container-include.xsd +${outputdir}/container-include.xsd: ${outputdir}/container-include.rng + java -jar $(trangjar) -I rng -O xsd ${outputdir}/container-include.rng ${outputdir}/container-include.xsd -resources/schema/hosts.rng: resources/schema/hosts.rnc - java -jar $(trangjar) -I rnc -O rng resources/schema/hosts.rnc resources/schema/hosts.rng +${outputdir}/hosts.rng: ${srcdir}/hosts.rnc + java -jar $(trangjar) -I rnc -O rng ${srcdir}/hosts.rnc ${outputdir}/hosts.rng -resources/schema/hosts.xsd: resources/schema/hosts.rng - java -jar $(trangjar) -I rng -O xsd resources/schema/hosts.rng resources/schema/hosts.xsd +${outputdir}/hosts.xsd: ${outputdir}/hosts.rng + java -jar $(trangjar) -I rng -O xsd ${outputdir}/hosts.rng ${outputdir}/hosts.xsd -resources/schema/deployment.rng: resources/schema/deployment.rnc - java -jar $(trangjar) -I rnc -O rng resources/schema/deployment.rnc resources/schema/deployment.rng +${outputdir}/deployment.rng: ${srcdir}/deployment.rnc + java -jar $(trangjar) -I rnc -O rng ${srcdir}/deployment.rnc ${outputdir}/deployment.rng -resources/schema/deployment.xsd: resources/schema/deployment.rng - java -jar $(trangjar) -I rng -O xsd resources/schema/deployment.rng resources/schema/deployment.xsd +${outputdir}/deployment.xsd: ${outputdir}/deployment.rng + java -jar $(trangjar) -I rng -O xsd ${outputdir}/deployment.rng ${outputdir}/deployment.xsd -resources/schema/validation-overrides.rng: resources/schema/validation-overrides.rnc - java -jar $(trangjar) -I rnc -O rng resources/schema/validation-overrides.rnc resources/schema/validation-overrides.rng +${outputdir}/validation-overrides.rng: ${srcdir}/validation-overrides.rnc + java -jar $(trangjar) -I rnc -O rng ${srcdir}/validation-overrides.rnc ${outputdir}/validation-overrides.rng -resources/schema/deployment.xsd: resources/schema/validation-overrides.rng - java -jar $(trangjar) -I rng -O xsd resources/schema/validation-overrides.rng resources/schema/validation-overrides.xsd +${outputdir}/deployment.xsd: ${outputdir}/validation-overrides.rng + java -jar $(trangjar) -I rng -O xsd ${outputdir}/validation-overrides.rng ${outputdir}/validation-overrides.xsd clean: - rm -f resources/schema/*.rng - rm -f resources/schema/*.xsd + rm -rf ${outputdir} diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java index 0b638c14485..93ff88f182b 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java +++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java @@ -125,8 +125,13 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter for (Element servicesElement : children) { String tagName = servicesElement.getTagName(); - if (tagName.equals("config")) continue; // TODO: Remove on Vespa 6 - if (tagName.equals("cluster")) continue; // TODO: Remove on Vespa 6 + if (tagName.equals("config")) { + // TODO: disallow on Vespa 8 + continue; + } + if (tagName.equals("cluster")) { + throw new IllegalArgumentException("<" + tagName + "> on top-level is not allowed anymore"); + } if ((tagName.equals("clients")) && deployState.isHosted()) throw new IllegalArgumentException("<" + tagName + "> is not allowed when running Vespa in a hosted environment"); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java index 59f97a7e535..1620c90acd1 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java @@ -51,9 +51,6 @@ public class Index implements Cloneable, Serializable { /** Whether the content of this index is normalized */ private boolean normalized=true; - /** The set of all searchable fields which should be searched with this index. May not null */ - public Set<String> matchGroup=new LinkedHashSet<>(); - private Type type = Type.VESPA; /** The boolean index definition, if set */ @@ -82,22 +79,6 @@ public class Index implements Cloneable, Serializable { public Stemming getStemming() { return stemming; } /** - * Returns the (unmodifiable) set of searchable fields which should be searched - * when this index is searched. This is useful to specify that some attributes should be - * searched as well when an index is searched. - * This set is either empty, or if set contains both the name of this index, and some other - * indexes. - */ - public Set<String> getMatchGroup() { return Collections.unmodifiableSet(matchGroup); } - - /** Adds a searchable field name to be searched when this index is searched */ - public void addToMatchGroup(String name) { - if (name.equals(this.name)) return; - if (matchGroup.size()==0) matchGroup.add(this.name); - matchGroup.add(name); - } - - /** * Whether this field should be stemmed in this search definition, * this is never null */ diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java index ba2421bf5bb..a99300cfd32 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -64,9 +64,8 @@ public class Search implements Serializable, ImmutableSearch { // True if this doesn't define a search, just some documents. private boolean documentsOnly = false; - // The stemming setting of this search definition. Default is SHORTEST. - // TODO: Change to Stemming.BEST on Vespa 7 - private Stemming stemming = Stemming.SHORTEST; + // The stemming setting of this search definition. Default is BEST. + private Stemming stemming = Stemming.BEST; // Documents contained in this definition. private SDDocumentType docType; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java index cf88886029f..bd4daa58253 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java @@ -319,9 +319,13 @@ public class SearchBuilder { * @throws ParseException Thrown if there was a problem parsing the string. */ public static SearchBuilder createFromString(String sd) throws ParseException { + return createFromString(sd, new BaseDeployLogger()); + } + + public static SearchBuilder createFromString(String sd, DeployLogger logger) throws ParseException { SearchBuilder builder = new SearchBuilder(MockApplicationPackage.createEmpty()); - builder.importString(sd); - builder.build(); + builder.importString(sd, logger); + builder.build(true, logger); return builder; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java index 1e4a4a2a5d2..a807cc79d95 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java @@ -27,7 +27,6 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { private static final String CMD_HIGHLIGHT = "highlight"; private static final String CMD_INDEX = "index"; private static final String CMD_LOWERCASE = "lowercase"; - private static final String CMD_MATCH_GROUP = "match-group "; private static final String CMD_NORMALIZE = "normalize"; private static final String CMD_STEM = "stem"; private static final String CMD_URLHOST = "urlhost"; @@ -76,24 +75,6 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { } } - @Override - protected void derive(Index index, Search search) { - if (index.getMatchGroup().size() > 0) { - addIndexCommand(index.getName(), CMD_MATCH_GROUP + toSpaceSeparated(index.getMatchGroup())); - } - } - - private String toSpaceSeparated(Collection c) { - StringBuffer b = new StringBuffer(); - for (Iterator i = c.iterator(); i.hasNext();) { - b.append(i.next()); - if (i.hasNext()) { - b.append(" "); - } - } - return b.toString(); - } - private static boolean isPositionArrayField(ImmutableSDField field) { return field.getDataType().equals(DataType.getArray(PositionDataType.INSTANCE)); } @@ -442,8 +423,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { if (active != null) { return active; } - // assume default: TODO: Change to Stemming.BEST on Vespa 7 - return Stemming.SHORTEST; + return Stemming.BEST; // assume default } private boolean stemming(ImmutableSDField field) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java index 39d51414607..f8766afbc7b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java @@ -114,9 +114,6 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { .prefix(f.hasPrefix()) .phrases(f.hasPhrases()) .positions(f.hasPositions()); - if (f.getSdType() !=null && !f.getSdType().equals(com.yahoo.searchdefinition.Index.Type.VESPA)) { - ifB.indextype(IndexschemaConfig.Indexfield.Indextype.Enum.valueOf(f.getSdType().toString())); - } if (!f.getCollectionType().equals("SINGLE")) { ifB.collectiontype(IndexschemaConfig.Indexfield.Collectiontype.Enum.valueOf(f.getCollectionType())); } @@ -194,10 +191,7 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { public Index.Type getRawType() { return type; } public String getType() { return type.equals(Index.Type.INT64) - ? "INT64" - : type.equals(Index.Type.BOOLEANTREE) - ? "BOOLEANTREE" - : "STRING"; + ? "INT64" : "STRING"; } public String getCollectionType() { return (sdFieldType == null) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java index c7b698f5835..692fe7666d4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java @@ -260,9 +260,9 @@ public class SDDocumentType implements Cloneable, Serializable { } } } - } + } - public SDField addField(String string, DataType dataType) { + public SDField addField(String string, DataType dataType) { SDField field = new SDField(this, string, dataType); addField(field); return field; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java index 049f5392c04..8b523211471 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java @@ -83,9 +83,6 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer, /** The explicitly index settings on this field */ private Map<String, Index> indices = new java.util.LinkedHashMap<>(); - /** True if body or header is set explicitly for this field */ - private boolean headerOrBodyDefined = false; - private boolean idOverride = false; /** Struct fields defined in this field */ @@ -426,7 +423,7 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer, /** Parse an indexing expression which will use the simple linguistics implementatino suitable for testing */ @SuppressWarnings("deprecation") public void parseIndexingScript(String script) { - parseIndexingScript(script, new SimpleLinguistics(false)); + parseIndexingScript(script, new SimpleLinguistics()); } public void parseIndexingScript(String script, Linguistics linguistics) { @@ -769,15 +766,6 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer, return queryCommands; } - - public boolean isHeaderOrBodyDefined() { - return headerOrBodyDefined; - } - - public void setHeaderOrBodyDefined(boolean headerOrBodySetExplicitly) { - this.headerOrBodyDefined = headerOrBodySetExplicitly; - } - /** * The document that this field was declared in, or null * diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/Stemming.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/Stemming.java index b5a0ecfbe3d..8a7ee78ea91 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/Stemming.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/Stemming.java @@ -17,10 +17,6 @@ public enum Stemming { /** No stemming */ NONE("none"), - /** @deprecated incorrectly don't stem at all */ - @Deprecated - ALL("all"), - /** select shortest possible stem */ SHORTEST("shortest"), @@ -43,12 +39,7 @@ public enum Stemming { @SuppressWarnings("deprecation") public static Stemming get(String stemmingName) { try { - Stemming stemming = Stemming.valueOf(stemmingName.toUpperCase()); - if (stemming.equals(ALL)) { - log.warning("note: stemming ALL is the same as stemming mode SHORTEST"); - stemming = SHORTEST; - } - return stemming; + return Stemming.valueOf(stemmingName.toUpperCase()); } catch (IllegalArgumentException e) { throw new IllegalArgumentException("'" + stemmingName + "' is not a valid stemming setting"); } @@ -71,7 +62,6 @@ public enum Stemming { case MULTIPLE: return StemMode.ALL; case BEST : return StemMode.BEST; case NONE: return StemMode.NONE; - case ALL: return StemMode.SHORTEST; // Intentional; preserve historic behavior default: throw new IllegalStateException("Inconvertible stem mode " + this); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/AttributeOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/AttributeOperation.java index 4df3660a967..861a9f530d4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/AttributeOperation.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/AttributeOperation.java @@ -17,7 +17,6 @@ public class AttributeOperation implements FieldOperation, FieldOperationContain private Boolean fastSearch; private Boolean fastAccess; private Boolean mutable; - private Boolean prefetch; private Boolean enableBitVectors; private Boolean enableOnlyBitVector; //TODO: Husk sorting!! @@ -73,14 +72,6 @@ public class AttributeOperation implements FieldOperation, FieldOperationContain this.mutable = mutable; } - public Boolean getPrefetch() { - return prefetch; - } - - public void setPrefetch(Boolean prefetch) { - this.prefetch = prefetch; - } - public Boolean getEnableBitVectors() { return enableBitVectors; } @@ -150,9 +141,6 @@ public class AttributeOperation implements FieldOperation, FieldOperationContain if (mutable != null) { attribute.setMutable(mutable); } - if (prefetch != null) { - attribute.setPrefetch(prefetch); - } if (enableBitVectors != null) { attribute.setEnableBitVectors(enableBitVectors); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/IndexingOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/IndexingOperation.java index d1dc68373db..dece0064fcc 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/IndexingOperation.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/IndexingOperation.java @@ -29,7 +29,7 @@ public class IndexingOperation implements FieldOperation { /** Creates an indexing operation which will use the simple linguistics implementation suitable for testing */ @SuppressWarnings("deprecation") public static IndexingOperation fromStream(SimpleCharStream input, boolean multiLine) throws ParseException { - return fromStream(input, multiLine, new SimpleLinguistics(false)); + return fromStream(input, multiLine, new SimpleLinguistics()); } public static IndexingOperation fromStream(SimpleCharStream input, boolean multiLine, Linguistics linguistics) @@ -51,4 +51,5 @@ public class IndexingOperation implements FieldOperation { } return new IndexingOperation(exp); } + } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java deleted file mode 100644 index b34db6febd5..00000000000 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java +++ /dev/null @@ -1,33 +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.searchdefinition.processing; - -import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; -import com.yahoo.searchdefinition.document.Attribute; -import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.vespa.model.container.search.QueryProfiles; - -public class DeprecateAttributePrefetch extends Processor { - - public DeprecateAttributePrefetch(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); - } - - @Override - public void process(boolean validate, boolean documentsOnly) { - if ( ! validate) return; - - for (SDField field : search.allConcreteFields()) { - for (Attribute a : field.getAttributes().values()) { - if (Boolean.TRUE.equals(a.getPrefetchValue())) { - warn(search, field, "Attribute prefetch is deprecated. Use an explicitly defined document summary with all desired fields defined as attribute."); - } - if (Boolean.FALSE.equals(a.getPrefetchValue())) { - warn(search, field, "Attribute prefetch is deprecated. no-prefetch can be removed."); - } - } - } - } - -} diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java index 724fb060dc2..2e6187d4545 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java @@ -32,6 +32,7 @@ public class ImplicitSummaries extends Processor { DocumentSummary defaultSummary = search.getSummary("default"); if (defaultSummary == null) { defaultSummary = new DocumentSummary("default"); + defaultSummary.setFromDisk(true); search.addSummary(defaultSummary); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java index 4feb5b6103b..8c60de1241e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java @@ -17,7 +17,7 @@ import java.util.*; /** * This processor modifies all indexing scripts so that they output to the owning field by default. It also prevents - * any output expression from writing to any field except for the owning field. Finally, for <tt>SummaryExpression</tt>, + * any output expression from writing to any field except for the owning field. Finally, for <code>SummaryExpression</code>, * this processor expands to write all appropriate summary fields. * * @author Simon Thoresen Hult diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java index 8396139861d..47433479588 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java @@ -39,7 +39,6 @@ public class Processing { MutableAttributes::new, CreatePositionZCurve::new, WordMatch::new, - DeprecateAttributePrefetch::new, ImportedFieldsResolver::new, ImplicitSummaries::new, ImplicitSummaryFields::new, diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java index d30006a753e..8c0c6a74037 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java @@ -42,11 +42,10 @@ public class SummaryDiskAccessValidator extends Processor { throw new IllegalArgumentException(summaryField + " in " + summary + " references " + source + ", but this field does not exist"); if ( ! isInMemory(field) && ! summary.isFromDisk()) { - // TODO: Set to warning on vespa 7 - deployLogger.log(Level.FINE, summaryField + " in " + summary + " references " + - source + ", which is not an attribute: Using this " + - "summary will cause disk accesses. " + - "Set 'from-disk' on this summary class to silence this warning."); + deployLogger.log(Level.WARNING, summaryField + " in " + summary + " references " + + source + ", which is not an attribute: Using this " + + "summary will cause disk accesses. " + + "Set 'from-disk' on this summary class to silence this warning."); } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java index 0f162ee9d51..a9d7f407eb5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java @@ -121,12 +121,6 @@ public class SummaryField extends Field implements Cloneable, TypedKey { public void setImplicit(boolean implicit) { this.implicit=implicit; } - @Override // override to make public - @Deprecated - public void setDataType(DataType type) { - super.setDataType(type); - } - public boolean isImplicit() { return implicit; } public void setTransform(SummaryTransform transform) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java index 9e12886143d..6b0c9a1abb2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java @@ -44,7 +44,6 @@ public class Admin extends AbstractConfigProducer implements Serializable { private final boolean isHostedVespa; private final Monitoring monitoring; private final Metrics metrics; - private final Map<String, MetricsConsumer> legacyMetricsConsumers; private final List<Configserver> configservers = new ArrayList<>(); private final List<Slobrok> slobroks = new ArrayList<>(); @@ -73,14 +72,16 @@ public class Admin extends AbstractConfigProducer implements Serializable { private FileDistributionConfigProducer fileDistribution; private final boolean multitenant; - public Admin(AbstractConfigProducer parent, Monitoring monitoring, Metrics metrics, - Map<String, MetricsConsumer> legacyMetricsConsumers, boolean multitenant, - FileDistributionConfigProducer fileDistributionConfigProducer,boolean isHostedVespa) { + public Admin(AbstractConfigProducer parent, + Monitoring monitoring, + Metrics metrics, + boolean multitenant, + FileDistributionConfigProducer fileDistributionConfigProducer, + boolean isHostedVespa) { super(parent, "admin"); this.isHostedVespa = isHostedVespa; this.monitoring = monitoring; this.metrics = metrics; - this.legacyMetricsConsumers = legacyMetricsConsumers; this.multitenant = multitenant; this.fileDistribution = fileDistributionConfigProducer; } @@ -94,11 +95,6 @@ public class Admin extends AbstractConfigProducer implements Serializable { public Metrics getUserMetrics() { return metrics; } - /** Returns the configured userMetricConsumers. Empty if not configured */ - public Map<String, MetricsConsumer> getLegacyUserMetricsConsumers(){ - return legacyMetricsConsumers; - } - /** Returns a list of all config servers */ public List<Configserver> getConfigservers() { return configservers; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java index 5ab16037957..4edfab6d738 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java @@ -17,7 +17,7 @@ import java.util.Set; * Verifies that all containers added are ClusterControllerContainers and that filters away Linguistics components. */ public class ClusterControllerClusterVerifier implements ContainerClusterVerifier { - static final Set<ComponentSpecification> unwantedComponents = Collections.singleton(new SimpleComponent(ContainerCluster.SIMPLE_LINGUISTICS_PROVIDER).getClassId()); + static final Set<ComponentSpecification> unwantedComponents = Collections.singleton(new SimpleComponent(ContainerCluster.DEFAULT_LINGUISTICS_PROVIDER).getClassId()); @Override public boolean acceptComponent(Component component) { return ! unwantedComponents.contains(component.getClassId()); 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 ef180119ac0..d64d8d03481 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 @@ -69,7 +69,7 @@ public class ClusterControllerContainer extends Container implements addBundle("file:" + getDefaults().underVespaHome("lib/jars/zkfacade-jar-with-dependencies.jar")); log.log(LogLevel.DEBUG, "Adding access log for cluster controller ..."); - addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.queryAccessLog, "controller", isHosted)); + addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, "controller", isHosted)); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java index f3f80304b21..4a9f01597c2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java @@ -41,7 +41,7 @@ public class VespaMetricSet { metrics.add(new Metric("sentinel.restarts.count")); metrics.add(new Metric("sentinel.totalRestarts.last")); - metrics.add(new Metric("sentinel.uptime.last", "sentinel.uptime")); + metrics.add(new Metric("sentinel.uptime.last")); metrics.add(new Metric("sentinel.running.count")); metrics.add(new Metric("sentinel.running.last")); @@ -51,28 +51,28 @@ public class VespaMetricSet { private static Set<Metric> getOtherMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); - metrics.add(new Metric("slobrok.heartbeats.failed.count", "slobrok.heartbeats.failed")); - metrics.add(new Metric("logd.processed.lines.count", "logd.processed.lines")); + metrics.add(new Metric("slobrok.heartbeats.failed.count")); + metrics.add(new Metric("logd.processed.lines.count")); return metrics; } private static Set<Metric> getConfigServerMetrics() { Set<Metric> metrics =new LinkedHashSet<>(); - metrics.add(new Metric("configserver.requests.count", "configserver.requests")); - metrics.add(new Metric("configserver.failedRequests.count", "configserver.failedRequests")); - metrics.add(new Metric("configserver.latency.average", "configserver.latency")); - metrics.add(new Metric("configserver.cacheConfigElems.last", "configserver.cacheConfigElems")); - metrics.add(new Metric("configserver.cacheChecksumElems.last", "configserver.cacheChecksumElems")); - metrics.add(new Metric("configserver.hosts.last", "configserver.hosts")); - metrics.add(new Metric("configserver.delayedResponses.count", "configserver.delayedResponses")); - metrics.add(new Metric("configserver.sessionChangeErrors.count", "configserver.sessionChangeErrors")); - - metrics.add(new Metric("configserver.zkZNodes.last", "configserver.zkZNodes")); - metrics.add(new Metric("configserver.zkAvgLatency.last", "configserver.zkAvgLatency")); - metrics.add(new Metric("configserver.zkMaxLatency.last", "configserver.zkMaxLatency")); - metrics.add(new Metric("configserver.zkConnections.last", "configserver.zkConnections")); - metrics.add(new Metric("configserver.zkOutstandingRequests.last", "configserver.zkOutstandingRequests")); + metrics.add(new Metric("configserver.requests.count")); + metrics.add(new Metric("configserver.failedRequests.count")); + metrics.add(new Metric("configserver.latency.average")); + metrics.add(new Metric("configserver.cacheConfigElems.last")); + metrics.add(new Metric("configserver.cacheChecksumElems.last")); + metrics.add(new Metric("configserver.hosts.last")); + metrics.add(new Metric("configserver.delayedResponses.count")); + metrics.add(new Metric("configserver.sessionChangeErrors.count")); + + metrics.add(new Metric("configserver.zkZNodes.last")); + metrics.add(new Metric("configserver.zkAvgLatency.last")); + metrics.add(new Metric("configserver.zkMaxLatency.last")); + metrics.add(new Metric("configserver.zkConnections.last")); + metrics.add(new Metric("configserver.zkOutstandingRequests.last")); return metrics; } @@ -80,7 +80,7 @@ public class VespaMetricSet { private static Set<Metric> getContainerMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); - metrics.add(new Metric("handled.requests.count", "handled.requests")); + metrics.add(new Metric("handled.requests.count")); metrics.add(new Metric("handled.latency.average")); metrics.add(new Metric("handled.latency.max")); @@ -126,7 +126,7 @@ public class VespaMetricSet { metrics.add(new Metric("jdisc.deactivated_containers.total.last")); metrics.add(new Metric("jdisc.deactivated_containers.with_retained_refs.last")); - metrics.add(new Metric("athenz-tenant-cert.expiry.seconds.last", "athenz-tenant-cert.expiry.seconds")); + metrics.add(new Metric("athenz-tenant-cert.expiry.seconds.last")); metrics.add(new Metric("jdisc.http.request.prematurely_closed.rate")); @@ -154,7 +154,7 @@ public class VespaMetricSet { metrics.add(new Metric("cluster-controller.retired.count.last")); metrics.add(new Metric("cluster-controller.stopping.count.last")); metrics.add(new Metric("cluster-controller.up.count.last")); - metrics.add(new Metric("cluster-controller.cluster-state-change.count", "content.cluster-controller.cluster-state-change.count")); + metrics.add(new Metric("cluster-controller.cluster-state-change.count")); metrics.add(new Metric("cluster-controller.is-master.last")); // TODO(hakonhall): Update this name once persistent "count" metrics has been implemented. @@ -168,7 +168,7 @@ public class VespaMetricSet { Set<Metric> metrics = new LinkedHashSet<>(); // per chain - metrics.add(new Metric("documents_processed.rate", "documents_processed")); + metrics.add(new Metric("documents_processed.rate")); return metrics; } @@ -176,40 +176,40 @@ public class VespaMetricSet { private static Set<Metric> getQrserverMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); - metrics.add(new Metric("peak_qps.max", "peak_qps")); - metrics.add(new Metric("search_connections.average", "search_connections")); - metrics.add(new Metric("active_queries.average", "active_queries")); + metrics.add(new Metric("peak_qps.max")); + metrics.add(new Metric("search_connections.average")); + metrics.add(new Metric("active_queries.average")); metrics.add(new Metric("feed.latency.average")); - metrics.add(new Metric("queries.rate", "queries")); + metrics.add(new Metric("queries.rate")); metrics.add(new Metric("query_container_latency.average")); - metrics.add(new Metric("query_latency.average", "mean_query_latency")); - metrics.add(new Metric("query_latency.max", "max_query_latency")); - metrics.add(new Metric("query_latency.95percentile", "95p_query_latency")); - metrics.add(new Metric("query_latency.99percentile", "99p_query_latency")); - metrics.add(new Metric("failed_queries.rate", "failed_queries")); - metrics.add(new Metric("degraded_queries.rate", "degraded_queries")); - metrics.add(new Metric("hits_per_query.average", "hits_per_query")); + metrics.add(new Metric("query_latency.average")); + metrics.add(new Metric("query_latency.max")); + metrics.add(new Metric("query_latency.95percentile")); + metrics.add(new Metric("query_latency.99percentile")); + metrics.add(new Metric("failed_queries.rate")); + metrics.add(new Metric("degraded_queries.rate")); + metrics.add(new Metric("hits_per_query.average")); metrics.add(new Metric("documents_covered.count")); metrics.add(new Metric("documents_total.count")); - metrics.add(new Metric("totalhits_per_query.average", "totalhits_per_query")); - metrics.add(new Metric("empty_results.rate", "empty_results")); + metrics.add(new Metric("totalhits_per_query.average")); + metrics.add(new Metric("empty_results.rate")); metrics.add(new Metric("requestsOverQuota.rate")); metrics.add(new Metric("requestsOverQuota.count")); // Errors from qrserver - metrics.add(new Metric("error.timeout.rate","error.timeout")); - metrics.add(new Metric("error.backends_oos.rate","error.backends_oos")); - metrics.add(new Metric("error.plugin_failure.rate","error.plugin_failure")); - metrics.add(new Metric("error.backend_communication_error.rate","error.backend_communication_error")); - metrics.add(new Metric("error.empty_document_summaries.rate","error.empty_document_summaries")); - metrics.add(new Metric("error.invalid_query_parameter.rate","error.invalid_query_parameter")); - metrics.add(new Metric("error.internal_server_error.rate", "error.internal_server_error")); - metrics.add(new Metric("error.misconfigured_server.rate","error.misconfigured_server")); - metrics.add(new Metric("error.invalid_query_transformation.rate","error.invalid_query_transformation")); - metrics.add(new Metric("error.result_with_errors.rate","error.result_with_errors")); - metrics.add(new Metric("error.unspecified.rate","error.unspecified")); - metrics.add(new Metric("error.unhandled_exception.rate","error.unhandled_exception")); + metrics.add(new Metric("error.timeout.rate")); + metrics.add(new Metric("error.backends_oos.rate")); + metrics.add(new Metric("error.plugin_failure.rate")); + metrics.add(new Metric("error.backend_communication_error.rate")); + metrics.add(new Metric("error.empty_document_summaries.rate")); + metrics.add(new Metric("error.invalid_query_parameter.rate")); + metrics.add(new Metric("error.internal_server_error.rate")); + metrics.add(new Metric("error.misconfigured_server.rate")); + metrics.add(new Metric("error.invalid_query_transformation.rate")); + metrics.add(new Metric("error.result_with_errors.rate")); + metrics.add(new Metric("error.unspecified.rate")); + metrics.add(new Metric("error.unhandled_exception.rate")); return metrics; } @@ -217,18 +217,18 @@ public class VespaMetricSet { private static Set<Metric> getSearchNodeMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); - metrics.add(new Metric("proton.numstoreddocs.last", "documents_total")); - metrics.add(new Metric("proton.numindexeddocs.last", "documents_ready")); - metrics.add(new Metric("proton.numactivedocs.last", "documents_active")); - metrics.add(new Metric("proton.numremoveddocs.last", "documents_removed")); + metrics.add(new Metric("content.proton.documentdb.documents.total.last")); + metrics.add(new Metric("content.proton.documentdb.documents.ready.last")); + metrics.add(new Metric("content.proton.documentdb.documents.active.last")); + metrics.add(new Metric("content.proton.documentdb.documents.removed.last")); - metrics.add(new Metric("proton.docsinmemory.last", "documents_inmemory")); - metrics.add(new Metric("proton.diskusage.last", "diskusage")); - metrics.add(new Metric("proton.memoryusage.max", "content.proton.memoryusage.max")); - metrics.add(new Metric("proton.transport.query.count.rate", "query_requests")); - metrics.add(new Metric("proton.docsum.docs.rate", "document_requests")); - metrics.add(new Metric("proton.docsum.latency.average", "content.proton.transport.docsum.latency.average")); - metrics.add(new Metric("proton.transport.query.latency.average", "query_latency")); + metrics.add(new Metric("content.proton.documentdb.index.docs_in_memory.last")); + metrics.add(new Metric("content.proton.documentdb.disk_usage.last")); + metrics.add(new Metric("content.proton.documentdb.memory_usage.allocated_bytes.max")); + metrics.add(new Metric("content.proton.transport.query.count.rate")); + metrics.add(new Metric("content.proton.docsum.docs.rate")); + metrics.add(new Metric("content.proton.docsum.latency.average")); + metrics.add(new Metric("content.proton.transport.query.latency.average")); // jobs metrics.add(new Metric("content.proton.documentdb.job.total.average")); @@ -343,10 +343,10 @@ public class VespaMetricSet { private static Set<Metric> getStorageMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); - metrics.add(new Metric("vds.datastored.alldisks.docs.average","docs")); - metrics.add(new Metric("vds.datastored.alldisks.bytes.average","bytes")); - metrics.add(new Metric("vds.visitor.allthreads.averagevisitorlifetime.sum.average","visitorlifetime")); - metrics.add(new Metric("vds.visitor.allthreads.averagequeuewait.sum.average","visitorqueuewait")); + metrics.add(new Metric("vds.datastored.alldisks.docs.average")); + metrics.add(new Metric("vds.datastored.alldisks.bytes.average")); + metrics.add(new Metric("vds.visitor.allthreads.averagevisitorlifetime.sum.average")); + metrics.add(new Metric("vds.visitor.allthreads.averagequeuewait.sum.average")); metrics.add(new Metric("vds.filestor.alldisks.allthreads.put.sum.count.rate")); metrics.add(new Metric("vds.filestor.alldisks.allthreads.remove.sum.count.rate")); metrics.add(new Metric("vds.filestor.alldisks.allthreads.get.sum.count.rate")); @@ -354,12 +354,12 @@ public class VespaMetricSet { metrics.add(new Metric("vds.filestor.alldisks.allthreads.createiterator.count.rate")); metrics.add(new Metric("vds.filestor.alldisks.allthreads.visit.sum.count.rate")); metrics.add(new Metric("vds.filestor.alldisks.allthreads.remove_location.sum.count.rate")); - metrics.add(new Metric("vds.filestor.alldisks.queuesize.average","diskqueuesize")); - metrics.add(new Metric("vds.filestor.alldisks.averagequeuewait.sum.average","diskqueuewait")); + metrics.add(new Metric("vds.filestor.alldisks.queuesize.average")); + metrics.add(new Metric("vds.filestor.alldisks.averagequeuewait.sum.average")); metrics.add(new Metric("vds.visitor.allthreads.queuesize.count.average")); metrics.add(new Metric("vds.visitor.allthreads.completed.sum.average")); - metrics.add(new Metric("vds.visitor.allthreads.created.sum.rate","visit")); + metrics.add(new Metric("vds.visitor.allthreads.created.sum.rate")); metrics.add(new Metric("vds.visitor.allthreads.averagemessagesendtime.sum.average")); metrics.add(new Metric("vds.visitor.allthreads.averageprocessingtime.sum.average")); @@ -397,18 +397,18 @@ public class VespaMetricSet { metrics.add(new Metric("vds.idealstate.buckets_toomanycopies.average")); metrics.add(new Metric("vds.idealstate.buckets.average")); metrics.add(new Metric("vds.idealstate.buckets_notrusted.average")); - metrics.add(new Metric("vds.idealstate.delete_bucket.done_ok.rate","deleteok")); - metrics.add(new Metric("vds.idealstate.delete_bucket.done_failed.rate","deletefailed")); - metrics.add(new Metric("vds.idealstate.delete_bucket.pending.average","deletepending")); - metrics.add(new Metric("vds.idealstate.merge_bucket.done_ok.rate","mergeok")); - metrics.add(new Metric("vds.idealstate.merge_bucket.done_failed.rate","mergefailed")); - metrics.add(new Metric("vds.idealstate.merge_bucket.pending.average","mergepending")); - metrics.add(new Metric("vds.idealstate.split_bucket.done_ok.rate","splitok")); - metrics.add(new Metric("vds.idealstate.split_bucket.done_failed.rate","splitfailed")); - metrics.add(new Metric("vds.idealstate.split_bucket.pending.average","splitpending")); - metrics.add(new Metric("vds.idealstate.join_bucket.done_ok.rate","joinok")); - metrics.add(new Metric("vds.idealstate.join_bucket.done_failed.rate","joinfailed")); - metrics.add(new Metric("vds.idealstate.join_bucket.pending.average","joinpending")); + metrics.add(new Metric("vds.idealstate.delete_bucket.done_ok.rate")); + metrics.add(new Metric("vds.idealstate.delete_bucket.done_failed.rate")); + metrics.add(new Metric("vds.idealstate.delete_bucket.pending.average")); + metrics.add(new Metric("vds.idealstate.merge_bucket.done_ok.rate")); + metrics.add(new Metric("vds.idealstate.merge_bucket.done_failed.rate")); + metrics.add(new Metric("vds.idealstate.merge_bucket.pending.average")); + metrics.add(new Metric("vds.idealstate.split_bucket.done_ok.rate")); + metrics.add(new Metric("vds.idealstate.split_bucket.done_failed.rate")); + metrics.add(new Metric("vds.idealstate.split_bucket.pending.average")); + metrics.add(new Metric("vds.idealstate.join_bucket.done_ok.rate")); + metrics.add(new Metric("vds.idealstate.join_bucket.done_failed.rate")); + metrics.add(new Metric("vds.idealstate.join_bucket.pending.average")); metrics.add(new Metric("vds.idealstate.garbage_collection.done_ok.rate")); metrics.add(new Metric("vds.idealstate.garbage_collection.done_failed.rate")); metrics.add(new Metric("vds.idealstate.garbage_collection.pending.average")); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java index fa28802b3ac..3a9a5d59b1a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java @@ -72,18 +72,12 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu @Override protected Admin doBuild(DeployState deployState, AbstractConfigProducer parent, Element adminElement) { - Monitoring monitoring = getMonitoring(getChildWithFallback(adminElement, "monitoring", "yamas")); + Monitoring monitoring = getMonitoring(XML.getChild(adminElement,"monitoring")); Metrics metrics = new MetricsBuilder(applicationType, predefinedMetricSets) .buildMetrics(XML.getChild(adminElement, "metrics")); - Map<String, MetricsConsumer> legacyMetricsConsumers = DomMetricBuilderHelper - .buildMetricsConsumers(XML.getChild(adminElement, "metric-consumers")); - if (! legacyMetricsConsumers.isEmpty()) { - deployState.getDeployLogger().log(WARNING, "Element 'metric-consumers' is deprecated and will be removed in Vespa 7. Use 'metrics' instead!"); - } FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent); - Admin admin = new Admin(parent, monitoring, metrics, legacyMetricsConsumers, multitenant, - fileDistributionConfigProducer, deployState.isHosted()); + Admin admin = new Admin(parent, monitoring, metrics, multitenant, fileDistributionConfigProducer, deployState.isHosted()); admin.setApplicationType(applicationType); doBuildAdmin(deployState, admin, adminElement); new ModelConfigProvider(admin); @@ -95,12 +89,6 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu return new FileDistributionConfigProducer(parent, fileRegistry, configServerSpecs); } - private Element getChildWithFallback(Element parent, String childName, String alternativeChildName) { - Element child = XML.getChild(parent, childName); - if (child != null) return child; - return XML.getChild(parent, alternativeChildName); - } - protected abstract void doBuildAdmin(DeployState deployState, Admin admin, Element adminE); private Monitoring getMonitoring(Element monitoringElement) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientsBuilder.java index 24da87200b8..c107a85bcb5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientsBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientsBuilder.java @@ -30,7 +30,7 @@ public class DomClientsBuilder extends LegacyConfigModelBuilder<Clients> { String version = clientsE.getAttribute("version"); if (version.startsWith("2.")) { DomV20ClientsBuilder parser = new DomV20ClientsBuilder(clients, version); - parser.build(modelContext.getDeployState(), clientsE); + parser.build(clientsE); } else { throw new IllegalArgumentException("Version '" + version + "' of 'clients' not supported."); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java deleted file mode 100644 index 4c1fdd3f92c..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java +++ /dev/null @@ -1,68 +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.builder.xml.dom; - -import com.yahoo.text.XML; -import com.yahoo.vespa.model.admin.monitoring.Metric; -import com.yahoo.vespa.model.admin.monitoring.MetricSet; -import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; -import org.w3c.dom.Element; - -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID; - -/** - * Helper class for parsing metric config. - * - * TODO: Remove when 'metric-consumers' under 'admin' is disallowed - * - * @author Trygve Berdal - */ -public class DomMetricBuilderHelper { - - private static final String LEGACY_DEFAULT_CONSUMER_ID = "yamas"; - - /** - * Build metricConsumer config - * - * @param spec xml element - * @return a map from metric name to a {@link MetricsConsumer} - */ - protected static Map<String, MetricsConsumer> buildMetricsConsumers(Element spec) { - Map<String, MetricsConsumer> metricsConsumers = new LinkedHashMap<>(); - List<Element> consumersElem = XML.getChildren(spec, "consumer"); - for (Element consumer : consumersElem) { - String consumerName = getConsumerName(consumer); - Set<Metric> metrics = new LinkedHashSet<>(); - List<Element> metricsEl = XML.getChildren(consumer, "metric"); - if (metricsEl != null) { - for (Element metric : metricsEl) { - String metricName = metric.getAttribute("name"); - String outputName = metric.getAttribute("output-name"); - metrics.add(new Metric(metricName, outputName)); - } - } - MetricsConsumer metricsConsumer = new MetricsConsumer(consumerName, - new MetricSet(metricSetId(consumerName), metrics)); - metricsConsumers.put(consumerName, metricsConsumer); - } - return metricsConsumers; - } - - // Converts the old default consumer id to the new default id. - private static String getConsumerName(Element consumerElement) { - String givenName = consumerElement.getAttribute("name"); - if (givenName.equals(LEGACY_DEFAULT_CONSUMER_ID)) - return VESPA_CONSUMER_ID; - else - return givenName; - } - - private static String metricSetId(String consumerName) { - return "legacy-user-metrics-" + consumerName; - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java index 81f901fc849..067d653ea40 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java @@ -128,9 +128,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } else if (equals("transactionlog", e)) { for (Element subElem : XML.getChildren(e)) { - if (equals("maxentries", subElem)) { - deployLogger.log(Level.WARNING, "Element 'transactionlog.maxentries is deprecated and ignored in 'native' flush strategy. Use 'transactionlog.maxsize' to limit by size."); - } else if (equals("maxsize", subElem)) { + if (equals("maxsize", subElem)) { fs.transactionLogMaxSize = asLong(subElem); } } @@ -224,8 +222,6 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui c.maxSize = asLong(e); } else if (equals("maxsize-percent", e)) { c.maxSizePercent = asDouble(e); - } else if (equals("maxentries", e)) { - deployLogger.log(Level.WARNING, "Element 'maxentries is deprecated and ignored. Will only limit by size."); } else if (equals("initialentries", e)) { c.initialEntries = asLong(e); } else if (equals("compression", e)) { @@ -250,15 +246,8 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui for (Element e : XML.getChildren(spec)) { if (equals("maxfilesize", e)) { s.logStore.maxFileSize = asLong(e); - } else if (equals("maxdiskbloatfactor", e)) { - deployLogger.log(Level.WARNING, - "Element 'maxdiskbloatfactor is deprecated and ignored." + - " The min value from flush.memory.xxx.diskbloatfactor is used instead"); } else if (equals("minfilesizefactor", e)) { s.logStore.minFileSizeFactor = asDouble(e); - } else if (equals("numthreads", e)) { - deployLogger.log(Level.WARNING, "Element 'numthreads is deprecated. Use feeding.concurrency instead."); - s.logStore.numThreads = asInt(e); } else if (equals("chunk", e)) { s.logStore.chunk = new Tuning.SearchNode.Summary.Store.Component(true); handleSummaryStoreComponent(deployLogger, e, s.logStore.chunk); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java index 6a02619bdb4..74e3ac581c4 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java @@ -2,26 +2,11 @@ package com.yahoo.vespa.model.builder.xml.dom; import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.vespa.config.content.spooler.SpoolerConfig; -import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.text.XML; -import com.yahoo.vespa.defaults.Defaults; -import com.yahoo.vespa.model.SimpleConfigProducer; -import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder.DomConfigProducerBuilder; import com.yahoo.vespa.model.clients.Clients; -import com.yahoo.vespa.model.clients.VespaSpoolMaster; -import com.yahoo.vespa.model.clients.VespaSpooler; -import com.yahoo.vespa.model.clients.VespaSpoolerProducer; -import com.yahoo.vespa.model.clients.VespaSpoolerService; -import com.yahoo.vespaclient.config.FeederConfig; import org.w3c.dom.Element; -import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - /** * Builds the Clients plugin * @@ -38,13 +23,8 @@ public class DomV20ClientsBuilder { this.clients = clients; } - public void build(DeployState deployState, Element spec) { - NodeList children = spec.getElementsByTagName("spoolers"); - for (int i = 0; i < children.getLength(); i++) { - createSpoolers(deployState, clients.getConfigProducer(), (Element) children.item(i), clients); - } - - children = spec.getElementsByTagName("load-types"); + public void build(Element spec) { + NodeList children = spec.getElementsByTagName("load-types"); for (int i = 0; i < children.getLength(); i++) { createLoadTypes((Element) children.item(i), clients); } @@ -57,283 +37,4 @@ public class DomV20ClientsBuilder { } } - /** - * Creates VespaSpooler objects using the given xml Element. - */ - private void createSpoolers(DeployState deployState, AbstractConfigProducer pcp, Element element, Clients clients) { - String jvmArgs = null; - if (element.hasAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME)) jvmArgs=element.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME); - SimpleConfigProducer spoolerCfg = new VespaDomBuilder.DomSimpleConfigProducerBuilder(element.getNodeName()). - build(deployState, pcp, element); - Element spoolersFeederOptions = findFeederOptions(element); - createSpoolMasters(deployState, spoolerCfg, element); - for (Element e : XML.getChildren(element, "spooler")) { - String configId = e.getAttribute("id").trim(); - FeederConfig.Builder feederConfig = getFeederConfig(spoolersFeederOptions, e); - SpoolerConfig.Builder spoolConfig = getSpoolConfig(e); - if (configId.length() == 0) { - int index = clients.getVespaSpoolers().size(); - VespaSpoolerService spoolerService = new VespaSpoolerServiceBuilder(index, new VespaSpooler(feederConfig, spoolConfig)). - build(deployState, spoolerCfg, e); - if ("".equals(spoolerService.getJvmOptions()) && jvmArgs!=null) spoolerService.setJvmOptions(jvmArgs); - spoolerService.setProp("index", String.valueOf(index)); - clients.getVespaSpoolers().add(spoolerService); - } else { - new VespaSpoolerProducerBuilder(configId, new VespaSpooler(feederConfig, spoolConfig)). - build(deployState, spoolerCfg, e); - } - } - } - - private void createSpoolMasters(DeployState deployState, SimpleConfigProducer producer, Element element) { - int i=0; - for (Element e : XML.getChildren(element, "spoolmaster")) - new VespaSpoolMasterBuilder(i++).build(deployState, producer, e); - } - - private SpoolerConfig.Builder getSpoolConfig(Element conf) { - SpoolerConfig.Builder builder = new SpoolerConfig.Builder(); - if (conf.getAttributes().getNamedItem("directory") != null) { - builder.directory(Defaults.getDefaults().underVespaHome(conf.getAttributes().getNamedItem("directory").getNodeValue())); - } - if (conf.getAttributes().getNamedItem("keepsuccess") != null) { - builder.keepsuccess(getBooleanFromAttribute(conf, "keepsuccess")); - } - if (conf.getAttributes().getNamedItem("maxfailuresize") != null) { - builder.maxfailuresize(getIntegerFromAttribute(conf, "maxfailuresize")); - } - if (conf.getAttributes().getNamedItem("maxfatalfailuresize") != null) { - builder.maxfatalfailuresize(getIntegerFromAttribute(conf, "maxfatalfailuresize")); - } - if (conf.getAttributes().getNamedItem("threads") != null) { - builder.threads(getIntegerFromAttribute(conf, "threads")); - } - if (conf.getAttributes().getNamedItem("maxretries") != null) { - builder.maxretries(getIntegerFromAttribute(conf, "maxretries")); - } - - NodeList children = conf.getElementsByTagName("parsers"); - if (children.getLength() == 1) { - children = ((Element)children.item(0)).getElementsByTagName("parser"); - } - - for (int i=0; i < children.getLength(); i++) { - Element e = (Element)children.item(i); - - String type = e.getAttributes().getNamedItem("type").getNodeValue(); - NodeList params = e.getElementsByTagName("parameter"); - - SpoolerConfig.Parsers.Builder parserBuilder = new SpoolerConfig.Parsers.Builder(); - parserBuilder.classname(type); - if (params.getLength() > 0) { - List<SpoolerConfig.Parsers.Parameters.Builder> parametersBuilders = new ArrayList<>(); - for (int j = 0; j < params.getLength(); j++) { - SpoolerConfig.Parsers.Parameters.Builder parametersBuilder = new SpoolerConfig.Parsers.Parameters.Builder(); - Element p = (Element) params.item(j); - parametersBuilder.key(getStringFromAttribute(p, "key")); - parametersBuilder.value(getStringFromAttribute(p, "value")); - parametersBuilders.add(parametersBuilder); - } - parserBuilder.parameters(parametersBuilders); - } - - builder.parsers.add(parserBuilder); - } - return builder; - } - - Boolean getBooleanFromAttribute(Element e, String attributeName) { - return Boolean.parseBoolean(e.getAttributes().getNamedItem(attributeName).getNodeValue()); - } - - Integer getIntegerFromAttribute(Element e, String attributeName) { - return Integer.parseInt(e.getAttributes().getNamedItem(attributeName).getNodeValue()); - } - - String getStringFromAttribute(Element e, String attributeName) { - return e.getAttributes().getNamedItem(attributeName).getNodeValue(); - } - - private FeederConfig.Builder getFeederConfig(Element gatewaysFeederOptions, Element e) { - FeederOptionsParser foParser = new FeederOptionsParser(); - if (gatewaysFeederOptions!=null) { - foParser.parseFeederOptions(gatewaysFeederOptions).getFeederConfig(); - } - foParser.parseFeederOptions(e); - return foParser.getFeederConfig(); - } - - /** - * Finds the feederoptions subelement in the given xml Element. - * - * @param element The xml Element - * @return The feederoptions xml Element - */ - private Element findFeederOptions(Element element) { - for (Element child : XML.getChildren(element)) { - if (child.getNodeName().equals("feederoptions")) { - return child; - } - } - return null; - } - - private static class VespaSpoolerServiceBuilder extends DomConfigProducerBuilder<VespaSpoolerService> { - private int index; - private VespaSpooler spoolerConfig; - - public VespaSpoolerServiceBuilder(int index, VespaSpooler spoolerConfig) { - this.index = index; - this.spoolerConfig = spoolerConfig; - } - - @Override - protected VespaSpoolerService doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) { - return new VespaSpoolerService(parent, index, spoolerConfig); - } - } - - private static class VespaSpoolerProducerBuilder extends DomConfigProducerBuilder<VespaSpoolerProducer> { - private String name=null; - private VespaSpooler spooler; - - public VespaSpoolerProducerBuilder(String name, VespaSpooler spooler) { - this.name = name; - this.spooler = spooler; - } - - @Override - protected VespaSpoolerProducer doBuild(DeployState deployState, AbstractConfigProducer parent, Element producerSpec) { - return new VespaSpoolerProducer(parent, name, spooler); - } - } - - private static class VespaSpoolMasterBuilder extends DomConfigProducerBuilder<VespaSpoolMaster> { - int index; - - public VespaSpoolMasterBuilder(int index) { - super(); - this.index = index; - } - - @Override - protected VespaSpoolMaster doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) { - return new VespaSpoolMaster(parent, index); - } - } - - /** - * This class parses the feederoptions xml tag and produces Vespa config output. - * - * @author Gunnar Gauslaa Bergem - */ - private class FeederOptionsParser implements Serializable { - private static final long serialVersionUID = 1L; - // All member variables are objects so that we can switch on null values. - private Boolean abortondocumenterror = null; - private String route = null; - private Integer maxpendingdocs = null; - private Integer maxpendingbytes = null; - private Boolean retryenabled = null; - private Double retrydelay = null; - private Double timeout = null; - private Integer tracelevel = null; - private Integer mbusport = null; - private String docprocChain = null; - - /** - * Constructs an empty feeder options object with all members set to null. - */ - public FeederOptionsParser() { - // empty - } - - /** - * Parses the content of the given XML element as feeder options. - * - * @param conf The XML element to parse. - */ - public FeederOptionsParser parseFeederOptions(Element conf) { - for (Node node : XML.getChildren(conf)) { - String nodename = node.getNodeName(); - Node firstchild = node.getFirstChild(); - String childval = (firstchild != null) ? firstchild.getNodeValue() : null; - - switch (nodename) { - case "abortondocumenterror": - abortondocumenterror = Boolean.valueOf(childval); - break; - case "maxpendingdocs": - maxpendingdocs = Integer.valueOf(childval); - break; - case "maxpendingbytes": - maxpendingbytes = Integer.valueOf(childval); - break; - case "retryenabled": - retryenabled = Boolean.valueOf(childval); - break; - case "retrydelay": - retrydelay = Double.valueOf(childval); - break; - case "timeout": - timeout = Double.valueOf(childval); - break; - case "route": - route = childval; - break; - case "tracelevel": - tracelevel = Integer.valueOf(childval); - break; - case "mbusport": - mbusport = Integer.valueOf(childval); - break; - case "docprocchain": - docprocChain = childval; - break; - } - } - return this; - } - - /** - * Returns a feeder options config string of the content of this. - * - * @return A config string. - */ - public FeederConfig.Builder getFeederConfig() { - FeederConfig.Builder builder = new FeederConfig.Builder(); - if (abortondocumenterror != null) { - builder.abortondocumenterror(abortondocumenterror); - } - if (route != null && route.length() > 0) { - builder.route(route); - } - if (maxpendingdocs != null) { - builder.maxpendingdocs(maxpendingdocs); - } - if (maxpendingbytes != null) { - builder.maxpendingbytes(maxpendingbytes); - } - if (retryenabled != null) { - builder.retryenabled(retryenabled); - } - if (retrydelay != null) { - builder.retrydelay(retrydelay); - } - if (timeout != null) { - builder.timeout(timeout); - } - if (tracelevel != null) { - builder.tracelevel(tracelevel); - } - if (mbusport != null) { - builder.mbusport(mbusport); - } - if (docprocChain != null && docprocChain.length() > 0) { - builder.docprocchain(docprocChain); - } - return builder; - } - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java index 66b425be8f5..534b07339ec 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java @@ -2,8 +2,6 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.search; import com.yahoo.binaryprefix.BinaryPrefix; -import com.yahoo.component.chain.dependencies.Dependencies; -import com.yahoo.component.chain.model.ChainedComponentModel; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.model.ChainSpecification; import com.yahoo.config.model.deploy.DeployState; @@ -13,7 +11,7 @@ import com.yahoo.text.XML; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.vespa.model.builder.xml.dom.BinaryScaledAmountParser; import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder; -import com.yahoo.vespa.model.container.search.searchchain.HttpProvider; +import com.yahoo.vespa.model.container.search.searchchain.GenericProvider; import com.yahoo.vespa.model.container.search.searchchain.LocalProvider; import com.yahoo.vespa.model.container.search.searchchain.Provider; import com.yahoo.vespa.model.container.search.searchchain.Source; @@ -23,7 +21,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * Builds a provider from xml. @@ -211,9 +208,7 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> { ProviderReader providerReader, FederationOptions federationOptions) { if (providerReader.type == null) { - return buildEmptyHttpProvider(specWithoutInnerSearchers, providerReader, federationOptions); - } else if (com.yahoo.search.searchchain.model.federation.HttpProviderSpec.includesType(providerReader.type)) { // TODO: Remove on Vespa 7 - return buildHttpProvider(specWithoutInnerSearchers, providerReader, federationOptions); + return new GenericProvider(specWithoutInnerSearchers, federationOptions); } else if (LocalProviderSpec.includesType(providerReader.type)) { return buildLocalProvider(specWithoutInnerSearchers, providerReader, federationOptions); } else { @@ -236,63 +231,6 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> { } } - // TODO: Remove on Vespa 7 - @SuppressWarnings("deprecation") - private Provider buildHttpProvider(ChainSpecification specWithoutInnerSearchers, ProviderReader providerReader, FederationOptions federationOptions) { - ensureEmpty(specWithoutInnerSearchers.componentId, providerReader.clusterName); - - Provider httpProvider = buildEmptyHttpProvider(specWithoutInnerSearchers, providerReader, federationOptions); - - httpProvider.addInnerComponent(new com.yahoo.vespa.model.container.search.searchchain.HttpProviderSearcher( - new ChainedComponentModel( - com.yahoo.search.searchchain.model.federation.HttpProviderSpec.toBundleInstantiationSpecification(com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Type.valueOf(providerReader.type)), - Dependencies.emptyDependencies()))); - - return httpProvider; - } - - // TODO: Remove on Vespa 7 - @SuppressWarnings("deprecation") - private Provider buildEmptyHttpProvider(ChainSpecification specWithoutInnerSearchers, ProviderReader providerReader, FederationOptions federationOptions) { - ensureEmpty(specWithoutInnerSearchers.componentId, providerReader.clusterName); - - return new HttpProvider(specWithoutInnerSearchers, - federationOptions, - new com.yahoo.search.searchchain.model.federation.HttpProviderSpec( - providerReader.cacheWeight, - providerReader.path, - toHttpProviderNodes(providerReader.nodes), - providerReader.certificateApplicationId, - providerReader.certificateTtl, - providerReader.certificateRetryWait, - toHttpProviderNode(providerReader.certificateProxy), - providerReader.cacheSizeMB, - connectionParameters(providerReader))); - } - - // TODO: Remove on Vespa 7 - @SuppressWarnings("deprecation") - private com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Node toHttpProviderNode(Node node) { - if (node == null) return null; - return new com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Node(node.host, node.port); - } - - @SuppressWarnings("deprecation") - private List<com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Node> toHttpProviderNodes(List<Node> nodes) { - if (nodes == null) return null; - return nodes.stream().map(node -> toHttpProviderNode(node)).collect(Collectors.toList()); - } - - // TODO: Remove on Vespa 7 - @SuppressWarnings("deprecation") - private com.yahoo.search.searchchain.model.federation.HttpProviderSpec.ConnectionParameters connectionParameters(ProviderReader providerReader) { - return new com.yahoo.search.searchchain.model.federation.HttpProviderSpec.ConnectionParameters( - providerReader.readTimeout, - providerReader.connectionTimeout, - providerReader.connectionPoolTimeout, - providerReader.retries); - } - private void ensureEmpty(ComponentId componentId, Object... objects) { for (Object object : objects) { if (object != null) { @@ -313,10 +251,7 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> { @Override public String toString() { - return "Node{" + - "host='" + host + '\'' + - ", port=" + port + - '}'; + return "Node{" + "host='" + host + '\'' + ", port=" + port + '}'; } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/Clients.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/Clients.java index 75c10ea2667..9b33568b61e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/Clients.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/Clients.java @@ -22,23 +22,10 @@ import java.util.List; public class Clients extends ConfigModel { private static final long serialVersionUID = 1L; - private List<VespaSpoolerService> vespaSpoolers = new LinkedList<>(); private LoadTypeSet loadTypes = new LoadTypeSet(); - private final AbstractConfigProducer parent; - public Clients(ConfigModelContext modelContext) { super(modelContext); - this.parent = modelContext.getParentProducer(); - } - - public AbstractConfigProducer getConfigProducer() { - return parent; - } - - /** Returns the mutable list of spoolers which is then used to add spoolers */ - public List<VespaSpoolerService> getVespaSpoolers() { - return vespaSpoolers; } public LoadTypeSet getLoadTypes() { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java index 9801eab9f2b..c2394e7cac3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java @@ -1,29 +1,15 @@ // 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.clients; -import com.yahoo.component.ComponentId; -import com.yahoo.component.ComponentSpecification; -import com.yahoo.component.chain.Phase; -import com.yahoo.component.chain.dependencies.Dependencies; -import com.yahoo.component.chain.model.ChainSpecification; -import com.yahoo.component.chain.model.ChainedComponentModel; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.Handler; -import com.yahoo.vespa.model.container.component.chain.ProcessingHandler; -import com.yahoo.vespa.model.container.search.ContainerSearch; -import com.yahoo.vespa.model.container.search.searchchain.SearchChain; -import com.yahoo.vespa.model.container.search.searchchain.SearchChains; -import com.yahoo.vespa.model.container.search.searchchain.Searcher; import com.yahoo.vespaclient.config.FeederConfig; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Set; -import java.util.TreeSet; /** * @author Einar M R Rosenvinge @@ -35,53 +21,14 @@ public class ContainerDocumentApi implements FeederConfig.Producer { public ContainerDocumentApi(ContainerCluster cluster, Options options) { this.options = options; - setupLegacySearchers(cluster); setupHandlers(cluster); } private void setupHandlers(ContainerCluster cluster) { - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandler", "feed")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerRemove", "remove")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerRemoveLocation", "removelocation")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerGet", "get")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerVisit", "visit")); cluster.addComponent(newVespaClientHandler("com.yahoo.document.restapi.resource.RestApi", "document/v1/*")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerCompatibility", "document")); - cluster.addComponent(newVespaClientHandler("com.yahoo.feedhandler.VespaFeedHandlerStatus", "feedstatus")); cluster.addComponent(newVespaClientHandler("com.yahoo.vespa.http.server.FeedHandler", ContainerCluster.RESERVED_URI_PREFIX + "/feedapi")); } - private void setupLegacySearchers(ContainerCluster cluster) { - Set<ComponentSpecification> inherited = new TreeSet<>(); - - SearchChain vespaGetChain = new SearchChain(new ChainSpecification(new ComponentId("vespaget"), - new ChainSpecification.Inheritance(inherited, null), new ArrayList<>(), new TreeSet<>())); - vespaGetChain.addInnerComponent(newVespaClientSearcher("com.yahoo.storage.searcher.GetSearcher")); - - SearchChain vespaVisitChain = new SearchChain(new ChainSpecification(new ComponentId("vespavisit"), - new ChainSpecification.Inheritance(inherited, null), new ArrayList<>(), new TreeSet<>())); - vespaVisitChain.addInnerComponent(newVespaClientSearcher("com.yahoo.storage.searcher.VisitSearcher")); - - SearchChains chains; - if (cluster.getSearch() != null) { - chains = cluster.getSearchChains(); - } else { - chains = new SearchChains(cluster, "searchchain"); - } - chains.add(vespaGetChain); - chains.add(vespaVisitChain); - - if (cluster.getSearch() == null) { - ContainerSearch containerSearch = new ContainerSearch(cluster, chains, new ContainerSearch.Options()); - cluster.setSearch(containerSearch); - - ProcessingHandler<SearchChains> searchHandler = new ProcessingHandler<>(chains, - "com.yahoo.search.handler.SearchHandler"); - searchHandler.addServerBindings("http://*/search/*", "https://*/search/*"); - cluster.addComponent(searchHandler); - } - } - private Handler newVespaClientHandler(String componentId, String bindingSuffix) { Handler<AbstractConfigProducer<?>> handler = new Handler<>(new ComponentModel( BundleInstantiationSpecification.getFromStrings(componentId, null, vespaClientBundleSpecification), "")); @@ -93,12 +40,6 @@ public class ContainerDocumentApi implements FeederConfig.Producer { return handler; } - private Searcher newVespaClientSearcher(String componentSpec) { - return new Searcher<>(new ChainedComponentModel( - BundleInstantiationSpecification.getFromStrings(componentSpec, null, vespaClientBundleSpecification), - new Dependencies(null, null, null))); - } - @Override public void getConfig(FeederConfig.Builder builder) { if (options.abortondocumenterror != null) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolMaster.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolMaster.java deleted file mode 100644 index 7013a09009a..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolMaster.java +++ /dev/null @@ -1,29 +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.clients; - -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.vespa.model.AbstractService; - -/** - * The spoolmaster program, which is used when multiple spooler instances are used to provide - * multi colo HTTP feeding. - * @author vegardh - * - */ -public class VespaSpoolMaster extends AbstractService { - - public VespaSpoolMaster(AbstractConfigProducer parent, int index) { - super(parent, "spoolmaster."+index); - } - - @Override - public int getPortCount() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public String getStartupCommand() { - return "exec vespa-spoolmaster"; - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpooler.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpooler.java deleted file mode 100644 index c750a5d2a89..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpooler.java +++ /dev/null @@ -1,31 +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.clients; - -import com.yahoo.vespa.config.content.spooler.SpoolerConfig; -import com.yahoo.config.subscription.ConfigInstanceUtil; -import com.yahoo.vespaclient.config.FeederConfig; - -/** - * Holds configuration for VespaSpoolers. Actual services use VespaSpoolerService, - * while virtual services can be generated for external spoolers (VespaSpoolerProducer). - * - * @author <a href="mailto:thomasg@yahoo-inc.com">Gunnar Gauslaa Bergem</a> - * @author Vidar Larsen - */ -public class VespaSpooler { - private final SpoolerConfig.Builder spoolConfig; - private final FeederConfig.Builder feederConfig; - - public VespaSpooler(FeederConfig.Builder feederConfig, SpoolerConfig.Builder spoolConfig) { - this.feederConfig = feederConfig; - this.spoolConfig = spoolConfig; - } - - public void getConfig(SpoolerConfig.Builder builder) { - ConfigInstanceUtil.setValues(builder, spoolConfig); - } - - public void getConfig(FeederConfig.Builder builder) { - ConfigInstanceUtil.setValues(builder, feederConfig); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerProducer.java deleted file mode 100644 index 3fae5389a94..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerProducer.java +++ /dev/null @@ -1,32 +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.clients; - -import com.yahoo.vespa.config.content.spooler.SpoolerConfig; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.vespaclient.config.FeederConfig; - -/** - * This model represents a config producer for spooler used for feeding documents to Vespa. - * - * @author <a href="mailto:gunnarga@yahoo-inc.com">Gunnar Gauslaa Bergem</a> - * @author Vidar Larsen - */ -public class VespaSpoolerProducer extends AbstractConfigProducer implements SpoolerConfig.Producer, FeederConfig.Producer { - private static final long serialVersionUID = 1L; - private VespaSpooler spoolerConfig; - - public VespaSpoolerProducer(AbstractConfigProducer parent, String configId, VespaSpooler spooler) { - super(parent, configId); - spoolerConfig = spooler; - } - - @Override - public void getConfig(SpoolerConfig.Builder builder) { - spoolerConfig.getConfig(builder); - } - - @Override - public void getConfig(FeederConfig.Builder builder) { - spoolerConfig.getConfig(builder); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerService.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerService.java deleted file mode 100644 index 378c85dc325..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerService.java +++ /dev/null @@ -1,41 +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.clients; - -import com.yahoo.vespa.config.content.spooler.SpoolerConfig; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.vespa.model.AbstractService; -import com.yahoo.vespaclient.config.FeederConfig; - -/** - * This model represents a spooler used for feeding documents to Vespa. - * - * @author <a href="mailto:gunnarga@yahoo-inc.com">Gunnar Gauslaa Bergem</a> - * @author Vidar Larsen - */ -public class VespaSpoolerService extends AbstractService implements SpoolerConfig.Producer, FeederConfig.Producer { - private static final long serialVersionUID = 1L; - private VespaSpooler spooler; - - public VespaSpoolerService(AbstractConfigProducer parent, int index, VespaSpooler spooler) { - super(parent, "spooler." + index); - this.spooler = spooler; - } - - public int getPortCount() { - return 0; - } - - public String getStartupCommand() { - return "exec vespaspooler "+ getJvmOptions(); - } - - @Override - public void getConfig(SpoolerConfig.Builder builder) { - spooler.getConfig(builder); - } - - @Override - public void getConfig(FeederConfig.Builder builder) { - spooler.getConfig(builder); - } -} 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 8d46eb3718f..b90f18d4f24 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 @@ -26,7 +26,6 @@ import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.container.jdisc.JdiscBindingsConfig; import com.yahoo.container.jdisc.config.HealthMonitorConfig; -import com.yahoo.container.jdisc.config.MetricDefaultsConfig; import com.yahoo.container.jdisc.jrt.DefaultJrtFactory; import com.yahoo.container.jdisc.messagebus.MbusServerProvider; import com.yahoo.container.jdisc.state.StateHandler; @@ -117,7 +116,6 @@ public final class ContainerCluster PageTemplatesConfig.Producer, SemanticRulesConfig.Producer, DocprocConfig.Producer, - MetricDefaultsConfig.Producer, ClusterInfoConfig.Producer, ServletPathsConfig.Producer, RoutingProviderConfig.Producer, @@ -140,7 +138,7 @@ public final class ContainerCluster public static final String BINDINGS_OVERVIEW_HANDLER_CLASS = BindingsOverviewHandler.class.getName(); public static final String STATE_HANDLER_CLASS = "com.yahoo.container.jdisc.state.StateHandler"; public static final String STATISTICS_HANDLER_CLASS = "com.yahoo.container.config.StatisticsRequestHandler"; - public static final String SIMPLE_LINGUISTICS_PROVIDER = "com.yahoo.language.provider.SimpleLinguisticsProvider"; + public static final String DEFAULT_LINGUISTICS_PROVIDER = "com.yahoo.language.provider.DefaultLinguisticsProvider"; public static final String CMS = "-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"; public static final String G1GC = "-XX:+UseG1GC -XX:MaxTenuringThreshold=15"; @@ -176,7 +174,6 @@ public final class ContainerCluster private final boolean isHostedVespa; private Map<String, String> concreteDocumentTypes = new LinkedHashMap<>(); - private MetricDefaultsConfig.Factory.Enum defaultMetricConsumerFactory; private ApplicationMetaData applicationMetaData = null; @@ -221,7 +218,7 @@ public final class ContainerCluster addSimpleComponent(ThreadPoolProvider.class); addSimpleComponent(com.yahoo.concurrent.classlock.ClassLocking.class); addSimpleComponent("com.yahoo.jdisc.http.filter.SecurityFilterInvoker"); - addSimpleComponent(SIMPLE_LINGUISTICS_PROVIDER); + addSimpleComponent(DEFAULT_LINGUISTICS_PROVIDER); addSimpleComponent("com.yahoo.container.jdisc.SecretStoreProvider"); addSimpleComponent("com.yahoo.container.jdisc.CertificateStoreProvider"); addSimpleComponent("com.yahoo.container.jdisc.metric.MetricConsumerProviderProvider"); @@ -232,7 +229,6 @@ public final class ContainerCluster addSimpleComponent(com.yahoo.metrics.simple.jdisc.JdiscMetricsFactory.class.getName(), null, MetricProperties.BUNDLE_SYMBOLIC_NAME); addSimpleComponent("com.yahoo.container.jdisc.state.StateMonitor"); addSimpleComponent("com.yahoo.container.jdisc.ContainerThreadFactory"); - addSimpleComponent("com.yahoo.container.protect.FreezeDetector"); addSimpleComponent("com.yahoo.container.handler.VipStatus"); addSimpleComponent(com.yahoo.container.handler.ClustersStatus.class.getName()); addSimpleComponent(DefaultJrtFactory.class); @@ -294,7 +290,6 @@ public final class ContainerCluster private void addJaxProviders() { addSimpleComponent(com.yahoo.container.xml.providers.DatatypeFactoryProvider.class); addSimpleComponent(com.yahoo.container.xml.providers.DocumentBuilderFactoryProvider.class); - addSimpleComponent(com.yahoo.container.xml.providers.JAXBContextFactoryProvider.class); addSimpleComponent(com.yahoo.container.xml.providers.SAXParserFactoryProvider.class); addSimpleComponent(com.yahoo.container.xml.providers.SchemaFactoryProvider.class); addSimpleComponent(com.yahoo.container.xml.providers.TransformerFactoryProvider.class); @@ -631,9 +626,6 @@ public final class ContainerCluster } else if (isHostedVespa()) { jvmBuilder.heapSizeAsPercentageOfPhysicalMemory(getHostClusterId().isPresent() ? 17 : 60); } - if (containerSearch!=null) { - jvmBuilder.directMemorySizeCache(containerSearch.totalCacheSizeMb()); - } if (jvmGCOptions != null) { jvmBuilder.gcopts(jvmGCOptions); } else { @@ -710,7 +702,7 @@ public final class ContainerCluster } public void addDefaultSearchAccessLog() { - addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.queryAccessLog, getName(), isHostedVespa)); + addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, getName(), isHostedVespa)); } @Override @@ -723,11 +715,6 @@ public final class ContainerCluster } @Override - public void getConfig(MetricDefaultsConfig.Builder builder) { - if (defaultMetricConsumerFactory != null) builder.factory(defaultMetricConsumerFactory); - } - - @Override public void getConfig(ClusterInfoConfig.Builder builder) { builder.clusterId(name); builder.nodeCount(containers.size()); @@ -764,11 +751,6 @@ public final class ContainerCluster return builders; } - public void setDefaultMetricConsumerFactory(MetricDefaultsConfig.Factory.Enum defaultMetricConsumerFactory) { - Objects.requireNonNull(defaultMetricConsumerFactory, "defaultMetricConsumerFactory"); - this.defaultMetricConsumerFactory = defaultMetricConsumerFactory; - } - public boolean isHostedVespa() { return isHostedVespa; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java index d9cb43c1850..009aa454ab3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java @@ -8,8 +8,6 @@ import com.yahoo.container.logging.JSONAccessLog; import com.yahoo.osgi.provider.model.ComponentModel; import edu.umd.cs.findbugs.annotations.Nullable; -import static com.yahoo.container.core.AccessLogConfig.FileHandler.RotateScheme; - /** * @author Tony Vaagenes * @author gjoranv @@ -20,7 +18,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL private final String fileNamePattern; private final String rotationInterval; - private final RotateScheme.Enum rotationScheme; private final Boolean compression; private final boolean isHostedVespa; private final String symlinkName; @@ -29,7 +26,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL { this(logType, String.format("logs/vespa/qrs/%s.%s.%s", capitalize(logType.name()), clusterName, "%Y%m%d%H%M%S"), - null, null, null, isHostedVespa, + null, null, isHostedVespa, capitalize(logType.name()) + "." + clusterName); } @@ -40,7 +37,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL public AccessLogComponent(AccessLogType logType, String fileNamePattern, String rotationInterval, - RotateScheme.Enum rotationScheme, Boolean compressOnRotation, boolean isHostedVespa, String symlinkName) @@ -48,7 +44,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL super(new ComponentModel(accessLogClass(logType), null, "container-core", null)); this.fileNamePattern = fileNamePattern; this.rotationInterval = rotationInterval; - this.rotationScheme = rotationScheme; this.compression = compressOnRotation; this.isHostedVespa = isHostedVespa; this.symlinkName = symlinkName; @@ -81,8 +76,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL builder.pattern(fileNamePattern); if (rotationInterval != null) builder.rotation(rotationInterval); - if (rotationScheme != null) - builder.rotateScheme(rotationScheme); if (symlinkName != null) builder.symlink(symlinkName); if (compression != null) { @@ -97,18 +90,4 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL public String getFileNamePattern() { return fileNamePattern; } - - public static final RotateScheme.Enum rotateScheme(@Nullable String name) { - if (name == null) - return null; - - switch (name) { - case "date": - return RotateScheme.Enum.DATE; - case "sequence": - return RotateScheme.Enum.SEQUENCE; - default: - throw new IllegalArgumentException("Invalid rotation scheme " + name); - } - } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ConnectorFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ConnectorFactory.java index a9d3ec0e5a2..73fc9c0cf41 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ConnectorFactory.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ConnectorFactory.java @@ -5,13 +5,10 @@ import com.yahoo.component.ComponentId; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.jdisc.http.ConnectorConfig; import com.yahoo.osgi.provider.model.ComponentModel; -import com.yahoo.text.XML; import com.yahoo.vespa.model.container.component.SimpleComponent; -import com.yahoo.vespa.model.container.http.ssl.LegacySslProvider; -import org.w3c.dom.Element; +import com.yahoo.vespa.model.container.http.ssl.DummySslProvider; import static com.yahoo.component.ComponentSpecification.fromString; -import static com.yahoo.jdisc.http.ConnectorConfig.Ssl.KeyStoreType; /** * @author Einar M R Rosenvinge @@ -22,16 +19,14 @@ public class ConnectorFactory extends SimpleComponent implements ConnectorConfig private final String name; private final int listenPort; - private final Element legacyConfig; private final SimpleComponent sslProviderComponent; public ConnectorFactory(String name, int listenPort) { - this(name, listenPort, null, new LegacySslProvider(name)); + this(name, listenPort, new DummySslProvider(name)); } public ConnectorFactory(String name, int listenPort, - Element legacyConfig, SimpleComponent sslProviderComponent) { super(new ComponentModel( new BundleInstantiationSpecification(new ComponentId(name), @@ -39,7 +34,6 @@ public class ConnectorFactory extends SimpleComponent implements ConnectorConfig fromString("jdisc_http_service")))); this.name = name; this.listenPort = listenPort; - this.legacyConfig = legacyConfig; this.sslProviderComponent = sslProviderComponent; addChild(sslProviderComponent); inject(sslProviderComponent); @@ -47,7 +41,6 @@ public class ConnectorFactory extends SimpleComponent implements ConnectorConfig @Override public void getConfig(ConnectorConfig.Builder connectorBuilder) { - configureWithLegacyHttpConfig(legacyConfig, connectorBuilder); connectorBuilder.listenPort(listenPort); connectorBuilder.name(name); ((ConnectorConfig.Producer)sslProviderComponent).getConfig(connectorBuilder); @@ -61,97 +54,4 @@ public class ConnectorFactory extends SimpleComponent implements ConnectorConfig return listenPort; } - // TODO Remove support for legacy config in Vespa 7 - @Deprecated - private static void configureWithLegacyHttpConfig(Element legacyConfig, ConnectorConfig.Builder connectorBuilder) { - if (legacyConfig != null) { - { - Element tcpKeepAliveEnabled = XML.getChild(legacyConfig, "tcpKeepAliveEnabled"); - if (tcpKeepAliveEnabled != null) { - connectorBuilder.tcpKeepAliveEnabled(Boolean.valueOf(XML.getValue(tcpKeepAliveEnabled).trim())); - } - } - { - Element tcpNoDelayEnabled = XML.getChild(legacyConfig, "tcpNoDelayEnabled"); - if (tcpNoDelayEnabled != null) { - connectorBuilder.tcpNoDelay(Boolean.valueOf(XML.getValue(tcpNoDelayEnabled).trim())); - } - } - { - Element tcpListenBacklogLength = XML.getChild(legacyConfig, "tcpListenBacklogLength"); - if (tcpListenBacklogLength != null) { - connectorBuilder.acceptQueueSize(Integer.parseInt(XML.getValue(tcpListenBacklogLength).trim())); - } - } - { - Element idleConnectionTimeout = XML.getChild(legacyConfig, "idleConnectionTimeout"); - if (idleConnectionTimeout != null) { - connectorBuilder.idleTimeout(Double.parseDouble(XML.getValue(idleConnectionTimeout).trim())); - } - } - { - Element soLinger = XML.getChild(legacyConfig, "soLinger"); - if (soLinger != null) { - - connectorBuilder.soLingerTime(Double.parseDouble(XML.getValue(soLinger).trim())); - } - } - { - Element sendBufferSize = XML.getChild(legacyConfig, "sendBufferSize"); - if (sendBufferSize != null) { - connectorBuilder.outputBufferSize(Integer.parseInt(XML.getValue(sendBufferSize).trim())); - } - } - { - Element maxHeaderSize = XML.getChild(legacyConfig, "maxHeaderSize"); - if (maxHeaderSize != null) { - connectorBuilder.headerCacheSize(Integer.parseInt(XML.getValue(maxHeaderSize).trim())); - } - } - - Element ssl = XML.getChild(legacyConfig, "ssl"); - Element sslEnabled = XML.getChild(ssl, "enabled"); - if (ssl != null && sslEnabled != null && Boolean.parseBoolean(XML.getValue(sslEnabled).trim())) { - ConnectorConfig.Ssl.Builder sslBuilder = new ConnectorConfig.Ssl.Builder(); - sslBuilder.enabled(true); - { - Element keyStoreType = XML.getChild(ssl, "keyStoreType"); - if (keyStoreType != null) { - sslBuilder.keyStoreType(KeyStoreType.Enum.valueOf(XML.getValue(keyStoreType).trim())); - } - } - { - Element keyStorePath = XML.getChild(ssl, "keyStorePath"); - if (keyStorePath != null) { - sslBuilder.keyStorePath(XML.getValue(keyStorePath).trim()); - } - } - { - Element trustStorePath = XML.getChild(ssl, "trustStorePath"); - if (trustStorePath != null) { - sslBuilder.trustStorePath(XML.getValue(trustStorePath).trim()); - } - } - { - Element keyDBKey = XML.getChild(ssl, "keyDBKey"); - if (keyDBKey != null) { - sslBuilder.keyDbKey(XML.getValue(keyDBKey).trim()); - } - } - { - Element algorithm = XML.getChild(ssl, "algorithm"); - if (algorithm != null) { - sslBuilder.sslKeyManagerFactoryAlgorithm(XML.getValue(algorithm).trim()); - } - } - { - Element protocol = XML.getChild(ssl, "protocol"); - if (protocol != null) { - sslBuilder.protocol(XML.getValue(protocol).trim()); - } - } - connectorBuilder.ssl(sslBuilder); - } - } - } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/Http.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/Http.java index 4eed3628bfd..9e85a889075 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/Http.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/Http.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.model.container.http; import com.yahoo.component.ComponentSpecification; import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.container.jdisc.config.HttpServerConfig; import com.yahoo.jdisc.http.ServerConfig; import com.yahoo.vespa.model.container.component.chain.Chain; import com.yahoo.vespa.model.container.component.chain.ChainedComponent; @@ -19,8 +18,7 @@ import java.util.Optional; * * @author Tony Vaagenes */ -public class Http extends AbstractConfigProducer<AbstractConfigProducer<?>> - implements HttpServerConfig.Producer, ServerConfig.Producer { +public class Http extends AbstractConfigProducer<AbstractConfigProducer<?>> implements ServerConfig.Producer { public static class Binding { public final ComponentSpecification filterId; @@ -89,12 +87,6 @@ public class Http extends AbstractConfigProducer<AbstractConfigProducer<?>> } @Override - public void getConfig(HttpServerConfig.Builder builder) { - for (Binding binding: bindings) - builder.filter(filterBindings(binding)); - } - - @Override public void getConfig(ServerConfig.Builder builder) { for (final Binding binding : bindings) { builder.filter( @@ -104,14 +96,6 @@ public class Http extends AbstractConfigProducer<AbstractConfigProducer<?>> } } - static HttpServerConfig.Filter.Builder filterBindings(Binding binding) { - HttpServerConfig.Filter.Builder builder = new HttpServerConfig.Filter.Builder(); - builder.id(binding.filterId.stringValue()). - binding(binding.binding); - return builder; - } - - @Override public void validate() throws Exception { validate(bindings); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/LegacySslProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DummySslProvider.java index 7ab553c45b9..4e2ee61f33f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/LegacySslProvider.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/DummySslProvider.java @@ -4,25 +4,22 @@ package com.yahoo.vespa.model.container.http.ssl; import com.yahoo.component.ComponentId; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.jdisc.http.ConnectorConfig; -import com.yahoo.jdisc.http.ssl.SslContextFactoryProvider; -import com.yahoo.jdisc.http.ssl.impl.LegacySslContextFactoryProvider; +import com.yahoo.jdisc.http.ssl.ThrowingSslContextFactoryProvider; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.component.SimpleComponent; import static com.yahoo.component.ComponentSpecification.fromString; /** - * Provides a legacy implementation of {@link SslContextFactoryProvider} to be injected into non-ssl connectors and connectors using legacy ssl config override - * * @author bjorncs */ -public class LegacySslProvider extends SimpleComponent implements ConnectorConfig.Producer { +public class DummySslProvider extends SimpleComponent implements ConnectorConfig.Producer { - public static final String COMPONENT_ID_PREFIX = "legacy-ssl-provider@"; - public static final String COMPONENT_CLASS = LegacySslContextFactoryProvider.class.getName(); + public static final String COMPONENT_ID_PREFIX = "dummy-ssl-provider@"; + public static final String COMPONENT_CLASS = ThrowingSslContextFactoryProvider.class.getName(); public static final String COMPONENT_BUNDLE = "jdisc_http_service"; - public LegacySslProvider(String serverName) { + public DummySslProvider(String serverName) { super(new ComponentModel( new BundleInstantiationSpecification(new ComponentId(COMPONENT_ID_PREFIX + serverName), fromString(COMPONENT_CLASS), @@ -30,7 +27,5 @@ public class LegacySslProvider extends SimpleComponent implements ConnectorConfi } @Override - public void getConfig(ConnectorConfig.Builder builder) { - - } -} + public void getConfig(ConnectorConfig.Builder builder) {} +}
\ No newline at end of file diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java index 02840ff380b..4c41aaa504c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java @@ -10,37 +10,24 @@ import com.yahoo.vespa.model.container.component.SimpleComponent; import com.yahoo.vespa.model.container.http.ConnectorFactory; import com.yahoo.vespa.model.container.http.ssl.CustomSslProvider; import com.yahoo.vespa.model.container.http.ssl.DefaultSslProvider; -import com.yahoo.vespa.model.container.http.ssl.LegacySslProvider; +import com.yahoo.vespa.model.container.http.ssl.DummySslProvider; import org.w3c.dom.Element; import java.util.Optional; -import java.util.logging.Level; -import java.util.logging.Logger; /** * @author Einar M R Rosenvinge * @author mortent */ public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ConnectorFactory> { - private static final Logger log = Logger.getLogger(JettyConnectorBuilder.class.getName()); @Override protected ConnectorFactory doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element serverSpec) { String name = XmlHelper.getIdString(serverSpec); int port = HttpBuilder.readPort(serverSpec, deployState.isHosted(), deployState.getDeployLogger()); - Element legacyServerConfig = XML.getChild(serverSpec, "config"); - if (legacyServerConfig != null) { - String configName = legacyServerConfig.getAttribute("name"); - if (configName.equals("container.jdisc.config.http-server")) { - deployState.getDeployLogger().log(Level.WARNING, "The config 'container.jdisc.config.http-server' is deprecated and will be removed in a later version of Vespa." - + " Please use 'jdisc.http.connector' instead, see http://docs.vespa.ai/documentation/jdisc/http-server-and-filters.html#configuring-jetty-server"); - } else { - legacyServerConfig = null; - } - } SimpleComponent sslProviderComponent = getSslConfigComponents(name, serverSpec); - return new ConnectorFactory(name, port, legacyServerConfig, sslProviderComponent); + return new ConnectorFactory(name, port, sslProviderComponent); } SimpleComponent getSslConfigComponents(String serverName, Element serverSpec) { @@ -63,7 +50,7 @@ public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuil String bundle = sslProviderConfigurator.getAttribute("bundle"); return new CustomSslProvider(serverName, className, bundle); } else { - return new LegacySslProvider(serverName); + return new DummySslProvider(serverName); } } } 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 3a7b7864554..6c537e359d1 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 @@ -8,7 +8,6 @@ import com.yahoo.prelude.semantics.SemanticRulesConfig; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.container.component.ContainerSubsystem; -import com.yahoo.vespa.model.container.search.searchchain.HttpProvider; import com.yahoo.vespa.model.container.search.searchchain.LocalProvider; import com.yahoo.vespa.model.container.search.searchchain.SearchChains; import com.yahoo.search.config.IndexInfoConfig; @@ -110,18 +109,6 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> if (pageTemplates!=null) pageTemplates.getConfig(builder); } - public int totalCacheSizeMb() { - return totalHttpProviderCacheSize(); - } - - private int totalHttpProviderCacheSize() { - int totalCacheSizeMb = 0; - for (HttpProvider provider: getChains().httpProviders()) - totalCacheSizeMb += provider.cacheSizeMB(); - - return totalCacheSizeMb; - } - @Override public void getConfig(IndexInfoConfig.Builder builder) { for (AbstractSearchCluster sc : systems) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/GenericProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/GenericProvider.java new file mode 100644 index 00000000000..a82d2da2a6b --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/GenericProvider.java @@ -0,0 +1,27 @@ +// 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.search.searchchain; + +import com.yahoo.component.chain.model.ChainSpecification; +import com.yahoo.search.federation.ProviderConfig; +import com.yahoo.search.searchchain.model.federation.FederationOptions; + +/** + * A generic provider, used when no type is given. + * + * @author Tony Vaagenes + */ +public class GenericProvider extends Provider implements ProviderConfig.Producer { + + /* + * Config producer for the contained http searcher.. + */ + @SuppressWarnings("deprecation") + public GenericProvider(ChainSpecification specWithoutInnerSearchers, FederationOptions federationOptions) { + super(specWithoutInnerSearchers, federationOptions); + } + + @Override + public void getConfig(ProviderConfig.Builder builder) { + } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProvider.java deleted file mode 100644 index 62b2f2ccbc6..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProvider.java +++ /dev/null @@ -1,102 +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.search.searchchain; - -import com.yahoo.binaryprefix.BinaryPrefix; -import com.yahoo.binaryprefix.BinaryScaledAmount; -import com.yahoo.component.chain.model.ChainSpecification; -import com.yahoo.search.cache.QrBinaryCacheConfig; -import com.yahoo.search.cache.QrBinaryCacheRegionConfig; -import com.yahoo.search.federation.ProviderConfig; -import com.yahoo.search.searchchain.model.federation.FederationOptions; - -import java.util.ArrayList; -import java.util.List; - -import static com.yahoo.search.federation.ProviderConfig.Node; -import static com.yahoo.search.federation.ProviderConfig.Yca; - - -/** - * A provider containing a http searcher. - * - * @author Tony Vaagenes - */ -public class HttpProvider extends Provider implements ProviderConfig.Producer, - QrBinaryCacheConfig.Producer, - QrBinaryCacheRegionConfig.Producer { - - @SuppressWarnings("deprecation") - private final com.yahoo.search.searchchain.model.federation.HttpProviderSpec providerSpec; - - /* - * Config producer for the contained http searcher.. - */ - @SuppressWarnings("deprecation") - public HttpProvider(ChainSpecification specWithoutInnerSearchers, FederationOptions federationOptions, com.yahoo.search.searchchain.model.federation.HttpProviderSpec providerSpec) { - super(specWithoutInnerSearchers, federationOptions); - this.providerSpec = providerSpec; - } - - @Override - public void getConfig(ProviderConfig.Builder builder) { - if (providerSpec.path != null) - builder.path(providerSpec.path); - if (providerSpec.connectionParameters.readTimeout != null) - builder.readTimeout(providerSpec.connectionParameters.readTimeout ); - if (providerSpec.connectionParameters.connectionTimeout != null) - builder.connectionTimeout(providerSpec.connectionParameters.connectionTimeout); - if (providerSpec.connectionParameters.connectionPoolTimeout != null) - builder.connectionPoolTimeout(providerSpec.connectionParameters.connectionPoolTimeout); - if (providerSpec.connectionParameters.retries != null) - builder.retries(providerSpec.connectionParameters.retries); - - builder.node(getNodes(providerSpec.nodes)); - - if (providerSpec.ycaApplicationId != null) { - builder.yca(getCertificate(providerSpec)); - } - } - - @SuppressWarnings("deprecation") - private static Yca.Builder getCertificate(com.yahoo.search.searchchain.model.federation.HttpProviderSpec providerSpec) { - Yca.Builder certificate = new Yca.Builder() - .applicationId(providerSpec.ycaApplicationId); - - if (providerSpec.ycaProxy != null) { - certificate.useProxy(true); - if (providerSpec.ycaProxy.host != null) { - certificate.host(providerSpec.ycaProxy.host) - .port(providerSpec.ycaProxy.port); - } - } - if (providerSpec.ycaCertificateTtl != null) certificate.ttl(providerSpec.ycaCertificateTtl); - if (providerSpec.ycaRetryWait != null) certificate.ttl(providerSpec.ycaRetryWait); - return certificate; - } - - @SuppressWarnings("deprecation") - private static List<Node.Builder> getNodes(List<com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Node> nodeSpecs) { - ArrayList<Node.Builder> nodes = new ArrayList<>(); - for (com.yahoo.search.searchchain.model.federation.HttpProviderSpec.Node node : nodeSpecs) { - nodes.add( - new Node.Builder() - .host(node.host) - .port(node.port)); - } - return nodes; - } - - public int cacheSizeMB() { - return providerSpec.cacheSizeMB != null ? providerSpec.cacheSizeMB : 0; - } - - @Override - public void getConfig(QrBinaryCacheConfig.Builder builder) { - builder.cache_size(cacheSizeMB()); - } - - @Override - public void getConfig(QrBinaryCacheRegionConfig.Builder builder) { - builder.region_size(cacheSizeMB()); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProviderSearcher.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProviderSearcher.java deleted file mode 100644 index 8c74496c895..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/HttpProviderSearcher.java +++ /dev/null @@ -1,19 +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.search.searchchain; - -import com.yahoo.component.chain.model.ChainedComponentModel; - -/** - * @author Tony Vaagenes - * @deprecated - */ -// TODO: Remove on Vespa 7 -@Deprecated -public class HttpProviderSearcher extends Searcher<ChainedComponentModel> { - - public HttpProviderSearcher(ChainedComponentModel model) { - super(model); - } - - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java index 42d81e19496..24ff885f131 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java @@ -74,11 +74,6 @@ public class SearchChains extends Chains<SearchChain> { return CollectionUtil.filter(allChains().allComponents(), LocalProvider.class); } - - public Collection<HttpProvider> httpProviders() { - return CollectionUtil.filter(allChains().allComponents(), HttpProvider.class); - } - /* * If searchChain is a provider, its sources must already have been attached. */ diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java index ddea1a189bc..0eb34ead7bf 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java @@ -59,7 +59,6 @@ public class AccessLogBuilder { accessLogType, fileNamePattern(spec), rotationInterval(spec), - rotationScheme(spec), compressOnRotation(spec), isHostedVespa, symlinkName(spec)); @@ -74,10 +73,6 @@ public class AccessLogBuilder { return (compress.isEmpty() ? null : Boolean.parseBoolean(compress)); } - private AccessLogConfig.FileHandler.RotateScheme.Enum rotationScheme(Element spec) { - return AccessLogComponent.rotateScheme(nullIfEmpty(spec.getAttribute("rotationScheme"))); - } - private String rotationInterval(Element spec) { return nullIfEmpty(spec.getAttribute("rotationInterval")); } @@ -106,7 +101,7 @@ public class AccessLogBuilder { AccessLogTypeLiteral typeLiteral = getOptionalAttribute(accessLogSpec, "type"). map(AccessLogTypeLiteral::fromAttributeValue). - orElse(AccessLogTypeLiteral.VESPA); + orElse(AccessLogTypeLiteral.JSON); AccessLogType logType = logTypeFor(typeLiteral); if (logType == null) { return Optional.empty(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleMapper.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleMapper.java index 13dfc3ae745..11d467a61d5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleMapper.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/BundleMapper.java @@ -57,7 +57,6 @@ public class BundleMapper { bundleFromClass.put("com.yahoo.prelude.fastsearch.VespaBackEndSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.CJKSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.CollapsePhraseSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.prelude.querytransform.IndexCombinatorSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.LiteralBoostSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.NoRankingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.NonPhrasingSearcher", searchAndDocprocBundle); @@ -66,15 +65,12 @@ public class BundleMapper { bundleFromClass.put("com.yahoo.prelude.querytransform.RecallSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.querytransform.StemmingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.BlendingSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.prelude.searcher.DocumentSourceSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.FieldCollapsingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.FillSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.JSONDebugSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.JuniperSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.MultipleResultsSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.PosSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.prelude.searcher.QuerySnapshotSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.prelude.searcher.QueryValidatingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.QuotingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.searcher.ValidateSortingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.prelude.semantics.SemanticSearcher", searchAndDocprocBundle); @@ -110,10 +106,8 @@ public class BundleMapper { bundleFromClass.put("com.yahoo.search.query.rewrite.rewriters.NameRewriter", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.querytransform.AllLowercasingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.querytransform.DefaultPositionSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.search.querytransform.LegacyCombinator", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.querytransform.LowercasingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.querytransform.NGramSearcher", searchAndDocprocBundle); - bundleFromClass.put("com.yahoo.search.querytransform.QueryCombinator", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.querytransform.VespaLowercasingSearcher", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.rendering.Renderer", searchAndDocprocBundle); bundleFromClass.put("com.yahoo.search.rendering.SectionedRenderer", searchAndDocprocBundle); 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 b5c1b1e1496..4401bfa08dd 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 @@ -25,7 +25,6 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Rotation; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; -import com.yahoo.container.jdisc.config.MetricDefaultsConfig; import com.yahoo.search.rendering.RendererRegistry; import com.yahoo.searchdefinition.derived.RankProfileList; import com.yahoo.text.XML; @@ -174,7 +173,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addDefaultHandlers(cluster); addStatusHandlers(cluster, context); - setDefaultMetricConsumerFactory(cluster); addHttp(deployState, spec, cluster); @@ -184,7 +182,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addClientProviders(deployState, spec, cluster); addServerProviders(deployState, spec, cluster); - addLegacyFilters(deployState, spec, cluster); // TODO: Remove for Vespa 7 addAthensCopperArgos(cluster, context); // Must be added after nodes. } @@ -256,10 +253,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addConfiguredComponents(deployState, cluster, spec, "component"); } - private void setDefaultMetricConsumerFactory(ContainerCluster cluster) { - cluster.setDefaultMetricConsumerFactory(MetricDefaultsConfig.Factory.Enum.STATE_MONITOR); - } - private void addDefaultHandlers(ContainerCluster cluster) { addDefaultHandlersExceptStatus(cluster); } @@ -301,21 +294,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addConfiguredComponents(deployState, cluster, spec, "server"); } - private void addLegacyFilters(DeployState deployState, Element spec, ContainerCluster cluster) { - for (Component component : buildLegacyFilters(deployState, cluster, spec)) { - cluster.addComponent(component); - } - } - - private List<Component> buildLegacyFilters(DeployState deployState, AbstractConfigProducer ancestor, Element spec) { - List<Component> components = new ArrayList<>(); - - for (Element node : XML.getChildren(spec, "filter")) { - components.add(new DomFilterBuilder().build(deployState, ancestor, node)); - } - return components; - } - private void addAccessLogs(DeployState deployState, ContainerCluster cluster, Element spec) { List<Element> accessLogElements = getAccessLogElements(spec); @@ -464,7 +442,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { } else if ((zone.system() == SystemName.dev) || isHostedVespa) { return null; } else { - return ContainerCluster.CMS; + return ContainerCluster.G1GC; } } private static String getJvmOptions(ContainerCluster cluster, Element nodesElement, DeployLogger deployLogger) { @@ -480,7 +458,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { jvmOptions = nodesElement.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME); if (incompatibleGCOptions(jvmOptions)) { deployLogger.log(Level.WARNING, "You need to move out your GC related options from 'jvmargs' to 'jvm-gc-options'"); - cluster.setJvmGCOptions(ContainerCluster.CMS); + cluster.setJvmGCOptions(ContainerCluster.G1GC); } } return jvmOptions; @@ -849,7 +827,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { /** - * Disallow renderers named "DefaultRenderer" or "JsonRenderer" + * Disallow renderers named "XmlRenderer" or "JsonRenderer" */ private static void validateRendererElement(Element element) { String idAttr = element.getAttribute("id"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java index 8d0824f89e5..79619ac0c1f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java @@ -238,10 +238,8 @@ public class Content extends ConfigModel { IndexedSearchCluster indexedSearchCluster = content.getCluster().getSearch().getIndexed(); if (indexedSearchCluster.hasExplicitIndexingCluster()) { setExistingIndexingCluster(indexedSearchCluster, content.containers); - } else if (content.isHosted) { - setContainerAsIndexingCluster(indexedSearchCluster, content, modelContext, root); } else { - createImplicitIndexingCluster(indexedSearchCluster, content, modelContext, root); + setContainerAsIndexingCluster(indexedSearchCluster, content, modelContext, root); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java index fb3af7f3652..67e33d7b87a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java @@ -716,17 +716,6 @@ public class ContentCluster extends AbstractConfigProducer implements addedmetrics("*"). removedtags("thread"). tags("disk")); - - Map<String, MetricsConsumer> consumers = getRoot().getAdmin().getLegacyUserMetricsConsumers(); - if (consumers != null) { - for (Map.Entry<String, MetricsConsumer> e : consumers.entrySet()) { - MetricsmanagerConfig.Consumer.Builder b = getMetricBuilder(e.getKey(), builder); - for (Metric m : e.getValue().getMetrics().values()) { - b.addedmetrics(m.name); - } - } - } - } private static final String DEFAULT_BUCKET_SPACE = "default"; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/package-info.java b/config-model/src/main/java/com/yahoo/vespa/model/package-info.java index e5f76dd398e..f88eda4e7a2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/package-info.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/package-info.java @@ -99,7 +99,7 @@ com.yahoo.config.model.producer.AbstractConfigProducer </p> - <h3><a name="plugin_loading">Plugin Loading</a></h3> + <h3 id="plugin_loading">Plugin Loading</h3> <p>Each highest-level node in the setup file from the user's application specification corresponds to a {@link @@ -138,7 +138,7 @@ com.yahoo.config.model.producer.AbstractConfigProducer </ul> - <h3><a name="port_allocation">Port Allocation</a></h3> + <h3 id="port_allocation">Port Allocation</h3> <p>Each {@link com.yahoo.vespa.model.Host Host} has an available dynamic port range running from {@link diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java index 2e3c0681f75..8e8192b74fa 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java @@ -282,14 +282,12 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P public static class LogStore { public Long maxFileSize = null; - public Integer numThreads = null; public Component chunk = null; public Double minFileSizeFactor = null; public void getConfig(ProtonConfig.Summary.Log.Builder log) { if (maxFileSize!=null) log.maxfilesize(maxFileSize); if (minFileSizeFactor!=null) log.minfilesizefactor(minFileSizeFactor); - if (numThreads != null) log.numthreads(numThreads); if (chunk != null) { chunk.getConfig(log.chunk); } diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj index 66fa308f32f..883dfc7ac72 100644 --- a/config-model/src/main/javacc/SDParser.jj +++ b/config-model/src/main/javacc/SDParser.jj @@ -114,7 +114,7 @@ public class SDParser { */ @SuppressWarnings("deprecation") private IndexingOperation newIndexingOperation(boolean multiline) throws ParseException { - return newIndexingOperation(multiline, new SimpleLinguistics(false)); + return newIndexingOperation(multiline, new SimpleLinguistics()); } /** @@ -221,7 +221,6 @@ TOKEN : | < WEIGHT: "weight" > | < TYPE: "type" > | < INDEX: "index" > -| < RISE: "rise" > | < MTOKEN: "token" > | < TEXT: "text" > | < WORD: "word" > @@ -298,8 +297,6 @@ TOKEN : | < MUTABLE: "mutable" > | < FASTSEARCH: "fast-search" > | < HUGE: "huge" > -| < PREFETCH: "prefetch" > -| < NOPREFETCH: "no-prefetch" > | < TENSOR_TYPE: "tensor(" (~["(",")"])+ ")" > | < TENSOR_VALUE_SL: "value" (" ")* ":" (" ")* ("{"<BRACE_SL_LEVEL_1>) ("\n")? > | < TENSOR_VALUE_ML: "value" (<SEARCHLIB_SKIP>)? "{" (["\n"," "])* ("{"<BRACE_ML_LEVEL_1>) (["\n"," "])* "}" ("\n")? > @@ -360,8 +357,7 @@ TOKEN : | < CONSTANTS: "constants" > | < FILE: "file" > | < URI: "uri" > -| < IDENTIFIER: ["a"-"z","A"-"Z", "_"] (["a"-"z","A"-"Z","0"-"9","_"])* > -| < IDENTIFIER_WITH_DASH: ["a"-"z","A"-"Z", "_"] (["a"-"z","A"-"Z","0"-"9","_","-"])* > +| < IDENTIFIER: ["a"-"z","A"-"Z", "_"] (["a"-"z","A"-"Z","0"-"9","_","-"])* > | < QUOTEDSTRING: "\"" ( ~["\""] )* "\"" > | < CONTEXT: ["a"-"z","A"-"Z"] (["a"-"z", "A"-"Z", "0"-"9"])* > | < DOUBLE: ("-")? (["0"-"9"])+ "." (["0"-"9"])+ > @@ -419,7 +415,10 @@ Search rootSearch(String dir) : Search search; } { - ( <SEARCH> name = identifier() { search = new Search(name, app); + ( <SEARCH> name = identifier() { if (!name.matches("[a-zA-Z_][a-zA-Z_:0-9]*")) { + deployLogger.log(Level.WARNING, name + " can not be used in YQL+ expressions."); + } + search = new Search(name, app); rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry)); rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry));} lbrace() (rootSearchItem(search) (<NL>)*)* <RBRACE> (<NL>)* <EOF>) @@ -670,15 +669,14 @@ void fieldSetItem(String setName, Search search) : ( <FIELDS><COLON> field=identifier() { search.fieldSets().addUserFieldSetItem(setName, field); } ( <COMMA> field=identifier() { search.fieldSets().addUserFieldSetItem(setName, field); } )* ) | - ( <QUERYCOMMAND> <COLON> (queryCommand = identifierWithDash() | queryCommand = quotedString())) { search.fieldSets().userFieldSets().get(setName).queryCommands().add(queryCommand);} + ( <QUERYCOMMAND> <COLON> (queryCommand = identifier() | queryCommand = quotedString())) { search.fieldSets().userFieldSets().get(setName).queryCommands().add(queryCommand);} | ( match(matchSettings) ) { matchSettings.applyOperations(); search.fieldSets().userFieldSets().get(setName).setMatching(matchSettings.getMatching());} } /** * This rule consumes a annotation block from within either a document element or a search element. - - * @param search the search object to add content to. + * @param search The search object to add content to. */ void annotationOutside(Search search) : { @@ -700,7 +698,6 @@ void annotationOutside(Search search) : /** * This rule consumes a annotation block from within either a document element. - * * @param document The document object to add content to. */ void annotation(Search search, SDDocumentType document) : @@ -1186,7 +1183,7 @@ Object sortingSetting(SortingOperation sorting, String attributeName) : | <QUATERNARY> { sorting.setStrength(Sorting.Strength.QUATERNARY); } | <IDENTICAL> { sorting.setStrength(Sorting.Strength.IDENTICAL); } ) - | <LOCALE> <COLON> locale = identifierWithDash() { sorting.setLocale(locale); } + | <LOCALE> <COLON> locale = identifier() { sorting.setLocale(locale); } ) { return null; } } @@ -1209,15 +1206,6 @@ Object attributeSetting(FieldOperationContainer field, AttributeOperation attrib | <MUTABLE> { attribute.setMutable(true); } | <ENABLEBITVECTORS> { attribute.setEnableBitVectors(true); } | <ENABLEONLYBITVECTOR> { attribute.setEnableOnlyBitVector(true); } - - | <NOPREFETCH> { - deployLogger.log(Level.WARNING, field + ": 'attribute : no-prefetch' is deprecated and has no effect."); - attribute.setPrefetch(false); - } - | <PREFETCH> { - deployLogger.log(Level.WARNING, field + ": 'attribute : prefetch' is deprecated and has no effect."); - attribute.setPrefetch(true); - } | sorting(field, attributeName) | <ALIAS> { String alias; String aliasedName=attributeName; } [aliasedName = identifier()] <COLON> alias = identifier() { attribute.setDoAlias(true); @@ -1438,7 +1426,7 @@ void summaryProperty(SummaryInFieldLongOperation field) : String name, value; } { - name = identifierWithDash() <COLON> (value = identifierWithDash() | value = quotedString()) + name = identifier() <COLON> (value = identifier() | value = quotedString()) { field.addProperty(new SummaryField.Property(name, value)); } } @@ -1453,7 +1441,7 @@ void fieldStemming(FieldOperationContainer field) : StemmingOperation op = new StemmingOperation(); } { - <STEMMING> <COLON> setting = identifierWithDash() + <STEMMING> <COLON> setting = identifier() { op.setSetting(setting); field.addOperation(op); @@ -1470,7 +1458,7 @@ void searchStemming(Search search) : String setting; } { - <STEMMING> <COLON> setting = identifierWithDash() + <STEMMING> <COLON> setting = identifier() { search.setStemming(Stemming.get(setting)); } } @@ -1485,7 +1473,7 @@ void normalizing(FieldOperationContainer field) : String setting; } { - <NORMALIZING> <COLON> setting = identifierWithDash() + <NORMALIZING> <COLON> setting = identifier() { field.addOperation(new NormalizingOperation(setting)); } @@ -1517,8 +1505,6 @@ void body(SDField field) : { } <BODY> { deployLogger.log(Level.WARNING, field + ": 'header/body' is deprecated and has no effect."); - field.setHeader(false); - field.setHeaderOrBodyDefined(true); } } @@ -1532,8 +1518,6 @@ void header(SDField field) : { } <HEADER> { deployLogger.log(Level.WARNING, field + ": 'header/body' is deprecated and has no effect."); - field.setHeader(true); - field.setHeaderOrBodyDefined(true); } } @@ -1543,7 +1527,7 @@ void queryCommand(FieldOperationContainer container) : QueryCommandOperation field = new QueryCommandOperation(); } { - <QUERYCOMMAND> <COLON> command = identifierWithDash() + <QUERYCOMMAND> <COLON> command = identifier() { field.addQueryCommand(command); container.addOperation(field); @@ -1556,7 +1540,7 @@ void alias(FieldOperationContainer container) : String alias; } { - <ALIAS> [aliasedName = identifier()] <COLON> alias = identifierWithDash() + <ALIAS> [aliasedName = identifier()] <COLON> alias = identifier() { AliasOperation op = new AliasOperation(aliasedName, alias); container.addOperation(op); @@ -1715,8 +1699,7 @@ Object documentSummary(Search search) : DocumentSummary summary; } { - ( ( <DOCUMENTSUMMARY> | - <SUMMARY> { deployLogger.log(Level.WARNING, "Directive 'summary' is deprecated, use 'document-summary' instead."); } ) // TODO: Remove on Vespa 7 + ( <DOCUMENTSUMMARY> name = identifier() { search.addSummary(summary = new DocumentSummary(name)); } lbrace() ( @@ -1790,14 +1773,9 @@ Object indexBody(IndexOperation index) : double threshold; } { - ( <PREFIX> { index.setPrefix(true); } - | <ALIAS> <COLON> str = identifierWithDash() { index.addAlias(str); } - | <STEMMING> <COLON> str = identifierWithDash() { index.setStemming(str); } - | <RISE> { - if (true) throw new ParseException("'index:rise' is no longer an option. Use 'indexing:attribute' instead. " + - "If it is a weighted set field you should also add 'attribute:fast-search'." + - "This change will require refeeding."); - } + ( <PREFIX> { index.setPrefix(true); } + | <ALIAS> <COLON> str = identifier() { index.addAlias(str); } + | <STEMMING> <COLON> str = identifier() { index.setStemming(str); } | <ARITY> <COLON> arity = integer() { index.setArity(arity); } | <LOWERBOUND> <COLON> num = consumeLong() { index.setLowerBound(num); } | <UPPERBOUND> <COLON> num = consumeLong() { index.setUpperBound(num); } @@ -1877,7 +1855,7 @@ void rankProfile(Search search) : RankProfile profile; } { - ( <RANKPROFILE> name = identifierWithDash() + ( <RANKPROFILE> name = identifier() { if (documentsOnly) { profile = new DocumentsOnlyRankProfile(name, search, rankProfileRegistry); @@ -1934,7 +1912,7 @@ void inheritsRankProfile(RankProfile profile) : String str; } { - <INHERITS> str = identifierWithDash() + <INHERITS> str = identifier() { profile.setInherited(str); } } @@ -2233,9 +2211,9 @@ String rankPropertyItem() : String image, ret = ""; } { - ( ( image = identifierWithDash() { ret += image; } - | image = quotedString() { ret += image; } - | ( "(" | ")" | <DOT> | <COMMA> ) { ret += token.image; } )+ ) + ( ( image = identifier() { ret += image; } + | image = quotedString() { ret += image; } + | ( "(" | ")" | <DOT> | <COMMA> ) { ret += token.image; } )+ ) { return ret; } } @@ -2476,16 +2454,6 @@ String expression() : { return exp; } } -String identifierWithDash() : -{ - String identifier; -} -{ - ( identifier = identifier() { return identifier; } ) - | - ( <IDENTIFIER_WITH_DASH> { return token.image; } ) -} - /** * This rule consumes an identifier. This must be kept in sync with all word tokens that should be parseable as * identifiers. @@ -2561,14 +2529,12 @@ String identifier() : { } | <MUTABLE> | <NEVER> | <NONE> - | <NOPREFETCH> | <NORMAL> | <NORMALIZING> | <OFF> | <ON> | <ONDEMAND> | <ORDER> - | <PREFETCH> | <PREFIX> | <PRIMARY> | <PROPERTIES> @@ -2583,7 +2549,6 @@ String identifier() : { } | <REFERENCE> | <REMOVEIFZERO> | <RERANKCOUNT> - | <RISE> | <SEARCH> | <SECONDARY> | <SECONDPHASE> diff --git a/config-model/src/main/resources/schema/.gitignore b/config-model/src/main/resources/schema/.gitignore index b60c856f91a..e8bf39e2289 100644 --- a/config-model/src/main/resources/schema/.gitignore +++ b/config-model/src/main/resources/schema/.gitignore @@ -1,2 +1,2 @@ -*.rng *.xsd +*.rng diff --git a/config-model/src/main/resources/schema/admin.rnc b/config-model/src/main/resources/schema/admin.rnc index 37cd6476399..3729f3ab57c 100644 --- a/config-model/src/main/resources/schema/admin.rnc +++ b/config-model/src/main/resources/schema/admin.rnc @@ -10,8 +10,8 @@ AdminV2 = (ConfigServer | ConfigServers)? & FileDistribution? & AdminSlobroks? & - (LegacyAdminMonitoring | AdminMonitoring)? & - (LegacyMetricConsumers | Metrics)? & + AdminMonitoring? & + Metrics? & ClusterControllers? & LogForwarding? } @@ -29,8 +29,8 @@ AdminV4 = AdminV4Slobroks? & AdminV4LogServers? & GenericConfig* & - (LegacyAdminMonitoring | AdminMonitoring)? & - (LegacyMetricConsumers | Metrics)? & + AdminMonitoring? & + Metrics? & LogForwarding? } @@ -58,14 +58,6 @@ AdminMonitoring = attribute systemname { xsd:string }? } -# TODO: Alternative name for the 'monitoring' tag. Remove on Vespa 7 -LegacyAdminMonitoring = - element yamas { - attribute interval { xsd:int }?, - attribute systemname { xsd:string }? - } - - ConfigServer = element configserver { service.attlist } @@ -94,17 +86,6 @@ Metrics = element metrics { }+ } -# TODO: Remove on Vespa 7 -LegacyMetricConsumers = element metric-consumers { - element consumer { - attribute name { xsd:string { pattern = "[a-zA-Z][_a-zA-Z0-9]*" } }& - element metric { - attribute name{xsd:Name} & - attribute output-name{xsd:Name}? - }+ - }+ -} - ClusterControllers = element cluster-controllers { attribute standalone-zookeeper { xsd:string }? & element cluster-controller { diff --git a/config-model/src/main/resources/schema/clients-v2.rnc b/config-model/src/main/resources/schema/clients-v2.rnc index 1076d332dd5..5e50135edee 100644 --- a/config-model/src/main/resources/schema/clients-v2.rnc +++ b/config-model/src/main/resources/schema/clients-v2.rnc @@ -1,8 +1,7 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. Clients20 = attribute version { "2.0" } & - LoadTypes? & - Spoolers20? + LoadTypes? LoadTypes = element load-types { element type { @@ -11,38 +10,6 @@ LoadTypes = element load-types { }* } -Spoolers20 = element spoolers { - attribute jvmargs { text }? & - SpoolMaster20* & - FeederOptions20? & - Spooler20+ -} - -Spooler20 = element spooler { - service.attlist? & - attribute id { xsd:string }? & - attribute directory { xsd:string }? & - attribute keepsuccess { xsd:boolean }? & - attribute maxfailuresize { xsd:integer }? & - attribute maxfatalfailuresize { xsd:integer }? & - attribute threads { xsd:integer }? & - attribute maxretries { xsd:integer }? & - FeederOptionsOpts20? & - element parsers { - element parser { - attribute type { text } & - element parameter { - attribute key { xsd:string { minLength = "1" } } & - attribute value { xsd:string { minLength = "1" } } - }* - }+ - }? -} - -SpoolMaster20 = element spoolmaster { - service.attlist? -} - FeederOptions20 = element feederoptions { FeederOptionsOpts20 & DocProcChain? diff --git a/config-model/src/main/resources/schema/containercluster.rnc b/config-model/src/main/resources/schema/containercluster.rnc index 5dbcffce736..a30f61809ad 100644 --- a/config-model/src/main/resources/schema/containercluster.rnc +++ b/config-model/src/main/resources/schema/containercluster.rnc @@ -24,7 +24,6 @@ ContainerServices = Client* & Server* & Http? & - HttpFilter? & AccessLog* & SecretStore? & GenericConfig* @@ -73,8 +72,7 @@ AccessLog = element accesslog { attribute compressOnRotation { xsd:boolean }? & attribute symlinkName { string }? & - attribute rotationInterval { string }? & - attribute rotationScheme { string "date" | string "sequence" }? + attribute rotationInterval { string }? } SecretStore = element secret-store { diff --git a/config-model/src/main/resources/schema/content.rnc b/config-model/src/main/resources/schema/content.rnc index c0313cd50ef..ae2af6618d7 100644 --- a/config-model/src/main/resources/schema/content.rnc +++ b/config-model/src/main/resources/schema/content.rnc @@ -302,7 +302,6 @@ Tuning = element tuning { element maxage { xsd:nonNegativeInteger }? }? & element transactionlog { - element maxentries { xsd:nonNegativeInteger }? & element maxsize { xsd:nonNegativeInteger }? }? & element conservative { @@ -336,16 +335,13 @@ Tuning = element tuning { element maxsize { xsd:nonNegativeInteger }? & element maxsize-percent { xsd:double { minInclusive = "0.0" maxInclusive = "50.0" } }? & element initialentries { xsd:nonNegativeInteger }? & - element maxentries { xsd:nonNegativeInteger }? & TuningCompression? }? & element logstore { element maxfilesize { xsd:nonNegativeInteger }? & - element maxdiskbloatfactor { xsd:double { minInclusive = "0.0" } }? & element minfilesizefactor { xsd:double { minInclusive = "0.10" maxInclusive = "1.0" } }? & element chunk { element maxsize { xsd:nonNegativeInteger }? & - element maxentries { xsd:nonNegativeInteger }? & TuningCompression? }? }? diff --git a/config-model/src/main/resources/schema/deployment.rnc b/config-model/src/main/resources/schema/deployment.rnc index 4fc34862365..b2c3dcf7b5a 100644 --- a/config-model/src/main/resources/schema/deployment.rnc +++ b/config-model/src/main/resources/schema/deployment.rnc @@ -12,7 +12,6 @@ start = element deployment { Notifications? & Test? & Staging? & - BlockUpgrade* & Prod* } @@ -28,12 +27,6 @@ BlockChange = element block-change { attribute time-zone { xsd:string }? } -BlockUpgrade = element block-upgrade { # Legacy name - remove on Vespa 7 - attribute days { xsd:string } & - attribute hours { xsd:string } & - attribute time-zone { xsd:string }? -} - Notifications = element notifications { attribute when { xsd:string }? & Email* diff --git a/config-model/src/main/resources/schema/services.rnc b/config-model/src/main/resources/schema/services.rnc index c4eb7435ca6..fe728506124 100644 --- a/config-model/src/main/resources/schema/services.rnc +++ b/config-model/src/main/resources/schema/services.rnc @@ -11,7 +11,6 @@ include "legacygenericcluster.rnc" start = element services { attribute version { "1.0" }? & - attribute major-version { text }? & # TODO: Remove on Vespa 7 attribute application-type { "hosted-infrastructure" }? & LegacyGenericCluster* & GenericCluster* & |