[create-pull-request] automated change (#1027)

Co-authored-by: orpiske <orpiske@users.noreply.github.com>
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/jetty.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/jetty.json
index 50fc5df..ed1d12e 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/jetty.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/jetty.json
@@ -36,6 +36,10 @@
     "sendServerVersion": { "kind": "property", "displayName": "Send Server Version", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "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." },
     "useContinuation": { "kind": "property", "displayName": "Use Continuation", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not to use Jetty continuations for the Jetty Server." },
     "useXForwardedForHeader": { "kind": "property", "displayName": "Use XForwarded For Header", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr." },
+    "fileSizeThreshold": { "kind": "property", "displayName": "File Size Threshold", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 0, "description": "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" },
+    "filesLocation": { "kind": "property", "displayName": "Files Location", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The directory location where files will be store for multipart\/form-data requests. By default the files are written in the system temporary folder" },
+    "maxFileSize": { "kind": "property", "displayName": "Max File Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": -1, "description": "The maximum size allowed for uploaded files. -1 means no limit" },
+    "maxRequestSize": { "kind": "property", "displayName": "Max Request Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": -1, "description": "The maximum size allowed for multipart\/form-data requests. -1 means no limit" },
     "threadPool": { "kind": "property", "displayName": "Thread Pool", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.eclipse.jetty.util.thread.ThreadPool", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a custom thread pool for the server. This option should only be used in special circumstances." },
     "allowJavaSerializedObject": { "kind": "property", "displayName": "Allow Java Serialized Object", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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." },
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "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." },
@@ -85,12 +89,16 @@
     "eagerCheckContentAvailable": { "kind": "parameter", "displayName": "Eager Check Content Available", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. This can be turned on in case HTTP clients do not send streamed data." },
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "fileSizeThreshold": { "kind": "parameter", "displayName": "File Size Threshold", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "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" },
+    "filesLocation": { "kind": "parameter", "displayName": "Files Location", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The directory location where files will be store for multipart\/form-data requests. By default the files are written in the system temporary folder" },
     "filterInitParameters": { "kind": "parameter", "displayName": "Filter Init Parameters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "filter.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Configuration of the filter init parameters. These parameters will be applied to the filter list before starting the jetty server." },
     "filters": { "kind": "parameter", "displayName": "Filters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.util.List<javax.servlet.Filter>", "deprecated": false, "autowired": false, "secret": false, "description": "Allows using a custom filters which is putted into a list and can be find in the Registry. Multiple values can be separated by comma." },
     "handlers": { "kind": "parameter", "displayName": "Handlers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.util.List<org.eclipse.jetty.server.Handler>", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies a comma-delimited set of Handler instances to lookup in your Registry. These handlers are added to the Jetty servlet context (for example, to add security). Important: You can not use different handlers with different Jetty endpoints using the same port number. The handlers is associated to the port number. If you need different handlers, then use different port numbers." },
     "mapHttpMessageBody": { "kind": "parameter", "displayName": "Map Http Message Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Body of the exchange will be mapped to HTTP body. Setting this to false will avoid the HTTP mapping." },
     "mapHttpMessageFormUrlEncodedBody": { "kind": "parameter", "displayName": "Map Http Message Form Url Encoded Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Form Encoded body of the exchange will be mapped to HTTP. Setting this to false will avoid the HTTP Form Encoded body mapping." },
     "mapHttpMessageHeaders": { "kind": "parameter", "displayName": "Map Http Message Headers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Headers of the exchange will be mapped to HTTP headers. Setting this to false will avoid the HTTP Headers mapping." },
+    "maxFileSize": { "kind": "parameter", "displayName": "Max File Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "The maximum size allowed for uploaded files. -1 means no limit" },
+    "maxRequestSize": { "kind": "parameter", "displayName": "Max Request Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "The maximum size allowed for multipart\/form-data requests. -1 means no limit" },
     "multipartFilter": { "kind": "parameter", "displayName": "Multipart Filter", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "javax.servlet.Filter", "deprecated": false, "autowired": false, "secret": false, "description": "Allows using a custom multipart filter. Note: setting multipartFilterRef forces the value of enableMultipartFilter to true." },
     "optionsEnabled": { "kind": "parameter", "displayName": "Options Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." },
     "traceEnabled": { "kind": "parameter", "displayName": "Trace Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off." },
diff --git a/components-starter/camel-jetty-starter/src/main/docs/jetty.json b/components-starter/camel-jetty-starter/src/main/docs/jetty.json
index 3a6ce46..a100f9c 100644
--- a/components-starter/camel-jetty-starter/src/main/docs/jetty.json
+++ b/components-starter/camel-jetty-starter/src/main/docs/jetty.json
@@ -66,6 +66,19 @@
       "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
     },
     {
+      "name": "camel.component.jetty.file-size-threshold",
+      "type": "java.lang.Integer",
+      "description": "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",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.jetty.files-location",
+      "type": "java.lang.String",
+      "description": "The directory location where files will be store for multipart\/form-data requests. By default the files are written in the system temporary folder",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
       "name": "camel.component.jetty.header-filter-strategy",
       "type": "org.apache.camel.spi.HeaderFilterStrategy",
       "description": "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.",
@@ -96,6 +109,20 @@
       "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
     },
     {
+      "name": "camel.component.jetty.max-file-size",
+      "type": "java.lang.Long",
+      "description": "The maximum size allowed for uploaded files. -1 means no limit",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jetty.max-request-size",
+      "type": "java.lang.Long",
+      "description": "The maximum size allowed for multipart\/form-data requests. -1 means no limit",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": -1
+    },
+    {
       "name": "camel.component.jetty.max-threads",
       "type": "java.lang.Integer",
       "description": "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.",
diff --git a/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java b/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
index 725b151..1b62f77 100644
--- a/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
+++ b/components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConfiguration9.java
@@ -119,6 +119,26 @@
      */
     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.
@@ -331,6 +351,38 @@
         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;
     }