You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/02/28 08:57:16 UTC

[camel-kafka-connector] branch camel-3.1.0 updated (b3cbc8f -> 4d91288)

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

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


 discard b3cbc8f  Bump to Camel 3.1.0
     new 4d91288  Bump to Camel 3.1.0

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (b3cbc8f)
            \
             N -- N -- N   refs/heads/camel-3.1.0 (4d91288)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/camel/kafkaconnector/utils/CamelMainSupport.java     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)


[camel-kafka-connector] 01/01: Bump to Camel 3.1.0

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4d91288b37492e09c23ae68728c8ae996d7e2007
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 27 12:10:30 2020 +0100

    Bump to Camel 3.1.0
---
 .../kafkaconnector/utils/CamelMainSupport.java     |   4 +
 parent/pom.xml                                     |   2 +-
 .../sink/aws/sqs/CamelAWSSQSPropertyFactory.java   |   2 +-
 .../source/aws/sqs/CamelAWSSQSPropertyFactory.java |   2 +-
 .../maven/AbstractSpringBootGenerator.java         |   5 +-
 .../maven/PrepareCatalogSpringBootMojo.java        |   2 -
 .../maven/SpringBootAutoConfigurationMojo.java     | 317 +++++----------------
 7 files changed, 84 insertions(+), 250 deletions(-)

