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

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit b8940cbe35948b93bad45ceb7e18d6caa7a31d3f
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Wed Dec 9 11:32:16 2020 +0100

    Add enum in Catalog - code generator change #645
    
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../kafkaconnector/catalog/CamelKafkaConnectorCatalog.java    |  1 +
 .../catalog/CamelKafkaConnectorCatalogTest.java               | 10 +++++++---
 .../kafkaconnector/maven/CamelKafkaConnectorUpdateMojo.java   |  1 +
 .../kafkaconnector/maven/utils/JsonMapperKafkaConnector.java  |  4 ++++
 .../kafkaconnector/model/CamelKafkaConnectorOptionModel.java  | 11 +++++++++++
 5 files changed, 24 insertions(+), 3 deletions(-)

diff --git 
a/camel-kafka-connector-catalog/src/main/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalog.java
 
b/camel-kafka-connector-catalog/src/main/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalog.java
index 0c39027..fdd53f5 100644
--- 
a/camel-kafka-connector-catalog/src/main/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalog.java
+++ 
b/camel-kafka-connector-catalog/src/main/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalog.java
@@ -138,6 +138,7 @@ public class CamelKafkaConnectorCatalog {
             singleModel.setDescription((String)object.get("description"));
             singleModel.setName((String)object.get("name"));
             singleModel.setRequired((String)object.get("required"));
+            
singleModel.setPossibleEnumValues((List<String>)object.get("enum"));
             model.add(singleModel);
         }
         return model;
diff --git 
a/camel-kafka-connector-catalog/src/test/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalogTest.java
 
b/camel-kafka-connector-catalog/src/test/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalogTest.java
index 50157ac..b429291 100644
--- 
a/camel-kafka-connector-catalog/src/test/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalogTest.java
+++ 
b/camel-kafka-connector-catalog/src/test/java/org/apache/camel/kafkaconnector/catalog/CamelKafkaConnectorCatalogTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.kafkaconnector.catalog;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -83,6 +84,7 @@ class CamelKafkaConnectorCatalogTest {
         assertNull(model.getConverters());
         assertNull(model.getTransforms());
         assertNull(model.getAggregationStrategies());
+        assertEquals(Arrays.asList("HTTP", "HTTPS"), 
catalog.getOptionModel("camel-aws2-sns-sink", 
"camel.component.aws2-sns.proxyProtocol").getPossibleEnumValues());
     }
     
     @Test
@@ -116,8 +118,9 @@ class CamelKafkaConnectorCatalogTest {
                 + "        \"camel.component.my-test-connector.demo\": {\n"
                 + "            \"name\": 
\"camel.component.my-test-connector.demo\",\n"
                 + "            \"description\": \"A demo description of the 
component\",\n"
-                + "            \"defaultValue\": \"\\\"false\\\"\",\n"
-                + "            \"priority\": \"MEDIUM\"\n"
+                + "            \"defaultValue\": \"\\\"firstValue\\\"\",\n"
+                + "            \"priority\": \"MEDIUM\",\n"
+                + "            \"enum\": [\"firstValue\",\"secondValue\"]\n"
                 + "        }\n"
                 + "    }\n"
                 + "}\n");
@@ -129,10 +132,11 @@ class CamelKafkaConnectorCatalogTest {
 
     private void checkAddedConnectorContainsCorrectPropertyValues(String 
connectorName) {
         CamelKafkaConnectorOptionModel camelKafkaConnectorOptionModel = 
catalog.getConnectorsModel().get(connectorName).getOptions().get(0);
-        assertEquals("\"false\"", 
camelKafkaConnectorOptionModel.getDefaultValue());
+        assertEquals("\"firstValue\"", 
camelKafkaConnectorOptionModel.getDefaultValue());
         assertEquals("camel.component.my-test-connector.demo", 
camelKafkaConnectorOptionModel.getName());
         assertEquals("MEDIUM", camelKafkaConnectorOptionModel.getPriority());
         assertEquals("A demo description of the component", 
camelKafkaConnectorOptionModel.getDescription());
+        assertEquals(Arrays.asList("firstValue", "secondValue"), 
camelKafkaConnectorOptionModel.getPossibleEnumValues());
     }
     
     @Test
diff --git 
a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/CamelKafkaConnectorUpdateMojo.java
 
b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/CamelKafkaConnectorUpdateMojo.java
index 5480533..08013bf 100644
--- 
a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/CamelKafkaConnectorUpdateMojo.java
+++ 
b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/CamelKafkaConnectorUpdateMojo.java
@@ -663,6 +663,7 @@ public class CamelKafkaConnectorUpdateMojo extends 
AbstractCamelKafkaConnectorMo
         optionModel.setPriority(StringUtils.removeStart(confPriority, 
CONFIG_DEF_IMPORTANCE_PREFIX));
         
optionModel.setDefaultValue(defaultValueClassLiteralInitializer.equals("null") 
? null : defaultValueClassLiteralInitializer);
         optionModel.setRequired(String.valueOf(baseOptionModel.isRequired()));
+        optionModel.setPossibleEnumValues(baseOptionModel.getEnums());
         listOptions.add(optionModel);
     }
 
diff --git 
a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/utils/JsonMapperKafkaConnector.java
 
b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/utils/JsonMapperKafkaConnector.java
index ecb143a..a03241a 100644
--- 
a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/utils/JsonMapperKafkaConnector.java
+++ 
b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/utils/JsonMapperKafkaConnector.java
@@ -70,6 +70,10 @@ public final class JsonMapperKafkaConnector {
         }
         obj.put("priority", model.getPriority());
         obj.put("required", model.getRequired());
+        List<String> possibleEnumValues = model.getPossibleEnumValues();
+        if (possibleEnumValues != null && !possibleEnumValues.isEmpty()) {
+            obj.put("enum", possibleEnumValues);
+        }
         return obj;
     }
 }
diff --git 
a/tooling/camel-kafka-connector-model/src/main/java/org/apache/camel/kafkaconnector/model/CamelKafkaConnectorOptionModel.java
 
b/tooling/camel-kafka-connector-model/src/main/java/org/apache/camel/kafkaconnector/model/CamelKafkaConnectorOptionModel.java
index f130369..b99bebb 100644
--- 
a/tooling/camel-kafka-connector-model/src/main/java/org/apache/camel/kafkaconnector/model/CamelKafkaConnectorOptionModel.java
+++ 
b/tooling/camel-kafka-connector-model/src/main/java/org/apache/camel/kafkaconnector/model/CamelKafkaConnectorOptionModel.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.kafkaconnector.model;
 
+import java.util.List;
+
 import org.apache.camel.tooling.model.Strings;
 
 public class CamelKafkaConnectorOptionModel {
@@ -25,6 +27,7 @@ public class CamelKafkaConnectorOptionModel {
     private String name;
     private String defaultValue;
     private String required;
+    private List<String> possibleEnumValues;
 
     public String getName() {
         return name;
@@ -71,4 +74,12 @@ public class CamelKafkaConnectorOptionModel {
     public void setRequired(String required) {
         this.required = required;
     }
+
+    public List<String> getPossibleEnumValues() {
+        return possibleEnumValues;
+    }
+
+    public void setPossibleEnumValues(List<String> possibleEnumValues) {
+        this.possibleEnumValues = possibleEnumValues;
+    }
 }

Reply via email to