This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new e777c141544 camel-jetty12: Add component property for setting
RequestLog to Jetty12 (#15609)
e777c141544 is described below
commit e777c141544dabbab09aff57864cfbe8315ae831
Author: Kari Mattila <[email protected]>
AuthorDate: Wed Sep 18 14:13:36 2024 +0300
camel-jetty12: Add component property for setting RequestLog to Jetty12
(#15609)
* camel-jetty12: Add componentProperty requestLog
* Add missing generated sources
---
.../org/apache/camel/catalog/components/jetty.json | 25 ++++----
.../jetty12/JettyHttpComponent12Configurer.java | 6 ++
.../org/apache/camel/component/jetty12/jetty.json | 25 ++++----
.../component/jetty12/JettyHttpComponent12.java | 19 ++++++
.../component/jetty/rest/RestRequestLogTest.java | 70 ++++++++++++++++++++++
.../dsl/JettyComponentBuilderFactory.java | 17 ++++++
6 files changed, 138 insertions(+), 24 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
index cee691af629..2939c756795 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jetty.json
@@ -49,18 +49,19 @@
"httpBinding": { "index": 21, "kind": "property", "displayName": "Http
Binding", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "Not to be used - use JettyHttpBinding instead." },
"httpConfiguration": { "index": 22, "kind": "property", "displayName":
"Http Configuration", "group": "advanced", "label": "advanced", "required":
false, "type": "object", "javaType":
"org.apache.camel.http.common.HttpConfiguration", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Jetty component does not use HttpConfiguration." },
"mbContainer": { "index": 23, "kind": "property", "displayName": "Mb
Container", "group": "advanced", "label": "advanced", "required": false,
"type": "object", "javaType": "org.eclipse.jetty.jmx.MBeanContainer",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "To use a existing configured
org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for
registering mbeans." },
- "headerFilterStrategy": { "index": 24, "kind": "property", "displayName":
"Header Filter Strategy", "group": "filter", "label": "filter", "required":
false, "type": "object", "javaType":
"org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired":
false, "secret": false, "description": "To use a custom
org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel
message." },
- "proxyHost": { "index": 25, "kind": "property", "displayName": "Proxy
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To use a http proxy to
configure the hostname." },
- "proxyPort": { "index": 26, "kind": "property", "displayName": "Proxy
Port", "group": "proxy", "label": "proxy", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
use a http proxy to configure the port number." },
- "keystore": { "index": 27, "kind": "property", "displayName": "Keystore",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": true, "description": "Specifies the location of
the Java keystore file, which contains the Jetty server's own X.509 certificate
in a key entry." },
- "socketConnectorProperties": { "index": 28, "kind": "property",
"displayName": "Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general HTTP connector properties. Uses the same principle
as sslSocketConnectorProperties." },
- "socketConnectors": { "index": 29, "kind": "property", "displayName":
"Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific HTTP connectors. Uses the same principle as
sslSocketConnectors." },
- "sslContextParameters": { "index": 30, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
configure security using SSLContextParameters" },
- "sslKeyPassword": { "index": 31, "kind": "property", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
- "sslPassword": { "index": 32, "kind": "property", "displayName": "Ssl
Password", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
- "sslSocketConnectorProperties": { "index": 33, "kind": "property",
"displayName": "Ssl Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general SSL connector properties." },
- "sslSocketConnectors": { "index": 34, "kind": "property", "displayName":
"Ssl Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific SSL connectors." },
- "useGlobalSslContextParameters": { "index": 35, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable usage of global
SSL context parameters" }
+ "requestLog": { "index": 24, "kind": "property", "displayName": "Request
Log", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.eclipse.jetty.server.RequestLog", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "To configure Jetty request logging" },
+ "headerFilterStrategy": { "index": 25, "kind": "property", "displayName":
"Header Filter Strategy", "group": "filter", "label": "filter", "required":
false, "type": "object", "javaType":
"org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired":
false, "secret": false, "description": "To use a custom
org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel
message." },
+ "proxyHost": { "index": 26, "kind": "property", "displayName": "Proxy
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To use a http proxy to
configure the hostname." },
+ "proxyPort": { "index": 27, "kind": "property", "displayName": "Proxy
Port", "group": "proxy", "label": "proxy", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
use a http proxy to configure the port number." },
+ "keystore": { "index": 28, "kind": "property", "displayName": "Keystore",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": true, "description": "Specifies the location of
the Java keystore file, which contains the Jetty server's own X.509 certificate
in a key entry." },
+ "socketConnectorProperties": { "index": 29, "kind": "property",
"displayName": "Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general HTTP connector properties. Uses the same principle
as sslSocketConnectorProperties." },
+ "socketConnectors": { "index": 30, "kind": "property", "displayName":
"Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific HTTP connectors. Uses the same principle as
sslSocketConnectors." },
+ "sslContextParameters": { "index": 31, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
configure security using SSLContextParameters" },
+ "sslKeyPassword": { "index": 32, "kind": "property", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
+ "sslPassword": { "index": 33, "kind": "property", "displayName": "Ssl
Password", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
+ "sslSocketConnectorProperties": { "index": 34, "kind": "property",
"displayName": "Ssl Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general SSL connector properties." },
+ "sslSocketConnectors": { "index": 35, "kind": "property", "displayName":
"Ssl Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific SSL connectors." },
+ "useGlobalSslContextParameters": { "index": 36, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable usage of global
SSL context parameters" }
},
"headers": {
"CamelServletContextPath": { "index": 0, "kind": "header", "displayName":
"", "group": "consumer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The servlet context path used", "constantName":
"org.apache.camel.component.jetty.JettyHttpConstants#SERVLET_CONTEXT_PATH" },
diff --git
a/components/camel-jetty/src/generated/java/org/apache/camel/component/jetty12/JettyHttpComponent12Configurer.java
b/components/camel-jetty/src/generated/java/org/apache/camel/component/jetty12/JettyHttpComponent12Configurer.java
index 3690065d5e2..6ef822e8ac2 100644
---
a/components/camel-jetty/src/generated/java/org/apache/camel/component/jetty12/JettyHttpComponent12Configurer.java
+++
b/components/camel-jetty/src/generated/java/org/apache/camel/component/jetty12/JettyHttpComponent12Configurer.java
@@ -66,6 +66,8 @@ public class JettyHttpComponent12Configurer extends
PropertyConfigurerSupport im
case "requestBufferSize":
target.setRequestBufferSize(property(camelContext, java.lang.Integer.class,
value)); return true;
case "requestheadersize":
case "requestHeaderSize":
target.setRequestHeaderSize(property(camelContext, java.lang.Integer.class,
value)); return true;
+ case "requestlog":
+ case "requestLog": target.setRequestLog(property(camelContext,
org.eclipse.jetty.server.RequestLog.class, value)); return true;
case "responsebuffersize":
case "responseBufferSize":
target.setResponseBufferSize(property(camelContext, java.lang.Integer.class,
value)); return true;
case "responseheadersize":
@@ -144,6 +146,8 @@ public class JettyHttpComponent12Configurer extends
PropertyConfigurerSupport im
case "requestBufferSize": return java.lang.Integer.class;
case "requestheadersize":
case "requestHeaderSize": return java.lang.Integer.class;
+ case "requestlog":
+ case "requestLog": return org.eclipse.jetty.server.RequestLog.class;
case "responsebuffersize":
case "responseBufferSize": return java.lang.Integer.class;
case "responseheadersize":
@@ -223,6 +227,8 @@ public class JettyHttpComponent12Configurer extends
PropertyConfigurerSupport im
case "requestBufferSize": return target.getRequestBufferSize();
case "requestheadersize":
case "requestHeaderSize": return target.getRequestHeaderSize();
+ case "requestlog":
+ case "requestLog": return target.getRequestLog();
case "responsebuffersize":
case "responseBufferSize": return target.getResponseBufferSize();
case "responseheadersize":
diff --git
a/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
b/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
index cee691af629..2939c756795 100644
---
a/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
+++
b/components/camel-jetty/src/generated/resources/META-INF/org/apache/camel/component/jetty12/jetty.json
@@ -49,18 +49,19 @@
"httpBinding": { "index": 21, "kind": "property", "displayName": "Http
Binding", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "Not to be used - use JettyHttpBinding instead." },
"httpConfiguration": { "index": 22, "kind": "property", "displayName":
"Http Configuration", "group": "advanced", "label": "advanced", "required":
false, "type": "object", "javaType":
"org.apache.camel.http.common.HttpConfiguration", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Jetty component does not use HttpConfiguration." },
"mbContainer": { "index": 23, "kind": "property", "displayName": "Mb
Container", "group": "advanced", "label": "advanced", "required": false,
"type": "object", "javaType": "org.eclipse.jetty.jmx.MBeanContainer",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "To use a existing configured
org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for
registering mbeans." },
- "headerFilterStrategy": { "index": 24, "kind": "property", "displayName":
"Header Filter Strategy", "group": "filter", "label": "filter", "required":
false, "type": "object", "javaType":
"org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired":
false, "secret": false, "description": "To use a custom
org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel
message." },
- "proxyHost": { "index": 25, "kind": "property", "displayName": "Proxy
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To use a http proxy to
configure the hostname." },
- "proxyPort": { "index": 26, "kind": "property", "displayName": "Proxy
Port", "group": "proxy", "label": "proxy", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
use a http proxy to configure the port number." },
- "keystore": { "index": 27, "kind": "property", "displayName": "Keystore",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": true, "description": "Specifies the location of
the Java keystore file, which contains the Jetty server's own X.509 certificate
in a key entry." },
- "socketConnectorProperties": { "index": 28, "kind": "property",
"displayName": "Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general HTTP connector properties. Uses the same principle
as sslSocketConnectorProperties." },
- "socketConnectors": { "index": 29, "kind": "property", "displayName":
"Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific HTTP connectors. Uses the same principle as
sslSocketConnectors." },
- "sslContextParameters": { "index": 30, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
configure security using SSLContextParameters" },
- "sslKeyPassword": { "index": 31, "kind": "property", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
- "sslPassword": { "index": 32, "kind": "property", "displayName": "Ssl
Password", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
- "sslSocketConnectorProperties": { "index": 33, "kind": "property",
"displayName": "Ssl Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general SSL connector properties." },
- "sslSocketConnectors": { "index": 34, "kind": "property", "displayName":
"Ssl Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific SSL connectors." },
- "useGlobalSslContextParameters": { "index": 35, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable usage of global
SSL context parameters" }
+ "requestLog": { "index": 24, "kind": "property", "displayName": "Request
Log", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.eclipse.jetty.server.RequestLog", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "To configure Jetty request logging" },
+ "headerFilterStrategy": { "index": 25, "kind": "property", "displayName":
"Header Filter Strategy", "group": "filter", "label": "filter", "required":
false, "type": "object", "javaType":
"org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired":
false, "secret": false, "description": "To use a custom
org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel
message." },
+ "proxyHost": { "index": 26, "kind": "property", "displayName": "Proxy
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To use a http proxy to
configure the hostname." },
+ "proxyPort": { "index": 27, "kind": "property", "displayName": "Proxy
Port", "group": "proxy", "label": "proxy", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
use a http proxy to configure the port number." },
+ "keystore": { "index": 28, "kind": "property", "displayName": "Keystore",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": true, "description": "Specifies the location of
the Java keystore file, which contains the Jetty server's own X.509 certificate
in a key entry." },
+ "socketConnectorProperties": { "index": 29, "kind": "property",
"displayName": "Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general HTTP connector properties. Uses the same principle
as sslSocketConnectorProperties." },
+ "socketConnectors": { "index": 30, "kind": "property", "displayName":
"Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific HTTP connectors. Uses the same principle as
sslSocketConnectors." },
+ "sslContextParameters": { "index": 31, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "To
configure security using SSLContextParameters" },
+ "sslKeyPassword": { "index": 32, "kind": "property", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
+ "sslPassword": { "index": 33, "kind": "property", "displayName": "Ssl
Password", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "description": "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)." },
+ "sslSocketConnectorProperties": { "index": 34, "kind": "property",
"displayName": "Ssl Socket Connector Properties", "group": "security", "label":
"security", "required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
map which contains general SSL connector properties." },
+ "sslSocketConnectors": { "index": 35, "kind": "property", "displayName":
"Ssl Socket Connectors", "group": "security", "label": "security", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.Integer,
org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "A map which contains
per port number specific SSL connectors." },
+ "useGlobalSslContextParameters": { "index": 36, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable usage of global
SSL context parameters" }
},
"headers": {
"CamelServletContextPath": { "index": 0, "kind": "header", "displayName":
"", "group": "consumer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The servlet context path used", "constantName":
"org.apache.camel.component.jetty.JettyHttpConstants#SERVLET_CONTEXT_PATH" },
diff --git
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpComponent12.java
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpComponent12.java
index c46305e59e4..dd601880e94 100644
---
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpComponent12.java
+++
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/JettyHttpComponent12.java
@@ -26,12 +26,14 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.jetty.JettyHttpComponent;
import org.apache.camel.component.jetty.JettyHttpEndpoint;
+import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.PropertyBindingSupport;
import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.ConnectionFactory;
import org.eclipse.jetty.server.ForwardedRequestCustomizer;
import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.SslConnectionFactory;
@@ -46,6 +48,8 @@ public class JettyHttpComponent12 extends JettyHttpComponent {
private static final Logger LOG =
LoggerFactory.getLogger(JettyHttpComponent12.class);
+ private RequestLog requestLog;
+
@Override
protected JettyHttpEndpoint createEndpoint(URI endpointUri, URI httpUri)
throws URISyntaxException {
return new JettyHttpEndpoint12(this, endpointUri.toString(), httpUri);
@@ -79,6 +83,9 @@ public class JettyHttpComponent12 extends JettyHttpComponent {
if (useXForwardedForHeader) {
httpConfig.addCustomizer(new ForwardedRequestCustomizer());
}
+ if (requestLog != null) {
+ server.setRequestLog(requestLog);
+ }
HttpConnectionFactory httpFactory = new
org.eclipse.jetty.server.HttpConnectionFactory(httpConfig);
ArrayList<ConnectionFactory> connectionFactories = new
ArrayList<>();
@@ -129,4 +136,16 @@ public class JettyHttpComponent12 extends
JettyHttpComponent {
}
}
+ /**
+ * To configure Jetty request logging.
+ */
+ @Metadata(description = "To configure Jetty request logging", label =
"advanced")
+ public void setRequestLog(RequestLog requestLog) {
+ this.requestLog = requestLog;
+ }
+
+ public RequestLog getRequestLog() {
+ return requestLog;
+ }
+
}
diff --git
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestRequestLogTest.java
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestRequestLogTest.java
new file mode 100644
index 00000000000..63e873b86d9
--- /dev/null
+++
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestRequestLogTest.java
@@ -0,0 +1,70 @@
+/*
+ * 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.jetty.rest;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jetty.BaseJettyTest;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.eclipse.jetty.server.CustomRequestLog;
+import org.eclipse.jetty.server.RequestLog;
+import org.eclipse.jetty.server.Slf4jRequestLogWriter;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class RestRequestLogTest extends BaseJettyTest {
+
+ @Test
+ public void testJettyRequestLog() throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(1);
+
+ String out = template.requestBody("http://localhost:" + getPort() +
"/api/123/", null, String.class);
+ assertEquals("Bye 123", out);
+
+ MockEndpoint.assertIsSatisfied(context);
+ }
+
+ @BindToRegistry("myRequestLog")
+ public RequestLog loadRequestLog() {
+ String format = "%t %{client}a %H %s %m %U%q - %{ms}T %I %O";
+ Slf4jRequestLogWriter logWriter = new Slf4jRequestLogWriter();
+ logWriter.setLoggerName("accesslog");
+ CustomRequestLog requestLog = new CustomRequestLog(logWriter, format);
+ return requestLog;
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ // configure to use jetty on localhost with the given port
using custom request logger
+
restConfiguration().component("jetty").host("localhost").port(getPort()).componentProperty("requestLog",
+ "#myRequestLog");
+
+ rest("/api/").get("/{id}/").to("direct:foo");
+
+
from("direct:foo").removeHeaders("CamelHttp*").to("http://localhost:" +
getPort2());
+
+ from("jetty:http://localhost:" + getPort2() +
"?matchOnUriPrefix=true").to("mock:result").transform()
+ .simple("Bye ${header.id}");
+ }
+ };
+ }
+
+}
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JettyComponentBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JettyComponentBuilderFactory.java
index e53f38a08d9..8f5ec437f9d 100644
---
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JettyComponentBuilderFactory.java
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JettyComponentBuilderFactory.java
@@ -483,6 +483,22 @@ public interface JettyComponentBuilderFactory {
return this;
}
+ /**
+ * To configure Jetty request logging.
+ *
+ * The option is a:
+ * <code>org.eclipse.jetty.server.RequestLog</code> type.
+ *
+ * Group: advanced
+ *
+ * @param requestLog the value to set
+ * @return the dsl builder
+ */
+ default JettyComponentBuilder
requestLog(org.eclipse.jetty.server.RequestLog requestLog) {
+ doSetProperty("requestLog", requestLog);
+ return this;
+ }
+
/**
* To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
* header to and from Camel message.
@@ -718,6 +734,7 @@ public interface JettyComponentBuilderFactory {
case "httpBinding": ((JettyHttpComponent12)
component).setHttpBinding((org.apache.camel.http.common.HttpBinding) value);
return true;
case "httpConfiguration": ((JettyHttpComponent12)
component).setHttpConfiguration((org.apache.camel.http.common.HttpConfiguration)
value); return true;
case "mbContainer": ((JettyHttpComponent12)
component).setMbContainer((org.eclipse.jetty.jmx.MBeanContainer) value); return
true;
+ case "requestLog": ((JettyHttpComponent12)
component).setRequestLog((org.eclipse.jetty.server.RequestLog) value); return
true;
case "headerFilterStrategy": ((JettyHttpComponent12)
component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy)
value); return true;
case "proxyHost": ((JettyHttpComponent12)
component).setProxyHost((java.lang.String) value); return true;
case "proxyPort": ((JettyHttpComponent12)
component).setProxyPort((java.lang.Integer) value); return true;