diff --git a/core/src/main/java/org/apache/camel/kafkaconnector/utils/CamelMainSupport.java b/core/src/main/java/org/apache/camel/kafkaconnector/utils/CamelMainSupport.java
index e09265f..ddfd1e2 100644
--- a/core/src/main/java/org/apache/camel/kafkaconnector/utils/CamelMainSupport.java
+++ b/core/src/main/java/org/apache/camel/kafkaconnector/utils/CamelMainSupport.java
@@ -203,6 +203,10 @@ public class CamelMainSupport {
         public void afterStop(BaseMainSupport main) {
 
         }
+
+        @Override
+        public void beforeConfigure(BaseMainSupport main) {
+        }
     }
 
     private class CamelContextStarter implements Runnable {
diff --git a/parent/pom.xml b/parent/pom.xml
index 9e6d793..7742413 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -43,7 +43,7 @@
         <activemq.version>5.15.11</activemq.version>
         <kafka.version>2.4.0</kafka.version>
         <junit.version>5.6.0</junit.version>
-        <camel.version>3.0.1</camel.version>
+        <camel.version>3.1.0</camel.version>
         <jackson.version>2.10.2</jackson.version>
         <log4j2.version>2.8.2</log4j2.version>
         <version.java>1.8</version.java>
diff --git a/tests/src/test/java/org/apache/camel/kafkaconnector/sink/aws/sqs/CamelAWSSQSPropertyFactory.java b/tests/src/test/java/org/apache/camel/kafkaconnector/sink/aws/sqs/CamelAWSSQSPropertyFactory.java
index c507fe6..cad1fcf 100644
--- a/tests/src/test/java/org/apache/camel/kafkaconnector/sink/aws/sqs/CamelAWSSQSPropertyFactory.java
+++ b/tests/src/test/java/org/apache/camel/kafkaconnector/sink/aws/sqs/CamelAWSSQSPropertyFactory.java
@@ -50,7 +50,7 @@ class CamelAWSSQSPropertyFactory implements ConnectorPropertyFactory {
         connectorProps.put(ConnectorConfig.KEY_CONVERTER_CLASS_CONFIG, "org.apache.kafka.connect.storage.StringConverter");
         connectorProps.put(ConnectorConfig.VALUE_CONVERTER_CLASS_CONFIG, "org.apache.kafka.connect.storage.StringConverter");
 
-        String queueUrl = "aws-sqs://" + queue + "?autoCreateQueue=true&accessKey=accesskey&protocol=http&amazonAWSHost="
+        String queueUrl = "aws-sqs://" + queue + "?autoCreateQueue=true&accessKey=accesskey&secretKey=secretKey&region=EU_WEST_1&protocol=http&amazonAWSHost="
                 + amazonConfigs.getProperty(AWSConfigs.AMAZON_AWS_HOST, "localhost");
 
         connectorProps.put("camel.sink.url", queueUrl);
diff --git a/tests/src/test/java/org/apache/camel/kafkaconnector/source/aws/sqs/CamelAWSSQSPropertyFactory.java b/tests/src/test/java/org/apache/camel/kafkaconnector/source/aws/sqs/CamelAWSSQSPropertyFactory.java
index 416923d..9b374a1 100644
--- a/tests/src/test/java/org/apache/camel/kafkaconnector/source/aws/sqs/CamelAWSSQSPropertyFactory.java
+++ b/tests/src/test/java/org/apache/camel/kafkaconnector/source/aws/sqs/CamelAWSSQSPropertyFactory.java
@@ -52,7 +52,7 @@ class CamelAWSSQSPropertyFactory implements ConnectorPropertyFactory {
 
         connectorProps.put("camel.source.kafka.topic", topic);
 
-        String queueUrl = "aws-sqs://" + queue + "?autoCreateQueue=true&accessKey=accesskey&protocol=http&amazonAWSHost="
+        String queueUrl = "aws-sqs://" + queue + "?autoCreateQueue=true&accessKey=accesskey&secretKey=secretKey&region=EU_WEST_1&protocol=http&amazonAWSHost="
                 + amazonConfigs.getProperty(AWSConfigs.AMAZON_AWS_HOST, "localhost");
         connectorProps.put("camel.source.url", queueUrl);
 
diff --git a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/AbstractSpringBootGenerator.java b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/AbstractSpringBootGenerator.java
index bde2791..b0d3318 100644
--- a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/AbstractSpringBootGenerator.java
+++ b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/AbstractSpringBootGenerator.java
@@ -33,6 +33,7 @@ import java.util.jar.JarFile;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 
+import org.apache.camel.tooling.util.PackageHelper;
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.AbstractMojo;
@@ -44,8 +45,6 @@ import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 
-import static org.apache.camel.maven.packaging.PackageHelper.loadText;
-
 public abstract class AbstractSpringBootGenerator extends AbstractMojo {
 
     /**
@@ -145,7 +144,7 @@ public abstract class AbstractSpringBootGenerator extends AbstractMojo {
 
     protected static String loadJson(JarFile jar, JarEntry je) {
         try (InputStream is = jar.getInputStream(je)) {
-            return loadText(is);
+            return PackageHelper.loadText(is);
         } catch (IOException e) {
             throw new IOError(e);
         }
diff --git a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/PrepareCatalogSpringBootMojo.java b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/PrepareCatalogSpringBootMojo.java
index 285d0b6..1680c46 100644
--- a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/PrepareCatalogSpringBootMojo.java
+++ b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/PrepareCatalogSpringBootMojo.java
@@ -37,8 +37,6 @@ import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 
-import static org.apache.camel.maven.packaging.PackageHelper.loadText;
-
 /**
  * Prepares the Spring Boot provider camel catalog to include component it supports
  */
diff --git a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
index a1b90d9..3314acd 100644
--- a/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
+++ b/tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.springboot.maven;
 
+import static org.apache.camel.maven.packaging.AbstractGeneratorMojo.updateResource;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -45,24 +47,27 @@ import java.util.zip.ZipEntry;
 import javax.annotation.Generated;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.camel.maven.packaging.JSonSchemaHelper;
-import org.apache.camel.maven.packaging.model.ComponentModel;
-import org.apache.camel.maven.packaging.model.ComponentOptionModel;
-import org.apache.camel.maven.packaging.model.DataFormatModel;
-import org.apache.camel.maven.packaging.model.DataFormatOptionModel;
-import org.apache.camel.maven.packaging.model.EndpointOptionModel;
-import org.apache.camel.maven.packaging.model.LanguageModel;
-import org.apache.camel.maven.packaging.model.LanguageOptionModel;
-import org.apache.camel.maven.packaging.model.OtherModel;
-import org.apache.camel.maven.packaging.model.OtherOptionModel;
-import org.apache.camel.maven.packaging.srcgen.Annotation;
-import org.apache.camel.maven.packaging.srcgen.GenericType;
-import org.apache.camel.maven.packaging.srcgen.JavaClass;
-import org.apache.camel.maven.packaging.srcgen.Method;
-import org.apache.camel.maven.packaging.srcgen.Property;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
+import org.apache.camel.tooling.model.BaseOptionModel;
+import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.tooling.model.ComponentModel.ComponentOptionModel;
+import org.apache.camel.tooling.model.ComponentModel.EndpointOptionModel;
+import org.apache.camel.tooling.model.DataFormatModel;
+import org.apache.camel.tooling.model.DataFormatModel.DataFormatOptionModel;
+import org.apache.camel.tooling.model.JsonMapper;
+import org.apache.camel.tooling.model.LanguageModel;
+import org.apache.camel.tooling.model.LanguageModel.LanguageOptionModel;
+import org.apache.camel.tooling.model.OtherModel;
+import org.apache.camel.tooling.util.PackageHelper;
+import org.apache.camel.tooling.util.srcgen.Annotation;
+import org.apache.camel.tooling.util.srcgen.GenericType;
+import org.apache.camel.tooling.util.srcgen.JavaClass;
+import org.apache.camel.tooling.util.srcgen.Method;
+import org.apache.camel.tooling.util.srcgen.Property;
+import org.apache.camel.util.json.JsonObject;
+import org.apache.camel.util.json.Jsoner;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -89,15 +94,6 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Scope;
 
-import static org.apache.camel.maven.packaging.AbstractGeneratorMojo.updateResource;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.getPropertyDefaultValue;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.getPropertyDescriptionValue;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.getPropertyJavaType;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.getPropertyType;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.getSafeValue;
-import static org.apache.camel.maven.packaging.JSonSchemaHelper.parseJsonSchema;
-import static org.apache.camel.maven.packaging.PackageHelper.loadText;
-
 /**
  * Generate Spring Boot auto configuration files for Camel components and data
  * formats.
@@ -209,7 +205,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Hystrix
         json = loadModelJson(files, "hystrixConfiguration");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -221,7 +217,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Resilience4j
         json = loadModelJson(files, "resilience4jConfiguration");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -233,7 +229,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Consul
         json = loadModelJson(files, "consulServiceDiscovery");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -245,7 +241,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // DNS
         json = loadModelJson(files, "dnsServiceDiscovery");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -257,7 +253,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Etcd
         json = loadModelJson(files, "etcdServiceDiscovery");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -269,7 +265,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Kubernetes
         json = loadModelJson(files, "kubernetesServiceDiscovery");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -282,7 +278,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Ribbon
         json = loadModelJson(files, "ribbonLoadBalancer");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -294,7 +290,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // Rest
         json = loadModelJson(files, "restConfiguration");
         if (json != null) {
-            OtherModel model = generateOtherModel(json);
+            OtherModel model = JsonMapper.generateOtherModel(json);
 
             int pos = model.getJavaType().lastIndexOf(".");
             String pkg = model.getJavaType().substring(0, pos) + ".springboot";
@@ -322,7 +318,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         commonClass.getJavaDoc().setFullText(doc);
         commonClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
 
-        for (OtherOptionModel option : model.getOptions()) {
+        for (BaseOptionModel option : model.getOptions()) {
             String type = option.getJavaType();
             String name = option.getName();
 
@@ -340,16 +336,16 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             if (!Strings.isBlank(option.getDescription())) {
                 prop.getField().getJavaDoc().setFullText(option.getDescription());
             }
-            if (!Strings.isBlank(option.getDefaultValue())) {
+            if (!Strings.isBlank((String) option.getDefaultValue())) {
                 if ("java.lang.String".equals(type)) {
-                    prop.getField().setStringInitializer(option.getDefaultValue());
+                    prop.getField().setStringInitializer((String) option.getDefaultValue());
                 } else if ("long".equals(type) || "java.lang.Long".equals(type)) {
                     // the value should be a Long number
                     String value = option.getDefaultValue() + "L";
                     prop.getField().setLiteralInitializer(value);
                 } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) {
-                    prop.getField().setLiteralInitializer(option.getDefaultValue());
-                } else if (!Strings.isBlank(option.getEnums())) {
+                    prop.getField().setLiteralInitializer((String) option.getDefaultValue());
+                } else if (!Strings.isBlank(option.getEnums().toString())) {
                     String enumShortName = type.substring(type.lastIndexOf(".") + 1);
                     prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
                     commonClass.addImport(model.getJavaType());
@@ -421,7 +417,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         }
         javaClass.getJavaDoc().setFullText(doc);
 
-        for (OtherOptionModel option : model.getOptions()) {
+        for (BaseOptionModel option : model.getOptions()) {
             String type = option.getJavaType();
             String name = option.getName();
 
@@ -446,16 +442,16 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             if (!Strings.isBlank(option.getDescription())) {
                 prop.getField().getJavaDoc().setFullText(option.getDescription());
             }
-            if (!Strings.isBlank(option.getDefaultValue())) {
+            if (!Strings.isBlank((String) option.getDefaultValue())) {
                 if ("java.lang.String".equals(type)) {
-                    prop.getField().setStringInitializer(option.getDefaultValue());
+                    prop.getField().setStringInitializer((String) option.getDefaultValue());
                 } else if ("long".equals(type) || "java.lang.Long".equals(type)) {
                     // the value should be a Long number
                     String value = option.getDefaultValue() + "L";
                     prop.getField().setLiteralInitializer(value);
                 } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) {
-                    prop.getField().setLiteralInitializer(option.getDefaultValue());
-                } else if (!Strings.isBlank(option.getEnums())) {
+                    prop.getField().setLiteralInitializer((String) option.getDefaultValue());
+                } else if (!Strings.isBlank(option.getEnums().toString())) {
                     String enumShortName = type.substring(type.lastIndexOf(".") + 1);
                     prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
                     javaClass.addImport(model.getJavaType());
@@ -547,7 +543,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String componentName : componentNames) {
                 String json = loadComponentJson(jsonFiles, componentName);
                 if (json != null) {
-                    ComponentModel model = generateComponentModel(componentName, json);
+                    ComponentModel model = JsonMapper.generateComponentModel(json);
                     allModels.add(model);
                 }
             }
@@ -590,7 +586,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String dataFormatName : dataFormatNames) {
                 String json = loadDataFormatJson(jsonFiles, dataFormatName);
                 if (json != null) {
-                    DataFormatModel model = generateDataFormatModel(dataFormatName, json);
+                    DataFormatModel model = JsonMapper.generateDataFormatModel(json);
                     allModels.add(model);
                 }
             }
@@ -634,7 +630,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String languageName : languageNames) {
                 String json = loadLanguageJson(jsonFiles, languageName);
                 if (json != null) {
-                    LanguageModel model = generateLanguageModel(languageName, json);
+                    LanguageModel model = JsonMapper.generateLanguageModel(json);
                     allModels.add(model);
                 }
             }
@@ -725,7 +721,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             // and therefore there is no problem, eg
             // camel.component.jdbc.data-source = myDataSource
             // where the type would have been javax.sql.DataSource
-            boolean complex = isComplexType(option) && !isNestedProperty && Strings.isBlank(option.getEnums());
+            boolean complex = isComplexType(option) && !isNestedProperty && Strings.isBlank(option.getEnums().toString());
             if (complex) {
                 // force to use a string type
                 type = "java.lang.String";
@@ -738,14 +734,14 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
 
             Property prop = javaClass.addProperty(type, option.getName());
             if (ADD_NESTED_CONFIGURATION_PROPERTY) {
-                if (!type.endsWith(INNER_TYPE_SUFFIX) && type.indexOf('[') == -1 && INCLUDE_INNER_PATTERN.matcher(type).matches() && Strings.isBlank(option.getEnums())
+                if (!type.endsWith(INNER_TYPE_SUFFIX) && type.indexOf('[') == -1 && INCLUDE_INNER_PATTERN.matcher(type).matches() && Strings.isBlank(option.getEnums().toString())
                         && (javaClassSource == null || (javaClassSource.isClass() && !javaClassSource.isAbstract()))) {
                     // add nested configuration annotation for complex
                     // properties
                     prop.getField().addAnnotation(NestedConfigurationProperty.class);
                 }
             }
-            if ("true".equals(option.getDeprecated())) {
+            if ("true".equals(option.isDeprecated())) {
                 prop.getField().addAnnotation(Deprecated.class);
                 prop.getAccessor().addAnnotation(Deprecated.class);
                 prop.getMutator().addAnnotation(Deprecated.class);
@@ -763,16 +759,16 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 }
                 prop.getField().getJavaDoc().setFullText(desc);
             }
-            if (!Strings.isBlank(option.getDefaultValue())) {
+            if (!Strings.isBlank((String) option.getDefaultValue())) {
                 if ("java.lang.String".equals(option.getJavaType())) {
-                    prop.getField().setStringInitializer(option.getDefaultValue());
+                    prop.getField().setStringInitializer((String) option.getDefaultValue());
                 } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) {
                     // the value should be a Long number
                     String value = option.getDefaultValue() + "L";
                     prop.getField().setLiteralInitializer(value);
                 } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) {
-                    prop.getField().setLiteralInitializer(option.getDefaultValue());
-                } else if (!Strings.isBlank(option.getEnums())) {
+                    prop.getField().setLiteralInitializer((String) option.getDefaultValue());
+                } else if (!Strings.isBlank(option.getEnums().toString())) {
                     String enumShortName = type.substring(type.lastIndexOf(".") + 1);
                     prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
                     javaClass.addImport(model.getJavaType());
@@ -820,11 +816,11 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 String deprecationNote = null;
                 if (eom != null) {
                     prop.getField().getJavaDoc().setText(eom.getDescription());
-                    prop.getField().setLiteralInitializer(asLiteralDefault(sourceProp.getType(), eom.getDefaultValue()));
+                    prop.getField().setLiteralInitializer(asLiteralDefault(sourceProp.getType(), (String) eom.getDefaultValue()));
                     deprecationNote = eom.getDeprecationNote();
                 } else if (com != null) {
                     prop.getField().getJavaDoc().setText(com.getDescription());
-                    prop.getField().setLiteralInitializer(asLiteralDefault(sourceProp.getType(), com.getDefaultValue()));
+                    prop.getField().setLiteralInitializer(asLiteralDefault(sourceProp.getType(), (String) com.getDefaultValue()));
                     deprecationNote = com.getDeprecationNote();
                 }
 
@@ -902,9 +898,10 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                     fileName = fileName.replace('.', '/');
                     File jsonFile = new File(classesDir, fileName + "/" + model.getScheme() + ".json");
                     if (jsonFile.isFile() && jsonFile.exists()) {
+                        /*
                         try {
                             String json = FileUtils.readFileToString(jsonFile, StandardCharsets.UTF_8);
-                            List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
+                            ComponentModel model = JsonMapper.generateComponentModel(json);
 
                             // grab name from annotation
                             String optionName;
@@ -918,11 +915,12 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                             }
 
                             if (optionName != null) {
-                                javaType = getPropertyJavaType(rows, optionName);
-                                type = getPropertyType(rows, optionName);
-                                defaultValue = getPropertyDefaultValue(rows, optionName);
+                                model.get
+                                javaType = JSonSchemaHelper.getPropertyJavaType(rows, optionName);
+                                type = JSonSchemaHelper.getPropertyType(rows, optionName);
+                                defaultValue = JSonSchemaHelper.getPropertyDefaultValue(rows, optionName);
                                 // favour description from the model
-                                description = getPropertyDescriptionValue(rows, optionName);
+                                description = JSonSchemaHelper.getPropertyDescriptionValue(rows, optionName);
                                 if (description != null) {
                                     prop.getField().getJavaDoc().setFullText(description);
                                 }
@@ -930,6 +928,8 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                         } catch (IOException e) {
                             // ignore
                         }
+                        */
+                        throw new UnsupportedOperationException();
                     }
 
                     if (!Strings.isBlank(defaultValue)) {
@@ -1306,7 +1306,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
         javaClass.addAnnotation("org.springframework.boot.context.properties.ConfigurationProperties").setStringValue("prefix", prefix);
 
-        for (DataFormatOptionModel option : model.getDataFormatOptions()) {
+        for (DataFormatOptionModel option : model.getOptions()) {
             // skip option with name id in data format as we do not need that
             if ("id".equals(option.getName())) {
                 continue;
@@ -1332,14 +1332,14 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             // and therefore there is no problem, eg
             // camel.component.jdbc.data-source = myDataSource
             // where the type would have been javax.sql.DataSource
-            boolean complex = isComplexType(option) && Strings.isBlank(option.getEnumValues());
+            boolean complex = isComplexType(option) && Strings.isBlank(option.getEnums().toString());
             if (complex) {
                 // force to use a string type
                 type = "java.lang.String";
             }
 
             Property prop = javaClass.addProperty(type, option.getName());
-            if ("true".equals(option.getDeprecated())) {
+            if ("true".equals(option.isDeprecated())) {
                 prop.getField().addAnnotation(Deprecated.class);
                 prop.getAccessor().addAnnotation(Deprecated.class);
                 prop.getMutator().addAnnotation(Deprecated.class);
@@ -1357,16 +1357,16 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 }
                 prop.getField().getJavaDoc().setFullText(desc);
             }
-            if (!Strings.isBlank(option.getDefaultValue())) {
+            if (!Strings.isBlank((String) option.getDefaultValue())) {
                 if ("java.lang.String".equals(option.getJavaType())) {
-                    prop.getField().setStringInitializer(option.getDefaultValue());
+                    prop.getField().setStringInitializer((String) option.getDefaultValue());
                 } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) {
                     // the value should be a Long number
                     String value = option.getDefaultValue() + "L";
                     prop.getField().setLiteralInitializer(value);
                 } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) {
-                    prop.getField().setLiteralInitializer(option.getDefaultValue());
-                } else if (!Strings.isBlank(option.getEnumValues())) {
+                    prop.getField().setLiteralInitializer((String) option.getDefaultValue());
+                } else if (!Strings.isBlank(option.getEnums().toString())) {
                     String enumShortName = type.substring(type.lastIndexOf(".") + 1);
                     prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
                     javaClass.addImport(model.getJavaType());
@@ -1407,7 +1407,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
         javaClass.addAnnotation("org.springframework.boot.context.properties.ConfigurationProperties").setStringValue("prefix", prefix);
 
-        for (LanguageOptionModel option : model.getLanguageOptions()) {
+        for (LanguageOptionModel option : model.getOptions()) {
             // skip option with name id, or expression in language as we do not
             // need that and skip resultType as they are not global options
             if ("id".equals(option.getName()) || "expression".equals(option.getName()) || "resultType".equals(option.getName())) {
@@ -1455,14 +1455,14 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             // and therefore there is no problem, eg
             // camel.component.jdbc.data-source = myDataSource
             // where the type would have been javax.sql.DataSource
-            boolean complex = isComplexType(option) && Strings.isBlank(option.getEnumValues());
+            boolean complex = isComplexType(option) && Strings.isBlank(option.getEnums().toString());
             if (complex) {
                 // force to use a string type
                 type = "java.lang.String";
             }
 
             Property prop = javaClass.addProperty(type, option.getName());
-            if ("true".equals(option.getDeprecated())) {
+            if ("true".equals(option.isDeprecated())) {
                 prop.getField().addAnnotation(Deprecated.class);
                 prop.getAccessor().addAnnotation(Deprecated.class);
                 prop.getMutator().addAnnotation(Deprecated.class);
@@ -1480,16 +1480,16 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 }
                 prop.getField().getJavaDoc().setFullText(desc);
             }
-            if (!Strings.isBlank(option.getDefaultValue())) {
+            if (!Strings.isBlank((String) option.getDefaultValue())) {
                 if ("java.lang.String".equals(option.getJavaType())) {
-                    prop.getField().setStringInitializer(option.getDefaultValue());
+                    prop.getField().setStringInitializer((String) option.getDefaultValue());
                 } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) {
                     // the value should be a Long number
                     String value = option.getDefaultValue() + "L";
                     prop.getField().setLiteralInitializer(value);
                 } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) {
-                    prop.getField().setLiteralInitializer(option.getDefaultValue());
-                } else if (!Strings.isBlank(option.getEnumValues())) {
+                    prop.getField().setLiteralInitializer((String) option.getDefaultValue());
+                } else if (!Strings.isBlank(option.getEnums().toString())) {
                     String enumShortName = type.substring(type.lastIndexOf(".") + 1);
                     prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
                     javaClass.addImport(model.getJavaType());
@@ -1879,173 +1879,6 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // do nothing, as imports are sorted automatically when displayed
     }
 
-    private static ComponentModel generateComponentModel(String componentName, String json) {
-        List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("component", json, false);
-
-        ComponentModel component = new ComponentModel();
-        component.setScheme(getSafeValue("scheme", rows));
-        component.setSyntax(getSafeValue("syntax", rows));
-        component.setAlternativeSyntax(getSafeValue("alternativeSyntax", rows));
-        component.setTitle(getSafeValue("title", rows));
-        component.setDescription(getSafeValue("description", rows));
-        component.setFirstVersion(JSonSchemaHelper.getSafeValue("firstVersion", rows));
-        component.setLabel(getSafeValue("label", rows));
-        component.setDeprecated(getSafeValue("deprecated", rows));
-        component.setDeprecationNote(getSafeValue("deprecationNote", rows));
-        component.setConsumerOnly(getSafeValue("consumerOnly", rows));
-        component.setProducerOnly(getSafeValue("producerOnly", rows));
-        component.setJavaType(getSafeValue("javaType", rows));
-        component.setGroupId(getSafeValue("groupId", rows));
-        component.setArtifactId(getSafeValue("artifactId", rows));
-        component.setVersion(getSafeValue("version", rows));
-
-        rows = JSonSchemaHelper.parseJsonSchema("componentProperties", json, true);
-        for (Map<String, String> row : rows) {
-            ComponentOptionModel option = new ComponentOptionModel();
-            option.setName(getSafeValue("name", row));
-            option.setDisplayName(getSafeValue("displayName", row));
-            option.setKind(getSafeValue("kind", row));
-            option.setType(getSafeValue("type", row));
-            option.setJavaType(getSafeValue("javaType", row));
-            option.setDeprecated(getSafeValue("deprecated", row));
-            option.setDeprecationNote(getSafeValue("deprecationNote", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setEnums(getSafeValue("enum", row));
-            component.addComponentOption(option);
-        }
-
-        rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
-        for (Map<String, String> row : rows) {
-            EndpointOptionModel option = new EndpointOptionModel();
-            option.setName(getSafeValue("name", row));
-            option.setDisplayName(getSafeValue("displayName", row));
-            option.setKind(getSafeValue("kind", row));
-            option.setGroup(getSafeValue("group", row));
-            option.setRequired(getSafeValue("required", row));
-            option.setType(getSafeValue("type", row));
-            option.setJavaType(getSafeValue("javaType", row));
-            option.setEnums(getSafeValue("enum", row));
-            option.setPrefix(getSafeValue("prefix", row));
-            option.setMultiValue(getSafeValue("multiValue", row));
-            option.setDeprecated(getSafeValue("deprecated", row));
-            option.setDeprecationNote(getSafeValue("deprecationNote", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setEnumValues(getSafeValue("enum", row));
-            component.addEndpointOption(option);
-        }
-
-        return component;
-    }
-
-    private static DataFormatModel generateDataFormatModel(String dataFormatName, String json) {
-        List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("dataformat", json, false);
-
-        DataFormatModel dataFormat = new DataFormatModel();
-        dataFormat.setTitle(getSafeValue("title", rows));
-        dataFormat.setName(getSafeValue("name", rows));
-        dataFormat.setModelName(getSafeValue("modelName", rows));
-        dataFormat.setDescription(getSafeValue("description", rows));
-        dataFormat.setFirstVersion(JSonSchemaHelper.getSafeValue("firstVersion", rows));
-        dataFormat.setLabel(getSafeValue("label", rows));
-        dataFormat.setDeprecated(getSafeValue("deprecated", rows));
-        dataFormat.setDeprecationNote(getSafeValue("deprecationNote", rows));
-        dataFormat.setJavaType(getSafeValue("javaType", rows));
-        dataFormat.setGroupId(getSafeValue("groupId", rows));
-        dataFormat.setArtifactId(getSafeValue("artifactId", rows));
-        dataFormat.setVersion(getSafeValue("version", rows));
-
-        rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
-        for (Map<String, String> row : rows) {
-            DataFormatOptionModel option = new DataFormatOptionModel();
-            option.setName(getSafeValue("name", row));
-            option.setDisplayName(getSafeValue("displayName", row));
-            option.setKind(getSafeValue("kind", row));
-            option.setType(getSafeValue("type", row));
-            option.setJavaType(getSafeValue("javaType", row));
-            option.setDeprecated(getSafeValue("deprecated", row));
-            option.setDeprecationNote(getSafeValue("deprecationNote", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setEnumValues(getSafeValue("enum", row));
-            dataFormat.addDataFormatOption(option);
-        }
-
-        return dataFormat;
-    }
-
-    private static LanguageModel generateLanguageModel(String languageName, String json) {
-        List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("language", json, false);
-
-        LanguageModel language = new LanguageModel();
-        language.setTitle(getSafeValue("title", rows));
-        language.setName(getSafeValue("name", rows));
-        language.setModelName(getSafeValue("modelName", rows));
-        language.setDescription(getSafeValue("description", rows));
-        language.setFirstVersion(JSonSchemaHelper.getSafeValue("firstVersion", rows));
-        language.setLabel(getSafeValue("label", rows));
-        language.setDeprecated(getSafeValue("deprecated", rows));
-        language.setDeprecationNote(getSafeValue("deprecationNote", rows));
-        language.setJavaType(getSafeValue("javaType", rows));
-        language.setGroupId(getSafeValue("groupId", rows));
-        language.setArtifactId(getSafeValue("artifactId", rows));
-        language.setVersion(getSafeValue("version", rows));
-
-        rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
-        for (Map<String, String> row : rows) {
-            LanguageOptionModel option = new LanguageOptionModel();
-            option.setName(getSafeValue("name", row));
-            option.setDisplayName(getSafeValue("displayName", row));
-            option.setKind(getSafeValue("kind", row));
-            option.setType(getSafeValue("type", row));
-            option.setJavaType(getSafeValue("javaType", row));
-            option.setDeprecated(getSafeValue("deprecated", row));
-            option.setDeprecationNote(getSafeValue("deprecationNote", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setEnumValues(getSafeValue("enum", row));
-            language.addLanguageOption(option);
-        }
-
-        return language;
-    }
-
-    private OtherModel generateOtherModel(String json) {
-        List<Map<String, String>> rows = parseJsonSchema("model", json, false);
-
-        OtherModel model = new OtherModel();
-        model.setName(getSafeValue("name", rows));
-        model.setTitle(getSafeValue("title", rows));
-        model.setDescription(getSafeValue("description", rows));
-        model.setJavaType(getSafeValue("javaType", rows));
-        model.setLabel(getSafeValue("label", rows));
-        model.setDeprecated(getSafeValue("deprecated", rows));
-        model.setDeprecationNote(getSafeValue("deprecationNote", rows));
-
-        rows = parseJsonSchema("properties", json, true);
-        for (Map<String, String> row : rows) {
-            OtherOptionModel option = new OtherOptionModel();
-            option.setName(getSafeValue("name", row));
-            option.setDisplayName(getSafeValue("displayName", row));
-            option.setKind(getSafeValue("kind", row));
-            option.setGroup(getSafeValue("group", row));
-            option.setRequired(getSafeValue("required", row));
-            option.setType(getSafeValue("type", row));
-            option.setJavaType(getSafeValue("javaType", row));
-            option.setEnums(getSafeValue("enum", row));
-            option.setDeprecated(getSafeValue("deprecated", row));
-            option.setDeprecationNote(getSafeValue("deprecationNote", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setEnums(getSafeValue("enums", row));
-
-            model.addOptionModel(option);
-        }
-
-        return model;
-    }
-
     private void findComponentNames(Set<String> componentNames) {
         componentJar.stream()
                 .filter(je -> !je.isDirectory())
@@ -2089,7 +1922,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         try {
             String header;
             try (InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt")) {
-                header = loadText(is);
+                header = PackageHelper.loadText(is);
             }
             String code = header + source;
             getLog().debug("Source code generated:\n" + code);
@@ -2158,7 +1991,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             // create new file
             try {
                 InputStream is = getClass().getClassLoader().getResourceAsStream("license-header.txt");
-                String header = loadText(is);
+                String header = PackageHelper.loadText(is);
                 String code = sb.toString();
                 // add empty new line after header
                 code = header + "\n" + code;