
com.yahoo.jdisc.http.ServerConfig Maven / Gradle / Ivy
/**
* This file is generated from a config definition file.
* ------------ D O N O T E D I T ! ------------
*/
package com.yahoo.jdisc.http;
import java.util.*;
import java.nio.file.Path;
import edu.umd.cs.findbugs.annotations.NonNull;
import com.yahoo.config.*;
/**
* This class represents the root node of server
*
* Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
*/
public final class ServerConfig extends ConfigInstance {
public final static String CONFIG_DEF_MD5 = "0e952cdd916b35a41f35eb50c41074e4";
public final static String CONFIG_DEF_NAME = "server";
public final static String CONFIG_DEF_NAMESPACE = "jdisc.http";
public final static String CONFIG_DEF_VERSION = "";
public final static String[] CONFIG_DEF_SCHEMA = {
"namespace=jdisc.http",
"developerMode bool default=false",
"responseCompressionLevel int default=6",
"httpKeepAliveEnabled bool default=true",
"maxKeepAliveRequests int default=0",
"removeRawPostBodyForWwwUrlEncodedPost bool default=false",
"filter[].id string",
"filter[].binding string",
"maxWorkerThreads int default = 200",
"jmx.enabled bool default = false",
"jmx.listenPort int default = 1099"
};
public static String getDefMd5() { return CONFIG_DEF_MD5; }
public static String getDefName() { return CONFIG_DEF_NAME; }
public static String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
public static String getDefVersion() { return CONFIG_DEF_VERSION; }
public interface Producer extends ConfigInstance.Producer {
void getConfig(Builder builder);
}
public static class Builder implements ConfigInstance.Builder {
private Set __uninitialized = new HashSet();
private Boolean developerMode = null;
private Integer responseCompressionLevel = null;
private Boolean httpKeepAliveEnabled = null;
private Integer maxKeepAliveRequests = null;
private Boolean removeRawPostBodyForWwwUrlEncodedPost = null;
public List filter = new ArrayList<>();
private Integer maxWorkerThreads = null;
public Jmx.Builder jmx = new Jmx.Builder();
public Builder() { }
public Builder(ServerConfig config) {
developerMode(config.developerMode());
responseCompressionLevel(config.responseCompressionLevel());
httpKeepAliveEnabled(config.httpKeepAliveEnabled());
maxKeepAliveRequests(config.maxKeepAliveRequests());
removeRawPostBodyForWwwUrlEncodedPost(config.removeRawPostBodyForWwwUrlEncodedPost());
for (Filter f : config.filter()) {
filter(new Filter.Builder(f));
}
maxWorkerThreads(config.maxWorkerThreads());
jmx(new Jmx.Builder(config.jmx()));
}
private Builder override(Builder __superior) {
if (__superior.developerMode != null)
developerMode(__superior.developerMode);
if (__superior.responseCompressionLevel != null)
responseCompressionLevel(__superior.responseCompressionLevel);
if (__superior.httpKeepAliveEnabled != null)
httpKeepAliveEnabled(__superior.httpKeepAliveEnabled);
if (__superior.maxKeepAliveRequests != null)
maxKeepAliveRequests(__superior.maxKeepAliveRequests);
if (__superior.removeRawPostBodyForWwwUrlEncodedPost != null)
removeRawPostBodyForWwwUrlEncodedPost(__superior.removeRawPostBodyForWwwUrlEncodedPost);
if (!__superior.filter.isEmpty())
filter.addAll(__superior.filter);
if (__superior.maxWorkerThreads != null)
maxWorkerThreads(__superior.maxWorkerThreads);
jmx(jmx.override(__superior.jmx));
return this;
}
public Builder developerMode(boolean __value) {
developerMode = __value;
return this;
}
private Builder developerMode(String __value) {
return developerMode(Boolean.valueOf(__value));
}
public Builder responseCompressionLevel(int __value) {
responseCompressionLevel = __value;
return this;
}
private Builder responseCompressionLevel(String __value) {
return responseCompressionLevel(Integer.valueOf(__value));
}
public Builder httpKeepAliveEnabled(boolean __value) {
httpKeepAliveEnabled = __value;
return this;
}
private Builder httpKeepAliveEnabled(String __value) {
return httpKeepAliveEnabled(Boolean.valueOf(__value));
}
public Builder maxKeepAliveRequests(int __value) {
maxKeepAliveRequests = __value;
return this;
}
private Builder maxKeepAliveRequests(String __value) {
return maxKeepAliveRequests(Integer.valueOf(__value));
}
public Builder removeRawPostBodyForWwwUrlEncodedPost(boolean __value) {
removeRawPostBodyForWwwUrlEncodedPost = __value;
return this;
}
private Builder removeRawPostBodyForWwwUrlEncodedPost(String __value) {
return removeRawPostBodyForWwwUrlEncodedPost(Boolean.valueOf(__value));
}
/**
* Add the given builder to this builder's list of Filter builders
* @param __builder a builder
* @return this builder
*/
public Builder filter(Filter.Builder __builder) {
filter.add(__builder);
return this;
}
/**
* Set the given list as this builder's list of Filter builders
* @param __builders a list of builders
* @return this builder
*/
public Builder filter(List __builders) {
filter = __builders;
return this;
}
public Builder maxWorkerThreads(int __value) {
maxWorkerThreads = __value;
return this;
}
private Builder maxWorkerThreads(String __value) {
return maxWorkerThreads(Integer.valueOf(__value));
}
public Builder jmx(Jmx.Builder __builder) {
jmx = __builder;
return this;
}
@java.lang.Override
public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {
if (producer instanceof Producer) {
((Producer)producer).getConfig(this);
return true;
}
return false;
}
@java.lang.Override
public final String getDefMd5() { return CONFIG_DEF_MD5; }
@java.lang.Override
public final String getDefName() { return CONFIG_DEF_NAME; }
@java.lang.Override
public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
}
// Whether to enable developer mode, where stack traces etc are visible in response bodies.
private final BooleanNode developerMode;
// The gzip compression level to use, if compression is enabled in a request.
private final IntegerNode responseCompressionLevel;
// Whether to enable HTTP keep-alive for requests that support this.
private final BooleanNode httpKeepAliveEnabled;
// Maximum number of request per http connection before server will hangup.
// Naming taken from apache http server.
// 0 means never hangup.
private final IntegerNode maxKeepAliveRequests;
// Whether the request body of POSTed forms should be removed (form parameters are available as request parameters).
private final BooleanNode removeRawPostBodyForWwwUrlEncodedPost;
private final InnerNodeVector filter;
// Max number of threads in pool
private final IntegerNode maxWorkerThreads;
private final Jmx jmx;
public ServerConfig(Builder builder) {
this(builder, true);
}
private ServerConfig(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"server must be initialized: " + builder.__uninitialized);
developerMode = (builder.developerMode == null) ?
new BooleanNode(false) : new BooleanNode(builder.developerMode);
responseCompressionLevel = (builder.responseCompressionLevel == null) ?
new IntegerNode(6) : new IntegerNode(builder.responseCompressionLevel);
httpKeepAliveEnabled = (builder.httpKeepAliveEnabled == null) ?
new BooleanNode(true) : new BooleanNode(builder.httpKeepAliveEnabled);
maxKeepAliveRequests = (builder.maxKeepAliveRequests == null) ?
new IntegerNode(0) : new IntegerNode(builder.maxKeepAliveRequests);
removeRawPostBodyForWwwUrlEncodedPost = (builder.removeRawPostBodyForWwwUrlEncodedPost == null) ?
new BooleanNode(false) : new BooleanNode(builder.removeRawPostBodyForWwwUrlEncodedPost);
filter = Filter.createVector(builder.filter);
maxWorkerThreads = (builder.maxWorkerThreads == null) ?
new IntegerNode(200) : new IntegerNode(builder.maxWorkerThreads);
jmx = new Jmx(builder.jmx, throwIfUninitialized);
}
/**
* @return server.developerMode
*/
public boolean developerMode() {
return developerMode.value();
}
/**
* @return server.responseCompressionLevel
*/
public int responseCompressionLevel() {
return responseCompressionLevel.value();
}
/**
* @return server.httpKeepAliveEnabled
*/
public boolean httpKeepAliveEnabled() {
return httpKeepAliveEnabled.value();
}
/**
* @return server.maxKeepAliveRequests
*/
public int maxKeepAliveRequests() {
return maxKeepAliveRequests.value();
}
/**
* @return server.removeRawPostBodyForWwwUrlEncodedPost
*/
public boolean removeRawPostBodyForWwwUrlEncodedPost() {
return removeRawPostBodyForWwwUrlEncodedPost.value();
}
/**
* @return server.filter[]
*/
public List filter() {
return filter;
}
/**
* @param i the index of the value to return
* @return server.filter[]
*/
public Filter filter(int i) {
return filter.get(i);
}
/**
* @return server.maxWorkerThreads
*/
public int maxWorkerThreads() {
return maxWorkerThreads.value();
}
/**
* @return server.jmx
*/
public Jmx jmx() {
return jmx;
}
private ChangesRequiringRestart getChangesRequiringRestart(ServerConfig newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("server");
return changes;
}
private static boolean containsFieldsFlaggedWithRestart() {
return false;
}
/**
* This class represents server.filter[]
*/
public final static class Filter extends InnerNode {
public static class Builder implements ConfigBuilder {
private Set __uninitialized = new HashSet(Arrays.asList(
"id",
"binding"
));
private String id = null;
private String binding = null;
public Builder() { }
public Builder(Filter config) {
id(config.id());
binding(config.binding());
}
private Builder override(Builder __superior) {
if (__superior.id != null)
id(__superior.id);
if (__superior.binding != null)
binding(__superior.binding);
return this;
}
public Builder id(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
id = __value;
__uninitialized.remove("id");
return this;
}
public Builder binding(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
binding = __value;
__uninitialized.remove("binding");
return this;
}
}
// The component ID of a filter
private final StringNode id;
// The binding of a filter
private final StringNode binding;
/**
* @deprecated Not for public use.
* Does not check for uninitialized fields.
* Replaced by Filter(Builder)
*/
@Deprecated
private Filter() {
this(new Builder(), false);
}
public Filter(Builder builder) {
this(builder, true);
}
private Filter(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"server.filter[] must be initialized: " + builder.__uninitialized);
id = (builder.id == null) ?
new StringNode() : new StringNode(builder.id);
binding = (builder.binding == null) ?
new StringNode() : new StringNode(builder.binding);
}
/**
* @return server.filter[].id
*/
public String id() {
return id.value();
}
/**
* @return server.filter[].binding
*/
public String binding() {
return binding.value();
}
private ChangesRequiringRestart getChangesRequiringRestart(Filter newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("filter");
return changes;
}
private static InnerNodeVector createVector(List builders) {
List elems = new ArrayList<>();
for (Builder b : builders) {
elems.add(new Filter(b));
}
return new InnerNodeVector(elems, new Filter());
}
}
/**
* This class represents server.jmx
*/
public final static class Jmx extends InnerNode {
public static class Builder implements ConfigBuilder {
private Set __uninitialized = new HashSet();
private Boolean enabled = null;
private Integer listenPort = null;
public Builder() { }
public Builder(Jmx config) {
enabled(config.enabled());
listenPort(config.listenPort());
}
private Builder override(Builder __superior) {
if (__superior.enabled != null)
enabled(__superior.enabled);
if (__superior.listenPort != null)
listenPort(__superior.listenPort);
return this;
}
public Builder enabled(boolean __value) {
enabled = __value;
return this;
}
private Builder enabled(String __value) {
return enabled(Boolean.valueOf(__value));
}
public Builder listenPort(int __value) {
listenPort = __value;
return this;
}
private Builder listenPort(String __value) {
return listenPort(Integer.valueOf(__value));
}
}
// Enable embedded JMX server. Note: only accessible through the loopback interface.
private final BooleanNode enabled;
// Listen port for the JMX server.
private final IntegerNode listenPort;
public Jmx(Builder builder) {
this(builder, true);
}
private Jmx(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"server.jmx must be initialized: " + builder.__uninitialized);
enabled = (builder.enabled == null) ?
new BooleanNode(false) : new BooleanNode(builder.enabled);
listenPort = (builder.listenPort == null) ?
new IntegerNode(1099) : new IntegerNode(builder.listenPort);
}
/**
* @return server.jmx.enabled
*/
public boolean enabled() {
return enabled.value();
}
/**
* @return server.jmx.listenPort
*/
public int listenPort() {
return listenPort.value();
}
private ChangesRequiringRestart getChangesRequiringRestart(Jmx newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("jmx");
return changes;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy