Repository: camel Updated Branches: refs/heads/master 9ea536050 -> c4607e6c5
http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-mqtt/src/main/docs/mqtt-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-mqtt/src/main/docs/mqtt-component.adoc b/components/camel-mqtt/src/main/docs/mqtt-component.adoc index 532293b..67de942 100644 --- a/components/camel-mqtt/src/main/docs/mqtt-component.adoc +++ b/components/camel-mqtt/src/main/docs/mqtt-component.adoc @@ -67,7 +67,7 @@ The MQTT component supports 40 endpoint options which are listed below: | byDefaultRetain | common | false | boolean | The default retain policy to be used on messages sent to the MQTT broker | cleanSession | common | false | boolean | Set to false if you want the MQTT server to persist topic subscriptions and ack positions across client sessions. Defaults to true. | clientId | common | | String | Use to set the client Id of the session. This is what an MQTT server uses to identify a session where setCleanSession(false); is being used. The id must be 23 characters or less. Defaults to auto generated id (based on your socket address port and timestamp). -| connectAttemptsMax | common | -1 | long | The maximum number of reconnect attempts before an error is reported back to the client on the first attempt by the client to connect to a server. Set to -1 to use unlimited attempts. Defaults to -1. +| connectAttemptsMax | common | 1 | long | The maximum number of reconnect attempts before an error is reported back to the client on the first attempt by the client to connect to a server. Set to -1 to use unlimited attempts. Defaults to -1. | connectWaitInSeconds | common | 10 | int | Delay in seconds the Component will wait for a connection to be established to the MQTT broker | disconnectWaitInSeconds | common | 5 | int | The number of seconds the Component will wait for a valid disconnect on stop() from the MQTT broker | dispatchQueue | common | | DispatchQueue | A HawtDispatch dispatch queue is used to synchronize access to the connection. If an explicit queue is not configured via the setDispatchQueue method then a new queue will be created for the connection. Setting an explicit queue might be handy if you want multiple connection to share the same queue for synchronization. @@ -82,8 +82,8 @@ The MQTT component supports 40 endpoint options which are listed below: | publishTopicName | common | camel/mqtt/test | String | The default Topic to publish messages on | qualityOfService | common | AtLeastOnce | String | Quality of service level to use for topics. | receiveBufferSize | common | 65536 | int | Sets the size of the internal socket receive buffer. Defaults to 65536 (64k) -| reconnectAttemptsMax | common | -1 | long | The maximum number of reconnect attempts before an error is reported back to the client after a server connection had previously been established. Set to -1 to use unlimited attempts. Defaults to -1. -| reconnectBackOffMultiplier | common | 2.0 | double | The Exponential backoff be used between reconnect attempts. Set to 1 to disable exponential backoff. Defaults to 2. +| reconnectAttemptsMax | common | 1 | long | The maximum number of reconnect attempts before an error is reported back to the client after a server connection had previously been established. Set to -1 to use unlimited attempts. Defaults to -1. +| reconnectBackOffMultiplier | common | 2 | double | The Exponential backoff be used between reconnect attempts. Set to 1 to disable exponential backoff. Defaults to 2. | reconnectDelay | common | 10 | long | How long to wait in ms before the first reconnect attempt. Defaults to 10. | reconnectDelayMax | common | 30000 | long | The maximum amount of time in ms to wait between reconnect attempts. Defaults to 30000. | sendBufferSize | common | 65536 | int | Sets the size of the internal socket send buffer. Defaults to 65536 (64k) @@ -155,4 +155,4 @@ http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Pollin * link:configuring-camel.html[Configuring Camel] * link:message-endpoint.html[Message Endpoint] pattern * link:uris.html[URIs] -* link:writing-components.html[Writing Components] \ No newline at end of file +* link:writing-components.html[Writing Components] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-netty-http/src/main/docs/netty-http-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-netty-http/src/main/docs/netty-http-component.adoc b/components/camel-netty-http/src/main/docs/netty-http-component.adoc index 3ec896d..e7bdb00 100644 --- a/components/camel-netty-http/src/main/docs/netty-http-component.adoc +++ b/components/camel-netty-http/src/main/docs/netty-http-component.adoc @@ -153,7 +153,7 @@ The Netty HTTP component supports 82 endpoint options which are listed below: | lazyChannelCreation | producer (advanced) | true | boolean | Channels can be lazily created to avoid exceptions if the remote server is not up and running when the Camel producer is started. | okStatusCodeRange | producer (advanced) | 200-299 | String | The status codes which is considered a success response. The values are inclusive. The range must be defined as from-to with the dash included. The default range is 200-299 | producerPoolEnabled | producer (advanced) | true | boolean | Whether producer pool is enabled or not. Important: Do not turn this off as the pooling is needed for handling concurrency and reliable request/reply. -| producerPoolMaxActive | producer (advanced) | -1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. +| producerPoolMaxActive | producer (advanced) | 1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. | producerPoolMaxIdle | producer (advanced) | 100 | int | Sets the cap on the number of idle instances in the pool. | producerPoolMinEvictableIdle | producer (advanced) | 300000 | long | Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor. | producerPoolMinIdle | producer (advanced) | | int | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. @@ -508,4 +508,4 @@ below: * link:netty.html[Netty] * link:netty-http-server-example.html[Netty HTTP Server Example] -* link:jetty.html[Jetty] \ No newline at end of file +* link:jetty.html[Jetty] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-netty/src/main/docs/netty-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-netty/src/main/docs/netty-component.adoc b/components/camel-netty/src/main/docs/netty-component.adoc index 491834c..1cedf0f 100644 --- a/components/camel-netty/src/main/docs/netty-component.adoc +++ b/components/camel-netty/src/main/docs/netty-component.adoc @@ -118,7 +118,7 @@ The Netty component supports 70 endpoint options which are listed below: | clientPipelineFactory | producer (advanced) | | ClientPipelineFactory | To use a custom ClientPipelineFactory | lazyChannelCreation | producer (advanced) | true | boolean | Channels can be lazily created to avoid exceptions if the remote server is not up and running when the Camel producer is started. | producerPoolEnabled | producer (advanced) | true | boolean | Whether producer pool is enabled or not. Important: Do not turn this off as the pooling is needed for handling concurrency and reliable request/reply. -| producerPoolMaxActive | producer (advanced) | -1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. +| producerPoolMaxActive | producer (advanced) | 1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. | producerPoolMaxIdle | producer (advanced) | 100 | int | Sets the cap on the number of idle instances in the pool. | producerPoolMinEvictableIdle | producer (advanced) | 300000 | long | Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor. | producerPoolMinIdle | producer (advanced) | | int | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. @@ -613,4 +613,4 @@ And if we have another route we can refer to the shared worker pool: * link:getting-started.html[Getting Started] * link:netty-http.html[Netty HTTP] -* link:mina.html[MINA] \ No newline at end of file +* link:mina.html[MINA] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-netty4-http/src/main/docs/netty4-http-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-netty4-http/src/main/docs/netty4-http-component.adoc b/components/camel-netty4-http/src/main/docs/netty4-http-component.adoc index e33899a..33619ba 100644 --- a/components/camel-netty4-http/src/main/docs/netty4-http-component.adoc +++ b/components/camel-netty4-http/src/main/docs/netty4-http-component.adoc @@ -151,7 +151,7 @@ The Netty4 HTTP component supports 83 endpoint options which are listed below: | lazyChannelCreation | producer (advanced) | true | boolean | Channels can be lazily created to avoid exceptions if the remote server is not up and running when the Camel producer is started. | okStatusCodeRange | producer (advanced) | 200-299 | String | The status codes which is considered a success response. The values are inclusive. The range must be defined as from-to with the dash included. The default range is 200-299 | producerPoolEnabled | producer (advanced) | true | boolean | Whether producer pool is enabled or not. Important: Do not turn this off as the pooling is needed for handling concurrency and reliable request/reply. -| producerPoolMaxActive | producer (advanced) | -1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. +| producerPoolMaxActive | producer (advanced) | 1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. | producerPoolMaxIdle | producer (advanced) | 100 | int | Sets the cap on the number of idle instances in the pool. | producerPoolMinEvictableIdle | producer (advanced) | 300000 | long | Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor. | producerPoolMinIdle | producer (advanced) | | int | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. @@ -510,4 +510,4 @@ below: * link:netty.html[Netty] * link:netty-http-server-example.html[Netty HTTP Server Example] -* link:jetty.html[Jetty] \ No newline at end of file +* link:jetty.html[Jetty] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-netty4/src/main/docs/netty4-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-netty4/src/main/docs/netty4-component.adoc b/components/camel-netty4/src/main/docs/netty4-component.adoc index ad41d38..d1d5ac4 100644 --- a/components/camel-netty4/src/main/docs/netty4-component.adoc +++ b/components/camel-netty4/src/main/docs/netty4-component.adoc @@ -117,7 +117,7 @@ The Netty4 component supports 74 endpoint options which are listed below: | clientInitializerFactory | producer (advanced) | | ClientInitializerFactory | To use a custom ClientInitializerFactory | lazyChannelCreation | producer (advanced) | true | boolean | Channels can be lazily created to avoid exceptions if the remote server is not up and running when the Camel producer is started. | producerPoolEnabled | producer (advanced) | true | boolean | Whether producer pool is enabled or not. Important: Do not turn this off as the pooling is needed for handling concurrency and reliable request/reply. -| producerPoolMaxActive | producer (advanced) | -1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. +| producerPoolMaxActive | producer (advanced) | 1 | int | Sets the cap on the number of objects that can be allocated by the pool (checked out to clients or idle awaiting checkout) at a given time. Use a negative value for no limit. | producerPoolMaxIdle | producer (advanced) | 100 | int | Sets the cap on the number of idle instances in the pool. | producerPoolMinEvictableIdle | producer (advanced) | 300000 | long | Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor. | producerPoolMinIdle | producer (advanced) | | int | Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects. @@ -681,4 +681,4 @@ And if we have another route we can refer to the shared worker pool: * link:getting-started.html[Getting Started] * link:netty-http.html[Netty HTTP] -* link:mina.html[MINA] \ No newline at end of file +* link:mina.html[MINA] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-sjms/src/main/docs/sjms-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-sjms/src/main/docs/sjms-component.adoc b/components/camel-sjms/src/main/docs/sjms-component.adoc index 5d8f615..ce93777 100644 --- a/components/camel-sjms/src/main/docs/sjms-component.adoc +++ b/components/camel-sjms/src/main/docs/sjms-component.adoc @@ -131,7 +131,7 @@ The Simple JMS component supports 36 endpoint options which are listed below: | namedReplyTo | producer | | String | Sets the reply to destination name used for InOut producer endpoints. | persistent | producer | true | boolean | Flag used to enable/disable message persistence. | producerCount | producer | 1 | int | Sets the number of producers used for this endpoint. -| ttl | producer | -1 | long | Flag used to adjust the Time To Live value of produced messages. +| ttl | producer | 1 | long | Flag used to adjust the Time To Live value of produced messages. | allowNullBody | producer (advanced) | true | boolean | Whether to allow sending messages with no body. If this option is false and the message body is null then an JMSException is thrown. | prefillPool | producer (advanced) | true | boolean | Whether to prefill the producer connection pool on startup or create connections lazy when needed. | responseTimeOut | producer (advanced) | 5000 | long | Sets the amount of time we should wait before timing out a InOut response. @@ -150,7 +150,7 @@ The Simple JMS component supports 36 endpoint options which are listed below: | errorHandlerLoggingLevel | logging | WARN | LoggingLevel | Allows to configure the default errorHandler logging level for logging uncaught exceptions. | errorHandlerLogStackTrace | logging | true | boolean | Allows to control whether stacktraces should be logged or not by the default errorHandler. | transacted | transaction | false | boolean | Specifies whether to use transacted mode -| transactionBatchCount | transaction | -1 | int | If transacted sets the number of messages to process before committing a transaction. +| transactionBatchCount | transaction | 1 | int | If transacted sets the number of messages to process before committing a transaction. | transactionBatchTimeout | transaction | 5000 | long | Sets timeout (in millis) for batch transactions the value should be 1000 or higher. | transactionCommitStrategy | transaction | | TransactionCommitStrategy | Sets the commit strategy. | sharedJMSSession | transaction (advanced) | true | boolean | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers use jms component to leverage XA transaction. @@ -531,4 +531,4 @@ DSL: Springless refers to moving away from the dependency on the Spring JMS API. A new JMS client API is being developed from the ground up to power -SJMS. \ No newline at end of file +SJMS. http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-sql/src/main/docs/sql-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-sql/src/main/docs/sql-component.adoc b/components/camel-sql/src/main/docs/sql-component.adoc index fcc273c..aa6ff8f 100644 --- a/components/camel-sql/src/main/docs/sql-component.adoc +++ b/components/camel-sql/src/main/docs/sql-component.adoc @@ -141,7 +141,7 @@ The SQL component supports 46 endpoint options which are listed below: | separator | common | , | char | The separator to use when parameter values is taken from message body (if the body is a String type) to be inserted at placeholders. Notice if you use named parameters then a Map type is used instead. The default value is comma. | breakBatchOnConsumeFail | consumer | false | boolean | Sets whether to break batch if onConsume failed. | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. 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. -| expectedUpdateCount | consumer | -1 | int | Sets an expected update count to validate when using onConsume. +| expectedUpdateCount | consumer | 1 | int | Sets an expected update count to validate when using onConsume. | maxMessagesPerPoll | consumer | | int | Sets the maximum number of messages to poll | onConsume | consumer | | String | After processing each row then this query can be executed if the Exchange was processed successfully for example to mark the row as processed. The query can have parameter. | onConsumeBatchComplete | consumer | | String | After processing the entire batch this query can be executed to bulk update rows etc. The query cannot have parameters. @@ -768,4 +768,4 @@ You should also include the specific database driver, if needed. link:sql-stored-procedure.html[SQL Stored Procedure] -link:jdbc.html[JDBC] \ No newline at end of file +link:jdbc.html[JDBC] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-websocket/src/main/docs/websocket-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-websocket/src/main/docs/websocket-component.adoc b/components/camel-websocket/src/main/docs/websocket-component.adoc index a35cc87..cc284ee 100644 --- a/components/camel-websocket/src/main/docs/websocket-component.adoc +++ b/components/camel-websocket/src/main/docs/websocket-component.adoc @@ -75,7 +75,7 @@ The Jetty Websocket component supports 21 endpoint options which are listed belo | host | common | 0.0.0.0 | String | The hostname. The default value is 0.0.0.0. Setting this option on the component will use the component configured value as default. | port | common | 9292 | Integer | The port number. The default value is 9292. Setting this option on the component will use the component configured value as default. | resourceUri | common | | String | *Required* Name of the websocket channel to use -| maxBinaryMessageSize | common | -1 | Integer | Can be used to set the size in bytes that the websocket created by the websocketServlet may be accept before closing. (Default is -1 - or unlimited) +| maxBinaryMessageSize | common | 1 | Integer | Can be used to set the size in bytes that the websocket created by the websocketServlet may be accept before closing. (Default is -1 - or unlimited) | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. 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. | sessionSupport | consumer | false | boolean | Whether to enable session support which enables HttpSession for each http request. | staticResources | consumer | | String | Set a resource path for static resources (such as .html files etc). The resources can be loaded from classpath if you prefix with classpath: otherwise the resources is loaded from file system or from JAR files. For example to load from root classpath use classpath:. or classpath:WEB-INF/static If not configured (eg null) then no static resource is in use. @@ -233,4 +233,4 @@ Java DSL based configuration of endpoint * link:jetty.html[Jetty] * link:twitter-websocket-example.html[Twitter Websocket Example] demonstrates how to poll a constant feed of twitter searches and publish -results in real time using web socket to a web page. \ No newline at end of file +results in real time using web socket to a web page. http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/components/camel-yammer/src/main/docs/yammer-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-yammer/src/main/docs/yammer-component.adoc b/components/camel-yammer/src/main/docs/yammer-component.adoc index 92330c6..e0fd3f5 100644 --- a/components/camel-yammer/src/main/docs/yammer-component.adoc +++ b/components/camel-yammer/src/main/docs/yammer-component.adoc @@ -77,9 +77,9 @@ The Yammer component supports 29 endpoint options which are listed below: | useJson | common | false | boolean | Set to true if you want to use raw JSON rather than converting to POJOs. | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. 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. | delay | consumer | 5000 | long | Delay between polling in millis -| limit | consumer | -1 | int | Return only the specified number of messages. Works for threaded=true and threaded=extended. -| newerThan | consumer | -1 | int | Returns messages newer than the message ID specified as a numeric string. This should be used when polling for new messages. If you're looking at messages and the most recent message returned is 3516 you can make a request with the parameter newerThan=3516 to ensure that you do not get duplicate copies of messages already on your page. -| olderThan | consumer | -1 | int | Returns messages older than the message ID specified as a numeric string. This is useful for paginating messages. For example if you're currently viewing 20 messages and the oldest is number 2912 you could append olderThan=2912 to your request to get the 20 messages prior to those you're seeing. +| limit | consumer | 1 | int | Return only the specified number of messages. Works for threaded=true and threaded=extended. +| newerThan | consumer | 1 | int | Returns messages newer than the message ID specified as a numeric string. This should be used when polling for new messages. If you're looking at messages and the most recent message returned is 3516 you can make a request with the parameter newerThan=3516 to ensure that you do not get duplicate copies of messages already on your page. +| olderThan | consumer | 1 | int | Returns messages older than the message ID specified as a numeric string. This is useful for paginating messages. For example if you're currently viewing 20 messages and the oldest is number 2912 you could append olderThan=2912 to your request to get the 20 messages prior to those you're seeing. | sendEmptyMessageWhenIdle | consumer | false | boolean | If the polling consumer did not poll any files you can enable this option to send an empty message (no body) instead. | threaded | consumer | | String | threaded=true will only return the first message in each thread. This parameter is intended for apps which display message threads collapsed. threaded=extended will return the thread starter messages in order of most recently active as well as the two most recent messages as they are viewed in the default view on the Yammer web interface. | userId | consumer | | String | The user id @@ -348,4 +348,4 @@ the Camel message body. * link:configuring-camel.html[Configuring Camel] * link:component.html[Component] * link:endpoint.html[Endpoint] -* link:getting-started.html[Getting Started] \ No newline at end of file +* link:getting-started.html[Getting Started] http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java index daaf3cd..1258256 100644 --- a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java +++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java @@ -27,7 +27,8 @@ import java.util.regex.Pattern; public final class JSonSchemaHelper { - private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]"); + // 0 = text, 1 = enum, 2 = boolean, 3 = integer + private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)"); private static final String QUOT = """; private JSonSchemaHelper() { @@ -81,19 +82,34 @@ public final class JSonSchemaHelper { key = matcher.group(1); } else { String value = matcher.group(1); - if (value == null) { - value = matcher.group(2); - // its an enum so strip out " and trim spaces after comma - value = value.replaceAll("\"", ""); - value = value.replaceAll(", ", ","); - } if (value != null) { + // its text based value = value.trim(); // decode value = value.replaceAll(QUOT, "\""); value = decodeJson(value); } - row.put(key, value); + if (value == null) { + // not text then its maybe an enum? + value = matcher.group(2); + if (value != null) { + // its an enum so strip out " and trim spaces after comma + value = value.replaceAll("\"", ""); + value = value.replaceAll(", ", ","); + value = value.trim(); + } + } + if (value == null) { + // not text then its maybe a boolean? + value = matcher.group(3); + } + if (value == null) { + // not text then its maybe a integer? + value = matcher.group(4); + } + if (value != null) { + row.put(key, value); + } // reset key = null; } http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java index ff9a7fb..c98cd1d 100644 --- a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java +++ b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java @@ -1061,4 +1061,44 @@ public class CamelCatalogTest { assertEquals("delete", result.getNotProducerOnly().iterator().next()); } + @Test + public void testJSonSchemaHelper() throws Exception { + String json = loadText(new FileInputStream("src/test/resources/org/foo/camel/dummy.json")); + assertNotNull(json); + + // component + List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("component", json, false); + assertEquals(12, rows.size()); + assertTrue(JSonSchemaHelper.isComponentProducerOnly(rows)); + assertFalse(JSonSchemaHelper.isComponentConsumerOnly(rows)); + String desc = null; + for (Map<String, String> row : rows) { + if (row.containsKey("description")) { + desc = row.get("description"); + break; + } + } + + // componentProperties + rows = JSonSchemaHelper.parseJsonSchema("componentProperties", json, true); + assertEquals(1, rows.size()); + Map<String, String> row = JSonSchemaHelper.getRow(rows, "exchangeFormatter"); + assertNotNull(row); + assertEquals("org.apache.camel.spi.ExchangeFormatter", row.get("javaType")); + + // properties + rows = JSonSchemaHelper.parseJsonSchema("properties", json, true); + assertEquals(27, rows.size()); + row = JSonSchemaHelper.getRow(rows, "level"); + assertNotNull(row); + assertEquals("INFO", row.get("defaultValue")); + String enums = JSonSchemaHelper.getPropertyEnum(rows, "level"); + assertEquals("ERROR,WARN,INFO,DEBUG,TRACE,OFF", enums); + + row = JSonSchemaHelper.getRow(rows, "maxChars"); + assertNotNull(row); + assertEquals("false", row.get("deprecated")); + assertEquals("10000", row.get("defaultValue")); + } + } http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/catalog/src/test/resources/org/foo/camel/dummy.json ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/test/resources/org/foo/camel/dummy.json b/platforms/catalog/src/test/resources/org/foo/camel/dummy.json index 4c04238..feee3de 100644 --- a/platforms/catalog/src/test/resources/org/foo/camel/dummy.json +++ b/platforms/catalog/src/test/resources/org/foo/camel/dummy.json @@ -6,43 +6,44 @@ "title": "Dummy", "description": "The dummy component logs message exchanges to the underlying logging mechanism.", "label": "core,monitoring", - "producerOnly": "true", + "producerOnly": true, + "consumerOnly": false, "javaType": "org.foo.camel.DummyComponent", "groupId": "org.foo.camel", "artifactId": "dummy", "version": "1.0" }, "componentProperties": { - "exchangeFormatter": { "kind": "property", "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": "false", "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified we default to DefaultExchangeFormatter." } + "exchangeFormatter": { "kind": "property", "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": false, "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified we default to DefaultExchangeFormatter." } }, "properties": { - "loggerName": { "kind": "path", "group": "producer", "required": "true", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "The logger name to use" }, - "groupActiveOnly": { "kind": "parameter", "group": "producer", "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": "false", "defaultValue": "true", "description": "If true will hide stats when no new messages have been received for a time interval if false show stats regardless of message traffic." }, - "groupDelay": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Long", "deprecated": "false", "description": "Set the initial delay for stats (in millis)" }, - "groupInterval": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Long", "deprecated": "false", "description": "If specified will group message stats by this time interval (in millis)" }, - "groupSize": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Integer", "deprecated": "false", "description": "An integer that specifies a group size for throughput logging." }, - "level": { "kind": "parameter", "group": "producer", "type": "string", "javaType": "java.lang.String", "enum": [ "ERROR", "WARN", "INFO", "DEBUG", "TRACE", "OFF" ], "deprecated": "false", "defaultValue": "INFO", "description": "Logging level to use. The default value is INFO." }, - "marker": { "kind": "parameter", "group": "producer", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "An optional Marker name to use." }, - "exchangePattern": { "kind": "parameter", "group": "advanced", "label": "advanced", "type": "string", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "RobustInOnly", "InOut", "InOptionalOut", "OutOnly", "RobustOutOnly", "OutIn", "OutOptionalIn" ], "deprecated": "false", "defaultValue": "InOnly", "description": "Sets the default exchange pattern when creating an exchange." }, - "synchronous": { "kind": "parameter", "group": "advanced", "label": "advanced", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported)." }, - "maxChars": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "integer", "javaType": "int", "deprecated": "false", "defaultValue": "10000", "description": "Limits the number of characters logged per line." }, - "multiline": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "If enabled then each information is outputted on a newline." }, - "showAll": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Quick option for turning all options on. (multiline maxChars has to be manually set if to be used)" }, - "showBody": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Show the message body." }, - "showBodyType": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Show the body Java type." }, - "showCaughtException": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "f the exchange has a caught exception show the exception message (no stack trace). A caught exception is stored as a property on the exchange (using the key link org.apache.camel.ExchangeEXCEPTION_CAUGHT and for instance a doCatch can catch exceptions." }, - "showException": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "If the exchange has an exception show the exception message (no stacktrace)" }, - "showExchangeId": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Show the unique exchange ID." }, - "showExchangePattern": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Shows the Message Exchange Pattern (or MEP for short)." }, - "showFiles": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "If enabled Camel will output files" }, - "showFuture": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "If enabled Camel will on Future objects wait for it to complete to obtain the payload to be logged." }, - "showHeaders": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Show the message headers." }, - "showOut": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "If the exchange has an out message show the out message." }, - "showProperties": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Show the exchange properties." }, - "showStackTrace": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Show the stack trace if an exchange has an exception. Only effective if one of showAll showException or showCaughtException are enabled." }, - "showStreams": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Whether Camel should show stream bodies or not (eg such as java.io.InputStream). Beware if you enable this option then you may not be able later to access the message body as the stream have already been read by this logger. To remedy this you will have to use Stream Caching." }, - "skipBodyLineSeparator": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Whether to skip line separators when logging the message body. This allows to log the message body in one line setting this option to false will preserve any line separators from the body which then will log the body as is." }, - "style": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "string", "javaType": "org.apache.camel.processor.DefaultExchangeFormatter.OutputStyle", "enum": [ "Default", "Tab", "Fixed" ], "deprecated": "false", "defaultValue": "Default", "description": "Sets the outputs style to use." } + "loggerName": { "kind": "path", "group": "producer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "description": "The logger name to use" }, + "groupActiveOnly": { "kind": "parameter", "group": "producer", "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "defaultValue": true, "description": "If true will hide stats when no new messages have been received for a time interval if false show stats regardless of message traffic." }, + "groupDelay": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "description": "Set the initial delay for stats (in millis)" }, + "groupInterval": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "description": "If specified will group message stats by this time interval (in millis)" }, + "groupSize": { "kind": "parameter", "group": "producer", "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "description": "An integer that specifies a group size for throughput logging." }, + "level": { "kind": "parameter", "group": "producer", "type": "string", "javaType": "java.lang.String", "enum": [ "ERROR", "WARN", "INFO", "DEBUG", "TRACE", "OFF" ], "deprecated": false, "defaultValue": "INFO", "description": "Logging level to use. The default value is INFO." }, + "marker": { "kind": "parameter", "group": "producer", "type": "string", "javaType": "java.lang.String", "deprecated": false, "description": "An optional Marker name to use." }, + "exchangePattern": { "kind": "parameter", "group": "advanced", "label": "advanced", "type": "string", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "RobustInOnly", "InOut", "InOptionalOut", "OutOnly", "RobustOutOnly", "OutIn", "OutOptionalIn" ], "deprecated": false, "defaultValue": "InOnly", "description": "Sets the default exchange pattern when creating an exchange." }, + "synchronous": { "kind": "parameter", "group": "advanced", "label": "advanced", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported)." }, + "maxChars": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "integer", "javaType": "int", "deprecated": false, "defaultValue": 10000, "description": "Limits the number of characters logged per line." }, + "multiline": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "If enabled then each information is outputted on a newline." }, + "showAll": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Quick option for turning all options on. (multiline maxChars has to be manually set if to be used)" }, + "showBody": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": true, "description": "Show the message body." }, + "showBodyType": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": true, "description": "Show the body Java type." }, + "showCaughtException": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "f the exchange has a caught exception show the exception message (no stack trace). A caught exception is stored as a property on the exchange (using the key link org.apache.camel.ExchangeEXCEPTION_CAUGHT and for instance a doCatch can catch exceptions." }, + "showException": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "If the exchange has an exception show the exception message (no stacktrace)" }, + "showExchangeId": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Show the unique exchange ID." }, + "showExchangePattern": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": true, "description": "Shows the Message Exchange Pattern (or MEP for short)." }, + "showFiles": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "If enabled Camel will output files" }, + "showFuture": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "If enabled Camel will on Future objects wait for it to complete to obtain the payload to be logged." }, + "showHeaders": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Show the message headers." }, + "showOut": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "If the exchange has an out message show the out message." }, + "showProperties": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Show the exchange properties." }, + "showStackTrace": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Show the stack trace if an exchange has an exception. Only effective if one of showAll showException or showCaughtException are enabled." }, + "showStreams": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": false, "description": "Whether Camel should show stream bodies or not (eg such as java.io.InputStream). Beware if you enable this option then you may not be able later to access the message body as the stream have already been read by this logger. To remedy this you will have to use Stream Caching." }, + "skipBodyLineSeparator": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, "defaultValue": true, "description": "Whether to skip line separators when logging the message body. This allows to log the message body in one line setting this option to false will preserve any line separators from the body which then will log the body as is." }, + "style": { "kind": "parameter", "group": "formatting", "label": "formatting", "type": "string", "javaType": "org.apache.camel.processor.DefaultExchangeFormatter.OutputStyle", "enum": [ "Default", "Tab", "Fixed" ], "deprecated": false, "defaultValue": "Default", "description": "Sets the outputs style to use." } } } http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java index a1d2929..5c5d623 100644 --- a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java @@ -246,7 +246,7 @@ public class AMQPComponentConfiguration { * value to eg 100 to control how fast the consumers will shrink when less * work is required. */ - private Integer maxMessagesPerTask = -1; + private Integer maxMessagesPerTask = 1; /** * To use a custom Spring * org.springframework.jms.support.converter.MessageConverter so you can be @@ -323,7 +323,7 @@ public class AMQPComponentConfiguration { * When sending messages specifies the time-to-live of the message (in * milliseconds). */ - private Long timeToLive = -1L; + private Long timeToLive = 1L; /** * Specifies whether to use transacted mode */ @@ -346,7 +346,7 @@ public class AMQPComponentConfiguration { * The timeout value of the transaction (in seconds) if using transacted * mode. */ - private Integer transactionTimeout = -1; + private Integer transactionTimeout = 1; /** * Specifies whether to test the connection on startup. This ensures that * when Camel starts that all the JMS consumers have a valid connection to http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatConfiguration.java index 0327be2..8589bf0 100644 --- a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.camel.dataformat.bindy.csv.springboot; -import org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat; import org.apache.camel.model.dataformat.BindyType; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -31,7 +30,7 @@ public class BindyCsvDataFormatConfiguration { /** * Whether to use csv fixed or key value pairs mode. */ - private BindyType type = BindyType.Csv; + private BindyType type; /** * Name of model class to use. */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatConfiguration.java index d852707..91ef2f5 100644 --- a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.camel.dataformat.bindy.fixed.springboot; -import org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat; import org.apache.camel.model.dataformat.BindyType; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -31,7 +30,7 @@ public class BindyFixedLengthDataFormatConfiguration { /** * Whether to use csv fixed or key value pairs mode. */ - private BindyType type = BindyType.Fixed; + private BindyType type; /** * Name of model class to use. */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatConfiguration.java index e8d6b2b..a26c9fa 100644 --- a/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.camel.dataformat.bindy.kvp.springboot; -import org.apache.camel.dataformat.bindy.kvp.BindyKeyValuePairDataFormat; import org.apache.camel.model.dataformat.BindyType; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -31,7 +30,7 @@ public class BindyKeyValuePairDataFormatConfiguration { /** * Whether to use csv fixed or key value pairs mode. */ - private BindyType type = BindyType.KeyValue; + private BindyType type; /** * Name of model class to use. */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/impl/springboot/ZipDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/impl/springboot/ZipDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/impl/springboot/ZipDataFormatConfiguration.java index 401acb9..466fe22 100644 --- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/impl/springboot/ZipDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/impl/springboot/ZipDataFormatConfiguration.java @@ -30,7 +30,7 @@ public class ZipDataFormatConfiguration { * To specify a specific compression between 0-9. -1 is default compression * 0 is no compression and 9 is best compression. */ - private Integer compressionLevel = -1; + private Integer compressionLevel = 1; /** * Whether the data format should set the Content-Type header with the type * from the data format if the data format is capable of doing so. For http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java index ed36e44..cf25b31 100644 --- a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java @@ -40,7 +40,7 @@ public class GsonDataFormatConfiguration { /** * Which json library to use. */ - private JsonLibrary library = JsonLibrary.Gson; + private JsonLibrary library = JsonLibrary.XStream; /** * Class name of the java type to use when unarmshalling */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-jackson-starter/src/main/java/org/apache/camel/component/jackson/springboot/JacksonDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-jackson-starter/src/main/java/org/apache/camel/component/jackson/springboot/JacksonDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-jackson-starter/src/main/java/org/apache/camel/component/jackson/springboot/JacksonDataFormatConfiguration.java index 862eb38..e5dcbc2 100644 --- a/platforms/spring-boot/components-starter/camel-jackson-starter/src/main/java/org/apache/camel/component/jackson/springboot/JacksonDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-jackson-starter/src/main/java/org/apache/camel/component/jackson/springboot/JacksonDataFormatConfiguration.java @@ -40,7 +40,7 @@ public class JacksonDataFormatConfiguration { /** * Which json library to use. */ - private JsonLibrary library = JsonLibrary.Jackson; + private JsonLibrary library = JsonLibrary.XStream; /** * Class name of the java type to use when unarmshalling */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java index ee464ce..d01e5af 100644 --- a/platforms/spring-boot/components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConfiguration.java @@ -250,7 +250,7 @@ public class JmsComponentConfiguration { * value to eg 100 to control how fast the consumers will shrink when less * work is required. */ - private Integer maxMessagesPerTask = -1; + private Integer maxMessagesPerTask = 1; /** * To use a custom Spring * org.springframework.jms.support.converter.MessageConverter so you can be @@ -325,7 +325,7 @@ public class JmsComponentConfiguration { * When sending messages specifies the time-to-live of the message (in * milliseconds). */ - private Long timeToLive = -1L; + private Long timeToLive = 1L; /** * Specifies whether to use transacted mode */ @@ -348,7 +348,7 @@ public class JmsComponentConfiguration { * The timeout value of the transaction (in seconds) if using transacted * mode. */ - private Integer transactionTimeout = -1; + private Integer transactionTimeout = 1; /** * Specifies whether to test the connection on startup. This ensures that * when Camel starts that all the JMS consumers have a valid connection to http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/platforms/spring-boot/components-starter/camel-johnzon-starter/src/main/java/org/apache/camel/component/johnzon/springboot/JohnzonDataFormatConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-johnzon-starter/src/main/java/org/apache/camel/component/johnzon/springboot/JohnzonDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-johnzon-starter/src/main/java/org/apache/camel/component/johnzon/springboot/JohnzonDataFormatConfiguration.java index a12c22e..47b9093 100644 --- a/platforms/spring-boot/components-starter/camel-johnzon-starter/src/main/java/org/apache/camel/component/johnzon/springboot/JohnzonDataFormatConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-johnzon-starter/src/main/java/org/apache/camel/component/johnzon/springboot/JohnzonDataFormatConfiguration.java @@ -40,7 +40,7 @@ public class JohnzonDataFormatConfiguration { /** * Which json library to use. */ - private JsonLibrary library = JsonLibrary.Johnzon; + private JsonLibrary library = JsonLibrary.XStream; /** * Class name of the java type to use when unarmshalling */ http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java index 68063a2..b1293b5 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java @@ -173,9 +173,9 @@ public class CoreEipAnnotationProcessor { } buffer.append("\n \"javaType\": \"").append(eipModel.getJavaType()).append("\","); buffer.append("\n \"label\": \"").append(safeNull(eipModel.getLabel())).append("\","); - buffer.append("\n \"deprecated\": \"").append(eipModel.isDeprecated()).append("\","); - buffer.append("\n \"input\": \"").append(eipModel.getInput()).append("\","); - buffer.append("\n \"output\": \"").append(eipModel.getOutput()).append("\""); + buffer.append("\n \"deprecated\": ").append(eipModel.isDeprecated()).append(","); + buffer.append("\n \"input\": ").append(eipModel.getInput()).append(","); + buffer.append("\n \"output\": ").append(eipModel.getOutput()); buffer.append("\n },"); buffer.append("\n \"properties\": {"); http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java index 29dc640..e962ad4 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java @@ -180,16 +180,11 @@ public class EndpointAnnotationProcessor extends AbstractProcessor { buffer.append("\n \"title\": \"").append(componentModel.getTitle()).append("\","); buffer.append("\n \"description\": \"").append(componentModel.getDescription()).append("\","); buffer.append("\n \"label\": \"").append(getOrElse(componentModel.getLabel(), "")).append("\","); - buffer.append("\n \"deprecated\": \"").append(componentModel.isDeprecated()).append("\","); - buffer.append("\n \"async\": \"").append(componentModel.isAsync()).append("\","); - if (componentModel.isConsumerOnly()) { - buffer.append("\n \"consumerOnly\": \"").append("true").append("\","); - } else if (componentModel.isProducerOnly()) { - buffer.append("\n \"producerOnly\": \"").append("true").append("\","); - } - if (componentModel.isLenientProperties()) { - buffer.append("\n \"lenientProperties\": \"").append("true").append("\","); - } + buffer.append("\n \"deprecated\": ").append(componentModel.isDeprecated()).append(","); + buffer.append("\n \"async\": ").append(componentModel.isAsync()).append(","); + buffer.append("\n \"consumerOnly\": ").append(componentModel.isConsumerOnly()).append(","); + buffer.append("\n \"producerOnly\": ").append(componentModel.isProducerOnly()).append(","); + buffer.append("\n \"lenientProperties\": ").append(componentModel.isLenientProperties()).append(","); buffer.append("\n \"javaType\": \"").append(componentModel.getJavaType()).append("\","); if (componentModel.getFirstVersion() != null) { buffer.append("\n \"firstVersion\": \"").append(componentModel.getFirstVersion()).append("\","); http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java index 081d845..108386b 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java @@ -129,9 +129,9 @@ public class SpringAnnotationProcessor { buffer.append("\n \"description\": \"").append(safeNull(eipModel.getDescription())).append("\","); buffer.append("\n \"javaType\": \"").append(eipModel.getJavaType()).append("\","); buffer.append("\n \"label\": \"").append(safeNull(eipModel.getLabel())).append("\","); - buffer.append("\n \"deprecated\": \"").append("false").append("\","); - buffer.append("\n \"input\": \"").append("false").append("\","); - buffer.append("\n \"output\": \"").append("false").append("\""); + buffer.append("\n \"deprecated\": false,"); + buffer.append("\n \"input\": false,"); + buffer.append("\n \"output\": false"); buffer.append("\n },"); buffer.append("\n \"properties\": {"); http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java index 5b96033..955e915 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java @@ -34,7 +34,8 @@ import java.util.regex.Pattern; public final class JsonSchemaHelper { private static final String VALID_CHARS = ".-='/\\!&():;"; - private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]"); + // 0 = text, 1 = enum, 2 = boolean, 3 = integer + private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)"); private static final String QUOT = """; private JsonSchemaHelper() { @@ -63,8 +64,9 @@ public final class JsonSchemaHelper { } if (required != null) { + // boolean type sb.append(", \"required\": "); - sb.append(Strings.doubleQuote(required.toString())); + sb.append(required.toString()); } sb.append(", \"type\": "); @@ -109,24 +111,32 @@ public final class JsonSchemaHelper { sb.append(Strings.doubleQuote(text)); } if (multiValue) { - sb.append(", \"multiValue\": "); - sb.append(Strings.doubleQuote("true")); + // boolean value + sb.append(", \"multiValue\": true"); } if (deprecated != null) { sb.append(", \"deprecated\": "); - sb.append(Strings.doubleQuote(deprecated.toString())); + // boolean value + sb.append(deprecated.toString()); } if (secret != null) { sb.append(", \"secret\": "); - sb.append(Strings.doubleQuote(secret.toString())); + // boolean value + sb.append(secret.toString()); } if (!Strings.isNullOrEmpty(defaultValue)) { sb.append(", \"defaultValue\": "); String text = safeDefaultValue(defaultValue); - sb.append(Strings.doubleQuote(text)); + // the type can either be boolean, integer, number or text based + if ("boolean".equals(typeName) || "integer".equals(typeName) || "number".equals(typeName)) { + sb.append(text); + } else { + // text should be quoted + sb.append(Strings.doubleQuote(text)); + } } // for expressions we want to know if it must be used as predicate or not @@ -134,9 +144,9 @@ public final class JsonSchemaHelper { if (predicate) { sb.append(", \"asPredicate\": "); if (asPredicate) { - sb.append(Strings.doubleQuote("true")); + sb.append("true"); } else { - sb.append(Strings.doubleQuote("false")); + sb.append("false"); } } @@ -345,19 +355,34 @@ public final class JsonSchemaHelper { key = matcher.group(1); } else { String value = matcher.group(1); - if (value == null) { - value = matcher.group(2); - // its an enum so strip out " and trim spaces after comma - value = value.replaceAll("\"", ""); - value = value.replaceAll(", ", ","); - } if (value != null) { + // its text based value = value.trim(); // decode value = value.replaceAll(QUOT, "\""); value = decodeJson(value); } - row.put(key, value); + if (value == null) { + // not text then its maybe an enum? + value = matcher.group(2); + if (value != null) { + // its an enum so strip out " and trim spaces after comma + value = value.replaceAll("\"", ""); + value = value.replaceAll(", ", ","); + value = value.trim(); + } + } + if (value == null) { + // not text then its maybe a boolean? + value = matcher.group(3); + } + if (value == null) { + // not text then its maybe a integer? + value = matcher.group(4); + } + if (value != null) { + row.put(key, value); + } // reset key = null; } http://git-wip-us.apache.org/repos/asf/camel/blob/55dcbe80/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java index 1ac0e33..27bc6e4 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java @@ -25,7 +25,8 @@ import java.util.regex.Pattern; public final class JSonSchemaHelper { - private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]"); + // 0 = text, 1 = enum, 2 = boolean, 3 = integer + private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)"); private static final String QUOT = """; private JSonSchemaHelper() { @@ -79,19 +80,34 @@ public final class JSonSchemaHelper { key = matcher.group(1); } else { String value = matcher.group(1); - if (value == null) { - value = matcher.group(2); - // its an enum so strip out " and trim spaces after comma - value = value.replaceAll("\"", ""); - value = value.replaceAll(", ", ","); - } if (value != null) { + // its text based value = value.trim(); // decode value = value.replaceAll(QUOT, "\""); value = decodeJson(value); } - row.put(key, value); + if (value == null) { + // not text then its maybe an enum? + value = matcher.group(2); + if (value != null) { + // its an enum so strip out " and trim spaces after comma + value = value.replaceAll("\"", ""); + value = value.replaceAll(", ", ","); + value = value.trim(); + } + } + if (value == null) { + // not text then its maybe a boolean? + value = matcher.group(3); + } + if (value == null) { + // not text then its maybe a integer? + value = matcher.group(4); + } + if (value != null) { + row.put(key, value); + } // reset key = null; }