summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java9
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForStructs.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java5
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java3
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java7
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java14
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java14
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/IndexingOperation.java3
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java20
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/Service.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomV20ClientsBuilder.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java11
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/clients/VespaSpoolerService.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java8
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java29
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java57
-rw-r--r--config-model/src/main/javacc/SDParser.jj4
-rw-r--r--config-model/src/main/resources/schema/common.rnc3
-rw-r--r--config-model/src/main/resources/schema/containercluster.rnc3
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java76
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java7
-rwxr-xr-xconfig-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java56
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java15
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java156
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java2
-rw-r--r--config-model/src/test/schema-test-files/services.xml2
34 files changed, 318 insertions, 221 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
index b4d72f3a456..f0b1b427531 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
@@ -302,11 +302,11 @@ public class DocumentModelBuilder {
private static StructDataType handleStruct(NewDocumentType dt, SDDocumentType type) {
StructDataType s = new StructDataType(type.getName());
- for (Field f : type.getDocumentType().getHeaderType().getFieldsThisTypeOnly()) {
+ for (Field f : type.getDocumentType().contentStruct().getFieldsThisTypeOnly()) {
specialHandleAnnotationReference(dt, f);
s.addField(f);
}
- for (StructDataType inherited : type.getDocumentType().getHeaderType().getInheritedTypes()) {
+ for (StructDataType inherited : type.getDocumentType().contentStruct().getInheritedTypes()) {
s.inherit(inherited);
}
extractNestedTypes(dt, s);
@@ -330,11 +330,12 @@ public class DocumentModelBuilder {
}
return false;
}
+ @SuppressWarnings("deprecation")
private NewDocumentType convert(SDDocumentType sdoc) {
Map<AnnotationType, String> annotationInheritance = new HashMap<>();
Map<StructDataType, String> structInheritance = new HashMap<>();
NewDocumentType dt = new NewDocumentType(new NewDocumentType.Name(sdoc.getName()),
- sdoc.getDocumentType().getHeaderType(),
+ sdoc.getDocumentType().contentStruct(),
sdoc.getDocumentType().getBodyType(),
sdoc.getFieldSets(),
convertDocumentReferencesToNames(sdoc.getDocumentReferences()));
@@ -386,7 +387,7 @@ public class DocumentModelBuilder {
e.getKey().inherit(s);
}
}
- handleStruct(dt, sdoc.getDocumentType().getHeaderType());
+ handleStruct(dt, sdoc.getDocumentType().contentStruct());
handleStruct(dt, sdoc.getDocumentType().getBodyType());
extractDataTypesFromFields(dt, sdoc.fieldSet());
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForStructs.java b/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForStructs.java
index 04b0fc6e331..9ff749a994c 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForStructs.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForStructs.java
@@ -25,6 +25,7 @@ public class FieldOperationApplierForStructs extends FieldOperationApplier {
}
}
+ @SuppressWarnings("deprecation")
private void copyFields(SDDocumentType structType, SDDocumentType sdoc) {
//find all fields in OTHER types that have this type:
List<SDDocumentType> list = new ArrayList<>();
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 4566d188c45..39d51414607 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
@@ -133,6 +133,7 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer {
}
}
+ @SuppressWarnings("deprecation")
static List<Field> flattenField(Field field) {
DataType fieldType = field.getDataType();
if (fieldType.getPrimitiveType() != null){
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java
index dc2a1a2bbae..e1253d14747 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java
@@ -58,11 +58,6 @@ public class ImmutableImportedSDField implements ImmutableSDField {
}
@Override
- public boolean isHeader() {
- return importedField.targetField().isHeader();
- }
-
- @Override
public boolean isImportedField() {
return true;
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java
index 4ae7561a7bc..21ef60cf0b9 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java
@@ -10,7 +10,6 @@ import com.yahoo.vespa.indexinglanguage.expressions.Expression;
import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -32,8 +31,6 @@ public interface ImmutableSDField {
boolean isExtraField();
- boolean isHeader();
-
boolean isImportedField();
/**
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 98be4900ef6..c7b698f5835 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
@@ -148,9 +148,10 @@ public class SDDocumentType implements Cloneable, Serializable {
* @param name The name of the new document type
* @param search check for type ID collisions in this search definition
*/
+ @SuppressWarnings("deprecation")
public SDDocumentType(String name, Search search) {
docType = new DocumentType(name);
- docType.getHeaderType().setCompressionConfig(new CompressionConfig());
+ docType.contentStruct().setCompressionConfig(new CompressionConfig());
docType.getBodyType().setCompressionConfig(new CompressionConfig());
validateId(search);
inherit(VESPA_DOCUMENT);
@@ -163,8 +164,8 @@ public class SDDocumentType implements Cloneable, Serializable {
this.structType = structType;
inheritedTypes.clear();
} else {
- if (docType.getHeaderType() != null) {
- this.structType = docType.getHeaderType();
+ if (docType.contentStruct() != null) {
+ this.structType = docType.contentStruct();
inheritedTypes.clear();
} else {
throw new IllegalArgumentException("You can not set a null struct");
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 dd2ffba20ec..d2d28dadfda 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
@@ -426,6 +426,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));
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java
deleted file mode 100644
index 7ea11873a12..00000000000
--- a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java
+++ /dev/null
@@ -1,14 +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.fieldoperation;
-
-import com.yahoo.searchdefinition.document.SDField;
-
-/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
- */
-public class BodyOperation implements FieldOperation {
- public void apply(SDField field) {
- field.setHeader(false);
- field.setHeaderOrBodyDefined(true);
- }
-}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java
deleted file mode 100644
index 22d85f89105..00000000000
--- a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java
+++ /dev/null
@@ -1,14 +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.fieldoperation;
-
-import com.yahoo.searchdefinition.document.SDField;
-
-/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
- */
-public class HeaderOperation implements FieldOperation {
- public void apply(SDField field) {
- field.setHeader(true);
- field.setHeaderOrBodyDefined(true);
- }
-}
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 cd586960185..d1dc68373db 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
@@ -12,7 +12,7 @@ import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
import com.yahoo.vespa.indexinglanguage.linguistics.AnnotatorConfig;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class IndexingOperation implements FieldOperation {
@@ -27,6 +27,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));
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java
index 803a6c5ab40..b62639961bf 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java
@@ -56,6 +56,7 @@ public class AddExtraFieldsToDocument extends Processor {
addField(search, document, field, validate);
}
+ @SuppressWarnings("deprecation")
private void addSummaryField(Search search, SDDocumentType document, SummaryField field, boolean validate) {
Field docField = document.getField(field.getName());
if (docField == null) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
index 9368d6aaa39..02d500931d7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
+++ b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
@@ -70,6 +70,7 @@ public class DocumentManager {
}
}
+ @SuppressWarnings("deprecation")
private void buildConfig(DataType type, Datatype.Builder builder) {
builder.id(type.getId());
if (type instanceof ArrayDataType) {
@@ -92,7 +93,7 @@ public class DocumentManager {
builder.documenttype(doc);
doc.
name(dt.getName()).
- headerstruct(dt.getHeaderType().getId()).
+ headerstruct(dt.contentStruct().getId()).
bodystruct(dt.getBodyType().getId());
for (DocumentType inherited : dt.getInheritedTypes()) {
doc.inherits(new Datatype.Documenttype.Inherits.Builder().name(inherited.getName()));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
index fcd9df309a4..60a49598c42 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
@@ -47,9 +47,9 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon
/** The ports allocated to this Service. */
private List<Integer> ports = new ArrayList<>();
- /** The optional JVM execution args for this Service. */
+ /** The optional JVM execution options for this Service. */
// Please keep non-null, as passed to command line in service startup
- private String jvmArgs = "";
+ private String jvmOptions = "";
/** The optional PRELOAD libraries for this Service. */
// Please keep non-null, as passed to command line in service startup
@@ -399,23 +399,23 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon
}
/** Optional execution args for this service */
- public String getJvmArgs() {
- return jvmArgs;
+ public String getJvmOptions() {
+ return jvmOptions;
}
- public void setJvmArgs(String args) {
- jvmArgs = (args == null) ? "" : args;
+ public void setJvmOptions(String args) {
+ jvmOptions = (args == null) ? "" : args;
}
- public void appendJvmArgs(String args) {
+ public void appendJvmOptions(String args) {
if ((args != null) && ! "".equals(args)) {
- setJvmArgs(jvmArgs + getSeparator(jvmArgs) + args);
+ setJvmOptions(jvmOptions + getSeparator(jvmOptions) + args);
}
}
private static String getSeparator(String current) {
return ("".equals(current)) ? "" : " ";
}
- public void prependJvmArgs(String args) {
+ public void prependJvmOptions(String args) {
if ((args != null) && ! "".equals(args)) {
- setJvmArgs(args + getSeparator(jvmArgs) + jvmArgs);
+ setJvmOptions(args + getSeparator(jvmOptions) + jvmOptions);
}
}
public String getPreLoad() { return preload; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Service.java b/config-model/src/main/java/com/yahoo/vespa/model/Service.java
index 29ec26b06d2..d5d33a08b5d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/Service.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/Service.java
@@ -98,8 +98,8 @@ public interface Service extends ConfigProducer {
*/
String getHostName();
- /** Optional JVM execution args for this service */
- String getJvmArgs();
+ /** Optional JVM execution options for this service */
+ String getJvmOptions();
/**
* Computes and returns the i'th port for this service, based on
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
index 8b98dc9d06a..c354445b690 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
@@ -29,7 +29,7 @@ public class Logserver extends AbstractService {
* @return the startup command for the logserver
*/
public String getStartupCommand() {
- return "exec $ROOT/bin/vespa-logserver-start " + getMyJVMArgs() + " " + getJvmArgs();
+ return "exec $ROOT/bin/vespa-logserver-start " + getMyJVMArgs() + " " + getJvmOptions();
}
/**
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 01dd6495d13..6a02619bdb4 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
@@ -75,7 +75,7 @@ public class DomV20ClientsBuilder {
int index = clients.getVespaSpoolers().size();
VespaSpoolerService spoolerService = new VespaSpoolerServiceBuilder(index, new VespaSpooler(feederConfig, spoolConfig)).
build(deployState, spoolerCfg, e);
- if ("".equals(spoolerService.getJvmArgs()) && jvmArgs!=null) spoolerService.setJvmArgs(jvmArgs);
+ if ("".equals(spoolerService.getJvmOptions()) && jvmArgs!=null) spoolerService.setJvmOptions(jvmArgs);
spoolerService.setProp("index", String.valueOf(index));
clients.getVespaSpoolers().add(spoolerService);
} else {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
index 1f6f7ad6c69..a6d3809ff64 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
@@ -44,7 +44,8 @@ import java.util.logging.Logger;
public class VespaDomBuilder extends VespaModelBuilder {
public static final String JVMARGS_ATTRIB_NAME = "jvmargs";
- public static final String GCOPTS_ATTRIB_NAME = "gcopts";
+ public static final String JVM_OPTIONS = "jvm-options";
+ public static final String JVM_GC_OPTIONS = "jvm-gc-options";
public static final String PRELOAD_ATTRIB_NAME = "preload"; // Intended for vespa engineers
public static final String MMAP_NOCORE_LIMIT = "mmap-core-limit"; // Intended for vespa engineers
public static final String CORE_ON_OOM = "core-on-oom"; // Intended for vespa engineers
@@ -143,8 +144,12 @@ public class VespaDomBuilder extends VespaModelBuilder {
{
initializeProducer(t, deployState, producerSpec);
if (producerSpec != null) {
- if (producerSpec.hasAttribute(JVMARGS_ATTRIB_NAME)) {
- t.appendJvmArgs(producerSpec.getAttribute(JVMARGS_ATTRIB_NAME));
+ if (producerSpec.hasAttribute(JVM_OPTIONS)) {
+ t.appendJvmOptions(producerSpec.getAttribute(JVM_OPTIONS));
+ } else {
+ if (producerSpec.hasAttribute(JVMARGS_ATTRIB_NAME)) {
+ t.appendJvmOptions(producerSpec.getAttribute(JVMARGS_ATTRIB_NAME));
+ }
}
if (producerSpec.hasAttribute(PRELOAD_ATTRIB_NAME)) {
t.setPreLoad(producerSpec.getAttribute(PRELOAD_ATTRIB_NAME));
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
index f4287cf982e..378c85dc325 100644
--- 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
@@ -26,7 +26,7 @@ public class VespaSpoolerService extends AbstractService implements SpoolerConfi
}
public String getStartupCommand() {
- return "exec vespaspooler "+getJvmArgs();
+ return "exec vespaspooler "+ getJvmOptions();
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
index ab65c68dea4..e098263119c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
@@ -295,7 +295,7 @@ public class Container extends AbstractService implements
}
public String getStartupCommand() {
- return "PRELOAD=" + getPreLoad() + " exec vespa-start-container-daemon " + getJvmArgs() + " ";
+ return "PRELOAD=" + getPreLoad() + " exec vespa-start-container-daemon " + getJvmOptions() + " ";
}
@Override
@@ -315,15 +315,15 @@ public class Container extends AbstractService implements
/** Returns the jvm arguments this should start with */
@Override
- public String getJvmArgs() {
- String jvmArgs = super.getJvmArgs();
+ public String getJvmOptions() {
+ String jvmArgs = super.getJvmOptions();
return isHostedVespa && hasDocproc()
? ("".equals(jvmArgs) ? defaultHostedJVMArgs : defaultHostedJVMArgs + " " + jvmArgs)
: jvmArgs;
}
/** Returns the jvm args set explicitly for this node */
- public String getAssignedJvmArgs() { return super.getJvmArgs(); }
+ public String getAssignedJvmOptions() { return super.getJvmOptions(); }
private String serviceSlobrokId() {
return "vespa/service/" + getConfigId();
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 ccd828b5f48..29a758fee74 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
@@ -14,9 +14,6 @@ import com.yahoo.config.docproc.SchemamappingConfig;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
-import com.yahoo.config.provision.Environment;
-import com.yahoo.config.provision.RegionName;
-import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.BundlesConfig;
import com.yahoo.container.ComponentsConfig;
@@ -144,7 +141,7 @@ public final class ContainerCluster
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 CMS = "-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1";
- static final String G1GC = "-XX:+UseG1GC -XX:MaxTenuringThreshold=15";
+ public static final String G1GC = "-XX:+UseG1GC -XX:MaxTenuringThreshold=15";
public static final String ROOT_HANDLER_BINDING = "*://*/";
@@ -186,7 +183,7 @@ public final class ContainerCluster
private Zone zone;
private String hostClusterId = null;
- private String gcopts = null;
+ private String jvmGCOptions = null;
private Integer memoryPercentage = null;
private static class AcceptAllVerifier implements ContainerClusterVerifier {
@@ -631,20 +628,6 @@ public final class ContainerCluster
if (containerSearch!=null) containerSearch.getConfig(builder);
}
- private String buildGCOpts(Zone zone) {
- Optional<String> gcopts = getGCOpts();
- if (gcopts.isPresent()) {
- return gcopts.get();
- } else if (zone.system() == SystemName.dev) {
- return G1GC;
- } else if (isHostedVespa()) {
- return ((zone.environment() != Environment.prod) || RegionName.from("us-east-3").equals(zone.region()))
- ? G1GC : CMS;
- } else {
- return CMS;
- }
- }
-
@Override
public void getConfig(QrStartConfig.Builder builder) {
QrStartConfig.Jvm.Builder jvmBuilder = new QrStartConfig.Jvm.Builder();
@@ -656,7 +639,9 @@ public final class ContainerCluster
if (containerSearch!=null) {
jvmBuilder.directMemorySizeCache(containerSearch.totalCacheSizeMb());
}
- jvmBuilder.gcopts(buildGCOpts(getZone()));
+ if (jvmGCOptions != null) {
+ jvmBuilder.gcopts(jvmGCOptions);
+ }
builder.jvm(jvmBuilder);
}
@@ -814,8 +799,8 @@ public final class ContainerCluster
public Optional<String> getHostClusterId() { return Optional.ofNullable(hostClusterId); }
public void setMemoryPercentage(Integer memoryPercentage) { this.memoryPercentage = memoryPercentage; }
- public void setGCOpts(String gcopts) { this.gcopts = gcopts; }
- public Optional<String> getGCOpts() { return Optional.ofNullable(gcopts); }
+ public void setJvmGCOptions(String opts) { this.jvmGCOptions = opts; }
+ public Optional<String> getJvmGCOptions() { return Optional.ofNullable(jvmGCOptions); }
/**
* Returns the percentage of host physical memory this application has specified for nodes in this cluster,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
index e8142999433..66294d3fcef 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
@@ -20,10 +20,10 @@ public class ConfigProducerGroup<CHILD extends AbstractConfigProducer<?>> extend
}
public void addComponent(ComponentId id, CHILD producer) {
- boolean wasAdded = producerById.put(id, producer) == null;
- if (!wasAdded) {
- throw new IllegalArgumentException("Two entities have the same component id '" +
- id + "' in the same scope.");
+ CHILD existing = producerById.put(id, producer);
+ if ( existing != null) {
+ throw new IllegalArgumentException("Both " + producer + " and " + existing + " are configured" +
+ " with the id '" + id + "'. All components must have a unique id.");
}
addChild(producer);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
index f795e481f62..6b4f8c8f8b5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
@@ -78,4 +78,9 @@ public class Chain<T extends ChainedComponent<?>> extends AbstractConfigProducer
return TYPE;
}
+ @Override
+ public String toString() {
+ return "chain '" + componentId + "'";
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
index 2605736e23b..ff211264a34 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
@@ -28,4 +28,9 @@ public class SearchChain extends Chain<Searcher<?>> {
return Collections.emptyList();
}
+ @Override
+ public String toString() {
+ return "search chain '" + getId() + "'";
+ }
+
}
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 ac1f313d983..91df3fee6e8 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
@@ -21,7 +21,9 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeType;
+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;
@@ -456,6 +458,37 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Pattern cmsArgs = Pattern.compile("-XX:[-+]*CMS");
return (gcAlgorithm.matcher(jvmargs).find() ||cmsArgs.matcher(jvmargs).find());
}
+
+ private static String buildJvmGCOptions(Zone zone, String jvmGCOPtions, boolean isHostedVespa) {
+ if (jvmGCOPtions != null) {
+ return jvmGCOPtions;
+ } else if (zone.system() == SystemName.dev) {
+ return ContainerCluster.G1GC;
+ } else if (isHostedVespa) {
+ return ((zone.environment() != Environment.prod) || RegionName.from("us-east-3").equals(zone.region()))
+ ? ContainerCluster.G1GC : ContainerCluster.CMS;
+ } else {
+ return ContainerCluster.CMS;
+ }
+ }
+ private String getJvmOptions(ContainerCluster cluster, Element nodesElement, DeployLogger deployLogger) {
+ String jvmOptions = "";
+ if (nodesElement.hasAttribute(VespaDomBuilder.JVM_OPTIONS)) {
+ jvmOptions = nodesElement.getAttribute(VespaDomBuilder.JVM_OPTIONS);
+ if (nodesElement.hasAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME)) {
+ String jvmArgs = nodesElement.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME);
+ throw new IllegalArgumentException("You have specified both jvm-options='" + jvmOptions + "'" +
+ " and deprecated jvmargs='" + jvmArgs + "'. Merge jvmargs into jvm-options.");
+ }
+ } else {
+ 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);
+ }
+ }
+ return jvmOptions;
+ }
private void addNodesFromXml(ContainerCluster cluster, Element containerElement, ConfigModelContext context) {
Element nodesElement = XML.getChild(containerElement, "nodes");
if (nodesElement == null) { // default single node on localhost
@@ -464,19 +497,17 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
node.setHostResource(host);
node.initService(context.getDeployLogger());
cluster.addContainers(Collections.singleton(node));
- }
- else {
+ } else {
List<Container> nodes = createNodes(cluster, nodesElement, context);
- String jvmArgs = nodesElement.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME);
- String gcopts = nodesElement.hasAttribute(VespaDomBuilder.GCOPTS_ATTRIB_NAME)
- ? nodesElement.getAttribute(VespaDomBuilder.GCOPTS_ATTRIB_NAME)
- : null;
- if (incompatibleGCOptions(jvmArgs)) {
- context.getDeployLogger().log(Level.WARNING, "You need to move out your GC related options from 'jvmargs' to 'gcopts'");
- } else {
- cluster.setGCOpts(gcopts);
+ applyNodesTagJvmArgs(nodes, getJvmOptions(cluster, nodesElement, context.getDeployLogger()));
+
+ if ( !cluster.getJvmGCOptions().isPresent()) {
+ String jvmGCOptions = nodesElement.hasAttribute(VespaDomBuilder.JVM_GC_OPTIONS)
+ ? nodesElement.getAttribute(VespaDomBuilder.JVM_GC_OPTIONS)
+ : null;
+ cluster.setJvmGCOptions(buildJvmGCOptions(context.getDeployState().zone(), jvmGCOptions, context.getDeployState().isHosted()));
}
- applyNodesTagJvmArgs(nodes, jvmArgs);
+
applyRoutingAliasProperties(nodes, cluster);
applyDefaultPreload(nodes, nodesElement);
applyMemoryPercentage(cluster, nodesElement.getAttribute(VespaDomBuilder.Allocated_MEMORY_ATTRIB_NAME));
@@ -677,8 +708,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
private void applyNodesTagJvmArgs(List<Container> containers, String jvmArgs) {
for (Container container: containers) {
- if (container.getAssignedJvmArgs().isEmpty())
- container.prependJvmArgs(jvmArgs);
+ if (container.getAssignedJvmOptions().isEmpty())
+ container.prependJvmOptions(jvmArgs);
}
}
diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj
index d1c67a6d425..a6fa472d5c4 100644
--- a/config-model/src/main/javacc/SDParser.jj
+++ b/config-model/src/main/javacc/SDParser.jj
@@ -70,6 +70,7 @@ import org.apache.commons.lang.StringUtils;
*
* @author bratseth
*/
+ @SuppressWarnings("deprecation")
public class SDParser {
private DocumentTypeManager docMan = null;
@@ -111,6 +112,7 @@ public class SDParser {
*
* @param multiline Whether or not to allow multi-line expressions.
*/
+ @SuppressWarnings("deprecation")
private IndexingOperation newIndexingOperation(boolean multiline) throws ParseException {
return newIndexingOperation(multiline, new SimpleLinguistics(false));
}
@@ -579,7 +581,7 @@ void compression(SDDocumentType document, String name) :
<COMPRESSION> lbrace() (cfg = compressionItem(cfg) (<NL>)*)* <RBRACE>
{
if (name == null || name.equals("header")) {
- document.getDocumentType().getHeaderType().setCompressionConfig(cfg);
+ document.getDocumentType().contentStruct().setCompressionConfig(cfg);
}
if (name == null || name.equals("body")) {
document.getDocumentType().getBodyType().setCompressionConfig(cfg);
diff --git a/config-model/src/main/resources/schema/common.rnc b/config-model/src/main/resources/schema/common.rnc
index 6a82556f01b..73882da2b01 100644
--- a/config-model/src/main/resources/schema/common.rnc
+++ b/config-model/src/main/resources/schema/common.rnc
@@ -2,7 +2,8 @@
service.attlist &= attribute hostalias { xsd:NCName }
service.attlist &= attribute baseport { xsd:unsignedShort }?
service.attlist &= attribute jvmargs { text }?
-service.attlist &= attribute gcopts { text }?
+service.attlist &= attribute jvm-options { text }?
+service.attlist &= attribute jvm-gc-options { text }?
# preload is for internal use only
service.attlist &= attribute preload { text }?
diff --git a/config-model/src/main/resources/schema/containercluster.rnc b/config-model/src/main/resources/schema/containercluster.rnc
index 4862fdf7a50..5dbcffce736 100644
--- a/config-model/src/main/resources/schema/containercluster.rnc
+++ b/config-model/src/main/resources/schema/containercluster.rnc
@@ -211,7 +211,8 @@ DocumentApi = element document-api {
NodesOfContainerCluster = element nodes {
attribute jvmargs { text }? &
- attribute gcopts { text }? &
+ attribute jvm-options { text }? &
+ attribute jvm-gc-options { text }? &
attribute preload { text }? &
attribute allocated-memory { text }? &
attribute cpu-socket-affinity { xsd:boolean }? &
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index 8396cac265c..f9585224bd6 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -86,7 +86,7 @@ public class ModelProvisioningTest {
" <handler id='myHandler'>" +
" <component id='injected' />" +
" </handler>" +
- " <nodes count='2' allocated-memory='45%' gcopts='-XX:+UseParNewGC' jvmargs='-verbosegc' preload='lib/blablamalloc.so'/>" +
+ " <nodes count='2' allocated-memory='45%' jvm-gc-options='-XX:+UseParNewGC' jvm-options='-verbosegc' preload='lib/blablamalloc.so'/>" +
"</jdisc>" +
"</services>";
String hosts ="<hosts>"
@@ -127,20 +127,20 @@ public class ModelProvisioningTest {
assertThat(mydisc2.getContainers().get(1).getConfigId(), is("mydisc2/container.1"));
assertTrue(mydisc2.getContainers().get(1).isInitialized());
- assertThat(mydisc.getContainers().get(0).getJvmArgs(), is(""));
- assertThat(mydisc.getContainers().get(1).getJvmArgs(), is(""));
- assertThat(mydisc.getContainers().get(2).getJvmArgs(), is(""));
+ assertThat(mydisc.getContainers().get(0).getJvmOptions(), is(""));
+ assertThat(mydisc.getContainers().get(1).getJvmOptions(), is(""));
+ assertThat(mydisc.getContainers().get(2).getJvmOptions(), is(""));
assertThat(mydisc.getContainers().get(0).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
assertThat(mydisc.getContainers().get(1).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
assertThat(mydisc.getContainers().get(2).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
assertThat(mydisc.getMemoryPercentage(), is(Optional.empty()));
- assertThat(mydisc2.getContainers().get(0).getJvmArgs(), is("-verbosegc"));
- assertThat(mydisc2.getContainers().get(1).getJvmArgs(), is("-verbosegc"));
+ assertThat(mydisc2.getContainers().get(0).getJvmOptions(), is("-verbosegc"));
+ assertThat(mydisc2.getContainers().get(1).getJvmOptions(), is("-verbosegc"));
assertThat(mydisc2.getContainers().get(0).getPreLoad(), is("lib/blablamalloc.so"));
assertThat(mydisc2.getContainers().get(1).getPreLoad(), is("lib/blablamalloc.so"));
assertThat(mydisc2.getMemoryPercentage(), is(Optional.of(45)));
- assertThat(mydisc2.getGCOpts(), is(Optional.of("-XX:+UseParNewGC")));
+ assertThat(mydisc2.getJvmGCOptions(), is(Optional.of("-XX:+UseParNewGC")));
QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
mydisc2.getConfig(qrStartBuilder);
QrStartConfig qrsStartConfig = new QrStartConfig(qrStartBuilder);
@@ -261,13 +261,13 @@ public class ModelProvisioningTest {
}
@Test
- public void testCombinedClusterWithJvmArgs() {
+ public void testCombinedClusterWithJvmOptions() {
String xmlWithNodes =
"<?xml version='1.0' encoding='utf-8' ?>" +
"<services>" +
" <container version='1.0' id='container1'>" +
" <document-processing/>" +
- " <nodes of='content1' jvmargs='testarg'/>" +
+ " <nodes of='content1' jvm-options='testoption'/>" +
" </container>" +
" <content version='1.0' id='content1'>" +
" <redundancy>2</redundancy>" +
@@ -284,7 +284,7 @@ public class ModelProvisioningTest {
assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size());
assertEquals("Nodes in container1", 2, model.getContainerClusters().get("container1").getContainers().size());
for (Container container : model.getContainerClusters().get("container1").getContainers())
- assertTrue(container.getJvmArgs().contains("testarg"));
+ assertTrue(container.getJvmOptions().contains("testoption"));
}
@Test
@@ -1225,6 +1225,58 @@ public class ModelProvisioningTest {
}
@Test
+ public void testJvmArgs() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<jdisc version='1.0'>" +
+ " <search/>" +
+ " <nodes jvmargs='xyz' count='3'/>" +
+ "</jdisc>";
+ int numberOfHosts = 3;
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts(numberOfHosts);
+ VespaModel model = tester.createModel(services, true);
+ assertEquals(numberOfHosts, model.getRoot().getHostSystem().getHosts().size());
+ assertEquals("xyz", model.getContainerClusters().get("jdisc").getContainers().get(0).getAssignedJvmOptions());
+ }
+
+ @Test
+ public void testJvmOptions() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<jdisc version='1.0'>" +
+ " <search/>" +
+ " <nodes jvm-options='xyz' count='3'/>" +
+ "</jdisc>";
+ int numberOfHosts = 3;
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts(numberOfHosts);
+ VespaModel model = tester.createModel(services, true);
+ assertEquals(numberOfHosts, model.getRoot().getHostSystem().getHosts().size());
+ assertEquals("xyz", model.getContainerClusters().get("jdisc").getContainers().get(0).getAssignedJvmOptions());
+ }
+
+ @Test
+ public void testJvmOptionsOverridesJvmArgs() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<jdisc version='1.0'>" +
+ " <search/>" +
+ " <nodes jvm-options='xyz' jvmargs='abc' count='3'/>" +
+ "</jdisc>";
+ int numberOfHosts = 3;
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts(numberOfHosts);
+ try {
+ tester.createModel(services, true);
+ fail("Expected exception");
+ }
+ catch (IllegalArgumentException e) {
+ assertEquals("You have specified both jvm-options='xyz' and deprecated jvmargs='abc'. Merge jvmargs into jvm-options.", e.getMessage());
+ }
+ }
+
+ @Test
public void testUsingHostaliasWithProvisioner() {
String services =
"<?xml version='1.0' encoding='utf-8' ?>\n" +
@@ -1418,7 +1470,7 @@ public class ModelProvisioningTest {
" <document-processing/>\n" +
" <document-api/>\n" +
" <search/>\n" +
- " <nodes jvmargs=\"-Xms512m -Xmx512m\">\n" +
+ " <nodes jvm-options=\"-Xms512m -Xmx512m\">\n" +
" <node hostalias=\"vespa-1\"/>\n" +
" </nodes>\n" +
" </container>\n" +
@@ -1477,7 +1529,7 @@ public class ModelProvisioningTest {
" <document-processing/>\n" +
" <document-api/>\n" +
" <search/>\n" +
- " <nodes jvmargs=\"-Xms512m -Xmx512m\">\n" +
+ " <nodes jvm-options=\"-Xms512m -Xmx512m\">\n" +
" <node hostalias=\"vespa-1\"/>\n" +
" <node hostalias=\"vespa-2\"/>\n" +
" <node hostalias=\"vespa-3\"/>\n" +
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
index 127ed7a528b..0c464d668f7 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
@@ -19,7 +19,11 @@ import org.junit.Test;
import java.io.IOException;
import java.util.Iterator;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
/**
* Tests importing of search definitions
@@ -29,6 +33,7 @@ import static org.junit.Assert.*;
public class SearchImporterTestCase extends SearchDefinitionTestCase {
@Test
+ @SuppressWarnings("deprecation")
public void testSimpleImporting() throws IOException, ParseException {
RankProfileRegistry rankProfileRegistry = new RankProfileRegistry();
SearchBuilder sb = new SearchBuilder(rankProfileRegistry, new QueryProfileRegistry());
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
index e4fb19010f5..b4dea09010d 100755
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
@@ -168,45 +168,15 @@ public class ContainerClusterTest {
addContainer(root.deployLogger(), cluster, "c1", "host-c1");
assertEquals(1, cluster.getContainers().size());
Container container = cluster.getContainers().get(0);
- verifyJvmArgs(isHosted, hasDocProc, "", container.getJvmArgs());
- container.setJvmArgs("initial");
- verifyJvmArgs(isHosted, hasDocProc, "initial", container.getJvmArgs());
- container.prependJvmArgs("ignored");
- verifyJvmArgs(isHosted, hasDocProc, "ignored initial", container.getJvmArgs());
- container.appendJvmArgs("override");
- verifyJvmArgs(isHosted, hasDocProc, "ignored initial override", container.getJvmArgs());
- container.setJvmArgs(null);
- verifyJvmArgs(isHosted, hasDocProc, "", container.getJvmArgs());
- }
-
- private void verifyGCOpts(boolean isHosted, String override, Zone zone, String expected) {
- MockRoot root = createRoot(isHosted, zone);
- ContainerCluster cluster = createContainerCluster(root, false);
- addContainer(root.deployLogger(), cluster, "c1", "host-c1");
- cluster.setGCOpts(override);
- assertEquals(1, cluster.getContainers().size());
- QrStartConfig.Builder qsB = new QrStartConfig.Builder();
- cluster.getConfig(qsB);
- QrStartConfig qsC= new QrStartConfig(qsB);
- assertEquals(expected, qsC.jvm().gcopts());
- }
-
- private void verifyGCOpts(boolean isHosted, Zone zone, String expected) {
- verifyGCOpts(isHosted, null, zone, expected);
- verifyGCOpts(isHosted, "-XX:+UseG1GC", zone, "-XX:+UseG1GC");
- Zone DEV = new Zone(SystemName.dev, zone.environment(), zone.region());
- verifyGCOpts(isHosted, null, DEV, ContainerCluster.G1GC);
- verifyGCOpts(isHosted, "-XX:+UseConcMarkSweepGC", DEV, "-XX:+UseConcMarkSweepGC");
-
- }
-
- @Test
- public void requireThatGCOptsIsHonoured() {
- final Zone US_EAST_3 = new Zone(Environment.prod, RegionName.from("us-east-3"));
- verifyGCOpts(false, Zone.defaultZone(),ContainerCluster.CMS);
- verifyGCOpts(false, US_EAST_3, ContainerCluster.CMS);
- verifyGCOpts(true, Zone.defaultZone(), ContainerCluster.CMS);
- verifyGCOpts(true, US_EAST_3, ContainerCluster.G1GC);
+ verifyJvmArgs(isHosted, hasDocProc, "", container.getJvmOptions());
+ container.setJvmOptions("initial");
+ verifyJvmArgs(isHosted, hasDocProc, "initial", container.getJvmOptions());
+ container.prependJvmOptions("ignored");
+ verifyJvmArgs(isHosted, hasDocProc, "ignored initial", container.getJvmOptions());
+ container.appendJvmOptions("override");
+ verifyJvmArgs(isHosted, hasDocProc, "ignored initial override", container.getJvmOptions());
+ container.setJvmOptions(null);
+ verifyJvmArgs(isHosted, hasDocProc, "", container.getJvmOptions());
}
@Test
@@ -289,10 +259,10 @@ public class ContainerClusterTest {
ContainerCluster cluster = createContainerCluster(root, false);
addContainer(root.deployLogger(), cluster, "c1", "host-c1");
Container container = cluster.getContainers().get(0);
- container.setJvmArgs("");
- String empty = container.getJvmArgs();
- container.setJvmArgs(null);
- assertEquals(empty, container.getJvmArgs());
+ container.setJvmOptions("");
+ String empty = container.getJvmOptions();
+ container.setJvmOptions(null);
+ assertEquals(empty, container.getJvmOptions());
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java
index 9122e855461..6ba75f1ff05 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java
@@ -9,13 +9,11 @@ import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Element;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import static org.hamcrest.Matchers.containsString;
/**
* @author gjoranv
- * @since 5.1.11
*/
public class SearchChainsTest2 {
@@ -38,7 +36,8 @@ public class SearchChainsTest2 {
chains.validate();
fail("Expected exception when inheriting a nonexistent search chain.");
} catch (Exception e) {
- assertThat(e.getMessage(), containsString("Missing chain 'nonexistent'"));
+ assertEquals("Missing chain 'nonexistent'.",
+ e.getMessage());
}
}
@@ -56,12 +55,13 @@ public class SearchChainsTest2 {
ContainerModelBuilderTest.createModel(root, clusterElem);
fail("Expected exception when declaring chains with duplicate id.");
} catch (Exception e) {
- assertThat(e.getMessage(), containsString("Two entities have the same component id 'same'"));
+ assertEquals("Both search chain 'same' and search chain 'same' are configured with the id 'same'. All components must have a unique id.",
+ e.getMessage());
}
}
@Test
- public void fail_upon_user_declared_chain_with_same_id_as_builtin_chain() throws Exception {
+ public void fail_upon_user_declared_chain_with_same_id_as_builtin_chain() {
final Element clusterElem = DomBuilderTest.parse(
"<jdisc id='cluster1' version='1.0'>",
ContainerModelBuilderTest.nodesXml,
@@ -73,7 +73,8 @@ public class SearchChainsTest2 {
ContainerModelBuilderTest.createModel(root, clusterElem);
fail("Expected exception when taking the id from a builtin chain.");
} catch (Exception e) {
- assertThat(e.getMessage(), containsString("Two entities have the same component id 'vespa'"));
+ assertEquals("Both search chain 'vespa' and search chain 'vespa' are configured with the id 'vespa'. All components must have a unique id.",
+ e.getMessage());
}
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
index a3e24b8a520..396fe3e0af5 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
@@ -14,6 +14,7 @@ import com.yahoo.config.model.provision.InMemoryProvisioner;
import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.RegionName;
+import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.ComponentsConfig;
import com.yahoo.container.QrConfig;
@@ -69,7 +70,7 @@ import static org.junit.Assert.fail;
public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
@Test
- public void detect_conflicting_gcoptions_in_jvmargs() {
+ public void detect_conflicting_jvmgcoptions_in_jvmargs() {
assertFalse(ContainerModelBuilder.incompatibleGCOptions(""));
assertFalse(ContainerModelBuilder.incompatibleGCOptions("UseG1GC"));
assertTrue(ContainerModelBuilder.incompatibleGCOptions("-XX:+UseG1GC"));
@@ -78,11 +79,11 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void honours_gcopts() {
+ public void honours_jvm_gc_options() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc version='1.0'>",
" <search/>",
- " <nodes gcopts='-XX:+UseG1GC'>",
+ " <nodes jvm-gc-options='-XX:+UseG1GC'>",
" <node hostalias='mockhost'/>",
" </nodes>",
"</jdisc>" );
@@ -93,23 +94,84 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertEquals("-XX:+UseG1GC", qrStartConfig.jvm().gcopts());
}
+ private static void verifyIgnoreJvmGCOptions(boolean isHosted) throws IOException, SAXException {
+ verifyIgnoreJvmGCOptionsIfJvmArgs(isHosted, "jvmargs", ContainerCluster.CMS);
+ verifyIgnoreJvmGCOptionsIfJvmArgs(isHosted, "jvm-options", "-XX:+UseG1GC");
+
+ }
+ private static void verifyIgnoreJvmGCOptionsIfJvmArgs(boolean isHosted, String jvmOptionsName, String expectedGC) throws IOException, SAXException {
+ String servicesXml =
+ "<jdisc version='1.0'>" +
+ " <nodes jvm-gc-options='-XX:+UseG1GC' " + jvmOptionsName + "='-XX:+UseParNewGC'>" +
+ " <node hostalias='mockhost'/>" +
+ " </nodes>" +
+ "</jdisc>";
+ ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withServices(servicesXml).build();
+ // Need to create VespaModel to make deploy properties have effect
+ final MyLogger logger = new MyLogger();
+ VespaModel model = new VespaModel(new NullConfigModelRegistry(), new DeployState.Builder()
+ .applicationPackage(applicationPackage)
+ .deployLogger(logger)
+ .zone(new Zone(SystemName.cd, Environment.dev, RegionName.from("here")))
+ .properties(new DeployProperties.Builder()
+ .hostedVespa(isHosted)
+ .build())
+ .build());
+ QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
+ model.getConfig(qrStartBuilder, "jdisc/container.0");
+ QrStartConfig qrStartConfig = new QrStartConfig(qrStartBuilder);
+ assertEquals(expectedGC, qrStartConfig.jvm().gcopts());
+ }
+
@Test
- public void ignores_gcopts_on_conflicting_jvargs() {
- Element clusterElem = DomBuilderTest.parse(
- "<jdisc version='1.0'>",
- " <nodes gcopts='-XX:+UseG1GC' jvmargs='-XX:+UseParNewGC'>",
- " <node hostalias='mockhost'/>",
- " </nodes>",
- "</jdisc>" );
- createModel(root, clusterElem);
+ public void ignores_jvmgcoptions_on_conflicting_jvmargs() throws IOException, SAXException {
+ verifyIgnoreJvmGCOptions(false);
+ verifyIgnoreJvmGCOptions(true);
+ }
+
+ private void verifyJvmGCOptions(boolean isHosted, String override, Zone zone, String expected) throws IOException, SAXException {
+ String servicesXml =
+ "<jdisc version='1.0'>" +
+ " <nodes " + ((override == null) ? ">" : ("jvm-gc-options='" + override + "'>")) +
+ " <node hostalias='mockhost'/>" +
+ " </nodes>" +
+ "</jdisc>";
+ ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withServices(servicesXml).build();
+ // Need to create VespaModel to make deploy properties have effect
+ final MyLogger logger = new MyLogger();
+ VespaModel model = new VespaModel(new NullConfigModelRegistry(), new DeployState.Builder()
+ .applicationPackage(applicationPackage)
+ .deployLogger(logger)
+ .zone(zone)
+ .properties(new DeployProperties.Builder()
+ .hostedVespa(isHosted)
+ .build())
+ .build());
QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
- root.getConfig(qrStartBuilder, "jdisc/container.0");
+ model.getConfig(qrStartBuilder, "jdisc/container.0");
QrStartConfig qrStartConfig = new QrStartConfig(qrStartBuilder);
- assertEquals(ContainerCluster.CMS, qrStartConfig.jvm().gcopts());
+ assertEquals(expected, qrStartConfig.jvm().gcopts());
+ }
+
+ private void verifyJvmGCOptions(boolean isHosted, Zone zone, String expected) throws IOException, SAXException {
+ verifyJvmGCOptions(isHosted, null, zone, expected);
+ verifyJvmGCOptions(isHosted, "-XX:+UseG1GC", zone, "-XX:+UseG1GC");
+ Zone DEV = new Zone(SystemName.dev, zone.environment(), zone.region());
+ verifyJvmGCOptions(isHosted, null, DEV, ContainerCluster.G1GC);
+ verifyJvmGCOptions(isHosted, "-XX:+UseConcMarkSweepGC", DEV, "-XX:+UseConcMarkSweepGC");
+ }
+
+ @Test
+ public void requireThatJvmGCOptionsIsHonoured() throws IOException, SAXException {
+ final Zone US_EAST_3 = new Zone(Environment.prod, RegionName.from("us-east-3"));
+ verifyJvmGCOptions(false, Zone.defaultZone(),ContainerCluster.CMS);
+ verifyJvmGCOptions(false, US_EAST_3, ContainerCluster.CMS);
+ verifyJvmGCOptions(true, Zone.defaultZone(), ContainerCluster.CMS);
+ verifyJvmGCOptions(true, US_EAST_3, ContainerCluster.G1GC);
}
@Test
- public void default_port_is_4080() throws Exception {
+ public void default_port_is_4080() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc version='1.0'>",
nodesXml,
@@ -120,7 +182,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void http_server_port_is_configurable_and_does_not_affect_other_ports() throws Exception {
+ public void http_server_port_is_configurable_and_does_not_affect_other_ports() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc version='1.0'>",
" <http>",
@@ -162,7 +224,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertThat(logger.msgs.get(0).getSecond(), containsString(String.format("You cannot set port to anything else than %d", Container.BASEPORT)));
}
- private class MyLogger implements DeployLogger {
+ private static class MyLogger implements DeployLogger {
List<Pair<Level, String>> msgs = new ArrayList<>();
@Override
public void log(Level level, String message) {
@@ -171,7 +233,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void one_cluster_with_explicit_port_and_one_without_is_ok() throws Exception {
+ public void one_cluster_with_explicit_port_and_one_without_is_ok() {
Element cluster1Elem = DomBuilderTest.parse(
"<jdisc id='cluster1' version='1.0' />");
Element cluster2Elem = DomBuilderTest.parse(
@@ -184,7 +246,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void two_clusters_without_explicit_port_throws_exception() throws SAXException, IOException {
+ public void two_clusters_without_explicit_port_throws_exception() {
Element cluster1Elem = DomBuilderTest.parse(
"<jdisc id='cluster1' version='1.0'>",
nodesXml,
@@ -202,7 +264,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void verify_bindings_for_builtin_handlers() throws Exception {
+ public void verify_bindings_for_builtin_handlers() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0' />"
);
@@ -226,7 +288,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void default_root_handler_is_disabled_when_user_adds_a_handler_with_same_binding() throws Exception {
+ public void default_root_handler_is_disabled_when_user_adds_a_handler_with_same_binding() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>" +
" <handler id='userRootHandler'>" +
@@ -240,7 +302,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void handler_bindings_are_included_in_discBindings_config() throws Exception {
+ public void handler_bindings_are_included_in_discBindings_config() {
createClusterWithJDiscHandler();
String discBindingsConfig = root.getConfig(JdiscBindingsConfig.class, "default").toString();
assertThat(discBindingsConfig, containsString("{discHandler}"));
@@ -250,12 +312,12 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void handlers_are_included_in_components_config() throws Exception {
+ public void handlers_are_included_in_components_config() {
createClusterWithJDiscHandler();
assertThat(componentsConfig().toString(), containsString(".id \"discHandler\""));
}
- private void createClusterWithJDiscHandler() throws SAXException, IOException {
+ private void createClusterWithJDiscHandler() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <handler id='discHandler'>",
@@ -269,14 +331,14 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void servlets_are_included_in_ServletPathConfig() throws Exception {
+ public void servlets_are_included_in_ServletPathConfig() {
createClusterWithServlet();
ServletPathsConfig servletPathsConfig = root.getConfig(ServletPathsConfig.class, "default");
assertThat(servletPathsConfig.servlets().values().iterator().next().path(), is("p/a/t/h"));
}
@Test
- public void servletconfig_is_produced() throws Exception {
+ public void servletconfig_is_produced() {
createClusterWithServlet();
String configId = getContainerCluster("default").getServletMap().
@@ -287,7 +349,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertThat(servletConfig.map().get("myKey"), is("myValue"));
}
- private void createClusterWithServlet() throws SAXException, IOException {
+ private void createClusterWithServlet() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <servlet id='myServlet' class='myClass' bundle='myBundle'>",
@@ -303,7 +365,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
@Test
- public void processing_handler_bindings_can_be_overridden() throws Exception {
+ public void processing_handler_bindings_can_be_overridden() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <processing>",
@@ -321,7 +383,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void clientProvider_bindings_are_included_in_discBindings_config() throws Exception {
+ public void clientProvider_bindings_are_included_in_discBindings_config() {
createModelWithClientProvider();
String discBindingsConfig = root.getConfig(JdiscBindingsConfig.class, "default").toString();
assertThat(discBindingsConfig, containsString("{discClient}"));
@@ -331,12 +393,12 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void clientProviders_are_included_in_components_config() throws Exception {
+ public void clientProviders_are_included_in_components_config() {
createModelWithClientProvider();
assertThat(componentsConfig().toString(), containsString(".id \"discClient\""));
}
- private void createModelWithClientProvider() throws SAXException, IOException {
+ private void createModelWithClientProvider() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>" +
" <client id='discClient'>" +
@@ -350,7 +412,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void serverProviders_are_included_in_components_config() throws Exception {
+ public void serverProviders_are_included_in_components_config() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>" +
" <server id='discServer' />" +
@@ -367,7 +429,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void searchHandler_gets_only_search_chains_in_chains_config() throws Exception {
+ public void searchHandler_gets_only_search_chains_in_chains_config() {
createClusterWithProcessingAndSearchChains();
String searchHandlerConfigId = "default/component/com.yahoo.search.handler.SearchHandler";
String chainsConfig = getChainsConfig(searchHandlerConfigId);
@@ -376,7 +438,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void processingHandler_gets_only_processing_chains_in_chains_config() throws Exception {
+ public void processingHandler_gets_only_processing_chains_in_chains_config() {
createClusterWithProcessingAndSearchChains();
String processingHandlerConfigId = "default/component/com.yahoo.processing.handler.ProcessingHandler";
String chainsConfig = getChainsConfig(processingHandlerConfigId);
@@ -384,7 +446,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertThat(chainsConfig, not(containsLineWithPattern(".*\\.id \"testSearcher@default\"$")));
}
- private void createClusterWithProcessingAndSearchChains() throws SAXException, IOException {
+ private void createClusterWithProcessingAndSearchChains() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>" +
" <search>" +
@@ -404,7 +466,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void user_config_can_be_overridden_on_node() throws Exception {
+ public void user_config_can_be_overridden_on_node() {
Element containerElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <config name=\"prelude.cluster.qr-monitor\">" +
@@ -429,7 +491,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void legacy_yca_filter_and_its_config_provider_are_included_in_components_config() throws Exception {
+ public void legacy_yca_filter_and_its_config_provider_are_included_in_components_config() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <filter id='YcaFilter' /> ",
@@ -443,7 +505,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void nested_components_are_injected_to_handlers() throws Exception {
+ public void nested_components_are_injected_to_handlers() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <handler id='myHandler'>",
@@ -474,7 +536,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void affinity_is_set() throws IOException, SAXException {
+ public void affinity_is_set() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <http>",
@@ -516,7 +578,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void http_aliases_are_stored_on_cluster_and_on_service_properties() throws SAXException, IOException {
+ public void http_aliases_are_stored_on_cluster_and_on_service_properties() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <aliases>",
@@ -541,7 +603,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test
- public void http_aliases_are_only_honored_in_prod_environment() throws SAXException, IOException {
+ public void http_aliases_are_only_honored_in_prod_environment() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc id='default' version='1.0'>",
" <aliases>",
@@ -578,17 +640,17 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
}
@Test(expected = IllegalArgumentException.class)
- public void renderers_named_JsonRenderer_are_not_allowed() throws IOException, SAXException {
+ public void renderers_named_JsonRenderer_are_not_allowed() {
createModel(root, generateContainerElementWithRenderer("JsonRenderer"));
}
@Test(expected = IllegalArgumentException.class)
- public void renderers_named_DefaultRenderer_are_not_allowed() throws IOException, SAXException {
+ public void renderers_named_DefaultRenderer_are_not_allowed() {
createModel(root, generateContainerElementWithRenderer("DefaultRenderer"));
}
@Test
- public void renderers_named_something_else_are_allowed() throws IOException, SAXException {
+ public void renderers_named_something_else_are_allowed() {
createModel(root, generateContainerElementWithRenderer("my-little-renderer"));
}
@@ -642,15 +704,15 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
assertEquals("default.container.0", config.discriminator());
assertEquals(19102, config.rpc().port());
assertEquals("vespa/service/default/container.0", config.rpc().slobrokId());
- assertEquals(true, config.rpc().enabled());
+ assertTrue(config.rpc().enabled());
assertEquals("", config.rpc().host());
- assertEquals(false, config.restartOnDeploy());
- assertEquals(false, config.coveragereports());
+ assertFalse(config.restartOnDeploy());
+ assertFalse(config.coveragereports());
assertEquals("filedistribution/" + hostname, config.filedistributor().configid());
}
@Test
- public void secret_store_can_be_set_up() throws IOException, SAXException {
+ public void secret_store_can_be_set_up() {
Element clusterElem = DomBuilderTest.parse(
"<jdisc version='1.0'>",
" <secret-store>",
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
index 69e2dba556a..31c1e250183 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
@@ -26,7 +26,7 @@ public class StorageGroupTest {
"<content id=\"storage\">\n" +
" <documents/>" +
" <group>\n" +
- " <node jvmargs=\"foo\" hostalias=\"mockhost\" distribution-key=\"0\"/>\n" +
+ " <node hostalias=\"mockhost\" distribution-key=\"0\"/>\n" +
" <node hostalias=\"mockhost\" distribution-key=\"1\"/>\n" +
" </group>\n" +
"</content>"
diff --git a/config-model/src/test/schema-test-files/services.xml b/config-model/src/test/schema-test-files/services.xml
index 632abe68ab7..43a8d31e2ee 100644
--- a/config-model/src/test/schema-test-files/services.xml
+++ b/config-model/src/test/schema-test-files/services.xml
@@ -209,7 +209,7 @@
</server>
- <nodes jvmargs="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps">
+ <nodes jvm-options="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps">
<node hostalias="host1" />
<node hostalias="host1">
<server-port id="myServer" port="4090" />