You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/02/22 04:56:36 UTC

[camel] branch master updated: Fixed camel-kafka doc that caused json schema to have invalid escape char that json parser would fail parsing.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 2014427  Fixed camel-kafka doc that caused json schema to have invalid escape char that json parser would fail parsing.
2014427 is described below

commit 2014427f275cc6a823dc92d94640401afef851f7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 22 05:56:03 2019 +0100

    Fixed camel-kafka doc that caused json schema to have invalid escape char that json parser would fail parsing.
---
 .../org/apache/camel/catalog/CamelCatalogJsonSchemaTest.java | 12 ++++++++++++
 components/camel-kafka/src/main/docs/kafka-component.adoc    | 12 ++++++------
 .../org/apache/camel/component/kafka/KafkaConfiguration.java | 11 +++++++----
 .../kafka/springboot/KafkaComponentConfiguration.java        |  9 +++++----
 4 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogJsonSchemaTest.java b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogJsonSchemaTest.java
index 0ddf8d5..d05998f 100644
--- a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogJsonSchemaTest.java
+++ b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogJsonSchemaTest.java
@@ -19,18 +19,24 @@ package org.apache.camel.catalog;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 public class CamelCatalogJsonSchemaTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(CamelCatalogJsonSchemaTest.class);
+
     private CamelCatalog catalog = new DefaultCamelCatalog();
 
     @Test
     public void testValidateJsonComponent() throws Exception {
         for (String name : catalog.findComponentNames()) {
             String json = catalog.componentJSonSchema(name);
+            LOG.info("Validating {} component", name);
+            LOG.debug("with JSon: {}", json);
 
             // validate we can parse the json
             ObjectMapper mapper = new ObjectMapper();
@@ -47,6 +53,8 @@ public class CamelCatalogJsonSchemaTest {
     public void testValidateJsonDataFormats() throws Exception {
         for (String name : catalog.findDataFormatNames()) {
             String json = catalog.dataFormatJSonSchema(name);
+            LOG.info("Validating {} dataformat", name);
+            LOG.debug("with JSon: {}", json);
 
             // validate we can parse the json
             ObjectMapper mapper = new ObjectMapper();
@@ -62,6 +70,8 @@ public class CamelCatalogJsonSchemaTest {
     public void testValidateJsonLanguages() throws Exception {
         for (String name : catalog.findLanguageNames()) {
             String json = catalog.languageJSonSchema(name);
+            LOG.info("Validating {} language", name);
+            LOG.debug("with JSon: {}", json);
 
             // validate we can parse the json
             ObjectMapper mapper = new ObjectMapper();
@@ -77,6 +87,8 @@ public class CamelCatalogJsonSchemaTest {
     public void testValidateJsonModels() throws Exception {
         for (String name : catalog.findModelNames()) {
             String json = catalog.modelJSonSchema(name);
+            LOG.info("Validating {} model", name);
+            LOG.debug("with JSon: {}", json);
 
             // validate we can parse the json
             ObjectMapper mapper = new ObjectMapper();
diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc b/components/camel-kafka/src/main/docs/kafka-component.adoc
index 9770f02..4a3b510 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -82,7 +82,6 @@ with the following path and query parameters:
 | *clientId* (common) | The client id is a user-specified string sent in each request to help trace calls. It should logically identify the application making the request. |  | String
 | *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
 | *reconnectBackoffMaxMs* (common) | The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms. | 1000 | Integer
-| *schemaRegistryURL* (common) | URL of the Confluent schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent documentation. |  | String
 | *allowManualCommit* (consumer) | Whether to allow doing manual commits via KafkaManualCommit. If this option is enabled then an instance of KafkaManualCommit is stored on the Exchange message header, which allows end users to access this API and perform manual offset commits via the Kafka consumer. | false | boolean
 | *autoCommitEnable* (consumer) | If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer. This committed offset will be used when the process fails as the position from which the new consumer will begin. | true | Boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in ms that the consumer offsets are committed to zookeeper. | 5000 | Integer
@@ -150,7 +149,7 @@ with the following path and query parameters:
 | *interceptorClasses* (monitoring) | Sets interceptors for producer or consumers. Producer interceptors have to be classes implementing org.apache.kafka.clients.producer.ProducerInterceptor Consumer interceptors have to be classes implementing org.apache.kafka.clients.consumer.ConsumerInterceptor Note that if you use Producer interceptor on a consumer it will throw a class cast exception in runtime |  | String
 | *kerberosBeforeReloginMin Time* (security) | Login thread sleep time between refresh attempts. | 60000 | Integer
 | *kerberosInitCmd* (security) | Kerberos kinit command path. Default is /usr/bin/kinit | /usr/bin/kinit | String
-| *kerberosPrincipalToLocal Rules* (security) | A list of rules for mapping from principal names to short names (typically operating system usernames). The rules are evaluated in order and the first rule that matches a principal name is used to map it to a short name. Any later rules in the list are ignored. By default, principal names of the form {username}/{hostname}{REALM} are mapped to {username}. For more details on the format please see a href=\#security_authz\ security authorizati [...]
+| *kerberosPrincipalToLocal Rules* (security) | A list of rules for mapping from principal names to short names (typically operating system usernames). The rules are evaluated in order and the first rule that matches a principal name is used to map it to a short name. Any later rules in the list are ignored. By default, principal names of the form {username}/{hostname}{REALM} are mapped to {username}. For more details on the format please see the security authorization and acls documenta [...]
 | *kerberosRenewJitter* (security) | Percentage of random jitter added to the renewal time. | 0.05 | Double
 | *kerberosRenewWindowFactor* (security) | Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket. | 0.8 | Double
 | *saslJaasConfig* (security) | Expose the kafka sasl.jaas.config parameter Example: org.apache.kafka.common.security.plain.PlainLoginModule required username=USERNAME password=PASSWORD; |  | String
@@ -162,16 +161,17 @@ with the following path and query parameters:
 | *sslEnabledProtocols* (security) | The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default. | TLSv1.2,TLSv1.1,TLSv1 | String
 | *sslEndpointAlgorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
-| *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. Default value is JKS | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. | TLS | String
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreType* (security) | The file format of the trust store file. Default value is JKS. | JKS | String
+| *schemaRegistryURL* (confluent) | URL of the Confluent schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent documentation. This option is only available in the Confluent Kafka product (not standard Apache Kafka) |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
 | *sslTruststorePassword* (security) | The password for the trust store file. |  | String
-| *sslTruststoreType* (security) | The file format of the trust store file. Default value is JKS. | JKS | String
 |===
 // endpoint options: END
 // spring-boot-auto-configure options: START
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
index 5b82a82..4c6049c 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
@@ -58,8 +58,6 @@ public class KafkaConfiguration implements Cloneable, HeaderFilterStrategyAware
     @UriParam(label = "common")
     private String brokers;
     @UriParam(label = "common")
-    private String schemaRegistryURL;
-    @UriParam(label = "common")
     private String clientId;
     @UriParam(label = "common", description = "To use a custom HeaderFilterStrategy to filter header to and from Camel message.")
     private HeaderFilterStrategy headerFilterStrategy = new KafkaHeaderFilterStrategy();
@@ -315,6 +313,10 @@ public class KafkaConfiguration implements Cloneable, HeaderFilterStrategyAware
     // sasl.jaas.config
     private String saslJaasConfig;
 
+    // Confluent only options
+    @UriParam(label = "confluent")
+    private String schemaRegistryURL;
+
     public KafkaConfiguration() {
     }
 
@@ -805,6 +807,8 @@ public class KafkaConfiguration implements Cloneable, HeaderFilterStrategyAware
      * URL of the Confluent schema registry servers to use. 
      * The format is host1:port1,host2:port2. 
      * This is known as schema.registry.url in the Confluent documentation.
+     * <p/>
+     * This option is only available in the Confluent Kafka product (not standard Apache Kafka)
      */
     public void setSchemaRegistryURL(String schemaRegistryURL) {
         this.schemaRegistryURL = schemaRegistryURL;
@@ -952,8 +956,7 @@ public class KafkaConfiguration implements Cloneable, HeaderFilterStrategyAware
      * and the first rule that matches a principal name is used to map it to a
      * short name. Any later rules in the list are ignored. By default,
      * principal names of the form {username}/{hostname}@{REALM} are mapped to
-     * {username}. For more details on the format please see <a
-     * href=\"#security_authz\"> security authorization and acls</a>.
+     * {username}. For more details on the format please see the security authorization and acls documentation..
      * <p/>
      * Multiple values can be separated by comma
      */
diff --git a/platforms/spring-boot/components-starter/camel-kafka-starter/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-kafka-starter/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
index c5536e7..8145b7d 100644
--- a/platforms/spring-boot/components-starter/camel-kafka-starter/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-kafka-starter/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConfiguration.java
@@ -307,7 +307,8 @@ public class KafkaComponentConfiguration
         /**
          * URL of the Confluent schema registry servers to use. The format is
          * host1:port1,host2:port2. This is known as schema.registry.url in the
-         * Confluent documentation.
+         * Confluent documentation. This option is only available in the
+         * Confluent Kafka product (not standard Apache Kafka)
          */
         private String schemaRegistryURL;
         /**
@@ -372,9 +373,9 @@ public class KafkaComponentConfiguration
          * order and the first rule that matches a principal name is used to map
          * it to a short name. Any later rules in the list are ignored. By
          * default, principal names of the form {username}/{hostname}{REALM} are
-         * mapped to {username}. For more details on the format please see a
-         * href=\#security_authz\ security authorization and acls. Multiple
-         * values can be separated by comma
+         * mapped to {username}. For more details on the format please see the
+         * security authorization and acls documentation.. Multiple values can
+         * be separated by comma
          */
         private String kerberosPrincipalToLocalRules = "DEFAULT";
         /**