content: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.camel.component.jetty12.springboot;
  
  import java.util.Map;
  import org.apache.camel.http.common.HttpBinding;
  import org.apache.camel.http.common.HttpConfiguration;
  import org.apache.camel.spi.HeaderFilterStrategy;
  import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
  import org.apache.camel.support.jsse.SSLContextParameters;
  import org.eclipse.jetty.jmx.MBeanContainer;
  import org.eclipse.jetty.server.Connector;
  import org.eclipse.jetty.server.RequestLog;
  import org.eclipse.jetty.server.SecureRequestCustomizer;
  import org.eclipse.jetty.server.handler.ErrorHandler;
  import org.eclipse.jetty.util.thread.ThreadPool;
  import org.springframework.boot.context.properties.ConfigurationProperties;
  
  /**
   * Expose HTTP endpoints using Jetty 12.
   * 
   * Generated by camel-package-maven-plugin - do not edit this file!
   */
  @ConfigurationProperties(prefix = "camel.component.jetty")
  public class JettyHttpComponentConfiguration12
          extends
              ComponentConfigurationPropertiesCommon {
  
      /**
       * Whether to enable auto configuration of the jetty component. This is
       * enabled by default.
       */
      private Boolean enabled;
      /**
       * Allows for bridging the consumer to the Camel routing Error Handler,
       * which mean any exceptions (if possible) occurred while the Camel consumer
       * is trying to pickup incoming messages, or the likes, will now be
       * processed as a message and handled by the routing Error Handler.
       * Important: This is only possible if the 3rd party component allows Camel
       * to be alerted if an exception was thrown. Some components handle this
       * internally only, and therefore bridgeErrorHandler is not possible. In
       * other situations we may improve the Camel component to hook into the 3rd
       * party component and make this possible for future releases. By default
       * the consumer will use the org.apache.camel.spi.ExceptionHandler to deal
       * with exceptions, that will be logged at WARN or ERROR level and ignored.
       */
      private Boolean bridgeErrorHandler = false;
      /**
       * Allows to set a timeout in millis when using Jetty as consumer (server).
       * By default Jetty uses 30000. You can use a value of = 0 to never expire.
       * If a timeout occurs then the request will be expired and Jetty will
       * return back a http error 503 to the client. This option is only in use
       * when using Jetty with the Asynchronous Routing Engine.
       */
      private Long continuationTimeout = 30000L;
      /**
       * If this option is true, Jetty JMX support will be enabled for this
       * endpoint.
       */
      private Boolean enableJmx = false;
      /**
       * To set a value for maximum number of threads in server thread pool.
       * Notice that both a min and max size must be configured.
       */
      private Integer maxThreads;
      /**
       * To set a value for minimum number of threads in server thread pool.
       * Notice that both a min and max size must be configured.
       */
      private Integer minThreads;
      /**
       * If enabled and an Exchange failed processing on the consumer side the
       * response's body won't contain the exception's stack trace.
       */
      private Boolean muteException = true;
      /**
       * Allows to configure a custom value of the request buffer size on the
       * Jetty connectors.
       */
      private Integer requestBufferSize;
      /**
       * Allows to configure a custom value of the request header size on the
       * Jetty connectors.
       */
      private Integer requestHeaderSize;
      /**
       * Allows to configure a custom value of the response buffer size on the
       * Jetty connectors.
       */
      private Integer responseBufferSize;
      /**
       * Allows to configure a custom value of the response header size on the
       * Jetty connectors.
       */
      private Integer responseHeaderSize;
      /**
       * If the option is true, jetty will send the server header with the jetty
       * version information to the client which sends the request. NOTE please
       * make sure there is no any other camel-jetty endpoint is share the same
       * port, otherwise this option may not work as expected.
       */
      private Boolean sendServerVersion = true;
      /**
       * Whether or not to use Jetty continuations for the Jetty Server.
       */
      private Boolean useContinuation = true;
      /**
       * To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr.
       */
      private Boolean useXForwardedForHeader = false;
      /**
       * The size threshold after which files will be written to disk for
       * multipart/form-data requests. By default the files are not written to
       * disk
       */
      private Integer fileSizeThreshold = 0;
      /**
       * The directory location where files will be store for multipart/form-data
       * requests. By default the files are written in the system temporary folder
       */
      private String filesLocation;
      /**
       * The maximum size allowed for uploaded files. -1 means no limit
       */
      private Long maxFileSize = -1L;
      /**
       * The maximum size allowed for multipart/form-data requests. -1 means no
       * limit
       */
      private Long maxRequestSize = -1L;
      /**
       * To use a custom thread pool for the server. This option should only be
       * used in special circumstances. The option is a
       * org.eclipse.jetty.util.thread.ThreadPool type.
       */
      private ThreadPool threadPool;
      /**
       * Whether to allow java serialization when a request uses
       * context-type=application/x-java-serialized-object. This is by default
       * turned off. If you enable this then be aware that Java will deserialize
       * the incoming data from the request to Java and that can be a potential
       * security risk.
       */
      private Boolean allowJavaSerializedObject = false;
      /**
       * Whether autowiring is enabled. This is used for automatic autowiring
       * options (the option must be marked as autowired) by looking up in the
       * registry to find if there is a single instance of matching type, which
       * then gets configured on the component. This can be used for automatic
       * configuring JDBC data sources, JMS connection factories, AWS Clients,
       * etc.
       */
      private Boolean autowiredEnabled = true;
      /**
       * This option is used to set the ErrorHandler that Jetty server uses. The
       * option is a org.eclipse.jetty.server.handler.ErrorHandler type.
       */
      private ErrorHandler errorHandler;
      /**
       * Not to be used - use JettyHttpBinding instead. The option is a
       * org.apache.camel.http.common.HttpBinding type.
       */
      private HttpBinding httpBinding;
      /**
       * Jetty component does not use HttpConfiguration. The option is a
       * org.apache.camel.http.common.HttpConfiguration type.
       */
      private HttpConfiguration httpConfiguration;
      /**
       * To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX
       * is enabled that Jetty uses for registering mbeans. The option is a
       * org.eclipse.jetty.jmx.MBeanContainer type.
       */
      private MBeanContainer mbContainer;
      /**
       * To configure Jetty request logging. The option is a
       * org.eclipse.jetty.server.RequestLog type.
       */
      private RequestLog requestLog;
      /**
       * To use a custom SecureRequestCustomizer. The option is a
       * org.eclipse.jetty.server.SecureRequestCustomizer type. The option is a
       * org.eclipse.jetty.server.SecureRequestCustomizer type.
       */
      private SecureRequestCustomizer secureRequestCustomizer;
      /**
       * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
       * header to and from Camel message. The option is a
       * org.apache.camel.spi.HeaderFilterStrategy type.
       */
      private HeaderFilterStrategy headerFilterStrategy;
      /**
       * To use a http proxy to configure the hostname.
       */
      private String proxyHost;
      /**
       * To use a http proxy to configure the port number.
       */
      private Integer proxyPort;
      /**
       * Specifies the location of the Java keystore file, which contains the
       * Jetty server's own X.509 certificate in a key entry.
       */
      private String keystore;
      /**
       * A map which contains general HTTP connector properties. Uses the same
       * principle as sslSocketConnectorProperties.
       */
      private Map<String, Object> socketConnectorProperties;
      /**
       * A map which contains per port number specific HTTP connectors. Uses the
       * same principle as sslSocketConnectors.
       */
      private Map<Integer, Connector> socketConnectors;
      /**
       * To configure security using SSLContextParameters. The option is a
       * org.apache.camel.support.jsse.SSLContextParameters type.
       */
      private SSLContextParameters sslContextParameters;
      /**
       * The key password, which is used to access the certificate's key entry in
       * the keystore (this is the same password that is supplied to the keystore
       * command's -keypass option).
       */
      private String sslKeyPassword;
      /**
       * The ssl password, which is required to access the keystore file (this is
       * the same password that is supplied to the keystore command's -storepass
       * option).
       */
      private String sslPassword;
      /**
       * A map which contains general SSL connector properties.
       */
      private Map<String, Object> sslSocketConnectorProperties;
      /**
       * A map which contains per port number specific SSL connectors.
       */
      private Map<Integer, Connector> sslSocketConnectors;
      /**
       * Enable usage of global SSL context parameters
       */
      private Boolean useGlobalSslContextParameters = false;
  
      public Boolean getBridgeErrorHandler() {
          return bridgeErrorHandler;
      }
  
      public void setBridgeErrorHandler(Boolean bridgeErrorHandler) {
          this.bridgeErrorHandler = bridgeErrorHandler;
      }
  
      public Long getContinuationTimeout() {
          return continuationTimeout;
      }
  
      public void setContinuationTimeout(Long continuationTimeout) {
          this.continuationTimeout = continuationTimeout;
      }
  
      public Boolean getEnableJmx() {
          return enableJmx;
      }
  
      public void setEnableJmx(Boolean enableJmx) {
          this.enableJmx = enableJmx;
      }
  
      public Integer getMaxThreads() {
          return maxThreads;
      }
  
      public void setMaxThreads(Integer maxThreads) {
          this.maxThreads = maxThreads;
      }
  
      public Integer getMinThreads() {
          return minThreads;
      }
  
      public void setMinThreads(Integer minThreads) {
          this.minThreads = minThreads;
      }
  
      public Boolean getMuteException() {
          return muteException;
      }
  
      public void setMuteException(Boolean muteException) {
          this.muteException = muteException;
      }
  
      public Integer getRequestBufferSize() {
          return requestBufferSize;
      }
  
      public void setRequestBufferSize(Integer requestBufferSize) {
          this.requestBufferSize = requestBufferSize;
      }
  
      public Integer getRequestHeaderSize() {
          return requestHeaderSize;
      }
  
      public void setRequestHeaderSize(Integer requestHeaderSize) {
          this.requestHeaderSize = requestHeaderSize;
      }
  
      public Integer getResponseBufferSize() {
          return responseBufferSize;
      }
  
      public void setResponseBufferSize(Integer responseBufferSize) {
          this.responseBufferSize = responseBufferSize;
      }
  
      public Integer getResponseHeaderSize() {
          return responseHeaderSize;
      }
  
      public void setResponseHeaderSize(Integer responseHeaderSize) {
          this.responseHeaderSize = responseHeaderSize;
      }
  
      public Boolean getSendServerVersion() {
          return sendServerVersion;
      }
  
      public void setSendServerVersion(Boolean sendServerVersion) {
          this.sendServerVersion = sendServerVersion;
      }
  
      public Boolean getUseContinuation() {
          return useContinuation;
      }
  
      public void setUseContinuation(Boolean useContinuation) {
          this.useContinuation = useContinuation;
      }
  
      public Boolean getUseXForwardedForHeader() {
          return useXForwardedForHeader;
      }
  
      public void setUseXForwardedForHeader(Boolean useXForwardedForHeader) {
          this.useXForwardedForHeader = useXForwardedForHeader;
      }
  
      public Integer getFileSizeThreshold() {
          return fileSizeThreshold;
      }
  
      public void setFileSizeThreshold(Integer fileSizeThreshold) {
          this.fileSizeThreshold = fileSizeThreshold;
      }
  
      public String getFilesLocation() {
          return filesLocation;
      }
  
      public void setFilesLocation(String filesLocation) {
          this.filesLocation = filesLocation;
      }
  
      public Long getMaxFileSize() {
          return maxFileSize;
      }
  
      public void setMaxFileSize(Long maxFileSize) {
          this.maxFileSize = maxFileSize;
      }
  
      public Long getMaxRequestSize() {
          return maxRequestSize;
      }
  
      public void setMaxRequestSize(Long maxRequestSize) {
          this.maxRequestSize = maxRequestSize;
      }
  
      public ThreadPool getThreadPool() {
          return threadPool;
      }
  
      public void setThreadPool(ThreadPool threadPool) {
          this.threadPool = threadPool;
      }
  
      public Boolean getAllowJavaSerializedObject() {
          return allowJavaSerializedObject;
      }
  
      public void setAllowJavaSerializedObject(Boolean allowJavaSerializedObject) {
          this.allowJavaSerializedObject = allowJavaSerializedObject;
      }
  
      public Boolean getAutowiredEnabled() {
          return autowiredEnabled;
      }
  
      public void setAutowiredEnabled(Boolean autowiredEnabled) {
          this.autowiredEnabled = autowiredEnabled;
      }
  
      public ErrorHandler getErrorHandler() {
          return errorHandler;
      }
  
      public void setErrorHandler(ErrorHandler errorHandler) {
          this.errorHandler = errorHandler;
      }
  
      public HttpBinding getHttpBinding() {
          return httpBinding;
      }
  
      public void setHttpBinding(HttpBinding httpBinding) {
          this.httpBinding = httpBinding;
      }
  
      public HttpConfiguration getHttpConfiguration() {
          return httpConfiguration;
      }
  
      public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
          this.httpConfiguration = httpConfiguration;
      }
  
      public MBeanContainer getMbContainer() {
          return mbContainer;
      }
  
      public void setMbContainer(MBeanContainer mbContainer) {
          this.mbContainer = mbContainer;
      }
  
      public RequestLog getRequestLog() {
          return requestLog;
      }
  
      public void setRequestLog(RequestLog requestLog) {
          this.requestLog = requestLog;
      }
  
      public SecureRequestCustomizer getSecureRequestCustomizer() {
          return secureRequestCustomizer;
      }
  
      public void setSecureRequestCustomizer(
              SecureRequestCustomizer secureRequestCustomizer) {
          this.secureRequestCustomizer = secureRequestCustomizer;
      }
  
      public HeaderFilterStrategy getHeaderFilterStrategy() {
          return headerFilterStrategy;
      }
  
      public void setHeaderFilterStrategy(
              HeaderFilterStrategy headerFilterStrategy) {
          this.headerFilterStrategy = headerFilterStrategy;
      }
  
      public String getProxyHost() {
          return proxyHost;
      }
  
      public void setProxyHost(String proxyHost) {
          this.proxyHost = proxyHost;
      }
  
      public Integer getProxyPort() {
          return proxyPort;
      }
  
      public void setProxyPort(Integer proxyPort) {
          this.proxyPort = proxyPort;
      }
  
      public String getKeystore() {
          return keystore;
      }
  
      public void setKeystore(String keystore) {
          this.keystore = keystore;
      }
  
      public Map<String, Object> getSocketConnectorProperties() {
          return socketConnectorProperties;
      }
  
      public void setSocketConnectorProperties(
              Map<String, Object> socketConnectorProperties) {
          this.socketConnectorProperties = socketConnectorProperties;
      }
  
      public Map<Integer, Connector> getSocketConnectors() {
          return socketConnectors;
      }
  
      public void setSocketConnectors(Map<Integer, Connector> socketConnectors) {
          this.socketConnectors = socketConnectors;
      }
  
      public SSLContextParameters getSslContextParameters() {
          return sslContextParameters;
      }
  
      public void setSslContextParameters(
              SSLContextParameters sslContextParameters) {
          this.sslContextParameters = sslContextParameters;
      }
  
      public String getSslKeyPassword() {
          return sslKeyPassword;
      }
  
      public void setSslKeyPassword(String sslKeyPassword) {
          this.sslKeyPassword = sslKeyPassword;
      }
  
      public String getSslPassword() {
          return sslPassword;
      }
  
      public void setSslPassword(String sslPassword) {
          this.sslPassword = sslPassword;
      }
  
      public Map<String, Object> getSslSocketConnectorProperties() {
          return sslSocketConnectorProperties;
      }
  
      public void setSslSocketConnectorProperties(
              Map<String, Object> sslSocketConnectorProperties) {
          this.sslSocketConnectorProperties = sslSocketConnectorProperties;
      }
  
      public Map<Integer, Connector> getSslSocketConnectors() {
          return sslSocketConnectors;
      }
  
      public void setSslSocketConnectors(
              Map<Integer, Connector> sslSocketConnectors) {
          this.sslSocketConnectors = sslSocketConnectors;
      }
  
      public Boolean getUseGlobalSslContextParameters() {
          return useGlobalSslContextParameters;
      }
  
      public void setUseGlobalSslContextParameters(
              Boolean useGlobalSslContextParameters) {
          this.useGlobalSslContextParameters = useGlobalSslContextParameters;
      }
  }