package org.infinispan.rest.configuration; import org.infinispan.commons.configuration.Builder; import org.infinispan.rest.logging.Log; import org.infinispan.server.core.configuration.ProtocolServerConfigurationBuilder; import org.infinispan.util.logging.LogFactory; /** * RestServerConfigurationBuilder. * * @author Tristan Tarrant * @since 5.3 */ public class RestServerConfigurationBuilder extends ProtocolServerConfigurationBuilder<RestServerConfiguration, RestServerConfigurationBuilder> implements Builder<RestServerConfiguration> { private final static Log logger = LogFactory.getLog(RestServerConfigurationBuilder.class, Log.class); public static final String DEFAULT_CONTEXT_PATH = "rest"; private boolean startTransport = true; private static final int DEFAULT_PORT = 8080; private ExtendedHeaders extendedHeaders = ExtendedHeaders.ON_DEMAND; private String contextPath = DEFAULT_CONTEXT_PATH; public RestServerConfigurationBuilder() { super(DEFAULT_PORT); } public RestServerConfigurationBuilder extendedHeaders(ExtendedHeaders extendedHeaders) { this.extendedHeaders = extendedHeaders; return this; } public RestServerConfigurationBuilder startTransport(boolean startTransport) { this.startTransport = startTransport; return this; } public RestServerConfigurationBuilder contextPath(String contextPath) { this.contextPath = contextPath; return this; } @Override public void validate() { // Nothing to do } @Override public RestServerConfiguration create() { return new RestServerConfiguration(extendedHeaders, host, port, ignoredCaches, ssl.create(), startTransport, contextPath); } @Override public Builder<?> read(RestServerConfiguration template) { this.extendedHeaders = template.extendedHeaders(); this.host = template.host(); this.port = template.port(); return this; } public RestServerConfiguration build() { return build(true); } public RestServerConfiguration build(boolean validate) { if (validate) validate(); return create(); } @Override public RestServerConfigurationBuilder self() { return this; } @Override public RestServerConfigurationBuilder defaultCacheName(String defaultCacheName) { throw logger.unsupportedConfigurationOption(); } @Override public RestServerConfigurationBuilder idleTimeout(int idleTimeout) { throw logger.unsupportedConfigurationOption(); } @Override public RestServerConfigurationBuilder tcpNoDelay(boolean tcpNoDelay) { throw logger.unsupportedConfigurationOption(); } @Override public RestServerConfigurationBuilder recvBufSize(int recvBufSize) { throw logger.unsupportedConfigurationOption(); } @Override public RestServerConfigurationBuilder sendBufSize(int sendBufSize) { throw logger.unsupportedConfigurationOption(); } @Override public RestServerConfigurationBuilder workerThreads(int workerThreads) { throw logger.unsupportedConfigurationOption(); } }