This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch camel-spring-boot-3.x in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/camel-spring-boot-3.x by this push: new 6c336b25288 [create-pull-request] automated change (#1027) 6c336b25288 is described below commit 6c336b252881f27f426f7815b3b14504e405d37d Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> AuthorDate: Thu Nov 30 06:39:21 2023 +0100 [create-pull-request] automated change (#1027) Co-authored-by: orpiske <orpi...@users.noreply.github.com> --- .../camel/springboot/catalog/components/jetty.json | 8 ++++ .../camel-jetty-starter/src/main/docs/jetty.json | 27 +++++++++++ .../JettyHttpComponentConfiguration9.java | 52 ++++++++++++++++++++++ 3 files changed, 87 insertions(+) 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 50fc5dfd8e9..ed1d12e9fc1 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-jett [...] "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 des [...] "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 t [...] @@ -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 s [...] "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 con [...] "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 jett [...] "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 [...] "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 [...] "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 3a6ce46dfb1..a100f9c115b 100644 --- a/components-starter/camel-jetty-starter/src/main/docs/jetty.json +++ b/components-starter/camel-jetty-starter/src/main/docs/jetty.json @@ -65,6 +65,19 @@ "description": "This option is used to set the ErrorHandler that Jetty server uses. The option is a org.eclipse.jetty.server.handler.ErrorHandler type.", "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", @@ -95,6 +108,20 @@ "description": "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.", "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", 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 725b1519186..1b62f773856 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 @@ -118,6 +118,26 @@ public class JettyHttpComponentConfiguration9 * 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 @@ -331,6 +351,38 @@ public class JettyHttpComponentConfiguration9 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; }