You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/01/11 22:09:07 UTC

[camel] 02/13: Remove deprecated connector support

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

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

commit cdaa6085a163406aa9a0aef7e86eb1d5b6af5354
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Dec 13 19:29:53 2018 +0100

    Remove deprecated connector support
---
 connectors/camel-connector-maven-plugin/pom.xml    |  126 -
 .../camel/maven/connector/ConnectorMojo.java       |  671 ----
 .../connector/SpringBootAutoConfigurationMojo.java |  640 ----
 .../maven/connector/model/ComponentModel.java      |  212 --
 .../connector/model/ComponentOptionModel.java      |   20 -
 .../connector/model/ConnectorOptionModel.java      |   20 -
 .../maven/connector/model/EndpointOptionModel.java |  214 --
 .../camel/maven/connector/model/OptionModel.java   |  146 -
 .../connector/util/CollectionStringBuffer.java     |   58 -
 .../camel/maven/connector/util/FileHelper.java     |  140 -
 .../camel/maven/connector/util/GitHelper.java      |  132 -
 .../maven/connector/util/JSonSchemaHelper.java     |  335 --
 .../camel/maven/connector/util/StringHelper.java   |  219 --
 .../src/main/resources/META-INF/MANIFEST.MF        |    4 -
 .../src/main/resources/license-header-java.txt     |   16 -
 .../src/main/resources/license-header.txt          |   16 -
 connectors/camel-connector/pom.xml                 |   94 -
 .../src/main/docs/connector-component.adoc         |  243 --
 .../component/connector/ConnectorComponent.java    |  149 -
 .../component/connector/ConnectorCustomizer.java   |   27 -
 .../camel/component/connector/ConnectorModel.java  |  192 --
 .../component/connector/ConnectorProducer.java     |   72 -
 .../apache/camel/component/connector/DataType.java |   81 -
 .../connector/DefaultConnectorComponent.java       |  534 ----
 .../connector/DefaultConnectorEndpoint.java        |  174 -
 .../connector/SchedulerTimerConnectorEndpoint.java |   79 -
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 connectors/examples/bar-connector/Readme.md        |    6 -
 connectors/examples/bar-connector/pom.xml          |  187 --
 .../main/java/org/foo/connector/BarComponent.java  |   31 -
 .../services/org/apache/camel/component/bar        |   18 -
 .../src/main/resources/camel-connector-schema.json |   67 -
 .../src/main/resources/camel-connector.json        |   22 -
 connectors/examples/beverage-component/Readme.md   |    5 -
 connectors/examples/beverage-component/pom.xml     |  114 -
 .../main/java/org/beverage/BeverageComponent.java  |   39 -
 .../main/java/org/beverage/BeverageEndpoint.java   |   92 -
 .../main/java/org/beverage/BeverageProducer.java   |   45 -
 .../src/main/java/org/beverage/Beverages.java      |   22 -
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../services/org/apache/camel/component/beverage   |   18 -
 .../src/test/java/org/beverage/BeverageTest.java   |   46 -
 .../src/test/resources/log4j2.properties           |   30 -
 connectors/examples/foo-bar-wine-example/Readme.md |   26 -
 .../img/foo-connector-options-idea.png             |  Bin 45802 -> 0 bytes
 connectors/examples/foo-bar-wine-example/pom.xml   |  126 -
 .../src/main/java/org/foo/FooBarWineMain.java      |   34 -
 .../src/main/java/org/foo/FooBarWineRoute.java     |   38 -
 .../src/main/resources/log4j2.properties           |   24 -
 .../src/test/java/org/foo/FooBarWineTest.java      |   62 -
 .../src/test/resources/log4j2.properties           |   28 -
 connectors/examples/foo-connector/Readme.md        |    5 -
 connectors/examples/foo-connector/pom.xml          |  187 --
 .../main/java/org/foo/connector/FooComponent.java  |   37 -
 .../services/org/apache/camel/component/foo        |   18 -
 .../src/main/resources/camel-connector-schema.json |   62 -
 .../src/main/resources/camel-connector.json        |   23 -
 connectors/examples/petstore-connector/Readme.md   |    6 -
 connectors/examples/petstore-connector/pom.xml     |  205 --
 .../java/org/foo/connector/PetStoreComponent.java  |   31 -
 .../PetStoreConnectorAutoConfiguration.java        |  147 -
 .../springboot/PetStoreConnectorConfiguration.java |   38 -
 .../PetStoreConnectorConfigurationCommon.java      |   73 -
 .../services/org/apache/camel/component/petstore   |   18 -
 .../src/main/resources/META-INF/spring.factories   |   19 -
 .../src/main/resources/camel-connector-schema.json |   63 -
 .../src/main/resources/camel-connector.json        |   28 -
 connectors/examples/petstore-example/Readme.md     |   30 -
 connectors/examples/petstore-example/pom.xml       |  129 -
 .../src/main/java/org/foo/PetStoreApplication.java |   34 -
 .../src/main/java/org/foo/PetStoreRoute.java       |   33 -
 .../src/main/resources/application.properties      |   21 -
 connectors/examples/pom.xml                        |   51 -
 .../salesforce-upsert-contact-connector/pom.xml    |  185 --
 .../salesforce-authentication.properties.sample    |   23 -
 .../org/foo/salesforce/upsert/contact/Contact.java | 3317 --------------------
 .../upsert/contact/Contact_CleanStatusEnum.java    |   69 -
 .../upsert/contact/Contact_LeadSourceEnum.java     |   63 -
 .../upsert/contact/Contact_LevelEnum.java          |   59 -
 .../Contact_MailingGeocodeAccuracyEnum.java        |   75 -
 .../contact/Contact_OtherGeocodeAccuracyEnum.java  |   75 -
 .../upsert/contact/Contact_SalutationEnum.java     |   63 -
 .../upsert/contact/QueryRecordsContact.java        |   43 -
 .../contact/SalesforceUpsertContactComponent.java  |   34 -
 ...rceUpsertContactConnectorAutoConfiguration.java |  150 -
 ...esforceUpsertContactConnectorConfiguration.java |   38 -
 ...eUpsertContactConnectorConfigurationCommon.java |  112 -
 .../camel/component/salesforce-upsert-contact      |   18 -
 .../src/main/resources/META-INF/spring.factories   |   19 -
 .../src/main/resources/camel-connector-schema.json |   97 -
 .../src/main/resources/camel-connector.json        |   28 -
 connectors/examples/twitter-find-connector/pom.xml |  188 --
 .../java/org/foo/find/TwitterFindComponent.java    |   34 -
 .../TwitterFindConnectorAutoConfiguration.java     |  149 -
 .../TwitterFindConnectorConfiguration.java         |   38 -
 .../TwitterFindConnectorConfigurationCommon.java   |  126 -
 .../org/apache/camel/component/twitter-find        |   18 -
 .../src/main/resources/META-INF/spring.factories   |   19 -
 .../src/main/resources/camel-connector-schema.json |  123 -
 .../src/main/resources/camel-connector.json        |   38 -
 .../find/springboot/TwitterFindConnectorTest.java  |  113 -
 .../src/test/resources/application.properties      |   36 -
 .../src/test/resources/logback.xml                 |   41 -
 connectors/examples/twitter-find-example/README.md |   18 -
 connectors/examples/twitter-find-example/pom.xml   |  112 -
 .../main/java/org/foo/TwitterFindApplication.java  |   32 -
 .../main/java/org/foo/TwitterFindCustomizer.java   |   45 -
 .../org/foo/TwitterFindCustomizerProperties.java   |   37 -
 .../src/main/java/org/foo/TwitterFindRoute.java    |   29 -
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../src/main/resources/application.properties      |   31 -
 .../examples/twitter-mention-connector/pom.xml     |  194 --
 .../org/foo/mention/TwitterMentionComponent.java   |   34 -
 .../TwitterMentionConnectorAutoConfiguration.java  |  149 -
 .../TwitterMentionConnectorConfiguration.java      |   38 -
 ...TwitterMentionConnectorConfigurationCommon.java |   77 -
 .../org/apache/camel/component/twitter-mention     |   18 -
 .../src/main/resources/META-INF/spring.factories   |   19 -
 .../src/main/resources/camel-connector-schema.json |   75 -
 .../src/main/resources/camel-connector.json        |   22 -
 .../examples/twitter-salesforce-example/README.md  |   22 -
 .../examples/twitter-salesforce-example/pom.xml    |  117 -
 .../main/java/org/foo/MentionAddContractRoute.java |   32 -
 .../main/java/org/foo/TweetToContactMapper.java    |   51 -
 .../java/org/foo/TwitterSalesforceApplication.java |   33 -
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../src/main/resources/application.properties      |   38 -
 connectors/examples/wine-connector/Readme.md       |    6 -
 connectors/examples/wine-connector/pom.xml         |  187 --
 .../main/java/org/foo/connector/WineComponent.java |   31 -
 .../services/org/apache/camel/component/wine       |   18 -
 .../src/main/resources/camel-connector-schema.json |   54 -
 .../src/main/resources/camel-connector.json        |   29 -
 connectors/pom.xml                                 |   45 -
 pom.xml                                            |    1 -
 139 files changed, 14793 deletions(-)

diff --git a/connectors/camel-connector-maven-plugin/pom.xml b/connectors/camel-connector-maven-plugin/pom.xml
deleted file mode 100644
index 5bdd010..0000000
--- a/connectors/camel-connector-maven-plugin/pom.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>camel-connector-maven-plugin</artifactId>
-  <name>Camel :: Connectors :: Camel Connector Maven Plugin (deprecated)</name>
-  <packaging>maven-plugin</packaging>
-
-  <dependencies>
-
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-catalog</artifactId>
-    </dependency>
-
-    <!-- we extend this existing maven plugin -->
-    <dependency>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <version>${maven-jar-plugin-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.plugin-tools</groupId>
-      <artifactId>maven-plugin-annotations</artifactId>
-      <version>3.2</version>
-      <scope>provided</scope>
-    </dependency>
-
-    <!-- use jackson json parser -->
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <version>${jackson2-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-      <version>${jackson2-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <version>${jackson2-version}</version>
-    </dependency>
-
-    <!-- roaster to create java source for Spring Boot auto configuration support -->
-    <dependency>
-      <groupId>org.jboss.forge.roaster</groupId>
-      <artifactId>roaster-api</artifactId>
-      <version>${roaster-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.forge.roaster</groupId>
-      <artifactId>roaster-jdt</artifactId>
-      <version>${roaster-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-autoconfigure</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <!-- guava for some word wrap helper -->
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-      <version>${google-guava-version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j-version}</version>
-      <scope>runtime</scope>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>${maven-jar-plugin-version}</version>
-        <configuration>
-          <!-- must include our own dummy manifest -->
-          <archive>
-            <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
-          </archive>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
deleted file mode 100644
index 8eed438..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
+++ /dev/null
@@ -1,671 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import org.apache.camel.catalog.CamelCatalog;
-import org.apache.camel.catalog.DefaultCamelCatalog;
-import org.apache.camel.maven.connector.util.FileHelper;
-import org.apache.camel.maven.connector.util.GitHelper;
-import org.apache.camel.maven.connector.util.JSonSchemaHelper;
-import org.apache.camel.maven.connector.util.StringHelper;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.plugins.jar.AbstractJarMojo;
-
-import static org.apache.camel.maven.connector.util.JSonSchemaHelper.prettyPrint;
-
-@Mojo(name = "jar", defaultPhase = LifecyclePhase.PREPARE_PACKAGE, requiresProject = true, threadSafe = true,
-        requiresDependencyResolution = ResolutionScope.RUNTIME)
-public class ConnectorMojo extends AbstractJarMojo {
-
-    /**
-     * Directory containing the classes and resource files that should be packaged into the JAR.
-     */
-    @Parameter(defaultValue = "${project.build.outputDirectory}", required = true)
-    private File classesDirectory;
-
-    /**
-     * Whether to generate JSon schema files to the sources directory (<tt>src/main/resources</tt>) which allows the files to be stored together with the source code.
-     * If this options is <tt>false</tt> the JSon schema files are generated into <tt>target/classes</tt> and only included in the built JAR.
-     */
-    @Parameter(defaultValue = "true")
-    private boolean generateToSources;
-
-    /**
-     * Whether to include the git url for the git repository of the source code for the Camel connector
-     */
-    @Parameter(defaultValue = "false")
-    private boolean includeGitUrl;
-
-    /**
-     * Whether to output JSon connector schema files in pretty print mode or not
-     */
-    @Parameter(defaultValue = "true")
-    private boolean prettyPrint;
-
-    private CamelCatalog catalog = new DefaultCamelCatalog();
-
-    @Override
-    protected File getClassesDirectory() {
-        return classesDirectory;
-    }
-
-    @Override
-    protected String getClassifier() {
-        // no classifier
-        return null;
-    }
-
-    @Override
-    protected String getType() {
-        return "jar";
-    }
-
-    @Override
-    public File createArchive() throws MojoExecutionException {
-
-        // project root folder
-        File root = classesDirectory.getParentFile().getParentFile();
-
-        String gitUrl = null;
-
-        // find the component dependency and get its .json file
-        File file = new File(classesDirectory, "camel-connector.json");
-        if (file.exists()) {
-
-            // updating to use correct project version in camel-connector.json
-            String version = getProject().getVersion();
-            updateVersionInCamelConnectorJSon("version", version);
-
-            try {
-                ObjectMapper mapper = new ObjectMapper();
-                Map dto = mapper.readValue(file, Map.class);
-
-                if (includeGitUrl) {
-                    gitUrl = embedGitUrlInCamelConnectorJSon(mapper, dto);
-                }
-
-                File schema = embedCamelComponentSchema(file);
-                if (schema != null) {
-                    String json = FileHelper.loadText(new FileInputStream(schema));
-
-                    List<Map<String, String>> rows = org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("component", json, false);
-                    String header = buildComponentHeaderSchema(rows, dto, gitUrl);
-                    getLog().debug(header);
-
-                    rows = org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("componentProperties", json, true);
-                    String componentOptions = buildComponentOptionsSchema(rows, dto);
-                    getLog().debug(componentOptions);
-
-                    rows = org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("properties", json, true);
-                    String endpointOptions = buildEndpointOptionsSchema(rows, dto);
-                    getLog().debug(endpointOptions);
-
-                    String connectorOptions = buildConnectorOptionsSchema(dto);
-                    getLog().debug(connectorOptions);
-
-                    // generate the json file
-                    StringBuilder jsonSchema = new StringBuilder();
-                    jsonSchema.append("{\n");
-                    jsonSchema.append(header);
-                    jsonSchema.append(componentOptions);
-                    jsonSchema.append(endpointOptions);
-                    jsonSchema.append(connectorOptions);
-                    jsonSchema.append("}\n");
-
-                    String newJson = jsonSchema.toString();
-
-                    // parse ourselves
-                    rows = org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("component", newJson, false);
-                    String newScheme = getOption(rows, "scheme");
-
-                    checkConnectorScheme(newScheme);
-
-                    // write the json file to the target directory as if camel apt would do it
-                    String javaType = (String) dto.get("javaType");
-                    String dir = javaType.substring(0, javaType.lastIndexOf("."));
-                    dir = dir.replace('.', '/');
-                    File subDir = new File(classesDirectory, dir);
-                    String name = newScheme + ".json";
-                    File out = new File(subDir, name);
-
-                    FileOutputStream fos = new FileOutputStream(out, false);
-                    // output as pretty print
-                    newJson = prettyPrint ? prettyPrint(newJson) : newJson;
-                    fos.write(newJson.getBytes());
-                    fos.close();
-
-                    // also write the file in the root folder so its easier to find that for tooling
-                    out = new File(classesDirectory, "camel-connector-schema.json");
-                    fos = new FileOutputStream(out, false);
-                    fos.write(newJson.getBytes());
-                    fos.close();
-
-                    if (generateToSources) {
-                        // copy the file into the sources as well
-                        File from = new File(classesDirectory, "camel-connector-schema.json");
-                        File to = new File(root, "src/main/resources/camel-connector-schema.json");
-                        FileHelper.copyFile(from, to);
-                    }
-                }
-
-                // build json schema for component that only has the selectable options
-            } catch (Exception e) {
-                throw new MojoExecutionException("Error in camel-connector-maven-plugin", e);
-            }
-        }
-
-        return super.createArchive();
-    }
-
-    private void checkConnectorScheme(String connectorScheme) {
-        List<String> componentNames = catalog.findComponentNames();
-        if (componentNames != null && componentNames.contains(connectorScheme)) {
-            String format = "Can't package a connector with scheme '%s' as a component with the same scheme is already registered in the catalog";
-            String message = String.format(format, connectorScheme);
-            getLog().error(message);
-            throw new IllegalArgumentException(message);
-        }
-    }
-
-    private String embedGitUrlInCamelConnectorJSon(ObjectMapper mapper, Map dto) throws MojoExecutionException {
-        // we want to include the git url of the project
-        File gitFolder = GitHelper.findGitFolder();
-        try {
-            String gitUrl = GitHelper.extractGitUrl(gitFolder);
-            if (gitUrl == null) {
-                return null;
-            }
-
-            // embed girUrl in camel-connector.json file
-            String existingGitUrl = (String) dto.get("gitUrl");
-            if (existingGitUrl == null || !existingGitUrl.equals(gitUrl)) {
-                dto.put("gitUrl", gitUrl);
-                // update file
-                File file = new File(classesDirectory, "camel-connector.json");
-                mapper.writerWithDefaultPrettyPrinter().writeValue(file, dto);
-                // update source file also
-                File root = classesDirectory.getParentFile().getParentFile();
-                File sourceFile = new File(root, "src/main/resources/camel-connector.json");
-                if (sourceFile.exists()) {
-                    getLog().info("Updating gitUrl to " + gitUrl + " in " + sourceFile);
-                    mapper.writerWithDefaultPrettyPrinter().writeValue(sourceFile, dto);
-                }
-            }
-            return gitUrl;
-            
-        } catch (IOException e) {
-            throw new MojoExecutionException("Error in camel-connector-maven-plugin", e);
-        }
-    }
-
-    private String extractJavaType(String scheme) throws Exception {
-        File file = new File(classesDirectory, "META-INF/services/org/apache/camel/component/" + scheme);
-        if (file.exists()) {
-            List<String> lines = FileHelper.loadFile(file);
-            String fqn = extractClass(lines);
-            return fqn;
-        }
-        return null;
-    }
-
-    private String getOption(List<Map<String, String>> rows, String key) {
-        for (Map<String, String> row : rows) {
-            if (row.containsKey(key)) {
-                return row.get(key);
-            }
-        }
-        return null;
-    }
-
-    private String buildComponentOptionsSchema(List<Map<String, String>> rows, Map dto) throws JsonProcessingException {
-        // find the endpoint options
-        List options = (List) dto.get("componentOptions");
-        Map values = (Map) dto.get("componentValues");
-        Map overrides = (Map) dto.get("componentOverrides");
-
-        StringBuilder sb = new StringBuilder();
-        sb.append("  \"componentProperties\": {\n");
-
-        boolean first = true;
-
-        for (int i = 0; i < rows.size(); i++) {
-            Map<String, String> row = rows.get(i);
-            String key = row.get("name");
-
-            if (options == null || !options.contains(key)) {
-                continue;
-            }
-
-            // do we have a new default value for this row?
-            if (values != null && values.containsKey(key)) {
-                // the value may be an integer so we need to use Object and toString when putting back in row
-                Object newDefaultValue = values.get(key);
-                if (newDefaultValue != null) {
-                    row.put("defaultValue", newDefaultValue.toString());
-                }
-            }
-
-            // is there any overrides for this row?
-            if (overrides != null && overrides.containsKey(key)) {
-                Map over = (Map) overrides.get(key);
-                if (over != null) {
-                    row.putAll(over);
-                }
-            }
-
-            // we should build the json as one-line which is how Camel does it today
-            // which makes its internal json parser support loading our generated schema file
-            String line = buildJSonLineFromRow(row);
-
-            if (!first) {
-                sb.append(",\n");
-            }
-            sb.append("    ").append(line);
-
-            first = false;
-        }
-        if (!first) {
-            sb.append("\n");
-        }
-
-        sb.append("  },\n");
-        return sb.toString();
-    }
-
-    private String buildEndpointOptionsSchema(List<Map<String, String>> rows, Map dto) throws JsonProcessingException {
-        // find the endpoint options
-        List options = (List) dto.get("endpointOptions");
-        Map values = (Map) dto.get("endpointValues");
-        Map overrides = (Map) dto.get("endpointOverrides");
-
-        // if the dto is scheduled then we need to add timer options
-        if ("timer".equals(dto.get("scheduler"))) {
-            // include the period option from the timer as we use that
-            Map<String, String> period = new LinkedHashMap<>();
-            period.put("name", "schedulerPeriod");
-            period.put("kind", "parameter");
-            period.put("displayName", "Period");
-            period.put("group", "consumer");
-            period.put("type", "integer");
-            period.put("javaType", "long");
-            period.put("deprecated", "false");
-            period.put("secret", "false");
-            period.put("defaultValue", "1000");
-            period.put("description", "Delay in milli seconds between scheduling (executing)");
-
-            getLog().debug("Connector is using scheduler: timer");
-            rows.add(period);
-        }
-
-        StringBuilder sb = new StringBuilder();
-        sb.append("  \"properties\": {\n");
-
-        boolean first = true;
-        for (int i = 0; i < rows.size(); i++) {
-            Map<String, String> row = rows.get(i);
-            String key = row.get("name");
-
-            if (options == null || !options.contains(key)) {
-                continue;
-            }
-
-            // do we have a new default value for this row?
-            if (values != null && values.containsKey(key)) {
-                // the value may be an integer so we need to use Object and toString when putting back in row
-                Object newDefaultValue = values.get(key);
-                if (newDefaultValue != null) {
-                    row.put("defaultValue", newDefaultValue.toString());
-                }
-            }
-
-            // is there any overrides for this row?
-            if (overrides != null && overrides.containsKey(key)) {
-                Map over = (Map) overrides.get(key);
-                if (over != null) {
-                    row.putAll(over);
-                }
-            }
-
-            // we should build the json as one-line which is how Camel does it today
-            // which makes its internal json parser support loading our generated schema file
-            String line = buildJSonLineFromRow(row);
-
-            if (!first) {
-                sb.append(",\n");
-            }
-            sb.append("    ").append(line);
-
-            first = false;
-        }
-        if (!first) {
-            sb.append("\n");
-        }
-
-        sb.append("  },\n");
-        return sb.toString();
-    }
-
-    private String buildConnectorOptionsSchema(Map dto) throws JsonProcessingException {
-        // find the endpoint options
-        Map<String, Map> properties = (Map) dto.get("connectorProperties");
-
-        StringBuilder sb = new StringBuilder();
-        sb.append("  \"connectorProperties\": {\n");
-
-        AtomicBoolean first = new AtomicBoolean(true);
-
-        if (properties != null) {
-            for (Map.Entry<String, Map> entry: properties.entrySet()) {
-                Map row = entry.getValue();
-                row.put("name", entry.getKey());
-
-                String line = buildJSonLineFromRow(row);
-
-                if (!first.get()) {
-                    sb.append(",\n");
-                }
-                sb.append("    ").append(line);
-
-                first.set(false);
-            }
-        }
-
-        if (!first.get()) {
-            sb.append("\n");
-        }
-
-        sb.append("  }\n");
-        return sb.toString();
-    }
-
-    private String buildComponentHeaderSchema(List<Map<String, String>> rows, Map dto, String gitUrl) throws Exception {
-        String baseScheme = (String) dto.get("baseScheme");
-        String title = (String) dto.get("name");
-        String scheme = (String) dto.get("scheme");
-        if (scheme == null || scheme.isEmpty()) {
-            scheme = StringHelper.camelCaseToDash(title);
-        }
-        String baseSyntax = getOption(rows, "syntax");
-        String syntax = baseSyntax.replaceFirst(baseScheme, scheme);
-
-        String description = (String) dto.get("description");
-        // dto has labels
-        String label = null;
-        List<String> labels = (List<String>) dto.get("labels");
-        if (labels != null) {
-            label = labels.stream().collect(Collectors.joining(","));
-        }
-        String async = getOption(rows, "async");
-        String pattern = (String) dto.get("pattern");
-        String producerOnly = "To".equalsIgnoreCase(pattern) ? "true" : null;
-        String consumerOnly = "From".equalsIgnoreCase(pattern) ? "true" : null;
-        String lenientProperties = getOption(rows, "lenientProperties");
-        String deprecated = getOption(rows, "deprecated");
-        String javaType = extractJavaType(scheme);
-        String groupId = getProject().getGroupId();
-        String artifactId = getProject().getArtifactId();
-        String version = getProject().getVersion();
-
-        StringBuilder sb = new StringBuilder();
-        sb.append("  \"component\": {\n");
-        if (gitUrl != null) {
-            sb.append("    \"girUrl\": \"" + StringHelper.nullSafe(gitUrl) + "\",\n");
-        }
-        sb.append("    \"kind\": \"component\",\n");
-        sb.append("    \"baseScheme\": \"" + StringHelper.nullSafe(baseScheme) + "\",\n");
-        sb.append("    \"scheme\": \"" + scheme + "\",\n");
-        sb.append("    \"syntax\": \"" + syntax + "\",\n");
-        sb.append("    \"title\": \"" + title + "\",\n");
-        if (description != null) {
-            // ensure description is sanitized
-            String text = JSonSchemaHelper.sanitizeDescription(description, false);
-            sb.append("    \"description\": \"" + text + "\",\n");
-        }
-        if (label != null) {
-            sb.append("    \"label\": \"" + label + "\",\n");
-        }
-        if (deprecated != null) {
-            sb.append("    \"deprecated\": " + deprecated + ",\n");
-        }
-        if (async != null) {
-            sb.append("    \"async\": " + async + ",\n");
-        }
-        if (producerOnly != null) {
-            sb.append("    \"producerOnly\": " + producerOnly + ",\n");
-        } else if (consumerOnly != null) {
-            sb.append("    \"consumerOnly\": " + consumerOnly + ",\n");
-        }
-        if (lenientProperties != null) {
-            sb.append("    \"lenientProperties\": " + lenientProperties + ",\n");
-        }
-        sb.append("    \"javaType\": \"" + javaType + "\",\n");
-        sb.append("    \"groupId\": \"" + groupId + "\",\n");
-        sb.append("    \"artifactId\": \"" + artifactId + "\",\n");
-        sb.append("    \"version\": \"" + version + "\"\n");
-        sb.append("  },\n");
-
-        return sb.toString();
-    }
-
-    /**
-     * Finds and embeds the Camel component JSon schema file
-     */
-    private File embedCamelComponentSchema(File file) throws MojoExecutionException {
-        try {
-            ObjectMapper mapper = new ObjectMapper();
-            Map dto = mapper.readValue(file, Map.class);
-
-            String scheme = extractScheme(dto);
-            String groupId = extractGroupId(dto);
-            String artifactId = extractArtifactId(dto);
-
-            // find the artifact on the classpath that has the Camel component this connector is using
-            // then we want to grab its json schema file to embed in this JAR so we have all files together
-
-            if (scheme != null && groupId != null && artifactId != null) {
-                for (Object obj : getProject().getDependencyArtifacts()) {
-                    Artifact artifact = (Artifact) obj;
-                    if ("jar".equals(artifact.getType())) {
-                        // use baseVersion so we can support SNAPSHOT versions that are based on a base version
-                        if (groupId.equals(artifact.getGroupId()) && artifactId.equals(artifact.getArtifactId())) {
-                            // load the component file inside the file
-                            URL url = new URL("file:" + artifact.getFile());
-                            URLClassLoader child = new URLClassLoader(new URL[]{url}, this.getClass().getClassLoader());
-
-                            InputStream is = child.getResourceAsStream("META-INF/services/org/apache/camel/component/" + scheme);
-                            if (is != null) {
-                                List<String> lines = FileHelper.loadFile(is);
-                                String fqn = extractClass(lines);
-                                is.close();
-
-                                // only keep package
-                                String pck = fqn.substring(0, fqn.lastIndexOf("."));
-                                String name = pck.replace(".", "/") + "/" + scheme + ".json";
-
-                                is = child.getResourceAsStream(name);
-                                if (is != null) {
-                                    List<String> schema = FileHelper.loadFile(is);
-                                    is.close();
-
-                                    // write schema to file
-                                    File out = new File(classesDirectory, "camel-component-schema.json");
-                                    FileOutputStream fos = new FileOutputStream(out, false);
-                                    for (String line : schema) {
-                                        fos.write(line.getBytes());
-                                        fos.write("\n".getBytes());
-                                    }
-                                    fos.close();
-
-                                    getLog().info("Embedded camel-component-schema.json file for Camel component " + scheme);
-
-                                    // updating to use correct base version in camel-connector.json
-                                    String baseVersion = artifact.getVersion();
-                                    updateVersionInCamelConnectorJSon("baseVersion", baseVersion);
-
-                                    return out;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-        } catch (Exception e) {
-            throw new MojoExecutionException("Cannot read file camel-connector.json", e);
-        }
-
-        return null;
-    }
-
-    private void updateVersionInCamelConnectorJSon(String qualifier, String version) throws MojoExecutionException {
-        File file = new File(classesDirectory, "camel-connector.json");
-        if (file.exists()) {
-            try {
-                ObjectMapper mapper = new ObjectMapper();
-                Map dto = mapper.readValue(file, Map.class);
-
-                if (version != null) {
-                    String existingVersion = (String) dto.get(qualifier);
-                    if (existingVersion == null || !existingVersion.equals(version)) {
-                        dto.put(qualifier, version);
-                        // update file
-                        mapper.writerWithDefaultPrettyPrinter().writeValue(file, dto);
-                        // project root folder
-                        File root = classesDirectory.getParentFile().getParentFile();
-                        // update source file also
-                        file = new File(root, "src/main/resources/camel-connector.json");
-                        if (file.exists()) {
-                            getLog().info("Updating " + qualifier + " to " + version + " in " + file);
-                            mapper.writerWithDefaultPrettyPrinter().writeValue(file, dto);
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                throw new MojoExecutionException("Error in camel-connector-maven-plugin", e);
-            }
-        }
-    }
-
-    /**
-     * Builds a JSon line of the given row
-     */
-    private static String buildJSonLineFromRow(Map<String, String> row) {
-        String name = row.get("name");
-        String displayName = row.get("displayName");
-        String kind = row.get("kind");
-        boolean required = false;
-        Object value = row.getOrDefault("required", "false");
-        if (value instanceof Boolean) {
-            required = (Boolean) value;
-        } else if (value != null) {
-            required = Boolean.valueOf(value.toString());
-        }
-        String javaType = row.get("javaType");
-        String defaultValue = row.get("defaultValue");
-        String description = row.get("description");
-        boolean deprecated = false;
-        value = row.getOrDefault("deprecated", "false");
-        if (value instanceof Boolean) {
-            deprecated = (Boolean) value;
-        } else if (value != null) {
-            deprecated = Boolean.valueOf(value.toString());
-        }
-        boolean secret = false;
-        value = row.getOrDefault("secret", "false");
-        if (value instanceof Boolean) {
-            secret = (Boolean) value;
-        } else if (value != null) {
-            secret = Boolean.valueOf(value.toString());
-        }
-        String group = row.get("group");
-        String label = row.get("label");
-        // for enum we need to build it back as a set
-        Set<String> enums = null;
-        // the enum can either be a List or String
-        value = row.get("enum");
-        if (value instanceof List) {
-            enums = new LinkedHashSet<String>((List)value);
-        } else if (value instanceof String) {
-            String[] array = value.toString().split(",");
-            enums = Arrays.stream(array).collect(Collectors.toSet());
-        }
-        boolean enumType = enums != null;
-        String optionalPrefix = row.get("optionalPrefix");
-        String prefix = row.get("prefix");
-        boolean multiValue = false;
-        value = row.getOrDefault("multiValue", "false");
-        if (value instanceof Boolean) {
-            multiValue = (Boolean) value;
-        } else if (value != null) {
-            multiValue = Boolean.valueOf(value.toString());
-        }
-
-        return JSonSchemaHelper.toJson(name, displayName, kind, required, javaType, defaultValue, description, deprecated, secret, group, label,
-            enumType, enums, false, null, false, optionalPrefix, prefix, multiValue);
-    }
-
-    private static String extractClass(List<String> lines) {
-        for (String line : lines) {
-            line = line.trim();
-            if (line.startsWith("class=")) {
-                return line.substring(6);
-            }
-        }
-        return null;
-    }
-
-    private static String extractScheme(Map map) {
-        return (String) map.get("baseScheme");
-    }
-
-    private static String extractGroupId(Map map) {
-        return (String) map.get("baseGroupId");
-    }
-
-    private static String extractArtifactId(Map map) {
-        return (String) map.get("baseArtifactId");
-    }
-
-    private static String extractVersion(Map map) {
-        return (String) map.get("baseVersion");
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
deleted file mode 100644
index f8ae855..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
+++ /dev/null
@@ -1,640 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import javax.annotation.Generated;
-import javax.annotation.PostConstruct;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.camel.catalog.JSonSchemaHelper;
-import org.apache.camel.maven.connector.model.ComponentModel;
-import org.apache.camel.maven.connector.model.ComponentOptionModel;
-import org.apache.camel.maven.connector.model.ConnectorOptionModel;
-import org.apache.camel.maven.connector.model.EndpointOptionModel;
-import org.apache.camel.maven.connector.model.OptionModel;
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.jboss.forge.roaster.Roaster;
-import org.jboss.forge.roaster.model.source.AnnotationSource;
-import org.jboss.forge.roaster.model.source.Import;
-import org.jboss.forge.roaster.model.source.JavaClassSource;
-import org.jboss.forge.roaster.model.source.MethodSource;
-import org.jboss.forge.roaster.model.source.PropertySource;
-import org.jboss.forge.roaster.model.util.Formatter;
-import org.jboss.forge.roaster.model.util.Strings;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Lazy;
-
-import static org.apache.camel.maven.connector.util.FileHelper.loadText;
-import static org.apache.camel.maven.connector.util.StringHelper.getSafeValue;
-import static org.apache.camel.maven.connector.util.StringHelper.getShortJavaType;
-
-/**
- * Generate Spring Boot auto configuration files for Camel connectors.
- */
-@Mojo(name = "prepare-spring-boot-auto-configuration",
-    defaultPhase = LifecyclePhase.PACKAGE,
-    requiresProject = true, threadSafe = true)
-public class SpringBootAutoConfigurationMojo extends AbstractMojo {
-
-    @Parameter(defaultValue = "${project.build.outputDirectory}", required = true)
-    private File classesDirectory;
-
-    @Parameter(defaultValue = "true")
-    private boolean includeLicenseHeader;
-
-    @Parameter(defaultValue = "camel.connector")
-    private String configurationPrefix;
-
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        try {
-            executeConnector();
-        } catch (Exception e) {
-            throw new MojoFailureException("Error generating Spring-Boot auto configuration for connector", e);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private void executeConnector() throws Exception {
-
-        String javaType = null;
-        String connectorScheme = null;
-        List<String> componentOptions = Collections.emptyList();
-        List<String> endpointOptions = Collections.emptyList();
-
-        File file = new File(classesDirectory, "camel-connector.json");
-        if (file.exists()) {
-            ObjectMapper mapper = new ObjectMapper();
-            Map dto = mapper.readValue(file, Map.class);
-
-            javaType = (String) dto.get("javaType");
-            connectorScheme = (String) dto.get("scheme");
-            componentOptions = (List) dto.get("componentOptions");
-            endpointOptions = (List) dto.get("endpointOptions");
-        }
-
-        // find the component dependency and get its .json file
-        file = new File(classesDirectory, "camel-connector-schema.json");
-        if (file.exists() && javaType != null && connectorScheme != null) {
-            String json = loadText(new FileInputStream(file));
-            ComponentModel model = generateComponentModel(json);
-
-            // resolvePropertyPlaceholders is an option which only make sense to use if the component has other options
-            boolean hasComponentOptions = model.getComponentOptions().stream().anyMatch(o -> !o.getName().equals("resolvePropertyPlaceholders"));
-            boolean hasConnectorOptions = !model.getConnectorOptions().isEmpty();
-
-            // use springboot as sub package name so the code is not in normal
-            // package so the Spring Boot JARs can be optional at runtime
-            int pos = javaType.lastIndexOf(".");
-            String pkg = javaType.substring(0, pos) + ".springboot";
-
-            // we only create spring boot auto configuration if there is options to configure
-            if (hasComponentOptions || hasConnectorOptions) {
-                getLog().info("Generating Spring Boot AutoConfiguration for Connector: " + model.getScheme());
-
-                createConnectorConfigurationSource(pkg, model, javaType, connectorScheme, componentOptions, endpointOptions);
-                createConnectorAutoConfigurationSource(pkg, hasComponentOptions || hasConnectorOptions, javaType, connectorScheme);
-                createConnectorSpringFactorySource(pkg, javaType);
-            }
-        }
-    }
-
-    private void createConnectorSpringFactorySource(String packageName, String javaType) throws MojoFailureException {
-        int pos = javaType.lastIndexOf(".");
-        String name = javaType.substring(pos + 1);
-        name = name.replace("Component", "ConnectorAutoConfiguration");
-
-        writeComponentSpringFactorySource(packageName, name);
-    }
-
-    private void writeComponentSpringFactorySource(String packageName, String name) throws MojoFailureException {
-        StringBuilder sb = new StringBuilder();
-        sb.append("org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\\n");
-
-        String lineToAdd = packageName + "." + name + "\n";
-        sb.append(lineToAdd);
-
-        // project root folder
-        File root = classesDirectory.getParentFile().getParentFile();
-        String fileName = "src/main/resources/META-INF/spring.factories";
-        File target = new File(root, fileName);
-
-        // create new file
-        try {
-            String header = "";
-            if (includeLicenseHeader) {
-                InputStream is = getClass().getClassLoader().getResourceAsStream("license-header.txt");
-                header = loadText(is);
-            }
-            String code = sb.toString();
-            // add empty new line after header
-            code = header + "\n" + code;
-            getLog().debug("Source code generated:\n" + code);
-
-            FileUtils.write(target, code);
-            getLog().info("Created file: " + target);
-        } catch (Exception e) {
-            throw new MojoFailureException("IOError with file " + target, e);
-        }
-    }
-
-
-
-    private void createConnectorConfigurationSource(String packageName, ComponentModel model, String javaType,
-                                                     String connectorScheme, List<String> componentOptions, List<String> endpointOptions) throws MojoFailureException {
-
-        final int pos = javaType.lastIndexOf(".");
-        final String commonName = javaType.substring(pos + 1).replace("Component", "ConnectorConfigurationCommon");
-        final String configName = javaType.substring(pos + 1).replace("Component", "ConnectorConfiguration");
-
-        // Common base class
-        JavaClassSource commonClass = Roaster.create(JavaClassSource.class);
-        commonClass.setPackage(packageName);
-        commonClass.setName(commonName);
-
-        String doc = "Generated by camel-package-maven-plugin - do not edit this file!";
-        if (!Strings.isBlank(model.getDescription())) {
-            doc = model.getDescription() + "\n\n" + doc;
-        }
-        // replace Component with Connector
-        doc = doc.replaceAll("Component", "Connector");
-        doc = doc.replaceAll("component", "connector");
-        commonClass.getJavaDoc().setFullText(doc);
-        commonClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
-
-        // compute the configuration prefix to use with spring boot configuration
-        String prefix = "";
-        if (!"false".equalsIgnoreCase(configurationPrefix)) {
-            // make sure prefix is in lower case
-            prefix = configurationPrefix.toLowerCase(Locale.US);
-            if (!prefix.endsWith(".")) {
-                prefix += ".";
-            }
-        }
-        prefix += connectorScheme.toLowerCase(Locale.US);
-
-        for (OptionModel option : model.getComponentOptions()) {
-            boolean isComponentOption = componentOptions != null && componentOptions.stream().anyMatch(o -> o.equals(option.getName()));
-            boolean isEndpointOption = endpointOptions != null && endpointOptions.stream().anyMatch(o -> o.equals(option.getName()));
-
-            // only include the options that has been explicit configured in the
-            // componentOptions section of camel-connector.json file and exclude
-            // those configured on endpointOptions in the same file
-            if (isComponentOption && !isEndpointOption) {
-                addProperty(commonClass, model, option);
-            }
-        }
-
-        for (OptionModel option : model.getEndpointOptions()) {
-            if (endpointOptions != null && endpointOptions.stream().anyMatch(o -> o.equals(option.getName()))) {
-                addProperty(commonClass, model, option);
-            }
-        }
-
-        for (OptionModel option : model.getConnectorOptions()) {
-            addProperty(commonClass, model, option);
-        }
-
-        sortImports(commonClass);
-        writeSourceIfChanged(commonClass, packageName.replaceAll("\\.", "\\/") + "/" + commonName + ".java");
-
-        // Config class
-        JavaClassSource configClass = Roaster.create(JavaClassSource.class);
-        configClass.setPackage(packageName);
-        configClass.setName(configName);
-        configClass.extendSuperType(commonClass);
-        configClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
-        configClass.addAnnotation(ConfigurationProperties.class).setStringValue("prefix", prefix);
-        configClass.addImport(Map.class);
-        configClass.addImport(HashMap.class);
-        configClass.removeImport(commonClass);
-
-        configClass.addField("Map<String, " + commonName + "> configurations = new HashMap<>()")
-            .setPrivate()
-            .getJavaDoc().setFullText("Define additional configuration definitions");
-
-        MethodSource<JavaClassSource> method;
-
-        method = configClass.addMethod();
-        method.setName("getConfigurations");
-        method.setReturnType("Map<String, " + commonName + ">");
-        method.setPublic();
-        method.setBody("return configurations;");
-
-
-        sortImports(configClass);
-        writeSourceIfChanged(configClass, packageName.replaceAll("\\.", "\\/") + "/" + configName + ".java");
-    }
-
-    private void createConnectorAutoConfigurationSource(String packageName, boolean hasOptions,
-                                                        String javaType, String connectorScheme) throws MojoFailureException {
-
-        final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
-
-        int pos = javaType.lastIndexOf(".");
-        String name = javaType.substring(pos + 1);
-        name = name.replace("Component", "ConnectorAutoConfiguration");
-        final String configNameCommon = javaType.substring(pos + 1).replace("Component", "ConnectorConfigurationCommon");
-        final String configName = javaType.substring(pos + 1).replace("Component", "ConnectorConfiguration");
-
-        // add method for auto configure
-        final String shortJavaType = getShortJavaType(javaType);
-        // must be named -component because camel-spring-boot uses that to lookup components
-        final String beanName = connectorScheme + "-component";
-
-        javaClass.setPackage(packageName).setName(name);
-
-        String doc = "Generated by camel-connector-maven-plugin - do not edit this file!";
-        javaClass.getJavaDoc().setFullText(doc);
-
-        javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
-        javaClass.addAnnotation(Configuration.class);
-        javaClass.addAnnotation(ConditionalOnBean.class).setStringValue("type", "org.apache.camel.spring.boot.CamelAutoConfiguration");
-        javaClass.addAnnotation(AutoConfigureAfter.class).setStringValue("name", "org.apache.camel.spring.boot.CamelAutoConfiguration");
-
-        String configurationName = name.replace("ConnectorAutoConfiguration", "ConnectorConfiguration");
-        if (hasOptions) {
-            AnnotationSource<JavaClassSource> ann = javaClass.addAnnotation(EnableConfigurationProperties.class);
-            ann.setLiteralValue("value", configurationName + ".class");
-
-            javaClass.addImport(HashMap.class);
-            javaClass.addImport(Map.class);
-            javaClass.addImport("org.apache.camel.spring.boot.util.CamelPropertiesHelper");
-        }
-
-        javaClass.addImport(javaType);
-        javaClass.addImport(ApplicationContext.class);
-        javaClass.addImport(BeanCreationException.class);
-        javaClass.addImport(List.class);
-        javaClass.addImport("org.slf4j.Logger");
-        javaClass.addImport("org.slf4j.LoggerFactory");
-        javaClass.addImport("org.apache.camel.CamelContext");
-        javaClass.addImport("org.apache.camel.component.connector.ConnectorCustomizer");
-        javaClass.addImport("org.apache.camel.spi.HasId");
-        javaClass.addImport("org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator");
-        javaClass.addImport("org.apache.camel.util.ObjectHelper");
-        javaClass.addImport("org.apache.camel.support.IntrospectionSupport");
-
-        javaClass.addField()
-            .setPrivate()
-            .setStatic(true)
-            .setFinal(true)
-            .setName("LOGGER")
-            .setType("Logger")
-            .setLiteralInitializer("LoggerFactory.getLogger(" + name + ".class)");
-        javaClass.addField()
-            .setPrivate()
-            .setName("applicationContext")
-            .setType("ApplicationContext")
-            .addAnnotation(Autowired.class);
-        javaClass.addField()
-            .setName("camelContext")
-            .setType("org.apache.camel.CamelContext")
-            .setPrivate()
-            .addAnnotation(Autowired.class);
-        javaClass.addField()
-            .setName("configuration")
-            .setType(configName)
-            .setPrivate()
-            .addAnnotation(Autowired.class);
-        javaClass.addField()
-            .setPrivate()
-            .setName("customizers")
-            .setType("List<ConnectorCustomizer<" + shortJavaType + ">>")
-            .addAnnotation(Autowired.class)
-            .setLiteralValue("required", "false");
-
-        MethodSource<JavaClassSource> configureMethod = javaClass.addMethod()
-            .setName("configure" + shortJavaType)
-            .setPublic()
-            .setBody(createComponentBody(shortJavaType, hasOptions, connectorScheme.toLowerCase(Locale.US)))
-            .setReturnType(shortJavaType)
-            .addThrows(Exception.class);
-
-        configureMethod.addAnnotation(Lazy.class);
-        configureMethod.addAnnotation(Bean.class).setStringValue("name", beanName);
-        configureMethod.addAnnotation(ConditionalOnClass.class).setLiteralValue("value", "CamelContext.class");
-        configureMethod.addAnnotation(ConditionalOnMissingBean.class);
-
-        MethodSource<JavaClassSource> postProcessMethod = javaClass.addMethod()
-            .setName("postConstruct" + shortJavaType)
-            .setPublic()
-            .setBody(createPostConstructBody(shortJavaType, configNameCommon, connectorScheme.toLowerCase(Locale.US)));
-
-
-        postProcessMethod.addAnnotation(PostConstruct.class);
-
-        sortImports(javaClass);
-
-        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
-        writeSourceIfChanged(javaClass, fileName);
-    }
-
-    private void writeSourceIfChanged(JavaClassSource source, String fileName) throws MojoFailureException {
-        // project root folder
-        File root = classesDirectory.getParentFile().getParentFile();
-        File target = new File(root, "src/main/java/" + fileName);
-
-        try {
-            String header = "";
-            if (includeLicenseHeader) {
-                InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt");
-                header = loadText(is);
-            }
-            String code = sourceToString(source);
-            code = header + code;
-            getLog().debug("Source code generated:\n" + code);
-
-            if (target.exists()) {
-                String existing = FileUtils.readFileToString(target);
-                if (!code.equals(existing)) {
-                    FileUtils.write(target, code, false);
-                    getLog().info("Updated existing file: " + target);
-                } else {
-                    getLog().debug("No changes to existing file: " + target);
-                }
-            } else {
-                FileUtils.write(target, code);
-                getLog().info("Created file: " + target);
-            }
-        } catch (Exception e) {
-            throw new MojoFailureException("IOError with file " + target, e);
-        }
-    }
-
-    private static String createComponentBody(String shortJavaType, boolean hasOptions, String name) {
-        StringBuilder sb = new StringBuilder();
-        sb.append(shortJavaType).append(" connector = new ").append(shortJavaType).append("();").append("\n");
-        sb.append("connector.setCamelContext(camelContext);\n");
-        sb.append("\n");
-        if (hasOptions) {
-            sb.append("Map<String, Object> parameters = new HashMap<>();\n");
-            sb.append("IntrospectionSupport.getProperties(configuration, parameters, null, false);\n");
-            sb.append("CamelPropertiesHelper.setCamelProperties(camelContext, connector, parameters, false);\n");
-            sb.append("connector.setOptions(parameters);\n");
-        }
-        sb.append("if (ObjectHelper.isNotEmpty(customizers)) {\n");
-        sb.append("    for (ConnectorCustomizer<").append(shortJavaType).append("> customizer : customizers) {\n");
-        sb.append("\n");
-        sb.append("        boolean useCustomizer = (customizer instanceof HasId)");
-        sb.append("            ? HierarchicalPropertiesEvaluator.evaluate(\n");
-        sb.append("                applicationContext.getEnvironment(),\n");
-        sb.append("               \"camel.connector.customizer\",\n");
-        sb.append("               \"camel.connector.").append(name).append(".customizer\",\n");
-        sb.append("               ((HasId)customizer).getId())\n");
-        sb.append("            : HierarchicalPropertiesEvaluator.evaluate(\n");
-        sb.append("                applicationContext.getEnvironment(),\n");
-        sb.append("               \"camel.connector.customizer\",\n");
-        sb.append("               \"camel.connector.").append(name).append(".customizer\");\n");
-        sb.append("\n");
-        sb.append("        if (useCustomizer) {\n");
-        sb.append("            LOGGER.debug(\"Configure connector {}, with customizer {}\", connector, customizer);\n");
-        sb.append("            customizer.customize(connector);\n");
-        sb.append("        }\n");
-        sb.append("    }\n");
-        sb.append("}\n");
-        sb.append("\n");
-        sb.append("return connector;");
-        return sb.toString();
-    }
-
-    private static String createPostConstructBody(String shortJavaType, String commonConfigurationName, String name) {
-        StringBuilder sb = new StringBuilder();
-        sb.append("Map<String, Object> parameters = new HashMap<>();\n");
-        sb.append("\n");
-        sb.append("for (Map.Entry<String, " + commonConfigurationName + "> entry : configuration.getConfigurations().entrySet()) {\n");
-        sb.append("parameters.clear();\n");
-        sb.append("\n");
-        sb.append(shortJavaType).append(" connector = new ").append(shortJavaType).append("(").append("entry.getKey()").append(");\n");
-        sb.append("connector.setCamelContext(camelContext);\n");
-        sb.append("\n");
-        sb.append("try {\n");
-        sb.append("IntrospectionSupport.getProperties(entry.getValue(), parameters, null, false);\n");
-        sb.append("CamelPropertiesHelper.setCamelProperties(camelContext, connector, parameters, false);\n");
-        sb.append("connector.setOptions(parameters);\n");
-        sb.append("if (ObjectHelper.isNotEmpty(customizers)) {\n");
-        sb.append("    for (ConnectorCustomizer<").append(shortJavaType).append("> customizer : customizers) {\n");
-        sb.append("\n");
-        sb.append("        boolean useCustomizer = (customizer instanceof HasId)");
-        sb.append("            ? HierarchicalPropertiesEvaluator.evaluate(\n");
-        sb.append("                applicationContext.getEnvironment(),\n");
-        sb.append("               \"camel.connector.customizer\",\n");
-        sb.append("               \"camel.connector.").append(name).append(".\" + entry.getKey() + \".customizer\",\n");
-        sb.append("               ((HasId)customizer).getId())\n");
-        sb.append("            : HierarchicalPropertiesEvaluator.evaluate(\n");
-        sb.append("                applicationContext.getEnvironment(),\n");
-        sb.append("               \"camel.connector.customizer\",\n");
-        sb.append("               \"camel.connector.").append(name).append(".\" + entry.getKey() + \".customizer\");\n");
-        sb.append("\n");
-        sb.append("        if (useCustomizer) {\n");
-        sb.append("            LOGGER.debug(\"Configure connector {}, with customizer {}\", connector, customizer);\n");
-        sb.append("            customizer.customize(connector);\n");
-        sb.append("        }\n");
-        sb.append("    }\n");
-        sb.append("}\n");
-        sb.append("\n");
-        sb.append("camelContext.addComponent(entry.getKey(), connector);\n");
-        sb.append("} catch (Exception e) {\n");
-        sb.append("throw new BeanCreationException(entry.getKey(), e.getMessage(), e);\n");
-        sb.append("}\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    private static void sortImports(JavaClassSource javaClass) {
-        // sort imports
-        List<Import> imports = javaClass.getImports();
-
-        // sort imports
-        List<String> names = new ArrayList<>();
-        for (Import imp : imports) {
-            names.add(imp.getQualifiedName());
-        }
-        // sort
-        Collections.sort(names, (s1, s2) -> {
-            // java comes first
-            if (s1.startsWith("java.")) {
-                s1 = "___" + s1;
-            }
-            if (s2.startsWith("java.")) {
-                s2 = "___" + s2;
-            }
-            // then javax comes next
-            if (s1.startsWith("javax.")) {
-                s1 = "__" + s1;
-            }
-            if (s2.startsWith("javax.")) {
-                s2 = "__" + s2;
-            }
-            // org.w3c is for some odd reason also before others
-            if (s1.startsWith("org.w3c.")) {
-                s1 = "_" + s1;
-            }
-            if (s2.startsWith("org.w3c.")) {
-                s2 = "_" + s2;
-            }
-            return s1.compareTo(s2);
-        });
-
-        // remove all imports first
-        for (String name : names) {
-            javaClass.removeImport(name);
-        }
-        // and add them back in correct order
-        for (String name : names) {
-            javaClass.addImport(name);
-        }
-    }
-
-    private static String sourceToString(JavaClassSource javaClass) {
-        String code = Formatter.format(javaClass);
-        // convert tabs to 4 spaces
-        code = code.replaceAll("\\t", "    ");
-        return code;
-    }
-
-    private static ComponentModel generateComponentModel(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(getSafeValue("firstVersion", rows));
-        component.setLabel(getSafeValue("label", rows));
-        component.setDeprecated(getSafeValue("deprecated", 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.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.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setDescription(getSafeValue("description", row));
-            option.setEnumValues(getSafeValue("enum", row));
-            component.addEndpointOption(option);
-        }
-
-        rows = JSonSchemaHelper.parseJsonSchema("connectorProperties", json, true);
-        for (Map<String, String> row : rows) {
-            ConnectorOptionModel option = new ConnectorOptionModel();
-            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.setDescription(getSafeValue("description", row));
-            option.setDefaultValue(getSafeValue("defaultValue", row));
-            option.setEnums(getSafeValue("enum", row));
-            component.addConnectorOption(option);
-        }
-
-        return component;
-    }
-
-
-    private void addProperty(JavaClassSource clazz, ComponentModel model, OptionModel option) {
-        String type = option.getJavaType();
-        PropertySource<JavaClassSource> prop = clazz.addProperty(type, option.getName());
-
-        if ("true".equals(option.getDeprecated())) {
-            prop.getField().addAnnotation(Deprecated.class);
-            prop.getAccessor().addAnnotation(Deprecated.class);
-            prop.getMutator().addAnnotation(Deprecated.class);
-            // DeprecatedConfigurationProperty must be on getter when deprecated
-            prop.getAccessor().addAnnotation(DeprecatedConfigurationProperty.class);
-        }
-        if (!Strings.isBlank(option.getDescription())) {
-            prop.getField().getJavaDoc().setFullText(option.getDescription());
-        }
-        if (!Strings.isBlank(option.getDefaultValue())) {
-            if ("java.lang.String".equals(option.getJavaType())) {
-                prop.getField().setStringInitializer(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())) {
-                String enumShortName = type.substring(type.lastIndexOf(".") + 1);
-                prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue());
-                clazz.addImport(model.getJavaType());
-            }
-        }
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentModel.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentModel.java
deleted file mode 100644
index 2ba33aa..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentModel.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ComponentModel {
-
-    private String kind;
-    private String scheme;
-    private String syntax;
-    private String alternativeSyntax;
-    private String alternativeSchemes;
-    private String title;
-    private String description;
-    private String firstVersion;
-    private String label;
-    private String deprecated;
-    private String consumerOnly;
-    private String producerOnly;
-    private String javaType;
-    private String groupId;
-    private String artifactId;
-    private String version;
-    private final List<ComponentOptionModel> componentOptions = new ArrayList<>();
-    private final List<EndpointOptionModel> endpointOptions = new ArrayList<>();
-    private final List<ConnectorOptionModel> connectorOptions = new ArrayList<>();
-
-    public String getKind() {
-        return kind;
-    }
-
-    public void setKind(String kind) {
-        this.kind = kind;
-    }
-
-    public String getScheme() {
-        return scheme;
-    }
-
-    public void setScheme(String scheme) {
-        this.scheme = scheme;
-    }
-
-    public String getSyntax() {
-        return syntax;
-    }
-
-    public void setSyntax(String syntax) {
-        this.syntax = syntax;
-    }
-
-    public String getAlternativeSyntax() {
-        return alternativeSyntax;
-    }
-
-    public void setAlternativeSyntax(String alternativeSyntax) {
-        this.alternativeSyntax = alternativeSyntax;
-    }
-
-    public String getAlternativeSchemes() {
-        return alternativeSchemes;
-    }
-
-    public void setAlternativeSchemes(String alternativeSchemes) {
-        this.alternativeSchemes = alternativeSchemes;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getFirstVersion() {
-        return firstVersion;
-    }
-
-    public void setFirstVersion(String firstVersion) {
-        this.firstVersion = firstVersion;
-    }
-
-    public String getLabel() {
-        return label;
-    }
-
-    public void setLabel(String label) {
-        this.label = label;
-    }
-
-    public String getDeprecated() {
-        return deprecated;
-    }
-
-    public void setDeprecated(String deprecated) {
-        this.deprecated = deprecated;
-    }
-
-    public String getConsumerOnly() {
-        return consumerOnly;
-    }
-
-    public void setConsumerOnly(String consumerOnly) {
-        this.consumerOnly = consumerOnly;
-    }
-
-    public String getProducerOnly() {
-        return producerOnly;
-    }
-
-    public void setProducerOnly(String producerOnly) {
-        this.producerOnly = producerOnly;
-    }
-
-    public String getJavaType() {
-        return javaType;
-    }
-
-    public void setJavaType(String javaType) {
-        this.javaType = javaType;
-    }
-
-    public String getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-
-    public String getArtifactId() {
-        return artifactId;
-    }
-
-    public void setArtifactId(String artifactId) {
-        this.artifactId = artifactId;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    public List<ComponentOptionModel> getComponentOptions() {
-        return componentOptions;
-    }
-
-    public void addComponentOption(ComponentOptionModel option) {
-        componentOptions.add(option);
-    }
-
-    public List<EndpointOptionModel> getEndpointOptions() {
-        return endpointOptions;
-    }
-
-    public void addEndpointOption(EndpointOptionModel option) {
-        endpointOptions.add(option);
-    }
-
-    public List<ConnectorOptionModel> getConnectorOptions() {
-        return connectorOptions;
-    }
-
-    public void addConnectorOption(ConnectorOptionModel option) {
-        connectorOptions.add(option);
-    }
-
-    public String getShortJavaType() {
-        if (javaType.startsWith("java.util.Map")) {
-            return "Map";
-        } else if (javaType.startsWith("java.util.Set")) {
-            return "Set";
-        } else if (javaType.startsWith("java.util.List")) {
-            return "List";
-        }
-        int pos = javaType.lastIndexOf(".");
-        if (pos != -1) {
-            return javaType.substring(pos + 1);
-        } else {
-            return javaType;
-        }
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentOptionModel.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentOptionModel.java
deleted file mode 100644
index a97cf53..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ComponentOptionModel.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.model;
-
-public class ComponentOptionModel extends OptionModel {
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ConnectorOptionModel.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ConnectorOptionModel.java
deleted file mode 100644
index 99cf1d4..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/ConnectorOptionModel.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.model;
-
-public class ConnectorOptionModel extends OptionModel {
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/EndpointOptionModel.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/EndpointOptionModel.java
deleted file mode 100644
index 5c97a2b..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/EndpointOptionModel.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.model;
-
-import com.google.common.base.CaseFormat;
-
-public class EndpointOptionModel extends OptionModel {
-    private String prefix;
-    private String multiValue;
-    private String enumValues;
-
-    // special for documentation rendering
-    private boolean newGroup;
-
-
-    public String getPrefix() {
-        return prefix;
-    }
-
-    public void setPrefix(String prefix) {
-        this.prefix = prefix;
-    }
-
-    public String getMultiValue() {
-        return multiValue;
-    }
-
-    public void setMultiValue(String multiValue) {
-        this.multiValue = multiValue;
-    }
-
-    public String getEnumValues() {
-        return enumValues;
-    }
-
-    public void setEnumValues(String enumValues) {
-        this.enumValues = enumValues;
-    }
-
-    public boolean isNewGroup() {
-        return newGroup;
-    }
-
-    public void setNewGroup(boolean newGroup) {
-        this.newGroup = newGroup;
-    }
-
-    @Override
-    public String getShortJavaType() {
-        // TODO: use watermark in the others
-        return getShortJavaType(40);
-    }
-
-    public String getShortJavaType(int watermark) {
-        String type = getType();
-        String javaType = getJavaType();
-
-        if (javaType.startsWith("java.util.Map")) {
-            return "Map";
-        } else if (javaType.startsWith("java.util.Set")) {
-            return "Set";
-        } else if (javaType.startsWith("java.util.List")) {
-            return "List";
-        }
-
-        String text = javaType;
-
-        int pos = text.lastIndexOf(".");
-        if (pos != -1) {
-            text = text.substring(pos + 1);
-        }
-
-        // if its some kind of java object then lets wrap it as its long
-        if ("object".equals(type)) {
-            text = wrapCamelCaseWords(text, watermark, " ");
-        }
-        return text;
-    }
-
-    public String getShortGroup() {
-        String group = getGroup();
-
-        if (group.endsWith(" (advanced)")) {
-            return group.substring(0, group.length() - 11);
-        }
-        return group;
-    }
-
-    public String getShortDefaultValue(int watermark) {
-        String defaultValue = getDefaultValue();
-
-        if (defaultValue.isEmpty()) {
-            return "";
-        }
-        String text = defaultValue;
-        if (text.endsWith("<T>")) {
-            text = text.substring(0, text.length() - 3);
-        } else if (text.endsWith("<T>>")) {
-            text = text.substring(0, text.length() - 4);
-        }
-
-        // TODO: dirty hack for AUTO_ACKNOWLEDGE which we should wrap
-        if ("AUTO_ACKNOWLEDGE".equals(text)) {
-            return "AUTO_ ACKNOWLEDGE";
-        }
-
-        return text;
-    }
-
-    public String getShortName(int watermark) {
-        String text = wrapCamelCaseWords(getName(), watermark, " ");
-        // ensure the option name starts with lower-case
-        return Character.toLowerCase(text.charAt(0)) + text.substring(1);
-    }
-
-    /**
-     * To wrap long camel cased texts by words.
-     *
-     * @param option  the option which is camel cased.
-     * @param watermark a watermark to denote the size to cut after
-     * @param newLine the new line to use when breaking into a new line
-     */
-    private String wrapCamelCaseWords(String option, int watermark, String newLine) {
-        String text = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, option);
-        text = text.replace('-', ' ');
-        text = wrapWords(text, "\n", watermark, false);
-        text = text.replace(' ', '-');
-        text = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, text);
-
-        // upper case first char on each line
-        String[] lines = text.split("\n");
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < lines.length; i++) {
-            String line = lines[i];
-            line = Character.toUpperCase(line.charAt(0)) + line.substring(1);
-            sb.append(line);
-            if (i < lines.length - 1) {
-                sb.append(newLine);
-            }
-        }
-        return sb.toString();
-    }
-
-    /**
-     * To wrap a big line by words.
-     *
-     * @param line the big line
-     * @param newLine the new line to use when breaking into a new line
-     * @param watermark a watermark to denote the size to cut after
-     * @param wrapLongWords whether to wrap long words
-     */
-    private String wrapWords(String line, String newLine, int watermark, boolean wrapLongWords) {
-        if (line == null) {
-            return null;
-        } else {
-            if (newLine == null) {
-                newLine = System.lineSeparator();
-            }
-
-            if (watermark < 1) {
-                watermark = 1;
-            }
-
-            int inputLineLength = line.length();
-            int offset = 0;
-            StringBuilder sb = new StringBuilder(inputLineLength + 32);
-
-            while (inputLineLength - offset > watermark) {
-                if (line.charAt(offset) == 32) {
-                    ++offset;
-                } else {
-                    int spaceToWrapAt = line.lastIndexOf(32, watermark + offset);
-                    if (spaceToWrapAt >= offset) {
-                        sb.append(line.substring(offset, spaceToWrapAt));
-                        sb.append(newLine);
-                        offset = spaceToWrapAt + 1;
-                    } else if (wrapLongWords) {
-                        sb.append(line.substring(offset, watermark + offset));
-                        sb.append(newLine);
-                        offset += watermark;
-                    } else {
-                        spaceToWrapAt = line.indexOf(32, watermark + offset);
-                        if (spaceToWrapAt >= 0) {
-                            sb.append(line.substring(offset, spaceToWrapAt));
-                            sb.append(newLine);
-                            offset = spaceToWrapAt + 1;
-                        } else {
-                            sb.append(line.substring(offset));
-                            offset = inputLineLength;
-                        }
-                    }
-                }
-            }
-
-            sb.append(line.substring(offset));
-            return sb.toString();
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/OptionModel.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/OptionModel.java
deleted file mode 100644
index 64d8002..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/model/OptionModel.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.model;
-
-public class OptionModel {
-
-    private String name;
-    private String displayName;
-    private String kind;
-    private String group;
-    private String required;
-    private String type;
-    private String javaType;
-    private String deprecated;
-    private String secret;
-    private String description;
-    private String defaultValue;
-    private String enums;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getDisplayName() {
-        return displayName;
-    }
-
-    public void setDisplayName(String displayName) {
-        this.displayName = displayName;
-    }
-
-    public String getKind() {
-        return kind;
-    }
-
-    public void setKind(String kind) {
-        this.kind = kind;
-    }
-
-    public String getGroup() {
-        return group;
-    }
-
-    public void setGroup(String group) {
-        this.group = group;
-    }
-
-    public String getRequired() {
-        return required;
-    }
-
-    public void setRequired(String required) {
-        this.required = required;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String getJavaType() {
-        return javaType;
-    }
-
-    public void setJavaType(String javaType) {
-        this.javaType = javaType;
-    }
-
-    public String getDeprecated() {
-        return deprecated;
-    }
-
-    public void setDeprecated(String deprecated) {
-        this.deprecated = deprecated;
-    }
-
-    public String getSecret() {
-        return secret;
-    }
-
-    public void setSecret(String secret) {
-        this.secret = secret;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getDefaultValue() {
-        return defaultValue;
-    }
-
-    public void setDefaultValue(String defaultValue) {
-        this.defaultValue = defaultValue;
-    }
-
-    public String getEnums() {
-        return enums;
-    }
-
-    public void setEnums(String enums) {
-        this.enums = enums;
-    }
-
-    public String getShortJavaType() {
-        if (javaType.startsWith("java.util.Map")) {
-            return "Map";
-        } else if (javaType.startsWith("java.util.Set")) {
-            return "Set";
-        } else if (javaType.startsWith("java.util.List")) {
-            return "List";
-        }
-        int pos = javaType.lastIndexOf(".");
-        if (pos != -1) {
-            return javaType.substring(pos + 1);
-        } else {
-            return javaType;
-        }
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/CollectionStringBuffer.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/CollectionStringBuffer.java
deleted file mode 100644
index e4c88e2..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/CollectionStringBuffer.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.util;
-
-/**
- * A little helper class for converting a collection of values to a (usually comma separated) string.
- */
-public class CollectionStringBuffer {
-
-    private final StringBuilder buffer = new StringBuilder();
-    private String separator;
-    private boolean first = true;
-
-    public CollectionStringBuffer() {
-        this(", ");
-    }
-
-    public CollectionStringBuffer(String separator) {
-        this.separator = separator;
-    }
-
-    @Override
-    public String toString() {
-        return buffer.toString();
-    }
-
-    public void append(Object value) {
-        if (first) {
-            first = false;
-        } else {
-            buffer.append(separator);
-        }
-        buffer.append(value);
-    }
-
-    public String getSeparator() {
-        return separator;
-    }
-
-    public void setSeparator(String separator) {
-        this.separator = separator;
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/FileHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/FileHelper.java
deleted file mode 100644
index 5e974d1..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/FileHelper.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.util;
-
-import java.io.BufferedReader;
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.nio.channels.FileChannel;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Utility methods for files.
- */
-public final class FileHelper {
-
-    private FileHelper() {
-    }
-
-    /**
-     * Loads the entire stream into memory as a String and returns it.
-     * <p/>
-     * <b>Notice:</b> This implementation appends a <tt>\n</tt> as line
-     * terminator at the of the text.
-     * <p/>
-     * Warning, don't use for crazy big streams :)
-     */
-    public static String loadText(InputStream in) throws IOException {
-        StringBuilder builder = new StringBuilder();
-        InputStreamReader isr = new InputStreamReader(in);
-        try {
-            BufferedReader reader = new LineNumberReader(isr);
-            while (true) {
-                String line = reader.readLine();
-                if (line != null) {
-                    builder.append(line);
-                    builder.append("\n");
-                } else {
-                    break;
-                }
-            }
-            return builder.toString();
-        } finally {
-            isr.close();
-            in.close();
-        }
-    }
-
-    /**
-     * Loads the file
-     */
-    public static List<String> loadFile(File file) throws Exception {
-        List<String> lines = new ArrayList<>();
-        LineNumberReader reader = new LineNumberReader(new FileReader(file));
-
-        String line;
-        do {
-            line = reader.readLine();
-            if (line != null) {
-                lines.add(line);
-            }
-        } while (line != null);
-        reader.close();
-
-        return lines;
-    }
-
-    /**
-     * Loads the file
-     */
-    public static List<String> loadFile(InputStream fis) throws Exception {
-        List<String> lines = new ArrayList<>();
-        LineNumberReader reader = new LineNumberReader(new InputStreamReader(fis));
-
-        String line;
-        do {
-            line = reader.readLine();
-            if (line != null) {
-                lines.add(line);
-            }
-        } while (line != null);
-        reader.close();
-
-        return lines;
-    }
-
-    public static void copyFile(File from, File to) throws IOException {
-        FileChannel in = null;
-        FileChannel out = null;
-        try {
-            in = new FileInputStream(from).getChannel();
-            out = new FileOutputStream(to).getChannel();
-
-            long size = in.size();
-            long position = 0;
-            while (position < size) {
-                position += in.transferTo(position, 4096, out);
-            }
-        } finally {
-            close(in);
-            close(out);
-        }
-    }
-
-    /**
-     * Closes the given resource if it is available, logging any closing exceptions to the given log.
-     */
-    public static void close(Closeable closeable) {
-        if (closeable != null) {
-            try {
-                closeable.close();
-            } catch (IOException e) {
-                // ignore
-            }
-        }
-    }
-
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/GitHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/GitHelper.java
deleted file mode 100644
index 7b2fdb6..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/GitHelper.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Utility methods for git.
- */
-public final class GitHelper {
-
-    private GitHelper() {
-    }
-
-    /**
-     * Finds the folder where <tt>.git</tt> is located in the project
-     */
-    public static File findGitFolder() {
-        File baseDir = new File("").getAbsoluteFile();
-        return findGitFolder(baseDir);
-    }
-
-    private static File findGitFolder(File basedir) {
-        File gitDir = new File(basedir, ".git");
-        if (gitDir.exists() && gitDir.isDirectory()) {
-            return gitDir;
-        }
-
-        File parent = basedir.getParentFile();
-        if (parent != null) {
-            return findGitFolder(parent);
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Returns the remote git URL for the given folder; looking for the .git/config file in the current directory or a parent directory
-     */
-    public static String extractGitUrl(File basedir) throws IOException {
-        if (basedir == null) {
-            return null;
-        }
-        if (basedir.exists() && basedir.isDirectory()) {
-            File gitConfig = new File(basedir, ".git/config");
-            if (gitConfig.isFile() && gitConfig.exists()) {
-                String text = FileHelper.loadText(new FileInputStream(gitConfig));
-                return extractGitUrl(text);
-            }
-        }
-        File parentFile = basedir.getParentFile();
-        if (parentFile != null) {
-            return extractGitUrl(parentFile);
-        }
-        return null;
-    }
-
-    /**
-     * Returns the remote git URL for the given git config file text lets extract the
-     */
-    private static String extractGitUrl(String configText) {
-        String remote = null;
-        String lastUrl = null;
-        String firstUrl = null;
-        BufferedReader reader = new BufferedReader(new StringReader(configText));
-        Map<String, String> remoteUrls = new HashMap<>();
-        while (true) {
-            String line = null;
-            try {
-                line = reader.readLine();
-            } catch (IOException e) {
-                // ignore should never happen!
-            }
-            if (line == null) {
-                break;
-            }
-            if (line.startsWith("[remote ")) {
-                String[] parts = line.split("\"");
-                if (parts.length > 1) {
-                    remote = parts[1];
-                }
-            } else if (line.startsWith("[")) {
-                remote = null;
-            } else if (remote != null && line.length() > 0 && Character.isWhitespace(line.charAt(0))) {
-                String trimmed = line.trim();
-                if (trimmed.startsWith("url ")) {
-                    String[] parts = trimmed.split("=", 2);
-                    if (parts.length > 1) {
-                        lastUrl = parts[1].trim();
-                        if (firstUrl == null) {
-                            firstUrl = lastUrl;
-                        }
-                        remoteUrls.put(remote, lastUrl);
-                    }
-                }
-
-            }
-        }
-        String answer = null;
-        if (remoteUrls.size() == 1) {
-            return lastUrl;
-        } else if (remoteUrls.size() > 1) {
-            answer = remoteUrls.get("origin");
-            if (answer == null) {
-                answer = firstUrl;
-            }
-        }
-        return answer;
-    }
-
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
deleted file mode 100644
index f507e4b..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.util;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URL;
-import java.util.Date;
-import java.util.Set;
-
-import org.apache.camel.json.simple.Jsoner;
-
-/**
- * A helper class for <a href="http://json-schema.org/">JSON schema</a>.
- */
-public final class JSonSchemaHelper {
-
-    private static final String VALID_CHARS = ".-='/\\!&():;";
-
-    private JSonSchemaHelper() {
-    }
-
-    public static String toJson(String name, String displayName, String kind, Boolean required, String type, String defaultValue, String description,
-                                Boolean deprecated, Boolean secret, String group, String label, boolean enumType, Set<String> enums,
-                                boolean oneOfType, Set<String> oneOffTypes, boolean asPredicate, String optionalPrefix, String prefix, boolean multiValue) {
-        String typeName = getType(type, enumType);
-
-        StringBuilder sb = new StringBuilder();
-        sb.append(StringHelper.doubleQuote(name));
-        sb.append(": { \"kind\": ");
-        sb.append(StringHelper.doubleQuote(kind));
-
-        // compute a display name if we don't have anything
-        if (StringHelper.isNullOrEmpty(displayName)) {
-            displayName = StringHelper.asTitle(name);
-        }
-        // we want display name early so its easier to spot
-        sb.append(", \"displayName\": ");
-        sb.append(StringHelper.doubleQuote(displayName));
-
-        // we want group early so its easier to spot
-        if (!StringHelper.isNullOrEmpty(group)) {
-            sb.append(", \"group\": ");
-            sb.append(StringHelper.doubleQuote(group));
-        }
-
-        // we want label early so its easier to spot
-        if (!StringHelper.isNullOrEmpty(label)) {
-            sb.append(", \"label\": ");
-            sb.append(StringHelper.doubleQuote(label));
-        }
-
-        if (required != null) {
-            // boolean type
-            sb.append(", \"required\": ");
-            sb.append(required.toString());
-        }
-
-        sb.append(", \"type\": ");
-        if ("enum".equals(typeName)) {
-            String actualType = getType(type, false);
-            sb.append(StringHelper.doubleQuote(actualType));
-            sb.append(", \"javaType\": \"" + type + "\"");
-            CollectionStringBuffer enumValues = new CollectionStringBuffer();
-            for (Object value : enums) {
-                enumValues.append(StringHelper.doubleQuote(value.toString()));
-            }
-            sb.append(", \"enum\": [ ");
-            sb.append(enumValues.toString());
-            sb.append(" ]");
-        } else if (oneOfType) {
-            sb.append(StringHelper.doubleQuote(typeName));
-            sb.append(", \"javaType\": \"" + type + "\"");
-            CollectionStringBuffer oneOfValues = new CollectionStringBuffer();
-            for (Object value : oneOffTypes) {
-                oneOfValues.append(StringHelper.doubleQuote(value.toString()));
-            }
-            sb.append(", \"oneOf\": [ ");
-            sb.append(oneOfValues.toString());
-            sb.append(" ]");
-        } else if ("array".equals(typeName)) {
-            sb.append(StringHelper.doubleQuote("array"));
-            sb.append(", \"javaType\": \"" + type + "\"");
-        } else {
-            sb.append(StringHelper.doubleQuote(typeName));
-            sb.append(", \"javaType\": \"" + type + "\"");
-        }
-
-        if (!StringHelper.isNullOrEmpty(optionalPrefix)) {
-            sb.append(", \"optionalPrefix\": ");
-            String text = safeDefaultValue(optionalPrefix);
-            sb.append(StringHelper.doubleQuote(text));
-        }
-
-        if (!StringHelper.isNullOrEmpty(prefix)) {
-            sb.append(", \"prefix\": ");
-            String text = safeDefaultValue(prefix);
-            sb.append(StringHelper.doubleQuote(text));
-        }
-        if (multiValue) {
-            // boolean value
-            sb.append(", \"multiValue\": true");
-        }
-
-        if (deprecated != null) {
-            sb.append(", \"deprecated\": ");
-            // boolean value
-            sb.append(deprecated.toString());
-        }
-
-        if (secret != null) {
-            sb.append(", \"secret\": ");
-            // boolean value
-            sb.append(secret.toString());
-        }
-
-        if (!StringHelper.isNullOrEmpty(defaultValue)) {
-            sb.append(", \"defaultValue\": ");
-            String text = safeDefaultValue(defaultValue);
-            // 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(StringHelper.doubleQuote(text));
-            }
-        }
-
-        // for expressions we want to know if it must be used as predicate or not
-        boolean predicate = "expression".equals(kind) || asPredicate;
-        if (predicate) {
-            sb.append(", \"asPredicate\": ");
-            if (asPredicate) {
-                sb.append("true");
-            } else {
-                sb.append("false");
-            }
-        }
-
-        if (!StringHelper.isNullOrEmpty(description)) {
-            sb.append(", \"description\": ");
-            String text = sanitizeDescription(description, false);
-            sb.append(StringHelper.doubleQuote(text));
-        }
-
-        sb.append(" }");
-
-        return sb.toString();
-    }
-
-    /**
-     * Pretty print the json.
-     *
-     * @param json existing json
-     * @return output in pretty printed format
-     */
-    public static String prettyPrint(String json) {
-        return Jsoner.prettyPrint(json, 2);
-    }
-
-    /**
-     * Gets the JSon schema type.
-     *
-     * @param   type the java type
-     * @return the json schema type, is never null, but returns <tt>object</tt> as the generic type
-     */
-    public static String getType(String type, boolean enumType) {
-        if (enumType) {
-            return "enum";
-        } else if (type == null) {
-            // return generic type for unknown type
-            return "object";
-        } else if (type.equals(URI.class.getName()) || type.equals(URL.class.getName())) {
-            return "string";
-        } else if (type.equals(File.class.getName())) {
-            return "string";
-        } else if (type.equals(Date.class.getName())) {
-            return "string";
-        } else if (type.startsWith("java.lang.Class")) {
-            return "string";
-        } else if (type.startsWith("java.util.List") || type.startsWith("java.util.Collection")) {
-            return "array";
-        }
-
-        String primitive = getPrimitiveType(type);
-        if (primitive != null) {
-            return primitive;
-        }
-
-        return "object";
-    }
-
-    /**
-     * Gets the JSon schema primitive type.
-     *
-     * @param   name the java type
-     * @return the json schema primitive type, or <tt>null</tt> if not a primitive
-     */
-    public static String getPrimitiveType(String name) {
-
-        // special for byte[] or Object[] as its common to use
-        if ("java.lang.byte[]".equals(name) || "byte[]".equals(name)) {
-            return "string";
-        } else if ("java.lang.Byte[]".equals(name) || "Byte[]".equals(name)) {
-            return "array";
-        } else if ("java.lang.Object[]".equals(name) || "Object[]".equals(name)) {
-            return "array";
-        } else if ("java.lang.String[]".equals(name) || "String[]".equals(name)) {
-            return "array";
-        } else if ("java.lang.Character".equals(name) || "Character".equals(name) || "char".equals(name)) {
-            return "string";
-        } else if ("java.lang.String".equals(name) || "String".equals(name)) {
-            return "string";
-        } else if ("java.lang.Boolean".equals(name) || "Boolean".equals(name) || "boolean".equals(name)) {
-            return "boolean";
-        } else if ("java.lang.Integer".equals(name) || "Integer".equals(name) || "int".equals(name)) {
-            return "integer";
-        } else if ("java.lang.Long".equals(name) || "Long".equals(name) || "long".equals(name)) {
-            return "integer";
-        } else if ("java.lang.Short".equals(name) || "Short".equals(name) || "short".equals(name)) {
-            return "integer";
-        } else if ("java.lang.Byte".equals(name) || "Byte".equals(name) || "byte".equals(name)) {
-            return "integer";
-        } else if ("java.lang.Float".equals(name) || "Float".equals(name) || "float".equals(name)) {
-            return "number";
-        } else if ("java.lang.Double".equals(name) || "Double".equals(name) || "double".equals(name)) {
-            return "number";
-        }
-
-        return null;
-    }
-
-    /**
-     * Sanitizes the javadoc to removed invalid characters so it can be used as json description
-     *
-     * @param javadoc  the javadoc
-     * @return the text that is valid as json
-     */
-    public static String sanitizeDescription(String javadoc, boolean summary) {
-        if (StringHelper.isNullOrEmpty(javadoc)) {
-            return null;
-        }
-
-        // lets just use what java accepts as identifiers
-        StringBuilder sb = new StringBuilder();
-
-        // split into lines
-        String[] lines = javadoc.split("\n");
-
-        boolean first = true;
-        for (String line : lines) {
-            line = line.trim();
-
-            // terminate if we reach @param, @return or @deprecated as we only want the javadoc summary
-            if (line.startsWith("@param") || line.startsWith("@return") || line.startsWith("@deprecated")) {
-                break;
-            }
-
-            // skip lines that are javadoc references
-            if (line.startsWith("@")) {
-                continue;
-            }
-
-            // remove all XML tags
-            line = line.replaceAll("<.*?>", "");
-
-            // remove all inlined javadoc links, eg such as {@link org.apache.camel.spi.Registry}
-            line = line.replaceAll("\\{\\@\\w+\\s([\\w.]+)\\}", "$1");
-
-            // we are starting from a new line, so add a whitespace
-            if (!first) {
-                sb.append(' ');
-            }
-
-            // create a new line
-            StringBuilder cb = new StringBuilder();
-            for (char c : line.toCharArray()) {
-                if (Character.isJavaIdentifierPart(c) || VALID_CHARS.indexOf(c) != -1) {
-                    cb.append(c);
-                } else if (Character.isWhitespace(c)) {
-                    // always use space as whitespace, also for line feeds etc
-                    cb.append(' ');
-                }
-            }
-
-            // append data
-            String s = cb.toString().trim();
-            sb.append(s);
-
-            boolean empty = StringHelper.isNullOrEmpty(s);
-            boolean endWithDot = s.endsWith(".");
-            boolean haveText = sb.length() > 0;
-
-            if (haveText && summary && (empty || endWithDot)) {
-                // if we only want a summary, then skip at first empty line we encounter, or if the sentence ends with a dot
-                break;
-            }
-
-            first = false;
-        }
-
-        // remove double whitespaces, and trim
-        String s = sb.toString();
-        s = s.replaceAll("\\s+", " ");
-        return s.trim();
-    }
-
-    /**
-     * The default value may need to be escaped to be safe for json
-     */
-    private static String safeDefaultValue(String value) {
-        if ("\"".equals(value)) {
-            return "\\\"";
-        } else if ("\\".equals(value)) {
-            return "\\\\";
-        } else {
-            return value;
-        }
-    }
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/StringHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/StringHelper.java
deleted file mode 100644
index 5aa8542..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/StringHelper.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.maven.connector.util;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Utility methods for String.
- */
-public final class StringHelper {
-
-    private StringHelper() {
-    }
-
-    /**
-     * Converts the value to use dash style instead of upper cased
-     */
-    public static String camelCaseToDash(String value) {
-        StringBuilder sb = new StringBuilder(value.length());
-        boolean dash = false;
-
-        for (char c : value.toCharArray()) {
-            // skip dash in start
-            if (sb.length() > 0 & Character.isUpperCase(c)) {
-                dash = true;
-            }
-            if (dash) {
-                sb.append('-');
-                sb.append(Character.toLowerCase(c));
-            } else {
-                // lower case first
-                if (sb.length() == 0) {
-                    sb.append(Character.toLowerCase(c));
-                } else {
-                    sb.append(c);
-                }
-            }
-            dash = false;
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Returns the string value (uses empty string for <tt>null</tt> values)
-     */
-    public static String nullSafe(String text) {
-        return text != null ? text : "";
-    }
-
-    /**
-     * Returns true if the given text is null or empty string or has <tt>null</tt> as the value
-     */
-    public static boolean isNullOrEmpty(String text) {
-        return text == null || text.length() == 0 || "null".equals(text);
-    }
-
-    public static String safeNull(String text) {
-        if (isNullOrEmpty(text)) {
-            return "";
-        } else {
-            return text;
-        }
-    }
-
-    /**
-     * Returns the value or the defaultValue if it is null
-     */
-    public static String getOrElse(String text, String defaultValue) {
-        return (text != null) ? text : defaultValue;
-    }
-
-    /**
-     * Returns the string after the given token
-     *
-     * @param text  the text
-     * @param after the token
-     * @return the text after the token, or <tt>null</tt> if text does not contain the token
-     */
-    public static String after(String text, String after) {
-        if (!text.contains(after)) {
-            return null;
-        }
-        return text.substring(text.indexOf(after) + after.length());
-    }
-
-    /**
-     * Returns the canonical class name by removing any generic type information.
-     */
-    public static String canonicalClassName(String className) {
-        // remove generics
-        int pos = className.indexOf('<');
-        if (pos != -1) {
-            return className.substring(0, pos);
-        } else {
-            return className;
-        }
-    }
-
-    /**
-     * Returns the text wrapped double quotes
-     */
-    public static String doubleQuote(String text) {
-        return quote(text, "\"");
-    }
-
-    /**
-     * Returns the text wrapped single quotes
-     */
-    public static String singleQuote(String text) {
-        return quote(text, "'");
-    }
-
-    /**
-     * Wraps the text in the given quote text
-     *
-     * @param text the text to wrap in quotes
-     * @param quote the quote text added to the prefix and postfix of the text
-     *
-     * @return the text wrapped in the given quotes
-     */
-    public static String quote(String text, String quote) {
-        return quote + text + quote;
-    }
-
-    /**
-     * Clips the text between the start and end markers
-     */
-    public static String between(String text, String start, String end) {
-        int pos = text.indexOf(start);
-        if (pos > 0) {
-            text = text.substring(pos + 1);
-        }
-        int pos2 = text.lastIndexOf(end);
-        if (pos2 > 0) {
-            text = text.substring(0, pos2);
-        }
-        return text;
-    }
-
-    /**
-     * Capitalizes the name as a title
-     *
-     * @param name  the name
-     * @return as a title
-     */
-    public static String asTitle(String name) {
-        StringBuilder sb = new StringBuilder();
-        for (char c : name.toCharArray()) {
-            boolean upper = Character.isUpperCase(c);
-            boolean first = sb.length() == 0;
-            if (first) {
-                sb.append(Character.toUpperCase(c));
-            } else if (upper) {
-                sb.append(' ');
-                sb.append(c);
-            } else {
-                sb.append(Character.toLowerCase(c));
-            }
-        }
-        return sb.toString().trim();
-    }
-
-    /**
-     * Gets the value with the key in a safe way, eg returning an empty string if there was no value for the key.
-     */
-    public static String getSafeValue(String key, List<Map<String, String>> rows) {
-        for (Map<String, String> row : rows) {
-            String value = row.get(key);
-            if (value != null) {
-                return value;
-            }
-        }
-        return "";
-    }
-
-    /**
-     * Gets the value with the key in a safe way, eg returning an empty string if there was no value for the key.
-     */
-    public static String getSafeValue(String key, Map<String, String> rows) {
-        String value = rows.get(key);
-        if (value != null) {
-            return value;
-        }
-        return "";
-    }
-
-    public static String getShortJavaType(String javaType) {
-        if (javaType.startsWith("java.util.Map")) {
-            return "Map";
-        } else if (javaType.startsWith("java.util.Set")) {
-            return "Set";
-        } else if (javaType.startsWith("java.util.List")) {
-            return "List";
-        }
-        int pos = javaType.lastIndexOf(".");
-        if (pos != -1) {
-            return javaType.substring(pos + 1);
-        } else {
-            return javaType;
-        }
-    }
-
-
-}
diff --git a/connectors/camel-connector-maven-plugin/src/main/resources/META-INF/MANIFEST.MF b/connectors/camel-connector-maven-plugin/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100644
index 8428f49..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,4 +0,0 @@
-Manifest-Version: 1.0
-Implementation-Title: Camel :: Connector :: Camel Connector Maven Plugin
-Implementation-Vendor: The Apache Software Foundation
-Implementation-Vendor-Id: org.apache.camel
diff --git a/connectors/camel-connector-maven-plugin/src/main/resources/license-header-java.txt b/connectors/camel-connector-maven-plugin/src/main/resources/license-header-java.txt
deleted file mode 100644
index 0f49ea9..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/resources/license-header-java.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
\ No newline at end of file
diff --git a/connectors/camel-connector-maven-plugin/src/main/resources/license-header.txt b/connectors/camel-connector-maven-plugin/src/main/resources/license-header.txt
deleted file mode 100644
index 12bdf0d..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/resources/license-header.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
diff --git a/connectors/camel-connector/pom.xml b/connectors/camel-connector/pom.xml
deleted file mode 100644
index 1c51284..0000000
--- a/connectors/camel-connector/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>camel-connector</artifactId>
-  <packaging>jar</packaging>
-  <name>Camel :: Connectors :: Camel Connector Component (deprecated)</name>
-  <description>Camel Connector Component</description>
-
-  <properties>
-    <camel.osgi.export.pkg>org.apache.camel.component.connector.*</camel.osgi.export.pkg>
-  </properties>
-
-  <dependencies>
-
-    <!-- camel -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-catalog</artifactId>
-    </dependency>
-
-    <!-- to support spring-boot auto configuration in the connectors -->
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-autoconfigure</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- testing -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-sql</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-</project>
diff --git a/connectors/camel-connector/src/main/docs/connector-component.adoc b/connectors/camel-connector/src/main/docs/connector-component.adoc
deleted file mode 100644
index 4b588a5..0000000
--- a/connectors/camel-connector/src/main/docs/connector-component.adoc
+++ /dev/null
@@ -1,243 +0,0 @@
-## Connector Component
-
-The connector component is an abstract component that is used as a building block to build a Camel connector.
-
-
-### What is a Camel connector?
-
-A Camel connector is a simplified setup of any existing Camel component. The idea is to be able to pre-configure
-  a connector to a specific use-case, such as _add contact to salesforce_, or _add calendar entry_,
-  or _new leads from twitter_.
-
-The existing Camel components are generic and have many options. Therefore to use any of these components you
-   need to understand how to use and setup all these options.
-
-### How it works
-
-The connector is based on one of the existing Camel components (or 3rd party component) by which you can specify
-in a `camel-connector.json` file which options to pre-select and as well specify other default values etc.
-
-Then the `camel-connector-maven-plugin` Maven plugin will build this as a Camel component,
-so at runtime its just a regular Camel component.
-
-Because connectors are just regular Camel component there is no problem running them in Camel applications.
-
-In addition all existing JMX, tooling et all just sees this as Camel components and can use that.
-Also at design time, for example the Apache Camel IDEA plugin will see the connector as a 3rd party Camel component
-and offer code assistance to it etc.
-
-You can have as many connectors you want, and a Camel component can have many connectors.
-For example you can have multiple connectors to the `camel-salesforce` component, where each connectors
-is specialized to do a different use-case with Salesforce.
-
-
-### How to create a Connector
-
-You can use the Maven archetype `camel-archetype-connector` to create a new connector. You would need to specify
-some values as input to select the existing Camel component to use as base, and then in addition the name and title
-of the connector, and a few other values as well.
-
-You can also copy the existing examples from the `connectors` directory where the following connectors examples are provided:
-
-- `foo-connector` - A connector that is based on the Timer component from `camel-core`.
-- `bar-connector` - A connector that is based on the 3rd party `beverage-component`.
-- `wine-connector` - Another connector that is based on the 3rd party `beverage-component`.
-- `twitter-find` - A connector based on twitter to search for keywords.
-
-You can find an example using these connectors in the `foo-bar-wine-example` in the `connectors` directory.
-
-
-### Setting up connector in Maven
-
-To build a connector you need to at least include the following dependencies in the Maven pom.xml file
-
-[source,xml]
-------------
-    <!-- camel-connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector</artifactId>
-    </dependency>
-
-    <!-- camel and spring boot compiler plugins -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-    </dependency>
-------------
-
-And these following Maven plugins:
-
-[source,xml]
-------------
-      <!-- generate components meta-data and validate component includes documentation etc -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-package-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>prepare</id>
-            <goals>
-              <goal>prepare-components</goal>
-            </goals>
-            <phase>generate-resources</phase>
-          </execution>
-          <execution>
-            <id>validate</id>
-            <goals>
-              <goal>validate-components</goal>
-            </goals>
-            <phase>prepare-package</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- generate connector -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-connector-maven-plugin</artifactId>
-        <version>${camel.version}</version>
-        <executions>
-          <execution>
-            <id>connector</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-------------
-
-
-### Spring Boot compliant
-
-A Camel connector works great with Spring Boot. If a connector has been configured to allow configuration on the component and/or endpoint level which is done in the `camel-connector.json` file, such as
-
-      "componentOptions" : [ "consumerKey", "consumerSecret", "accessToken", "accessTokenSecret" ],
-      "endpointOptions" : [ "keywords" ],
-
-Then the `camel-connector-maven-plugin` will be able to generate Spring Boot auto configuration for these options.
-This allows users to easily configure these options if using Spring Boot with the connector.
-
-NOTE: There's no distinction between component/endpoint options on spring-boot auto configuration side so all the options are flattered to a single namespace thus they appear as connector options and then the connector figures out where they should be applied.
-
-TIP: The options configured through spring-boot auto configuration classes can be overridden by standard endpoint options.
-
-To enable Spring Boot generation you need to enable this in the `camel-connector-maven-plugin` by adding
-an `<execution>` with the `prepare-spring-boot-auto-configuration` goal:
-
-[source,xml]
-------------
-    <!-- generate connector -->
-    <plugin>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector-maven-plugin</artifactId>
-      <version>${camel.version}</version>
-      <executions>
-        <execution>
-          <id>boot</id>
-          <goals>
-            <goal>prepare-spring-boot-auto-configuration</goal>
-          </goals>
-        </execution>
-        <execution>
-          <id>connector</id>
-          <goals>
-            <goal>jar</goal>
-          </goals>
-        </execution>
-      </executions>
-    </plugin>
-------------
-
-You will also need to add the `spring-boot-configuration-processor` in the Maven pom.xml file
-
-[source,xml]
-------------
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-configuration-processor</artifactId>
-      <version>${spring-boot.version}</version>
-    </dependency>
-------------
-
-An example on how to configure a component in spring boot can be taken from the twitter-find connector:
-
-[source]
-------------
-    camel.connector.twitter-find.consumer-key = ...
-    camel.connector.twitter-find.consumer-secret = ...
-    camel.connector.twitter-find.access-token = ...
-    camel.connector.twitter-find.access-token-secret = ...
-    camel.connector.twitter-find.keywords = apache-camel
-------------
-
-You may need to instantiate multiple instance of the connector i.e. to use different logins and this is now possible through the 'configurations' parameters:
-
-[source]
-------------
-    camel.connector.twitter-find.configurations.tw-find1.consumer-key = ...
-    camel.connector.twitter-find.configurations.tw-find1.consumer-secret = ...
-    camel.connector.twitter-find.configurations.tw-find1.access-token = ...
-    camel.connector.twitter-find.configurations.tw-find1.access-token-secret = ...
-    camel.connector.twitter-find.configurations.tw-find1.keywords = apache-camel
-
-    camel.connector.twitter-find.configurations.tw-find2.consumer-key = ...
-    camel.connector.twitter-find.configurations.tw-find2.consumer-secret = ...
-    camel.connector.twitter-find.configurations.tw-find2.access-token = ...
-    camel.connector.twitter-find.configurations.tw-find2.access-token-secret = ...
-    camel.connector.twitter-find.configurations.tw-find2.keywords = apache-karaf
-------------
-
-This would create two instances of the twitter-find connector each one configured with its own list of options.
-You can now use the new connectors as standard components like:
-
-[source,java]
-------------
-    @Component
-    public class MyRouteBuilder implements RouteBuilder{
-        public void configure() throws Exception {
-            from("tw-find1")
-                .log("On account 1 I got:  ${body}")
-            from("tw-find2")
-                .log("On account 2 I got: ${body}")
-        }
-    }
-------------
-
-
-### Input and Output Data Type
-
-Every connector *must* define which input and output data type are in use.
-
-The following data types are in use:
-
-[width="100%",cols="2m,8",options="header"]
-|=========================================
-| Data Type | Description
-| none | No data
-| any | Supports any kind of data. You can also use `*` instead of `any`
-| java | Java data. An optional sub type can define the fully qualified class name such as `java:com.foo.MyCustomer`.
-| text | Text based data
-| xml | XML based data. An option sub type can define the XML namespace of the XML root element.
-| json | JSon based data. An option sub type can define the fully qualified class name of a Java POJO that maps to this JSon structure.
-|=========================================
-
-For example to accept any incoming data type and output Java as `com.foo.MyCustomer` you would
-configure the `camel-connector.json` file:
-
-    "inputDataType": "any",
-    "outputDataType": "java:com.foo.MyCustomer",
-
-
-### The connectors schema file
-
-A connector has a schema file `camel-connector.json` located in `src/main/resources` directory.
-
-This schema holds the information where you can pre-configure and specify which options a connector should offer.
-
-The options the connector can provide is a limited set of all the existing options that comes from the Camel component
-its based upon. Each option can then also be pre-configured with a default-value.
-
-To understand this schema file, its easier to study those existing connectors from the `connectors` directory.
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorComponent.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorComponent.java
deleted file mode 100644
index 1fc0ab2..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorComponent.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import java.net.URISyntaxException;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.Processor;
-import org.apache.camel.catalog.CamelCatalog;
-
-/**
- * A component which is based from a Camel Connector.
- */
-public interface ConnectorComponent extends Component {
-    /**
-     * Adds a new option to the connector's options.
-     *
-     * @param name     the name of the option
-     * @param value    the value of the option
-     */
-    void addOption(String name, Object value);
-
-    /**
-     * Adds options to the connector's options.
-     *
-     * @param options  the options
-     */
-    void addOptions(Map<String, Object> options);
-
-    /**
-     * Creates the endpoint uri based on the options from the connector.
-     *
-     * @param scheme  the component name
-     * @param options the options to use for creating the endpoint
-     * @return the endpoint uri
-     * @throws URISyntaxException is thrown if error creating the endpoint uri.
-     */
-    String createEndpointUri(String scheme, Map<String, String> options) throws URISyntaxException;
-
-    /**
-     * Gets the {@link CamelCatalog} which can be used by the connector to help create the component.
-     */
-    CamelCatalog getCamelCatalog();
-
-    /**
-     * Gets the connector name (title)
-     */
-    String getConnectorName();
-
-    /**
-     * Gets the connector component name
-     */
-    String getComponentName();
-
-    /**
-     * Gets the connector component scheme
-     */
-    String getComponentScheme();
-
-    /**
-     * Gets the camel-connector JSon file.
-     */
-    String getCamelConnectorJSon();
-
-    /**
-     * A set of additional component/endpoint options to use for the base component when creating connector endpoints.
-     *
-     * @deprecated use {@link #getOptions()} instead
-     */
-    @Deprecated
-    default Map<String, Object> getComponentOptions() {
-        return getOptions();
-    }
-
-    /**
-     * A set of additional component/endpoint options to use for the base component when creating connector endpoints.
-     */
-    Map<String, Object> getOptions();
-
-    /**
-     * A set of additional component/endpoint options to use for the base component when creating connector endpoints.
-     *
-     * @deprecated use {@link #setOptions(Map)} instead
-     */
-    @Deprecated
-    default void setComponentOptions(Map<String, Object> options) {
-        setOptions(options);
-    }
-
-    /**
-     * A set of additional component/endpoint options to use for the base component when creating connector endpoints.
-     */
-    void setOptions(Map<String, Object> options);
-
-    /**
-     * To perform custom processing before the producer is sending the message.
-     */
-    void setBeforeProducer(Processor processor);
-
-    /**
-     * Gets the processor used to perform custom processing before the producer is sending the message.
-     */
-    Processor getBeforeProducer();
-
-    /**
-     * To perform custom processing after the producer has sent the message and received any reply (if InOut).
-     */
-    void setAfterProducer(Processor processor);
-
-    /**
-     * Gets the processor used to perform custom processing after the producer has sent the message and received any reply (if InOut).
-     */
-    Processor getAfterProducer();
-
-    /**
-     * To perform custom processing when the consumer has just received a new incoming message.
-     */
-    void setBeforeConsumer(Processor processor);
-
-    /**
-     * Gets the processor used to perform custom processing when the consumer has just received a new incoming message.
-     */
-    Processor getBeforeConsumer();
-
-    /**
-     * To perform custom processing when the consumer is about to send back a reply message to the caller (if InOut).
-     */
-    void setAfterConsumer(Processor processor);
-
-    /**
-     * Gets the processor used to perform custom processing when the consumer is about to send back a reply message to the caller (if InOut).
-     */
-    Processor getAfterConsumer();
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorCustomizer.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorCustomizer.java
deleted file mode 100644
index ddf2057..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorCustomizer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-@FunctionalInterface
-public interface ConnectorCustomizer<T extends ConnectorComponent> {
-    /**
-     * Customize the specified {@link ConnectorComponent}.
-     *
-     * @param connector the connector to customize
-     */
-    void customize(T connector);
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorModel.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorModel.java
deleted file mode 100644
index ac01f55..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorModel.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.camel.json.simple.DeserializationException;
-import org.apache.camel.json.simple.JsonObject;
-import org.apache.camel.json.simple.Jsoner;
-import org.apache.camel.util.IOHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class ConnectorModel {
-    private static final Logger LOGGER = LoggerFactory.getLogger(ConnectorModel.class);
-
-    private final String componentName;
-    private final String className;
-
-    private String connectorJSon;
-    private String baseScheme;
-    private String baseJavaType;
-    private String scheduler;
-    private String connectorName;
-    private DataType inputDataType;
-    private DataType outputDataType;
-    private Map<String, Object> defaultComponentOptions;
-    private Map<String, Object> defaultEndpointOptions;
-    private List<String> endpointOptions;
-    private List<String> componentOptions;
-    private Map<String, Object> connectorOptions;
-
-    @SuppressWarnings("unchecked")
-    ConnectorModel(String componentName, Class<?> componentClass) {
-        this.componentName = componentName;
-        this.className = componentClass.getName();
-        this.connectorJSon = findCamelConnectorJSonSchema(componentClass);
-
-        // parse the json
-        JsonObject json;
-        try {
-            json = (JsonObject) Jsoner.deserialize(connectorJSon);
-        } catch (DeserializationException e) {
-            throw new RuntimeException("Error parsing camel-connector.json file due " + e.getMessage(), e);
-        }
-
-        this.connectorName = json.getString("name");
-        this.baseScheme = json.getString("baseScheme");
-        this.baseJavaType = json.getString("baseJavaType");
-        this.scheduler = json.getString("scheduler");
-        String type = json.getString("inputDataType");
-        if (type != null) {
-            this.inputDataType = new DataType(type);
-        }
-        type = json.getString("outputDataType");
-        if (type != null) {
-            this.outputDataType = new DataType(type);
-        }
-
-        this.defaultComponentOptions = json.getMap("componentValues");
-        if (this.defaultComponentOptions == null) {
-            this.defaultComponentOptions = Collections.EMPTY_MAP;
-        }
-        this.defaultEndpointOptions = json.getMap("endpointValues");
-        if (this.defaultEndpointOptions == null) {
-            this.defaultEndpointOptions = Collections.EMPTY_MAP;
-        }
-        this.endpointOptions = json.getCollection("endpointOptions");
-        if (this.endpointOptions == null) {
-            this.endpointOptions = Collections.EMPTY_LIST;
-        }
-        this.componentOptions = json.getCollection("componentOptions");
-        if (this.componentOptions == null) {
-            this.componentOptions = Collections.EMPTY_LIST;
-        }
-        this.connectorOptions = json.getMap("connectorProperties");
-        if (this.connectorOptions == null) {
-            this.connectorOptions = Collections.EMPTY_MAP;
-        }
-    }
-
-    public String getComponentName() {
-        return componentName;
-    }
-
-    public String getClassName() {
-        return className;
-    }
-
-    public String getConnectorJSon() {
-        return connectorJSon;
-    }
-
-    public String getBaseScheme() {
-        return baseScheme;
-    }
-
-    public String getBaseJavaType() {
-        return baseJavaType;
-    }
-
-    public String getScheduler() {
-        return scheduler;
-    }
-
-    public String getConnectorName() {
-        return connectorName;
-    }
-
-    public DataType getInputDataType() {
-        return inputDataType;
-    }
-
-    public DataType getOutputDataType() {
-        return outputDataType;
-    }
-
-    public Map<String, Object> getDefaultComponentOptions() {
-        return defaultComponentOptions;
-    }
-
-    public Map<String, Object> getDefaultEndpointOptions() {
-        return defaultEndpointOptions;
-    }
-
-    public List<String> getEndpointOptions() {
-        return endpointOptions;
-    }
-
-    public List<String> getComponentOptions() {
-        return componentOptions;
-    }
-
-    public Map<String, Object> getConnectorOptions() {
-        return connectorOptions;
-    }
-
-    // ***************************************
-    // Helpers
-    // ***************************************
-
-    private String findCamelConnectorJSonSchema(Class<?> componentClass) {
-        LOGGER.debug("Finding camel-connector.json in classpath for connector: {}", componentName);
-
-        Enumeration<URL> urls;
-        try {
-            urls = componentClass.getClassLoader().getResources("camel-connector.json");
-        } catch (IOException e) {
-            throw new IllegalArgumentException("Cannot open camel-connector.json in classpath for connector " + componentName);
-        }
-
-        while (urls.hasMoreElements()) {
-            try (InputStream is = urls.nextElement().openStream()) {
-                String json = IOHelper.loadText(is);
-
-                JsonObject output = (JsonObject) Jsoner.deserialize(json);
-                String javaType = output.getString("javaType");
-
-                LOGGER.debug("Found camel-connector.json in classpath with javaType: {}", javaType);
-
-                if (className.equals(javaType)) {
-                    return json;
-                }
-            } catch (Exception e) {
-                throw new IllegalArgumentException("Cannot read camel-connector.json in classpath for connector " + componentName);
-            }
-        }
-
-        return null;
-    }
-
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorProducer.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorProducer.java
deleted file mode 100644
index 122c002..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/ConnectorProducer.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import org.apache.camel.AsyncCallback;
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.support.DefaultAsyncProducer;
-import org.apache.camel.processor.Pipeline;
-import org.apache.camel.support.AsyncProcessorConverterHelper;
-import org.apache.camel.support.ServiceHelper;
-
-/**
- * Connector {@link Producer} which is capable of performing before and after custom processing
- * via the {@link Pipeline} while processing (ie sending the message).
- */
-public class ConnectorProducer extends DefaultAsyncProducer {
-
-    private final AsyncProcessor processor;
-
-    public ConnectorProducer(final Endpoint endpoint, final Processor processor) {
-        super(endpoint);
-        this.processor = AsyncProcessorConverterHelper.convert(processor);
-    }
-
-    @Override
-    public boolean process(final Exchange exchange, final AsyncCallback callback) {
-        return processor.process(exchange, callback);
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        ServiceHelper.startService(processor);
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        ServiceHelper.stopService(processor);
-    }
-
-    @Override
-    protected void doSuspend() throws Exception {
-        ServiceHelper.suspendService(processor);
-    }
-
-    @Override
-    protected void doResume() throws Exception {
-        ServiceHelper.resumeService(processor);
-    }
-
-    @Override
-    protected void doShutdown() throws Exception {
-        ServiceHelper.stopAndShutdownServices(processor);
-    }
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DataType.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DataType.java
deleted file mode 100644
index 7c9650b..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DataType.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-/**
- * Data types supported by Camel connectors.
- * <p/>
- * A connector is more strict that a regular Camel component and as such the connector
- * is limited to supporting one data type as input and output.
- */
-public final class DataType {
-
-    /**
-     * The supported data types.
-     */
-    public enum Type {
-        none, any, java, text, xml, json;
-    }
-
-    private final Type type;
-    private final String subType;
-
-    DataType(String text) {
-        String[] parts = text.split(":");
-
-        String name = parts[0].toLowerCase();
-        // allow * as shorthand for any kind
-        if ("*".equals(name)) {
-            name = "any";
-        }
-
-        type = Type.valueOf(name);
-        if (parts.length == 2) {
-            subType = parts[1];
-        } else {
-            subType = null;
-        }
-    }
-
-    DataType(Type type, String subType) {
-        this.type = type;
-        this.subType = subType;
-    }
-
-    /**
-     * The type one of <tt>none</tt>, <tt>any</tt> (you can also use <tt>*</tt> as any), <tt>java</tt>, <tt>text</tt>, <tt>xml</tt>, or <tt>json</tt>.
-     */
-    public Type getType() {
-        return type;
-    }
-
-    /**
-     * Optional sub type to qualify the data type such as a java fully qualified class name, or a xml namespace etc
-     */
-    public String getSubType() {
-        return subType;
-    }
-
-    @Override
-    public String toString() {
-        if (subType != null) {
-            return type.name() + ":" + subType;
-        } else {
-            return type.name();
-        }
-    }
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorComponent.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorComponent.java
deleted file mode 100644
index 21ba72f..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorComponent.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Modifier;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.Endpoint;
-import org.apache.camel.NoTypeConversionAvailableException;
-import org.apache.camel.Processor;
-import org.apache.camel.catalog.CamelCatalog;
-import org.apache.camel.catalog.DefaultCamelCatalog;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.component.extension.verifier.ResultBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.support.DefaultComponent;
-import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.apache.camel.util.URISupport.sanitizeUri;
-
-/**
- * Base class for Camel Connector components.
- */
-public abstract class DefaultConnectorComponent extends DefaultComponent implements ConnectorComponent {
-    private final Logger log = LoggerFactory.getLogger(getClass());
-    private final CamelCatalog catalog = new DefaultCamelCatalog(false);
-
-    private final String baseScheme;
-    private final String componentScheme;
-    private final String componentName;
-    private final ConnectorModel model;
-    private final Map<String, Object> options;
-    private Processor beforeProducer;
-    private Processor afterProducer;
-    private Processor beforeConsumer;
-    private Processor afterConsumer;
-
-    protected DefaultConnectorComponent(String componentName, String className) {
-        this(componentName, null, loadConnectorClass(className));
-    }
-
-    protected DefaultConnectorComponent(String componentName, String componentScheme, String className) {
-        this(componentName, componentScheme, loadConnectorClass(className));
-    }
-
-    protected DefaultConnectorComponent(String componentName, Class<?> componentClass) {
-        this(componentName, null, componentClass);
-    }
-
-    protected DefaultConnectorComponent(String componentName, String componentScheme, Class<?> componentClass) {
-        this.model = new ConnectorModel(componentName, componentClass);
-        this.baseScheme = this.model.getBaseScheme();
-        this.componentName = componentName;
-        this.componentScheme = componentScheme != null ? baseScheme + "-" + componentScheme : baseScheme + "-" + componentName + "-component";
-        this.options = new HashMap<>();
-
-        // add to catalog
-        this.catalog.addComponent(componentName, componentClass.getName());
-
-        // It may be a custom component so we need to register this in the camel catalog also
-        if (!catalog.findComponentNames().contains(baseScheme)) {
-            catalog.addComponent(baseScheme,  model.getBaseJavaType());
-        }
-
-        // Add an alias for the base component so there's no clash between connectors
-        // if they set options targeting the component.
-        if (!catalog.findComponentNames().contains(this.componentScheme)) {
-            this.catalog.addComponent(this.componentScheme, this.model.getBaseJavaType(), catalog.componentJSonSchema(baseScheme));
-        }
-
-        registerExtension(this::getComponentVerifierExtension);
-    }
-
-    private static Class<?> loadConnectorClass(String className) {
-        try {
-            ClassLoader classLoader = DefaultConnectorComponent.class.getClassLoader();
-            return classLoader.loadClass(className);
-        } catch (ClassNotFoundException ex) {
-            throw new RuntimeException(ex);
-        }
-    }
-
-    protected <T> void doAddOption(Map<String, T> options, String name, T value) {
-        log.trace("Adding option: {}={}", name, value);
-        T val = options.put(name, value);
-        if (val != null) {
-            log.debug("Options {} overridden, old value was {}", name, val);
-        }
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        // if we extracted any scheduler query parameters we would need to rebuild the uri without them
-        int before = parameters.size();
-        Map<String, Object> schedulerOptions = extractSchedulerOptions(parameters);
-        int after = parameters.size();
-        if (schedulerOptions != null && before != after) {
-            URI u = new URI(uri);
-            u = URISupport.createRemainingURI(u, parameters);
-            uri = u.toString();
-        }
-        // grab the regular query parameters
-        Map<String, String> options = buildEndpointOptions(remaining, parameters);
-
-        // create the uri of the base component
-        String delegateUri = createEndpointUri(componentScheme, options);
-        Endpoint delegate = getCamelContext().getEndpoint(delegateUri);
-
-        if (log.isInfoEnabled()) {
-            // the uris can have sensitive information so sanitize
-            log.info("Connector resolved: {} -> {}", sanitizeUri(uri), sanitizeUri(delegateUri));
-        }
-
-        DefaultConnectorEndpoint answer;
-        // are we scheduler based?
-        if ("timer".equals(model.getScheduler())) {
-            SchedulerTimerConnectorEndpoint endpoint = new SchedulerTimerConnectorEndpoint(uri, this, delegate, model.getInputDataType(), model.getOutputDataType());
-            setProperties(endpoint, schedulerOptions);
-            answer = endpoint;
-        } else {
-            answer = new DefaultConnectorEndpoint(uri, this, delegate, model.getInputDataType(), model.getOutputDataType());
-        }
-
-        answer.setBeforeProducer(getBeforeProducer());
-        answer.setAfterProducer(getAfterProducer());
-        answer.setBeforeConsumer(getBeforeConsumer());
-        answer.setAfterConsumer(getAfterConsumer());
-
-        // clean-up parameters so that validation won't fail later on
-        // in DefaultConnectorComponent.validateParameters()
-        parameters.clear();
-
-        return answer;
-    }
-
-    @Override
-    public String createEndpointUri(String scheme, Map<String, String> options) throws URISyntaxException {
-        log.trace("Creating endpoint uri with scheme: {}", scheme);
-        return catalog.asEndpointUri(scheme, options, false);
-    }
-
-    @Override
-    public CamelCatalog getCamelCatalog() {
-        return catalog;
-    }
-
-    @Override
-    public String getCamelConnectorJSon() {
-        return model.getConnectorJSon();
-    }
-
-    @Override
-    public String getConnectorName() {
-        return model.getConnectorName();
-    }
-
-    @Override
-    public String getComponentName() {
-        return componentName;
-    }
-
-    @Override
-    public String getComponentScheme() {
-        return componentScheme;
-    }
-
-    @Override
-    public Map<String, Object> getOptions() {
-        return options;
-    }
-
-    @Override
-    public void setOptions(Map<String, Object> options) {
-        this.options.clear();
-        this.options.putAll(options);
-    }
-
-    @Override
-    public void addOption(String name, Object value) {
-        doAddOption(this.options, name, value);
-    }
-
-    @Override
-    public void addOptions(Map<String, Object> options) {
-        options.forEach((name, value)->  doAddOption(this.options, name, value));
-    }
-
-    private ComponentVerifierExtension getComponentVerifierExtension() {
-        try {
-            // Create the component but no need to add it to the camel context
-            // nor to start it.
-            final Component component = createNewBaseComponent();
-            final Optional<ComponentVerifierExtension> extension = component.getExtension(ComponentVerifierExtension.class);
-
-            if (extension.isPresent()) {
-                return (ComponentVerifierExtension.Scope scope, Map<String, Object> map) -> {
-                    Map<String, Object> options;
-
-                    try {
-                        // A little nasty hack required as verifier uses Map<String, Object>
-                        // to be compatible with all the methods in CamelContext whereas
-                        // catalog deals with Map<String, String>
-                        options = (Map) buildEndpointOptions(null, map);
-                    } catch (URISyntaxException | NoTypeConversionAvailableException e) {
-                        // If a failure is detected while reading the catalog, wrap it
-                        // and stop the validation step.
-                        return ResultBuilder.withStatusAndScope(ComponentVerifierExtension.Result.Status.OK, scope)
-                            .error(ResultErrorBuilder.withException(e).build())
-                            .build();
-                    }
-
-                    return extension.get().verify(scope, options);
-                };
-            } else {
-                return (scope, map) -> {
-                    return ResultBuilder.withStatusAndScope(ComponentVerifierExtension.Result.Status.UNSUPPORTED, scope)
-                        .error(
-                            ResultErrorBuilder.withCode(ComponentVerifierExtension.VerificationError.StandardCode.UNSUPPORTED)
-                                .detail("camel_connector_name", getConnectorName())
-                                .detail("camel_component_name", getComponentName())
-                                .build())
-                        .build();
-                };
-            }
-        } catch (Exception e) {
-            return (scope, map) -> {
-                return ResultBuilder.withStatusAndScope(ComponentVerifierExtension.Result.Status.OK, scope)
-                    .error(ResultErrorBuilder.withException(e).build())
-                    .build();
-            };
-        }
-    }
-
-    // --------------------------------------------------------------
-
-    @Override
-    protected void doStart() throws Exception {
-        // lets enforce that every connector must have an input and output data type
-        if (model.getInputDataType() == null) {
-            throw new IllegalArgumentException("Camel connector must have inputDataType defined in camel-connector.json file");
-        }
-        if (model.getOutputDataType() == null) {
-            throw new IllegalArgumentException("Camel connector must have outputDataType defined in camel-connector.json file");
-        }
-        if (model.getBaseScheme() == null) {
-            throw new IllegalArgumentException("Camel connector must have baseSchema defined in camel-connector.json file");
-        }
-        if (model.getBaseJavaType() == null) {
-            throw new IllegalArgumentException("Camel connector must have baseJavaType defined in camel-connector.json file");
-        }
-
-        Component component = createNewBaseComponent();
-        if (component != null) {
-            log.info("Register component: {} (type: {}) with scheme: {}",
-                this.componentName,
-                component.getClass().getName(),
-                this.componentScheme
-            );
-
-            //String delegateComponentScheme =
-            getCamelContext().removeComponent(this.componentScheme);
-
-            // ensure component is started and stopped when Camel shutdown
-            getCamelContext().addService(component, true, true);
-            getCamelContext().addComponent(this.componentScheme, component);
-        }
-
-        log.debug("Starting connector: {}", componentName);
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        log.debug("Stopping connector: {}", componentName);
-        super.doStop();
-    }
-
-    @Override
-    public Processor getBeforeProducer() {
-        return beforeProducer;
-    }
-
-    @Override
-    public void setBeforeProducer(Processor beforeProducer) {
-        this.beforeProducer = beforeProducer;
-    }
-
-    @Override
-    public Processor getAfterProducer() {
-        return afterProducer;
-    }
-
-    @Override
-    public void setAfterProducer(Processor afterProducer) {
-        this.afterProducer = afterProducer;
-    }
-
-    @Override
-    public Processor getBeforeConsumer() {
-        return beforeConsumer;
-    }
-
-    @Override
-    public void setBeforeConsumer(Processor beforeConsumer) {
-        this.beforeConsumer = beforeConsumer;
-    }
-
-    @Override
-    public Processor getAfterConsumer() {
-        return afterConsumer;
-    }
-
-    @Override
-    public void setAfterConsumer(Processor afterConsumer) {
-        this.afterConsumer = afterConsumer;
-    }
-
-    // ***************************************
-    // Helpers
-    // ***************************************
-
-    /**
-     * Create the endpoint instance which either happens with a new base component
-     * which has been pre-configured for this connector or we fallback and use
-     * the default component in the camel context
-     */
-    private Component createNewBaseComponent() throws Exception {
-        final String baseClassName = model.getBaseJavaType();
-        final CamelContext context = getCamelContext();
-
-        Component base = null;
-
-        if (baseClassName != null) {
-            // create a new instance of this base component
-            Class<?> type = Class.forName(baseClassName);
-            Constructor ctr = getPublicDefaultConstructor(type);
-            if (ctr != null) {
-                // call default no-arg constructor
-                base = (Component)ctr.newInstance();
-                base.setCamelContext(context);
-
-                // the connector may have default values for the component level also
-                // and if so we need to prepare these values and set on this component
-                // before we can start
-                Map<String, Object> defaultOptions = model.getDefaultComponentOptions();
-
-                if (!defaultOptions.isEmpty()) {
-                    for (Map.Entry<String, Object> entry : defaultOptions.entrySet()) {
-                        String key = entry.getKey();
-                        Object value = entry.getValue();
-                        if (value != null) {
-                            // also support {{ }} placeholders so resolve those first
-                            value = getCamelContext().resolvePropertyPlaceholders(value.toString());
-
-                            log.debug("Using component option: {}={}", key, value);
-                            IntrospectionSupport.setProperty(context, base, key, value);
-                        }
-                    }
-                }
-
-                // configure component with extra options
-                if (options != null && !options.isEmpty()) {
-                    // Get the list of options from the connector catalog that
-                    // are configured to target the endpoint
-                    List<String> endpointOptions = model.getEndpointOptions();
-                    Map<String, Object> connectorOptions = model.getConnectorOptions();
-
-                    for (Map.Entry<String, Object> entry : options.entrySet()) {
-                        // Only set options that are targeting the component
-                        if (!endpointOptions.contains(entry.getKey()) && !connectorOptions.containsKey(entry.getKey())) {
-                            log.debug("Using component option: {}={}", entry.getKey(), entry.getValue());
-                            IntrospectionSupport.setProperty(context, base, entry.getKey(), entry.getValue());
-                        }
-                    }
-                }
-            }
-        }
-
-        return base;
-    }
-
-    /**
-     * Extracts the scheduler options from the parameters.
-     * <p/>
-     * These options start with <tt>scheduler</tt> in their key name, such as <tt>schedulerPeriod</tt>
-     * which is removed from parameters, and transformed into keys without the <tt>scheduler</tt> prefix.
-     *
-     * @return the scheduler options, or <tt>null</tt> if scheduler not enabled
-     */
-    private Map<String, Object> extractSchedulerOptions(Map<String, Object> parameters) {
-        if (model.getScheduler() != null) {
-            // include default options first
-            Map<String, Object> answer = new LinkedHashMap<>();
-            model.getDefaultEndpointOptions().forEach((key, value) -> {
-                String schedulerKey = asSchedulerKey(key);
-                if (schedulerKey != null) {
-                    answer.put(schedulerKey, value);
-                }
-            });
-
-            // and then override with from parameters
-            for (Iterator<Map.Entry<String, Object>> it = parameters.entrySet().iterator(); it.hasNext();) {
-                Map.Entry<String, Object> entry = it.next();
-                String schedulerKey = asSchedulerKey(entry.getKey());
-                if (schedulerKey != null) {
-                    Object value = entry.getValue();
-                    answer.put(schedulerKey, value);
-                    // and remove as it should not be part of regular parameters
-                    it.remove();
-                }
-            }
-            return answer;
-        }
-
-        return null;
-    }
-
-    private static String asSchedulerKey(String key) {
-        if (key.startsWith("scheduler")) {
-            String name = key.substring(9);
-            // and lower case first char
-            name = Character.toLowerCase(name.charAt(0)) + name.substring(1);
-            return name;
-        } else {
-            return null;
-        }
-    }
-
-    private Map<String, String> buildEndpointOptions(String remaining, Map<String, Object> parameters) throws URISyntaxException, NoTypeConversionAvailableException {
-        Map<String, Object> defaultOptions = model.getDefaultEndpointOptions();
-
-        // gather all options to use when building the delegate uri
-        Map<String, String> options = new LinkedHashMap<>();
-
-        // default options from connector json
-        if (!defaultOptions.isEmpty()) {
-            defaultOptions.forEach((key, value) -> {
-                if (isValidConnectionOption(key, value)) {
-                    String text = value.toString();
-                    doAddOption(options, key, text);
-                }
-            });
-        }
-
-        // Extract options from options that are supposed to be set at the endpoint
-        // level, those options can be overridden and extended using by the query
-        // parameters.
-        List<String> endpointOptions = model.getEndpointOptions();
-        if (ObjectHelper.isNotEmpty(endpointOptions) && ObjectHelper.isNotEmpty(this.options)) {
-            for (String endpointOption : endpointOptions) {
-                Object value = this.options.get(endpointOption);
-                if (value != null) {
-                    doAddOption(
-                        options,
-                        endpointOption,
-                        getCamelContext().getTypeConverter().mandatoryConvertTo(String.class, value));
-                }
-            }
-        }
-
-        // options from query parameters
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            String key = entry.getKey();
-            String value = null;
-            if (entry.getValue() != null) {
-                value = entry.getValue().toString();
-            }
-            if (isValidConnectionOption(key, value)) {
-                doAddOption(options, key, value);
-            }
-        }
-
-        // add extra options from remaining (context-path)
-        if (remaining != null) {
-            String targetUri = componentScheme + ":" + remaining;
-            Map<String, String> extra = catalog.endpointProperties(targetUri);
-            if (extra != null && !extra.isEmpty()) {
-                extra.forEach((key, value) -> {
-                    if (isValidConnectionOption(key, value)) {
-                        doAddOption(options, key, value);
-                    }
-                });
-            }
-        }
-
-        return options;
-    }
-
-    private boolean isValidConnectionOption(String key, Object value) {
-        // skip specific option if its a scheduler
-        if (model.getScheduler() != null && asSchedulerKey(key) != null) {
-            return false;
-        }
-        return true;
-    }
-
-    private static Constructor getPublicDefaultConstructor(Class<?> clazz) {
-        for (Constructor ctr : clazz.getConstructors()) {
-            if (Modifier.isPublic(ctr.getModifiers()) && ctr.getParameterCount() == 0) {
-                return ctr;
-            }
-        }
-        return null;
-    }
-}
-
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorEndpoint.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorEndpoint.java
deleted file mode 100644
index d44fc0a..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/DefaultConnectorEndpoint.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import org.apache.camel.Consumer;
-import org.apache.camel.DelegateEndpoint;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.api.management.ManagedAttribute;
-import org.apache.camel.api.management.ManagedResource;
-import org.apache.camel.support.DefaultEndpoint;
-import org.apache.camel.processor.Pipeline;
-import org.apache.camel.support.ServiceHelper;
-
-@ManagedResource(description = "Managed Connector Endpoint")
-public class DefaultConnectorEndpoint extends DefaultEndpoint implements DelegateEndpoint {
-
-    private final Endpoint endpoint;
-    private final DataType inputDataType;
-    private final DataType outputDataType;
-    private Processor beforeProducer;
-    private Processor afterProducer;
-    private Processor beforeConsumer;
-    private Processor afterConsumer;
-
-    public DefaultConnectorEndpoint(String endpointUri, ConnectorComponent component, Endpoint endpoint,
-                                    DataType inputDataType, DataType outputDataType) {
-        super(endpointUri, component);
-        this.endpoint = endpoint;
-        this.inputDataType = inputDataType;
-        this.outputDataType = outputDataType;
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        final Producer producer = endpoint.createProducer();
-
-        final Processor beforeProducer = getBeforeProducer();
-        final Processor afterProducer = getAfterProducer();
-
-        // use a pipeline to process before, producer, after in that order
-        // create producer with the pipeline
-        final Processor pipeline = Pipeline.newInstance(getCamelContext(), beforeProducer, producer, afterProducer);
-
-        return new ConnectorProducer(endpoint, pipeline);
-    }
-
-    @Override
-    public Consumer createConsumer(final Processor processor) throws Exception {
-        final Processor beforeConsumer = getBeforeConsumer();
-        final Processor afterConsumer = getAfterConsumer();
-
-        // use a pipeline to process before, processor, after in that order
-        // create consumer with the pipeline
-        final Processor pipeline = Pipeline.newInstance(getCamelContext(), beforeConsumer, processor, afterConsumer);
-        final Consumer consumer = endpoint.createConsumer(pipeline);
-        configureConsumer(consumer);
-
-        return consumer;
-    }
-
-    @Override
-    public ConnectorComponent getComponent() {
-        return (ConnectorComponent) super.getComponent();
-    }
-
-    @Override
-    public boolean isSingleton() {
-        return true;
-    }
-
-    @Override
-    public Endpoint getEndpoint() {
-        return endpoint;
-    }
-
-    @ManagedAttribute(description = "Delegate Endpoint URI", mask = true)
-    public String getDelegateEndpointUri() {
-        return endpoint.getEndpointUri();
-    }
-
-    @ManagedAttribute(description = "Input data type")
-    public DataType getInputDataType() {
-        return inputDataType;
-    }
-
-    @ManagedAttribute(description = "Output data type")
-    public DataType getOutputDataType() {
-        return outputDataType;
-    }
-
-    /**
-     * Gets the processor used to perform custom processing before the producer is sending the message.
-     */
-    public Processor getBeforeProducer() {
-        return beforeProducer;
-    }
-
-    /**
-     * To perform custom processing before the producer is sending the message.
-     */
-    public void setBeforeProducer(Processor beforeProducer) {
-        this.beforeProducer = beforeProducer;
-    }
-
-    /**
-     * Gets the processor used to perform custom processing after the producer has sent the message and received any reply (if InOut).
-     */
-    public Processor getAfterProducer() {
-        return afterProducer;
-    }
-
-    /**
-     * To perform custom processing after the producer has sent the message and received any reply (if InOut).
-     */
-    public void setAfterProducer(Processor afterProducer) {
-        this.afterProducer = afterProducer;
-    }
-
-    /**
-     * Gets the processor used to perform custom processing when the consumer has just received a new incoming message.
-     */
-    public Processor getBeforeConsumer() {
-        return beforeConsumer;
-    }
-
-    /**
-     * To perform custom processing when the consumer has just received a new incoming message.
-     */
-    public void setBeforeConsumer(Processor beforeConsumer) {
-        this.beforeConsumer = beforeConsumer;
-    }
-
-    /**
-     * Gets the processor used to perform custom processing when the consumer is about to send back a reply message to the caller (if InOut).
-     */
-    public Processor getAfterConsumer() {
-        return afterConsumer;
-    }
-
-    /**
-     * To perform custom processing when the consumer is about to send back a reply message to the caller (if InOut).
-     */
-    public void setAfterConsumer(Processor afterConsumer) {
-        this.afterConsumer = afterConsumer;
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        super.doStart();
-        ServiceHelper.startService(endpoint);
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        ServiceHelper.stopService(endpoint);
-        super.doStop();
-    }
-}
diff --git a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/SchedulerTimerConnectorEndpoint.java b/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/SchedulerTimerConnectorEndpoint.java
deleted file mode 100644
index 203d6be..0000000
--- a/connectors/camel-connector/src/main/java/org/apache/camel/component/connector/SchedulerTimerConnectorEndpoint.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.connector;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.camel.Consumer;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
-import org.apache.camel.api.management.ManagedAttribute;
-import org.apache.camel.api.management.ManagedResource;
-import org.apache.camel.processor.Pipeline;
-
-/**
- * A connector which is scheduler based from a timer endpoint. This allows to use a connector from a Camel route that
- * is scheduled. For example a foo connector would otherwise have to be manually scheduled, eg
- * <pre>
- *     from("timer:something?period=2000")
- *       .to("foo:hello")
- *       .log("Foo says ${body}");
- * </pre>
- * .. can now be done without the manual timer
- * <pre>
- *     from("foo:hello?schedulePeriod=2000")
- *       .log("Foo says ${body}");
- * </pre>
- * <p/>
- * This requires the connector to have configured: <tt>"scheduler": "timer"</tt> such as shown in the petstore-connector.
- */
-@ManagedResource(description = "Managed Scheduled TimerConnector Endpoint")
-public class SchedulerTimerConnectorEndpoint extends DefaultConnectorEndpoint {
-
-    private long period = 1000;
-
-    public SchedulerTimerConnectorEndpoint(String endpointUri, ConnectorComponent component, Endpoint endpoint, DataType inputDataType, DataType outputDataType) {
-        super(endpointUri, component, endpoint, inputDataType, outputDataType);
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        // special as we are scheduler based and then need to create a timer consumer that then calls the producer
-        List<Processor> children = new ArrayList<>(2);
-        children.add(createProducer());
-        children.add(processor);
-        Processor pipeline = Pipeline.newInstance(getCamelContext(), children);
-
-        // create a timer consumer which wraps calling the producer and then the intended processor
-        String name = getComponent().getComponentScheme();
-        String uri = "timer:" + name + "?period=" + period;
-
-        Consumer consumer = getCamelContext().getEndpoint(uri).createConsumer(pipeline);
-        configureConsumer(consumer);
-        return consumer;
-    }
-
-    @ManagedAttribute(description = "Delay in milli seconds between scheduling (executing)")
-    public long getPeriod() {
-        return period;
-    }
-
-    public void setPeriod(long period) {
-        this.period = period;
-    }
-}
diff --git a/connectors/camel-connector/src/main/resources/META-INF/LICENSE.txt b/connectors/camel-connector/src/main/resources/META-INF/LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/connectors/camel-connector/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/connectors/camel-connector/src/main/resources/META-INF/NOTICE.txt b/connectors/camel-connector/src/main/resources/META-INF/NOTICE.txt
deleted file mode 100644
index 2e215bf..0000000
--- a/connectors/camel-connector/src/main/resources/META-INF/NOTICE.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-   =========================================================================
-   ==  NOTICE file corresponding to the section 4 d of                    ==
-   ==  the Apache License, Version 2.0,                                   ==
-   ==  in this case for the Apache Camel distribution.                    ==
-   =========================================================================
-
-   This product includes software developed by
-   The Apache Software Foundation (http://www.apache.org/).
-
-   Please read the different LICENSE files present in the licenses directory of
-   this distribution.
diff --git a/connectors/examples/bar-connector/Readme.md b/connectors/examples/bar-connector/Readme.md
deleted file mode 100644
index 5dae132..0000000
--- a/connectors/examples/bar-connector/Readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Bar Connector
-
-A Camel connector that is based on the `beverage-component`.
-
-This connector is a very basic connector with only a few options.
-
diff --git a/connectors/examples/bar-connector/pom.xml b/connectors/examples/bar-connector/pom.xml
deleted file mode 100644
index 8571dc1..0000000
--- a/connectors/examples/bar-connector/pom.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>bar-connector</artifactId>
-  <name>Camel :: Connectors :: Examples :: Bar Connector</name>
-  <description>Bar Connector</description>
-  <packaging>jar</packaging>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Camel BOM -->
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-parent</artifactId>
-        <version>${project.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <!-- base component to use for this connector -->
-    <dependency>
-      <groupId>org.foo</groupId>
-      <artifactId>beverage-component</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel-connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel and spring boot compiler plugins -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-configuration-processor</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- testing -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <defaultGoal>install</defaultGoal>
-
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${maven-compiler-plugin-version}</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>${maven-resources-plugin-version}</version>
-        <configuration>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-
-      <!-- generate components meta-data and validate component includes documentation etc -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-package-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>prepare</id>
-            <goals>
-              <goal>prepare-components</goal>
-            </goals>
-            <phase>generate-resources</phase>
-          </execution>
-          <execution>
-            <id>validate</id>
-            <goals>
-              <goal>validate-components</goal>
-            </goals>
-            <phase>prepare-package</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- turn off jar plugin as we use connector plugin to jar instead -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>${maven-jar-plugin-version}</version>
-        <executions>
-          <execution>
-            <id>default-jar</id>
-            <phase/>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- connector plugin will build the jar -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-connector-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>boot</id>
-            <goals>
-              <goal>prepare-spring-boot-auto-configuration</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>connector</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-</project>
diff --git a/connectors/examples/bar-connector/src/main/java/org/foo/connector/BarComponent.java b/connectors/examples/bar-connector/src/main/java/org/foo/connector/BarComponent.java
deleted file mode 100644
index c34c298..0000000
--- a/connectors/examples/bar-connector/src/main/java/org/foo/connector/BarComponent.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector;
-
-import org.apache.camel.component.connector.DefaultConnectorComponent;
-
-public class BarComponent extends DefaultConnectorComponent {
-
-    public BarComponent() {
-        super("bar", "org.foo.connector.BarComponent");
-    }
-
-    public BarComponent(String componentScheme) {
-        super("bar", componentScheme, "org.foo.connector.BarComponent");
-    }
-
-}
\ No newline at end of file
diff --git a/connectors/examples/bar-connector/src/main/resources/META-INF/services/org/apache/camel/component/bar b/connectors/examples/bar-connector/src/main/resources/META-INF/services/org/apache/camel/component/bar
deleted file mode 100644
index 60143ae..0000000
--- a/connectors/examples/bar-connector/src/main/resources/META-INF/services/org/apache/camel/component/bar
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-class=org.foo.connector.BarComponent
\ No newline at end of file
diff --git a/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json b/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
deleted file mode 100644
index 420cf26..0000000
--- a/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-  "component":{
-    "kind":"component",
-    "baseScheme":"beverage",
-    "scheme":"bar",
-    "syntax":"bar:drink",
-    "title":"Bar",
-    "description":"To order drinks from the bar",
-    "label":"bar",
-    "deprecated":false,
-    "async":false,
-    "producerOnly":true,
-    "lenientProperties":false,
-    "javaType":"org.foo.connector.BarComponent",
-    "groupId":"org.foo",
-    "artifactId":"bar-connector",
-    "version":"2.22.0-SNAPSHOT"
-  },
-  "componentProperties":{
-    
-  },
-  "properties":{
-    "drink":{
-      "kind":"path",
-      "displayName":"Drink",
-      "group":"producer",
-      "required":true,
-      "type":"object",
-      "javaType":"org.beverage.Beverages",
-      "enum":[
-        "Wine",
-        "GinTonic",
-        "Beer"
-      ],
-      "deprecated":false,
-      "secret":false,
-      "description":"What drink to order"
-    },
-    "amount":{
-      "kind":"parameter",
-      "displayName":"Amount",
-      "group":"producer",
-      "required":false,
-      "type":"integer",
-      "javaType":"int",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":2,
-      "description":"Number of drinks in the order"
-    },
-    "celebrity":{
-      "kind":"parameter",
-      "displayName":"Celebrity",
-      "group":"producer",
-      "required":false,
-      "type":"boolean",
-      "javaType":"boolean",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":false,
-      "description":"Is this a famous person ordering"
-    }
-  },
-  "connectorProperties":{
-    
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/bar-connector/src/main/resources/camel-connector.json b/connectors/examples/bar-connector/src/main/resources/camel-connector.json
deleted file mode 100644
index 1a5e4c5..0000000
--- a/connectors/examples/bar-connector/src/main/resources/camel-connector.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "baseScheme" : "beverage",
-  "baseGroupId" : "org.foo",
-  "baseArtifactId" : "beverage-component",
-  "baseVersion" : "2.22.0-SNAPSHOT",
-  "baseJavaType" : "org.beverage.BeverageComponent",
-  "name" : "Bar",
-  "scheme" : "bar",
-  "javaType" : "org.foo.connector.BarComponent",
-  "groupId" : "org.foo",
-  "artifactId" : "wine-connector",
-  "version" : "2.22.0-SNAPSHOT",
-  "description" : "To order drinks from the bar",
-  "labels" : [ "bar" ],
-  "pattern" : "To",
-  "inputDataType" : "*",
-  "outputDataType" : "text",
-  "endpointOptions" : [ "drink", "amount", "celebrity" ],
-  "endpointValues" : {
-    "amount" : 2
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/beverage-component/Readme.md b/connectors/examples/beverage-component/Readme.md
deleted file mode 100644
index 934a3a1..0000000
--- a/connectors/examples/beverage-component/Readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Beverage Component
-
-A 3rd party Camel component to be used as base for the `bar` and `wine` Camel connectors. 
-
-This is used to demonstrate that Camel connectors also work with 3rd party components.
diff --git a/connectors/examples/beverage-component/pom.xml b/connectors/examples/beverage-component/pom.xml
deleted file mode 100644
index 48d41e2..0000000
--- a/connectors/examples/beverage-component/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>beverage-component</artifactId>
-  <name>Camel :: Connectors :: Examples :: Beverage Component</name>
-  <description>Camel Beverage Component</description>
-  <packaging>jar</packaging>
-
-  <dependencies>
-
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- use the Camel apt compiler plugin -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-      <version>${project.version}</version>
-      <scope>provided</scope>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <plugins>
-      <!-- use Camel plugins to generate component details -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-package-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>generate-components-list</goal>
-            </goals>
-            <phase>generate-resources</phase>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>jdk9+-build</id>
-      <activation>
-        <jdk>[9,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>--add-modules java.xml.bind</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageComponent.java b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageComponent.java
deleted file mode 100644
index d058ee9..0000000
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageComponent.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.beverage;
-
-import java.util.Map;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
-
-public class BeverageComponent extends DefaultComponent {
-
-    public BeverageComponent() {
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        BeverageEndpoint answer = new BeverageEndpoint(uri, this);
-
-        Beverages drink = getCamelContext().getTypeConverter().mandatoryConvertTo(Beverages.class, remaining);
-        answer.setDrink(drink);
-
-        setProperties(answer, parameters);
-        return answer;
-    }
-}
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
deleted file mode 100644
index 1680a86..0000000
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.beverage;
-
-import org.apache.camel.Component;
-import org.apache.camel.Consumer;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriPath;
-
-@UriEndpoint(scheme = "beverage", syntax = "beverage:drink", title = "Beverage", label = "bar", producerOnly = true)
-public class BeverageEndpoint extends DefaultEndpoint {
-
-    @UriPath @Metadata(required = "true")
-    private Beverages drink;
-
-    @UriParam(defaultValue = "1")
-    private int amount = 1;
-
-    @UriParam
-    private boolean celebrity;
-
-    public BeverageEndpoint(String endpointUri, Component component) {
-        super(endpointUri, component);
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        return new BeverageProducer(this, drink, amount, celebrity);
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean isSingleton() {
-        return true;
-    }
-
-    public Beverages getDrink() {
-        return drink;
-    }
-
-    /**
-     * What drink to order
-     */
-    public void setDrink(Beverages drink) {
-        this.drink = drink;
-    }
-
-    public int getAmount() {
-        return amount;
-    }
-
-    /**
-     * Number of drinks in the order
-     */
-    public void setAmount(int amount) {
-        this.amount = amount;
-    }
-
-    public boolean isCelebrity() {
-        return celebrity;
-    }
-
-    /**
-     * Is this a famous person ordering
-     */
-    public void setCelebrity(boolean celebrity) {
-        this.celebrity = celebrity;
-    }
-}
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
deleted file mode 100644
index 3fb6cf5..0000000
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.beverage;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultProducer;
-
-public class BeverageProducer extends DefaultProducer {
-
-    private final Beverages drink;
-    private final int amount;
-    private final boolean celebrity;
-
-    private transient int total;
-
-    public BeverageProducer(Endpoint endpoint, Beverages drink, int amount, boolean celebrity) {
-        super(endpoint);
-        this.drink = drink;
-        this.amount = amount;
-        this.celebrity = celebrity;
-    }
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        total += amount;
-
-        exchange.getIn().setBody("total " + total + " of " + drink.name().toLowerCase() + " ordered"
-            + (celebrity ? " from famous person" : ""));
-    }
-}
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/Beverages.java b/connectors/examples/beverage-component/src/main/java/org/beverage/Beverages.java
deleted file mode 100644
index bf8435b..0000000
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/Beverages.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.beverage;
-
-public enum Beverages {
-
-    Beer, GinTonic, Wine
-}
diff --git a/connectors/examples/beverage-component/src/main/resources/META-INF/LICENSE.txt b/connectors/examples/beverage-component/src/main/resources/META-INF/LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/connectors/examples/beverage-component/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/connectors/examples/beverage-component/src/main/resources/META-INF/NOTICE.txt b/connectors/examples/beverage-component/src/main/resources/META-INF/NOTICE.txt
deleted file mode 100644
index 2e215bf..0000000
--- a/connectors/examples/beverage-component/src/main/resources/META-INF/NOTICE.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-   =========================================================================
-   ==  NOTICE file corresponding to the section 4 d of                    ==
-   ==  the Apache License, Version 2.0,                                   ==
-   ==  in this case for the Apache Camel distribution.                    ==
-   =========================================================================
-
-   This product includes software developed by
-   The Apache Software Foundation (http://www.apache.org/).
-
-   Please read the different LICENSE files present in the licenses directory of
-   this distribution.
diff --git a/connectors/examples/beverage-component/src/main/resources/META-INF/services/org/apache/camel/component/beverage b/connectors/examples/beverage-component/src/main/resources/META-INF/services/org/apache/camel/component/beverage
deleted file mode 100644
index 068b108..0000000
--- a/connectors/examples/beverage-component/src/main/resources/META-INF/services/org/apache/camel/component/beverage
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-class=org.beverage.BeverageComponent
\ No newline at end of file
diff --git a/connectors/examples/beverage-component/src/test/java/org/beverage/BeverageTest.java b/connectors/examples/beverage-component/src/test/java/org/beverage/BeverageTest.java
deleted file mode 100644
index 37256df..0000000
--- a/connectors/examples/beverage-component/src/test/java/org/beverage/BeverageTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.beverage;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-
-public class BeverageTest extends CamelTestSupport {
-
-    @Test
-    public void testBeverage() throws Exception {
-        getMockEndpoint("mock:result").expectedBodiesReceived("total 2 of wine ordered");
-
-        template.sendBody("direct:bar", "Hello World");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:bar")
-                    .to("beverage:wine?amount=2")
-                    .to("mock:result");
-            }
-        };
-    }
-}
diff --git a/connectors/examples/beverage-component/src/test/resources/log4j2.properties b/connectors/examples/beverage-component/src/test/resources/log4j2.properties
deleted file mode 100644
index 58d46ea..0000000
--- a/connectors/examples/beverage-component/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-beverage-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
-logger.converter.name = org.apache.camel.impl.converter
-logger.converter.level = INFO
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/connectors/examples/foo-bar-wine-example/Readme.md b/connectors/examples/foo-bar-wine-example/Readme.md
deleted file mode 100644
index 60e717b..0000000
--- a/connectors/examples/foo-bar-wine-example/Readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## Foo Bar and Wine Example
-
-This is an example that uses the `foo`, `bar` and `wine` Camel connectors. These connectors
-are used as if they are regular Camel components in Camel routes.
-
-See the `FooBarWineRoute` class for more details.
-
-### How to run
-
-This example can be run from the command line using:
-
-    mvn camel:run
-    
-### Apache Camel IDEA Plugin
-    
-You can use tooling such as the Apache Camel IDEA Plugin to offer code assistance while create the Camel route.
-
-The tooling offers code completions such as listing the possible options you can use with the Camel connectors.
-Notice how the tool presents only the pre-selected options of these connectors. For example the `foo` connector
-which is based on the Camel `Timer` component only offers two options, where as if you are using `timer` instead
-you will have many more options.
-
-The following screenshot shows hows the `foo` connector only has two options to configure:
-
-![Foo Connector in IDEA](img/foo-connector-options-idea.png?raw=true)
-
diff --git a/connectors/examples/foo-bar-wine-example/img/foo-connector-options-idea.png b/connectors/examples/foo-bar-wine-example/img/foo-connector-options-idea.png
deleted file mode 100644
index dc9ce4b..0000000
Binary files a/connectors/examples/foo-bar-wine-example/img/foo-connector-options-idea.png and /dev/null differ
diff --git a/connectors/examples/foo-bar-wine-example/pom.xml b/connectors/examples/foo-bar-wine-example/pom.xml
deleted file mode 100644
index 270dd0e..0000000
--- a/connectors/examples/foo-bar-wine-example/pom.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>foo-bar-wine-example</artifactId>
-  <name>Camel :: Connectors :: Examples :: Foo Bar and Wine Example</name>
-  <description>Foo Bar and Wine Example</description>
-  <packaging>jar</packaging>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Camel BOM -->
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-parent</artifactId>
-        <version>${project.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <!-- connectors used in this example -->
-    <dependency>
-      <groupId>org.foo</groupId>
-      <artifactId>foo-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.foo</groupId>
-      <artifactId>bar-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.foo</groupId>
-      <artifactId>wine-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-    </dependency>
-
-    <!-- testing -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <plugins>
-      <!-- Allows the example to be run via 'mvn camel:run' -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <configuration>
-          <mainClass>org.foo.FooBarWineMain</mainClass>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>jdk9+-build</id>
-      <activation>
-        <jdk>[9,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>--add-modules java.xml.bind</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineMain.java b/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineMain.java
deleted file mode 100644
index 9e551d0..0000000
--- a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineMain.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo;
-
-import org.apache.camel.main.Main;
-
-/**
- * Main class to run this example
- */
-public final class FooBarWineMain {
-
-    private FooBarWineMain() {
-    }
-
-    public static void main(String[] args) throws Exception {
-        Main main = new Main();
-        main.addRouteBuilder(new FooBarWineRoute());
-        main.run();
-    }
-}
diff --git a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java b/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
deleted file mode 100644
index b066f6d..0000000
--- a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo;
-
-import org.apache.camel.builder.RouteBuilder;
-
-/**
- * Camel route that uses the foo, bar and wine connectors
- */
-public class FooBarWineRoute extends RouteBuilder {
-
-    @Override
-    public void configure() throws Exception {
-        from("foo:ThirstyBear?period=2000")
-            .log("Who is this: ${header.whoami}")
-            .to("wine:Wine?amount=2")
-            .log("ThirstyBear ordered ${body}");
-
-        from("foo:Moes?period=5000")
-            .log("Who is this: ${header.whoami}")
-            .to("bar:Beer?amount=5&celebrity=true")
-            .log("Moes ordered ${body}");
-    }
-}
diff --git a/connectors/examples/foo-bar-wine-example/src/main/resources/log4j2.properties b/connectors/examples/foo-bar-wine-example/src/main/resources/log4j2.properties
deleted file mode 100644
index ff39bcb..0000000
--- a/connectors/examples/foo-bar-wine-example/src/main/resources/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
-
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = out
diff --git a/connectors/examples/foo-bar-wine-example/src/test/java/org/foo/FooBarWineTest.java b/connectors/examples/foo-bar-wine-example/src/test/java/org/foo/FooBarWineTest.java
deleted file mode 100644
index 80c45c5..0000000
--- a/connectors/examples/foo-bar-wine-example/src/test/java/org/foo/FooBarWineTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-
-public class FooBarWineTest extends CamelTestSupport {
-
-    @Test
-    public void testFooBar() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:bar");
-
-        mock.expectedMinimumMessageCount(2);
-        mock.setAssertPeriod(500);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testFooWine() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:wine");
-
-        mock.expectedMinimumMessageCount(2);
-        mock.setAssertPeriod(500);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("foo:hello?period=100")
-                    .to("bar:Beer?amount=5")
-                    .to("mock:bar");
-
-                from("foo:hello2?period=50")
-                    .to("wine:wine?amount=2")
-                    .to("mock:wine");
-            }
-        };
-    }
-}
diff --git a/connectors/examples/foo-bar-wine-example/src/test/resources/log4j2.properties b/connectors/examples/foo-bar-wine-example/src/test/resources/log4j2.properties
deleted file mode 100644
index b18929b..0000000
--- a/connectors/examples/foo-bar-wine-example/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/connectors/examples/foo-connector/Readme.md b/connectors/examples/foo-connector/Readme.md
deleted file mode 100644
index c9c4487..0000000
--- a/connectors/examples/foo-connector/Readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Foo Connector
-
-This is a basic Camel connector that is based on the Timer component from Apache Camel.
-
-This connector is a very basic connector with only a few options.
diff --git a/connectors/examples/foo-connector/pom.xml b/connectors/examples/foo-connector/pom.xml
deleted file mode 100644
index f5aa6f5..0000000
--- a/connectors/examples/foo-connector/pom.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>foo-connector</artifactId>
-  <name>Camel :: Connectors :: Examples :: Foo Connector</name>
-  <description>Foo Connector</description>
-  <packaging>jar</packaging>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Camel BOM -->
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-parent</artifactId>
-        <version>${project.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <!-- base component to use for this connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel-connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel and spring boot compiler plugins -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-configuration-processor</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- testing -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <defaultGoal>install</defaultGoal>
-
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${maven-compiler-plugin-version}</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>${maven-resources-plugin-version}</version>
-        <configuration>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-
-      <!-- generate components meta-data and validate component includes documentation etc -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-package-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>prepare</id>
-            <goals>
-              <goal>prepare-components</goal>
-            </goals>
-            <phase>generate-resources</phase>
-          </execution>
-          <execution>
-            <id>validate</id>
-            <goals>
-              <goal>validate-components</goal>
-            </goals>
-            <phase>prepare-package</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- turn off jar plugin as we use connector plugin to jar instead -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>${maven-jar-plugin-version}</version>
-        <executions>
-          <execution>
-            <id>default-jar</id>
-            <phase/>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- connector plugin will build the jar -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-connector-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>boot</id>
-            <goals>
-              <goal>prepare-spring-boot-auto-configuration</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>connector</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-</project>
diff --git a/connectors/examples/foo-connector/src/main/java/org/foo/connector/FooComponent.java b/connectors/examples/foo-connector/src/main/java/org/foo/connector/FooComponent.java
deleted file mode 100644
index 52b022c..0000000
--- a/connectors/examples/foo-connector/src/main/java/org/foo/connector/FooComponent.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector;
-
-import org.apache.camel.component.connector.DefaultConnectorComponent;
-
-public class FooComponent extends DefaultConnectorComponent {
-
-    public FooComponent() {
-        super("foo", "org.foo.connector.FooComponent");
-
-        // show how you can add a fixed header
-        setBeforeConsumer(e -> e.getIn().setHeader("whoami", "I am foo"));
-    }
-
-    public FooComponent(String componentScheme) {
-        super("foo", componentScheme, "org.foo.connector.FooComponent");
-
-        // show how you can add a fixed header
-        setBeforeConsumer(e -> e.getIn().setHeader("whoami", "I am foo"));
-    }
-
-}
\ No newline at end of file
diff --git a/connectors/examples/foo-connector/src/main/resources/META-INF/services/org/apache/camel/component/foo b/connectors/examples/foo-connector/src/main/resources/META-INF/services/org/apache/camel/component/foo
deleted file mode 100644
index b92962a..0000000
--- a/connectors/examples/foo-connector/src/main/resources/META-INF/services/org/apache/camel/component/foo
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-class=org.foo.connector.FooComponent
\ No newline at end of file
diff --git a/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json b/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
deleted file mode 100644
index c87d9d0..0000000
--- a/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "component":{
-    "kind":"component",
-    "baseScheme":"timer",
-    "scheme":"foo",
-    "syntax":"foo:timerName",
-    "title":"Foo",
-    "description":"Something cool",
-    "label":"foo,timer",
-    "deprecated":false,
-    "async":false,
-    "consumerOnly":true,
-    "lenientProperties":false,
-    "javaType":"org.foo.connector.FooComponent",
-    "groupId":"org.foo",
-    "artifactId":"foo-connector",
-    "version":"2.22.0-SNAPSHOT"
-  },
-  "componentProperties":{
-    
-  },
-  "properties":{
-    "timerName":{
-      "kind":"path",
-      "displayName":"Timer Name",
-      "group":"consumer",
-      "required":true,
-      "type":"string",
-      "javaType":"java.lang.String",
-      "deprecated":false,
-      "secret":false,
-      "description":"The name of the timer"
-    },
-    "period":{
-      "kind":"parameter",
-      "displayName":"Period",
-      "group":"consumer",
-      "required":false,
-      "type":"integer",
-      "javaType":"long",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":5000,
-      "description":"If greater than 0 generate periodic events every period milliseconds. The default value is 1000. You can also specify time values using units such as 60s (60 seconds) 5m30s (5 minutes and 30 seconds) and 1h (1 hour)."
-    },
-    "repeatCount":{
-      "kind":"parameter",
-      "displayName":"Repeat Count",
-      "group":"consumer",
-      "required":false,
-      "type":"integer",
-      "javaType":"long",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":0,
-      "description":"Specifies a maximum limit of number of fires. So if you set it to 1 the timer will only fire once. If you set it to 5 it will only fire five times. A value of zero or negative means fire forever."
-    }
-  },
-  "connectorProperties":{
-    
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/foo-connector/src/main/resources/camel-connector.json b/connectors/examples/foo-connector/src/main/resources/camel-connector.json
deleted file mode 100644
index d6e279c..0000000
--- a/connectors/examples/foo-connector/src/main/resources/camel-connector.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "baseScheme" : "timer",
-  "baseGroupId" : "org.apache.camel",
-  "baseArtifactId" : "camel-core",
-  "baseVersion" : "2.22.0-SNAPSHOT",
-  "baseJavaType" : "org.apache.camel.component.timer.TimerComponent",
-  "name" : "Foo",
-  "scheme" : "foo",
-  "javaType" : "org.foo.connector.FooComponent",
-  "groupId" : "org.foo",
-  "artifactId" : "foo-connector",
-  "version" : "2.22.0-SNAPSHOT",
-  "description" : "Something cool",
-  "labels" : [ "foo", "timer" ],
-  "pattern" : "From",
-  "inputDataType" : "none",
-  "outputDataType" : "none",
-  "endpointOptions" : [ "timerName", "period", "repeatCount" ],
-  "endpointValues" : {
-    "fixedRate" : true,
-    "period" : 5000
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/Readme.md b/connectors/examples/petstore-connector/Readme.md
deleted file mode 100644
index 68891d0..0000000
--- a/connectors/examples/petstore-connector/Readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## PetStore Connector
-
-This is a basic Camel connector that is based on the Rest Swagger component from Apache Camel.
-
-The connector is configured to call the Swagger PetStore API online service every 5th second
-and return a list of pets in json format.
diff --git a/connectors/examples/petstore-connector/pom.xml b/connectors/examples/petstore-connector/pom.xml
deleted file mode 100644
index a71f4ec..0000000
--- a/connectors/examples/petstore-connector/pom.xml
+++ /dev/null
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>petstore-connector</artifactId>
-  <name>Camel :: Connectors :: Examples :: PetStore Connector</name>
-  <description>PetStore Connector</description>
-  <packaging>jar</packaging>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Camel BOM -->
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-parent</artifactId>
-        <version>${project.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <!-- base component to use for this connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-spring-boot</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel-connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- component -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-rest-swagger</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-undertow</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- camel and spring boot compiler plugins -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-configuration-processor</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- testing -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <defaultGoal>install</defaultGoal>
-
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${maven-compiler-plugin-version}</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>${maven-resources-plugin-version}</version>
-        <configuration>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-
-      <!-- generate components meta-data and validate component includes documentation etc -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-package-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>prepare</id>
-            <goals>
-              <goal>prepare-components</goal>
-            </goals>
-            <phase>generate-resources</phase>
-          </execution>
-          <execution>
-            <id>validate</id>
-            <goals>
-              <goal>validate-components</goal>
-            </goals>
-            <phase>prepare-package</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- turn off jar plugin as we use connector plugin to jar instead -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>${maven-jar-plugin-version}</version>
-        <executions>
-          <execution>
-            <id>default-jar</id>
-            <phase/>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- connector plugin will build the jar -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-connector-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>boot</id>
-            <goals>
-              <goal>prepare-spring-boot-auto-configuration</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>connector</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-</project>
diff --git a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/PetStoreComponent.java b/connectors/examples/petstore-connector/src/main/java/org/foo/connector/PetStoreComponent.java
deleted file mode 100644
index 056da7f..0000000
--- a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/PetStoreComponent.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector;
-
-import org.apache.camel.component.connector.DefaultConnectorComponent;
-
-public class PetStoreComponent extends DefaultConnectorComponent {
-
-    public PetStoreComponent() {
-        super("petstore", "org.foo.connector.PetStoreComponent");
-    }
-
-    public PetStoreComponent(String componentScheme) {
-        super("petstore", componentScheme, "org.foo.connector.PetStoreComponent");
-    }
-
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorAutoConfiguration.java b/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorAutoConfiguration.java
deleted file mode 100644
index 1a44a51..0000000
--- a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorAutoConfiguration.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector.springboot;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.annotation.Generated;
-import javax.annotation.PostConstruct;
-import org.apache.camel.CamelContext;
-import org.apache.camel.component.connector.ConnectorCustomizer;
-import org.apache.camel.spi.HasId;
-import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
-import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
-import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.foo.connector.PetStoreComponent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Lazy;
-
-/**
- * Generated by camel-connector-maven-plugin - do not edit this file!
- */
-@Generated("org.apache.camel.maven.connector.SpringBootAutoConfigurationMojo")
-@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(PetStoreConnectorConfiguration.class)
-public class PetStoreConnectorAutoConfiguration {
-
-    private static final Logger LOGGER = LoggerFactory
-            .getLogger(PetStoreConnectorAutoConfiguration.class);
-    @Autowired
-    private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
-    @Autowired
-    private PetStoreConnectorConfiguration configuration;
-    @Autowired(required = false)
-    private List<ConnectorCustomizer<PetStoreComponent>> customizers;
-
-    @Lazy
-    @Bean(name = "petstore-component")
-    @ConditionalOnClass(CamelContext.class)
-    @ConditionalOnMissingBean
-    public PetStoreComponent configurePetStoreComponent() throws Exception {
-        PetStoreComponent connector = new PetStoreComponent();
-        connector.setCamelContext(camelContext);
-        Map<String, Object> parameters = new HashMap<>();
-        IntrospectionSupport.getProperties(configuration, parameters, null,
-                false);
-        CamelPropertiesHelper.setCamelProperties(camelContext, connector,
-                parameters, false);
-        connector.setOptions(parameters);
-        if (ObjectHelper.isNotEmpty(customizers)) {
-            for (ConnectorCustomizer<PetStoreComponent> customizer : customizers) {
-                boolean useCustomizer = (customizer instanceof HasId)
-                        ? HierarchicalPropertiesEvaluator.evaluate(
-                                applicationContext.getEnvironment(),
-                                "camel.connector.customizer",
-                                "camel.connector.petstore.customizer",
-                                ((HasId) customizer).getId())
-                        : HierarchicalPropertiesEvaluator.evaluate(
-                                applicationContext.getEnvironment(),
-                                "camel.connector.customizer",
-                                "camel.connector.petstore.customizer");
-                if (useCustomizer) {
-                    LOGGER.debug("Configure connector {}, with customizer {}",
-                            connector, customizer);
-                    customizer.customize(connector);
-                }
-            }
-        }
-        return connector;
-    }
-
-    @PostConstruct
-    public void postConstructPetStoreComponent() {
-        Map<String, Object> parameters = new HashMap<>();
-        for (Map.Entry<String, PetStoreConnectorConfigurationCommon> entry : configuration
-                .getConfigurations().entrySet()) {
-            parameters.clear();
-            PetStoreComponent connector = new PetStoreComponent(entry.getKey());
-            connector.setCamelContext(camelContext);
-            try {
-                IntrospectionSupport.getProperties(entry.getValue(),
-                        parameters, null, false);
-                CamelPropertiesHelper.setCamelProperties(camelContext,
-                        connector, parameters, false);
-                connector.setOptions(parameters);
-                if (ObjectHelper.isNotEmpty(customizers)) {
-                    for (ConnectorCustomizer<PetStoreComponent> customizer : customizers) {
-                        boolean useCustomizer = (customizer instanceof HasId)
-                                ? HierarchicalPropertiesEvaluator.evaluate(
-                                        applicationContext.getEnvironment(),
-                                        "camel.connector.customizer",
-                                        "camel.connector.petstore."
-                                                + entry.getKey()
-                                                + ".customizer",
-                                        ((HasId) customizer).getId())
-                                : HierarchicalPropertiesEvaluator.evaluate(
-                                        applicationContext.getEnvironment(),
-                                        "camel.connector.customizer",
-                                        "camel.connector.petstore."
-                                                + entry.getKey()
-                                                + ".customizer");
-                        if (useCustomizer) {
-                            LOGGER.debug(
-                                    "Configure connector {}, with customizer {}",
-                                    connector, customizer);
-                            customizer.customize(connector);
-                        }
-                    }
-                }
-                camelContext.addComponent(entry.getKey(), connector);
-            } catch (Exception e) {
-                throw new BeanCreationException(entry.getKey(), e.getMessage(),
-                        e);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfiguration.java b/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfiguration.java
deleted file mode 100644
index fa19e29..0000000
--- a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector.springboot;
-
-import java.util.HashMap;
-import java.util.Map;
-import javax.annotation.Generated;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-@Generated("org.apache.camel.maven.connector.SpringBootAutoConfigurationMojo")
-@ConfigurationProperties(prefix = "camel.connector.petstore")
-public class PetStoreConnectorConfiguration
-        extends
-            PetStoreConnectorConfigurationCommon {
-
-    /**
-     * Define additional configuration definitions
-     */
-    private Map<String, PetStoreConnectorConfigurationCommon> configurations = new HashMap<>();
-
-    public Map<String, PetStoreConnectorConfigurationCommon> getConfigurations() {
-        return configurations;
-    }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfigurationCommon.java b/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfigurationCommon.java
deleted file mode 100644
index c0ef487..0000000
--- a/connectors/examples/petstore-connector/src/main/java/org/foo/connector/springboot/PetStoreConnectorConfigurationCommon.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo.connector.springboot;
-
-import java.net.URI;
-import javax.annotation.Generated;
-
-/**
- * Pets in the store
- * 
- * Generated by camel-package-maven-plugin - do not edit this file!
- */
-@Generated("org.apache.camel.maven.connector.SpringBootAutoConfigurationMojo")
-public class PetStoreConnectorConfigurationCommon {
-
-    /**
-     * Path to the Swagger specification file. The scheme host base path are
-     * taken from this specification but these can be overriden with properties
-     * on the component or endpoint level. If not given the component tries to
-     * load swagger.json resource. Note that the host defined on the component
-     * and endpoint of this Component should contain the scheme hostname and
-     * optionally the port in the URI syntax (i.e.
-     * https://api.example.com:8080). Can be overriden in endpoint
-     * configuration.
-     */
-    private URI specificationUri;
-    /**
-     * ID of the operation from the Swagger specification.
-     */
-    private String operationId;
-    /**
-     * Delay in milli seconds between scheduling (executing)
-     */
-    private long schedulerPeriod = 5000L;
-
-    public URI getSpecificationUri() {
-        return specificationUri;
-    }
-
-    public void setSpecificationUri(URI specificationUri) {
-        this.specificationUri = specificationUri;
-    }
-
-    public String getOperationId() {
-        return operationId;
-    }
-
-    public void setOperationId(String operationId) {
-        this.operationId = operationId;
-    }
-
-    public long getSchedulerPeriod() {
-        return schedulerPeriod;
-    }
-
-    public void setSchedulerPeriod(long schedulerPeriod) {
-        this.schedulerPeriod = schedulerPeriod;
-    }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/resources/META-INF/services/org/apache/camel/component/petstore b/connectors/examples/petstore-connector/src/main/resources/META-INF/services/org/apache/camel/component/petstore
deleted file mode 100644
index 3344d63..0000000
--- a/connectors/examples/petstore-connector/src/main/resources/META-INF/services/org/apache/camel/component/petstore
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-class=org.foo.connector.PetStoreComponent
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/resources/META-INF/spring.factories b/connectors/examples/petstore-connector/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 1a5d3bd..0000000
--- a/connectors/examples/petstore-connector/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.foo.connector.springboot.PetStoreConnectorAutoConfiguration
diff --git a/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json b/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
deleted file mode 100644
index fda95e2..0000000
--- a/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "component":{
-    "kind":"component",
-    "baseScheme":"rest-swagger",
-    "scheme":"petstore",
-    "syntax":"petstore:specificationUri#operationId",
-    "title":"PetStore",
-    "description":"Pets in the store",
-    "label":"api,rest",
-    "deprecated":false,
-    "async":false,
-    "consumerOnly":true,
-    "lenientProperties":false,
-    "javaType":"org.foo.connector.PetStoreComponent",
-    "groupId":"org.foo",
-    "artifactId":"petstore-connector",
-    "version":"2.22.0-SNAPSHOT"
-  },
-  "componentProperties":{
-    "specificationUri":{
-      "kind":"property",
-      "displayName":"Specification Uri",
-      "group":"producer",
-      "label":"producer",
-      "required":false,
-      "type":"string",
-      "javaType":"java.net.URI",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":"http:\/\/petstore.swagger.io\/v2\/swagger.json",
-      "description":"Path to the Swagger specification file. The scheme host base path are taken from this specification but these can be overriden with properties on the component or endpoint level. If not given the component tries to load swagger.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme hostname and optionally the port in the URI syntax (i.e. https:\/\/api.example.com:8080). Can be overriden in endpoint configuration."
-    }
-  },
-  "properties":{
-    "operationId":{
-      "kind":"path",
-      "displayName":"Operation Id",
-      "group":"producer",
-      "label":"producer",
-      "required":true,
-      "type":"string",
-      "javaType":"java.lang.String",
-      "deprecated":false,
-      "secret":false,
-      "description":"ID of the operation from the Swagger specification."
-    },
-    "schedulerPeriod":{
-      "kind":"parameter",
-      "displayName":"Period",
-      "group":"consumer",
-      "required":false,
-      "type":"integer",
-      "javaType":"long",
-      "deprecated":false,
-      "secret":false,
-      "defaultValue":5000,
-      "description":"Delay in milli seconds between scheduling (executing)"
-    }
-  },
-  "connectorProperties":{
-    
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-connector/src/main/resources/camel-connector.json b/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
deleted file mode 100644
index f16fbb0..0000000
--- a/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "baseScheme" : "rest-swagger",
-  "baseGroupId" : "org.apache.camel",
-  "baseArtifactId" : "camel-rest-swagger",
-  "baseVersion" : "2.22.0-SNAPSHOT",
-  "baseJavaType" : "org.apache.camel.component.rest.swagger.RestSwaggerComponent",
-  "name" : "PetStore",
-  "scheme" : "petstore",
-  "javaType" : "org.foo.connector.PetStoreComponent",
-  "groupId" : "org.foo",
-  "artifactId" : "petstore-connector",
-  "version" : "2.22.0-SNAPSHOT",
-  "description" : "Pets in the store",
-  "labels" : [ "api", "rest" ],
-  "pattern" : "From",
-  "scheduler" : "timer",
-  "inputDataType" : "none",
-  "outputDataType" : "json",
-  "componentOptions" : [ "specificationUri" ],
-  "globalOptions" : [ "specificationUri" ],
-  "endpointOptions" : [ "operationId", "schedulerPeriod" ],
-  "componentValues" : {
-    "specificationUri" : "http://petstore.swagger.io/v2/swagger.json"
-  },
-  "endpointValues" : {
-    "schedulerPeriod" : 5000
-  }
-}
\ No newline at end of file
diff --git a/connectors/examples/petstore-example/Readme.md b/connectors/examples/petstore-example/Readme.md
deleted file mode 100644
index 873a67e..0000000
--- a/connectors/examples/petstore-example/Readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
-## PetStore Example
-
-This is an example that uses the `petstore` Camel connectors.
-
-### How to run
-
-This example can be run from the command line using:
-
-    mvn spring-boot:run
-    
-### Scheduled connector
-
-The `petstore` connector is a scheduled connector which means it has built-in
-a Camel `timer` endpoint as the starting point, so you start from the connector
-in a Camel route as shown below:
-
-```
-    from("petstore?operationId=getInventory&schedulerPeriod=2000")
-        .log("Pets in the store ${body}");
-
-```
-
-What happens is that Camel will transform this into a route that looks like:
-
-```
-    from("timer:petstore?period=2000")
-        .to("petstore?operationId=getInventory")
-        .log("Pets in the store ${body}");
-
-```
\ No newline at end of file
diff --git a/connectors/examples/petstore-example/pom.xml b/connectors/examples/petstore-example/pom.xml
deleted file mode 100644
index cb495e9..0000000
--- a/connectors/examples/petstore-example/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>petstore-example</artifactId>
-  <name>Camel :: Connectors :: Examples :: PetStore Example</name>
-  <description>PetStore Example</description>
-  <packaging>jar</packaging>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Spring Boot BOM -->
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-dependencies</artifactId>
-        <version>${spring-boot-version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-      <!-- Camel BOM -->
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-spring-boot-dependencies</artifactId>
-        <version>${project.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <!-- spring-boot -->
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-web</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-actuator</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-undertow</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-spring-boot-starter</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- connectors used in this example -->
-    <dependency>
-      <groupId>org.foo</groupId>
-      <artifactId>petstore-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-
-    <plugins>
-      <plugin>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-        <version>${spring-boot-version}</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>repackage</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>jdk9+-build</id>
-      <activation>
-        <jdk>[9,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>--add-modules java.xml.bind</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreApplication.java b/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreApplication.java
deleted file mode 100644
index 04ba954..0000000
--- a/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreApplication.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-//CHECKSTYLE:OFF
-@SpringBootApplication
-public class PetStoreApplication {
-
-    /**
-     * A main method to start this application.
-     */
-    public static void main(String[] args) {
-        SpringApplication.run(PetStoreApplication.class, args);
-    }
-
-}
-//CHECKSTYLE:ON
\ No newline at end of file
diff --git a/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreRoute.java b/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreRoute.java
deleted file mode 100644
index cd22f83..0000000
--- a/connectors/examples/petstore-example/src/main/java/org/foo/PetStoreRoute.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.foo;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.springframework.stereotype.Component;
-
-/**
- * Camel route that uses the petstore connector
- */
-@Component
-public class PetStoreRoute extends RouteBuilder {
-
-    @Override
-    public void configure() throws Exception {
-        from("petstore?operationId=getInventory&schedulerPeriod=2000")
-            .log("Pets in the store ${body}");
-    }
-}
diff --git a/connectors/examples/petstore-example/src/main/resources/application.properties b/connectors/examples/petstore-example/src/main/resources/application.properties
deleted file mode 100644
index 65ebe13..0000000
--- a/connectors/examples/petstore-example/src/main/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-camel.springboot.name=PetStore
-
-# the url for the swagger doc
-camel.connector.petstore.specification-uri=http://petstore.swagger.io/v2/swagger.json
\ No newline at end of file
diff --git a/connectors/examples/pom.xml b/connectors/examples/pom.xml
deleted file mode 100644
index 2162239..0000000
--- a/connectors/examples/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <artifactId>connectors-examples</artifactId>
-  <name>Camel :: Connectors :: Examples (deprecated)</name>
-  <description>Camel Connectors Examples</description>
-  <packaging>pom</packaging>
-
-  <modules>
-    <module>beverage-component</module>
-    <module>foo-connector</module>
-    <module>bar-connector</module>
-    <module>wine-connector</module>
-    <module>foo-bar-wine-example</module>
-    <module>salesforce-upsert-contact-connector</module>
-    <module>twitter-mention-connector</module>
-    <module>twitter-find-connector</module>
-    <module>twitter-find-example</module>
-    <module>twitter-salesforce-example</module>
-    <module>petstore-connector</module>
-    <module>petstore-example</module>
-  </modules>
-
-</project>
diff --git a/connectors/examples/salesforce-upsert-contact-connector/pom.xml b/connectors/examples/salesforce-upsert-contact-connector/pom.xml
deleted file mode 100644
index b154008..0000000
--- a/connectors/examples/salesforce-upsert-contact-connector/pom.xml
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>connectors-examples</artifactId>
-    <version>2.22.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <groupId>org.foo</groupId>
-  <artifactId>salesforce-upsert-contact-connector</artifactId>
-  <name>Camel :: Connectors :: Examples :: Salesforce Upsert Contact Connector</name>
-  <description>Salesforce Upsert Contact Connector</description>
-
-  <dependencies>
-
-    <!-- base component to use for this connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-salesforce</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-salesforce-starter</artifactId>
-    </dependency>
-
-    <!-- camel-connector -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-connector</artifactId>
-    </dependency>
-
-    <!-- camel and spring boot compiler plugins -->
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>apt</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-configuration-processor</artifactId>
-      <version>${spring-boot-version}</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <!-- add src/generated/java as source directory -->
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>add-dto-source</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>src/generated/java</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- this is needed due Apache Camel source code uses the OSGi plugin to build JARs -->
-      <!-- for end users whom create connectors you would not have this problem -->
-      <!-- turn off jar plugin as we use connector plugin to jar instead -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>${maven-jar-plugin-version}</version>
-        <executions>
-          <execution>
-            <id>default-jar</id>
-            <phase/>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- connector plugin will build the jar -->
-      <plugin>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-connector-maven-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>boot</id>
-            <goals>
-              <goal>prepare-spring-boot-auto-configuration</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>connector</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>regenerate-dto</id>
-      <activation>
-        <file>
-          <exists>salesforce-authentication.properties</exists>
-        </file>
-      </activation>
-
-      <build>
-        <plugins>
-
-          <!-- read Salesforce authentication properties -->
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>properties-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>read-salesforce-authentication-properties</id>
-                <phase>initialize</phase>
-                <goals>
-                  <goal>read-project-properties</goal>
-                </goals>
-                <configuration>
-                  <files>
-                    <file>salesforce-authentication.properties</file>
-                  </files>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-
-          <!-- generate Contact DTOs -->
-          <plugin>
-            <groupId>org.apache.camel.maven</groupId>
-            <artifactId>camel-salesforce-maven-plugin</artifactId>
-            <version>${project.version}</version>
-            <executions>
-              <execution>
-                <id>generate-dtos</id>
-                <goals>
-                  <goal>generate</goal>
-                </goals>
-                <configuration>
-                  <version>37.0</version>
-                  <outputDirectory>src/generated/java</outputDirectory>
-                  <packageName>org.foo.salesforce.upsert.contact</packageName>
-                  <includes>Contact</includes>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-</project>
diff --git a/connectors/examples/salesforce-upsert-contact-connector/salesforce-authentication.properties.sample b/connectors/examples/salesforce-upsert-contact-connector/salesforce-authentication.properties.sample
deleted file mode 100644
index 7cca838..0000000
--- a/connectors/examples/salesforce-upsert-contact-connector/salesforce-authentication.properties.sample
+++ /dev/null
@@ -1,23 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-## Example properties needed by the camel-salesforce-maven-plugin to generate
-## DTOs
-camelSalesforce.clientId     = 
-camelSalesforce.clientSecret =
-camelSalesforce.password     =
-camelSalesforce.userName     =
diff --git a/connectors/examples/salesforce-upsert-contact-connector/src/generated/java/org/foo/salesforce/upsert/contact/Contact.java b/connectors/examples/salesforce-upsert-contact-connector/src/generated/java/org/foo/salesforce/upsert/contact/Contact.java
deleted file mode 100644
index 55988d9..0000000
--- a/connectors/examples/salesforce-upsert-contact-connector/src/generated/java/org/foo/salesforce/upsert/contact/Contact.java
+++ /dev/null
@@ -1,3317 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * Salesforce DTO generated by camel-salesforce-maven-plugin
- * Generated on: Thu Feb 09 14:29:57 CET 2017
- */
-package org.foo.salesforce.upsert.contact;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
-
-import org.apache.camel.component.salesforce.api.PicklistEnumConverter;
-import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
-import org.apache.camel.component.salesforce.api.dto.ChildRelationShip;
-import org.apache.camel.component.salesforce.api.dto.InfoUrls;
-import org.apache.camel.component.salesforce.api.dto.NamedLayoutInfo;
-import org.apache.camel.component.salesforce.api.dto.RecordTypeInfo;
-import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
-import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
-import org.apache.camel.component.salesforce.api.dto.SObjectField;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * Salesforce DTO for SObject Contact
- */
-@XStreamAlias("Contact")
-public class Contact extends AbstractDescribedSObjectBase {
-
-    private static final SObjectDescription DESCRIPTION = createSObjectDescription();
-
-    // MasterRecordId
-    private String MasterRecordId;
-
-    @JsonProperty("MasterRecordId")
-    public String getMasterRecordId() {
-        return this.MasterRecordId;
-    }
-
-    @JsonProperty("MasterRecordId")
-    public void setMasterRecordId(String MasterRecordId) {
-        this.MasterRecordId = MasterRecordId;
-    }
-
-    // AccountId
-    private String AccountId;
-
-    @JsonProperty("AccountId")
-    public String getAccountId() {
-        return this.AccountId;
-    }
-
-    @JsonProperty("AccountId")
-    public void setAccountId(String AccountId) {
-        this.AccountId = AccountId;
-    }
-
-    // LastName
-    private String LastName;
-
-    @JsonProperty("LastName")
-    public String getLastName() {
-        return this.LastName;
-    }
-
-    @JsonProperty("LastName")
-    public void setLastName(String LastName) {
-        this.LastName = LastName;
-    }
-
-    // FirstName
-    private String FirstName;
-
-    @JsonProperty("FirstName")
-    public String getFirstName() {
-        return this.FirstName;
-    }
-
-    @JsonProperty("FirstName")
-    public void setFirstName(String FirstName) {
-        this.FirstName = FirstName;
-    }
-
-    // Salutation
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_SalutationEnum Salutation;
-
-    @JsonProperty("Salutation")
-    public Contact_SalutationEnum getSalutation() {
-        return this.Salutation;
-    }
-
-    @JsonProperty("Salutation")
-    public void setSalutation(Contact_SalutationEnum Salutation) {
-        this.Salutation = Salutation;
-    }
-
-    // OtherStreet
-    private String OtherStreet;
-
-    @JsonProperty("OtherStreet")
-    public String getOtherStreet() {
-        return this.OtherStreet;
-    }
-
-    @JsonProperty("OtherStreet")
-    public void setOtherStreet(String OtherStreet) {
-        this.OtherStreet = OtherStreet;
-    }
-
-    // OtherCity
-    private String OtherCity;
-
-    @JsonProperty("OtherCity")
-    public String getOtherCity() {
-        return this.OtherCity;
-    }
-
-    @JsonProperty("OtherCity")
-    public void setOtherCity(String OtherCity) {
-        this.OtherCity = OtherCity;
-    }
-
-    // OtherState
-    private String OtherState;
-
-    @JsonProperty("OtherState")
-    public String getOtherState() {
-        return this.OtherState;
-    }
-
-    @JsonProperty("OtherState")
-    public void setOtherState(String OtherState) {
-        this.OtherState = OtherState;
-    }
-
-    // OtherPostalCode
-    private String OtherPostalCode;
-
-    @JsonProperty("OtherPostalCode")
-    public String getOtherPostalCode() {
-        return this.OtherPostalCode;
-    }
-
-    @JsonProperty("OtherPostalCode")
-    public void setOtherPostalCode(String OtherPostalCode) {
-        this.OtherPostalCode = OtherPostalCode;
-    }
-
-    // OtherCountry
-    private String OtherCountry;
-
-    @JsonProperty("OtherCountry")
-    public String getOtherCountry() {
-        return this.OtherCountry;
-    }
-
-    @JsonProperty("OtherCountry")
-    public void setOtherCountry(String OtherCountry) {
-        this.OtherCountry = OtherCountry;
-    }
-
-    // OtherLatitude
-    private Double OtherLatitude;
-
-    @JsonProperty("OtherLatitude")
-    public Double getOtherLatitude() {
-        return this.OtherLatitude;
-    }
-
-    @JsonProperty("OtherLatitude")
-    public void setOtherLatitude(Double OtherLatitude) {
-        this.OtherLatitude = OtherLatitude;
-    }
-
-    // OtherLongitude
-    private Double OtherLongitude;
-
-    @JsonProperty("OtherLongitude")
-    public Double getOtherLongitude() {
-        return this.OtherLongitude;
-    }
-
-    @JsonProperty("OtherLongitude")
-    public void setOtherLongitude(Double OtherLongitude) {
-        this.OtherLongitude = OtherLongitude;
-    }
-
-    // OtherGeocodeAccuracy
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_OtherGeocodeAccuracyEnum OtherGeocodeAccuracy;
-
-    @JsonProperty("OtherGeocodeAccuracy")
-    public Contact_OtherGeocodeAccuracyEnum getOtherGeocodeAccuracy() {
-        return this.OtherGeocodeAccuracy;
-    }
-
-    @JsonProperty("OtherGeocodeAccuracy")
-    public void setOtherGeocodeAccuracy(Contact_OtherGeocodeAccuracyEnum OtherGeocodeAccuracy) {
-        this.OtherGeocodeAccuracy = OtherGeocodeAccuracy;
-    }
-
-    // OtherAddress
-    private org.apache.camel.component.salesforce.api.dto.Address OtherAddress;
-
-    @JsonProperty("OtherAddress")
-    public org.apache.camel.component.salesforce.api.dto.Address getOtherAddress() {
-        return this.OtherAddress;
-    }
-
-    @JsonProperty("OtherAddress")
-    public void setOtherAddress(org.apache.camel.component.salesforce.api.dto.Address OtherAddress) {
-        this.OtherAddress = OtherAddress;
-    }
-
-    // MailingStreet
-    private String MailingStreet;
-
-    @JsonProperty("MailingStreet")
-    public String getMailingStreet() {
-        return this.MailingStreet;
-    }
-
-    @JsonProperty("MailingStreet")
-    public void setMailingStreet(String MailingStreet) {
-        this.MailingStreet = MailingStreet;
-    }
-
-    // MailingCity
-    private String MailingCity;
-
-    @JsonProperty("MailingCity")
-    public String getMailingCity() {
-        return this.MailingCity;
-    }
-
-    @JsonProperty("MailingCity")
-    public void setMailingCity(String MailingCity) {
-        this.MailingCity = MailingCity;
-    }
-
-    // MailingState
-    private String MailingState;
-
-    @JsonProperty("MailingState")
-    public String getMailingState() {
-        return this.MailingState;
-    }
-
-    @JsonProperty("MailingState")
-    public void setMailingState(String MailingState) {
-        this.MailingState = MailingState;
-    }
-
-    // MailingPostalCode
-    private String MailingPostalCode;
-
-    @JsonProperty("MailingPostalCode")
-    public String getMailingPostalCode() {
-        return this.MailingPostalCode;
-    }
-
-    @JsonProperty("MailingPostalCode")
-    public void setMailingPostalCode(String MailingPostalCode) {
-        this.MailingPostalCode = MailingPostalCode;
-    }
-
-    // MailingCountry
-    private String MailingCountry;
-
-    @JsonProperty("MailingCountry")
-    public String getMailingCountry() {
-        return this.MailingCountry;
-    }
-
-    @JsonProperty("MailingCountry")
-    public void setMailingCountry(String MailingCountry) {
-        this.MailingCountry = MailingCountry;
-    }
-
-    // MailingLatitude
-    private Double MailingLatitude;
-
-    @JsonProperty("MailingLatitude")
-    public Double getMailingLatitude() {
-        return this.MailingLatitude;
-    }
-
-    @JsonProperty("MailingLatitude")
-    public void setMailingLatitude(Double MailingLatitude) {
-        this.MailingLatitude = MailingLatitude;
-    }
-
-    // MailingLongitude
-    private Double MailingLongitude;
-
-    @JsonProperty("MailingLongitude")
-    public Double getMailingLongitude() {
-        return this.MailingLongitude;
-    }
-
-    @JsonProperty("MailingLongitude")
-    public void setMailingLongitude(Double MailingLongitude) {
-        this.MailingLongitude = MailingLongitude;
-    }
-
-    // MailingGeocodeAccuracy
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_MailingGeocodeAccuracyEnum MailingGeocodeAccuracy;
-
-    @JsonProperty("MailingGeocodeAccuracy")
-    public Contact_MailingGeocodeAccuracyEnum getMailingGeocodeAccuracy() {
-        return this.MailingGeocodeAccuracy;
-    }
-
-    @JsonProperty("MailingGeocodeAccuracy")
-    public void setMailingGeocodeAccuracy(Contact_MailingGeocodeAccuracyEnum MailingGeocodeAccuracy) {
-        this.MailingGeocodeAccuracy = MailingGeocodeAccuracy;
-    }
-
-    // MailingAddress
-    private org.apache.camel.component.salesforce.api.dto.Address MailingAddress;
-
-    @JsonProperty("MailingAddress")
-    public org.apache.camel.component.salesforce.api.dto.Address getMailingAddress() {
-        return this.MailingAddress;
-    }
-
-    @JsonProperty("MailingAddress")
-    public void setMailingAddress(org.apache.camel.component.salesforce.api.dto.Address MailingAddress) {
-        this.MailingAddress = MailingAddress;
-    }
-
-    // Phone
-    private String Phone;
-
-    @JsonProperty("Phone")
-    public String getPhone() {
-        return this.Phone;
-    }
-
-    @JsonProperty("Phone")
-    public void setPhone(String Phone) {
-        this.Phone = Phone;
-    }
-
-    // Fax
-    private String Fax;
-
-    @JsonProperty("Fax")
-    public String getFax() {
-        return this.Fax;
-    }
-
-    @JsonProperty("Fax")
-    public void setFax(String Fax) {
-        this.Fax = Fax;
-    }
-
-    // MobilePhone
-    private String MobilePhone;
-
-    @JsonProperty("MobilePhone")
-    public String getMobilePhone() {
-        return this.MobilePhone;
-    }
-
-    @JsonProperty("MobilePhone")
-    public void setMobilePhone(String MobilePhone) {
-        this.MobilePhone = MobilePhone;
-    }
-
-    // HomePhone
-    private String HomePhone;
-
-    @JsonProperty("HomePhone")
-    public String getHomePhone() {
-        return this.HomePhone;
-    }
-
-    @JsonProperty("HomePhone")
-    public void setHomePhone(String HomePhone) {
-        this.HomePhone = HomePhone;
-    }
-
-    // OtherPhone
-    private String OtherPhone;
-
-    @JsonProperty("OtherPhone")
-    public String getOtherPhone() {
-        return this.OtherPhone;
-    }
-
-    @JsonProperty("OtherPhone")
-    public void setOtherPhone(String OtherPhone) {
-        this.OtherPhone = OtherPhone;
-    }
-
-    // AssistantPhone
-    private String AssistantPhone;
-
-    @JsonProperty("AssistantPhone")
-    public String getAssistantPhone() {
-        return this.AssistantPhone;
-    }
-
-    @JsonProperty("AssistantPhone")
-    public void setAssistantPhone(String AssistantPhone) {
-        this.AssistantPhone = AssistantPhone;
-    }
-
-    // ReportsToId
-    private String ReportsToId;
-
-    @JsonProperty("ReportsToId")
-    public String getReportsToId() {
-        return this.ReportsToId;
-    }
-
-    @JsonProperty("ReportsToId")
-    public void setReportsToId(String ReportsToId) {
-        this.ReportsToId = ReportsToId;
-    }
-
-    // Email
-    private String Email;
-
-    @JsonProperty("Email")
-    public String getEmail() {
-        return this.Email;
-    }
-
-    @JsonProperty("Email")
-    public void setEmail(String Email) {
-        this.Email = Email;
-    }
-
-    // Title
-    private String Title;
-
-    @JsonProperty("Title")
-    public String getTitle() {
-        return this.Title;
-    }
-
-    @JsonProperty("Title")
-    public void setTitle(String Title) {
-        this.Title = Title;
-    }
-
-    // Department
-    private String Department;
-
-    @JsonProperty("Department")
-    public String getDepartment() {
-        return this.Department;
-    }
-
-    @JsonProperty("Department")
-    public void setDepartment(String Department) {
-        this.Department = Department;
-    }
-
-    // AssistantName
-    private String AssistantName;
-
-    @JsonProperty("AssistantName")
-    public String getAssistantName() {
-        return this.AssistantName;
-    }
-
-    @JsonProperty("AssistantName")
-    public void setAssistantName(String AssistantName) {
-        this.AssistantName = AssistantName;
-    }
-
-    // LeadSource
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_LeadSourceEnum LeadSource;
-
-    @JsonProperty("LeadSource")
-    public Contact_LeadSourceEnum getLeadSource() {
-        return this.LeadSource;
-    }
-
-    @JsonProperty("LeadSource")
-    public void setLeadSource(Contact_LeadSourceEnum LeadSource) {
-        this.LeadSource = LeadSource;
-    }
-
-    // Birthdate
-    private java.time.ZonedDateTime Birthdate;
-
-    @JsonProperty("Birthdate")
-    public java.time.ZonedDateTime getBirthdate() {
-        return this.Birthdate;
-    }
-
-    @JsonProperty("Birthdate")
-    public void setBirthdate(java.time.ZonedDateTime Birthdate) {
-        this.Birthdate = Birthdate;
-    }
-
-    // Description
-    private String Description;
-
-    @JsonProperty("Description")
-    public String getDescription() {
-        return this.Description;
-    }
-
-    @JsonProperty("Description")
-    public void setDescription(String Description) {
-        this.Description = Description;
-    }
-
-    // LastCURequestDate
-    private java.time.ZonedDateTime LastCURequestDate;
-
-    @JsonProperty("LastCURequestDate")
-    public java.time.ZonedDateTime getLastCURequestDate() {
-        return this.LastCURequestDate;
-    }
-
-    @JsonProperty("LastCURequestDate")
-    public void setLastCURequestDate(java.time.ZonedDateTime LastCURequestDate) {
-        this.LastCURequestDate = LastCURequestDate;
-    }
-
-    // LastCUUpdateDate
-    private java.time.ZonedDateTime LastCUUpdateDate;
-
-    @JsonProperty("LastCUUpdateDate")
-    public java.time.ZonedDateTime getLastCUUpdateDate() {
-        return this.LastCUUpdateDate;
-    }
-
-    @JsonProperty("LastCUUpdateDate")
-    public void setLastCUUpdateDate(java.time.ZonedDateTime LastCUUpdateDate) {
-        this.LastCUUpdateDate = LastCUUpdateDate;
-    }
-
-    // EmailBouncedReason
-    private String EmailBouncedReason;
-
-    @JsonProperty("EmailBouncedReason")
-    public String getEmailBouncedReason() {
-        return this.EmailBouncedReason;
-    }
-
-    @JsonProperty("EmailBouncedReason")
-    public void setEmailBouncedReason(String EmailBouncedReason) {
-        this.EmailBouncedReason = EmailBouncedReason;
-    }
-
-    // EmailBouncedDate
-    private java.time.ZonedDateTime EmailBouncedDate;
-
-    @JsonProperty("EmailBouncedDate")
-    public java.time.ZonedDateTime getEmailBouncedDate() {
-        return this.EmailBouncedDate;
-    }
-
-    @JsonProperty("EmailBouncedDate")
-    public void setEmailBouncedDate(java.time.ZonedDateTime EmailBouncedDate) {
-        this.EmailBouncedDate = EmailBouncedDate;
-    }
-
-    // IsEmailBounced
-    private Boolean IsEmailBounced;
-
-    @JsonProperty("IsEmailBounced")
-    public Boolean getIsEmailBounced() {
-        return this.IsEmailBounced;
-    }
-
-    @JsonProperty("IsEmailBounced")
-    public void setIsEmailBounced(Boolean IsEmailBounced) {
-        this.IsEmailBounced = IsEmailBounced;
-    }
-
-    // PhotoUrl
-    private String PhotoUrl;
-
-    @JsonProperty("PhotoUrl")
-    public String getPhotoUrl() {
-        return this.PhotoUrl;
-    }
-
-    @JsonProperty("PhotoUrl")
-    public void setPhotoUrl(String PhotoUrl) {
-        this.PhotoUrl = PhotoUrl;
-    }
-
-    // Jigsaw
-    private String Jigsaw;
-
-    @JsonProperty("Jigsaw")
-    public String getJigsaw() {
-        return this.Jigsaw;
-    }
-
-    @JsonProperty("Jigsaw")
-    public void setJigsaw(String Jigsaw) {
-        this.Jigsaw = Jigsaw;
-    }
-
-    // JigsawContactId
-    private String JigsawContactId;
-
-    @JsonProperty("JigsawContactId")
-    public String getJigsawContactId() {
-        return this.JigsawContactId;
-    }
-
-    @JsonProperty("JigsawContactId")
-    public void setJigsawContactId(String JigsawContactId) {
-        this.JigsawContactId = JigsawContactId;
-    }
-
-    // CleanStatus
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_CleanStatusEnum CleanStatus;
-
-    @JsonProperty("CleanStatus")
-    public Contact_CleanStatusEnum getCleanStatus() {
-        return this.CleanStatus;
-    }
-
-    @JsonProperty("CleanStatus")
-    public void setCleanStatus(Contact_CleanStatusEnum CleanStatus) {
-        this.CleanStatus = CleanStatus;
-    }
-
-    // Level__c
-    @XStreamConverter(PicklistEnumConverter.class)
-    private Contact_LevelEnum Level__c;
-
-    @JsonProperty("Level__c")
-    public Contact_LevelEnum getLevel__c() {
-        return this.Level__c;
-    }
-
-    @JsonProperty("Level__c")
-    public void setLevel__c(Contact_LevelEnum Level__c) {
-        this.Level__c = Level__c;
-    }
-
-    // Languages__c
-    private String Languages__c;
-
-    @JsonProperty("Languages__c")
-    public String getLanguages__c() {
-        return this.Languages__c;
-    }
-
-    @JsonProperty("Languages__c")
-    public void setLanguages__c(String Languages__c) {
-        this.Languages__c = Languages__c;
-    }
-
-    // TwitterScreenName__c
-    private String TwitterScreenName__c;
-
-    @JsonProperty("TwitterScreenName__c")
-    public String getTwitterScreenName__c() {
-        return this.TwitterScreenName__c;
-    }
-
-    @JsonProperty("TwitterScreenName__c")
-    public void setTwitterScreenName__c(String TwitterScreenName__c) {
-        this.TwitterScreenName__c = TwitterScreenName__c;
-    }
-
-
-    @Override
-    public final SObjectDescription description() {
-        return DESCRIPTION;
-    }
-
-    private static SObjectDescription createSObjectDescription() {
-        final SObjectDescription description = new SObjectDescription();
-
-
-        description.setMergeable(true);
-        description.setCreateable(true);
-        description.setQueryable(true);
-        description.setLabel("Contact");
-        description.setReplicateable(true);
-
-        final List<RecordTypeInfo> recordTypeInfos1 = new ArrayList<>();
-        description.setRecordTypeInfos(recordTypeInfos1);
-
-        final RecordTypeInfo recordTypeInfo1 = new RecordTypeInfo();
-        recordTypeInfos1.add(recordTypeInfo1);
-
-        recordTypeInfo1.setDefaultRecordTypeMapping(true);
-        recordTypeInfo1.setRecordTypeId("012000000000000AAA");
-        recordTypeInfo1.setAvailable(true);
-
-        final InfoUrls infoUrls1 = new InfoUrls();
-        infoUrls1.setLayout("/services/data/v37.0/sobjects/Contact/describe/layouts/012000000000000AAA");
-        recordTypeInfo1.setUrls(infoUrls1);
-        recordTypeInfo1.setName("Master");
-
-
-        description.setName("Contact");
-        description.setLayoutable(true);
-        description.setDeprecatedAndHidden(false);
-        description.setMruEnabled(true);
-        description.setSearchable(true);
-        description.setFeedEnabled(true);
-        description.setRetrieveable(true);
-        description.setCustomSetting(false);
-        description.setKeyPrefix("003");
-        description.setUndeletable(true);
-        description.setSearchLayoutable("true");
-        description.setTriggerable(true);
-        description.setCustom(false);
-
-        final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
-        sObjectDescriptionUrls1.setDescribe("/services/data/v37.0/sobjects/Contact/describe");
-        sObjectDescriptionUrls1.setLayouts("/services/data/v37.0/sobjects/Contact/describe/layouts");
-        sObjectDescriptionUrls1.setSobject("/services/data/v37.0/sobjects/Contact");
-        sObjectDescriptionUrls1.setQuickActions("/services/data/v37.0/sobjects/Contact/quickActions");
-        sObjectDescriptionUrls1.setUiEditTemplate("https://na35.salesforce.com/{ID}/e");
-        sObjectDescriptionUrls1.setDefaultValues("/services/data/v37.0/sobjects/Contact/defaultValues?recordTypeId&fields");
-        sObjectDescriptionUrls1.setRowTemplate("/services/data/v37.0/sobjects/Contact/{ID}");
-        sObjectDescriptionUrls1.setListviews("/services/data/v37.0/sobjects/Contact/listviews");
-        sObjectDescriptionUrls1.setCompactLayouts("/services/data/v37.0/sobjects/Contact/describe/compactLayouts");
-        sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v37.0/sobjects/Contact/describe/approvalLayouts");
-        sObjectDescriptionUrls1.setUiNewRecord("https://na35.salesforce.com/003/e");
-        sObjectDescriptionUrls1.setUiDetailTemplate("https://na35.salesforce.com/{ID}");
-        description.setUrls(sObjectDescriptionUrls1);
-        description.setCompactLayoutable(true);
-
-        final List<SObjectField> fields1 = new ArrayList<>();
-        description.setFields(fields1);
-
-        final SObjectField sObjectField1 = new SObjectField();
-        fields1.add(sObjectField1);
-
-        sObjectField1.setWriteRequiresMasterRead(false);
-        sObjectField1.setNillable(false);
-        sObjectField1.setCreateable(false);
-        sObjectField1.setEncrypted(false);
-        sObjectField1.setDigits("0");
-        sObjectField1.setDependentPicklist(false);
-        sObjectField1.setLabel("Contact ID");
-        sObjectField1.setHighScaleNumber(false);
-        sObjectField1.setDisplayLocationInDecimal(false);
-        sObjectField1.setName("Id");
-        sObjectField1.setHtmlFormatted(false);
-        sObjectField1.setDeprecatedAndHidden(false);
-        sObjectField1.setRestrictedPicklist(false);
-        sObjectField1.setNameField(false);
-        sObjectField1.setCaseSensitive(false);
-        sObjectField1.setPermissionable(false);
-        sObjectField1.setCascadeDelete(false);
-        sObjectField1.setDefaultedOnCreate(true);
-        sObjectField1.setExternalId(false);
-        sObjectField1.setSoapType("tns:ID");
-        sObjectField1.setGroupable(true);
-        sObjectField1.setCustom(false);
-        sObjectField1.setScale(0);
-        sObjectField1.setCalculated(false);
-        sObjectField1.setRestrictedDelete(false);
-        sObjectField1.setNamePointing(false);
-        sObjectField1.setIdLookup(true);
-        sObjectField1.setType("id");
-        sObjectField1.setSortable(true);
-        sObjectField1.setLength(18);
-        sObjectField1.setPrecision(0);
-        sObjectField1.setByteLength(18);
-        sObjectField1.setQueryByDistance(false);
-        sObjectField1.setFilterable(true);
-        sObjectField1.setUpdateable(false);
-        sObjectField1.setUnique(false);
-        sObjectField1.setAutoNumber(false);
-
-        final SObjectField sObjectField2 = new SObjectField();
-        fields1.add(sObjectField2);
-
-        sObjectField2.setWriteRequiresMasterRead(false);
-        sObjectField2.setNillable(false);
-        sObjectField2.setCreateable(false);
-        sObjectField2.setEncrypted(false);
-        sObjectField2.setDigits("0");
-        sObjectField2.setDependentPicklist(false);
-        sObjectField2.setLabel("Deleted");
-        sObjectField2.setHighScaleNumber(false);
-        sObjectField2.setDisplayLocationInDecimal(false);
-        sObjectField2.setName("IsDeleted");
-        sObjectField2.setHtmlFormatted(false);
-        sObjectField2.setDeprecatedAndHidden(false);
-        sObjectField2.setRestrictedPicklist(false);
-        sObjectField2.setNameField(false);
-        sObjectField2.setCaseSensitive(false);
-        sObjectField2.setPermissionable(false);
-        sObjectField2.setCascadeDelete(false);
-        sObjectField2.setDefaultedOnCreate(true);
-        sObjectField2.setExternalId(false);
-        sObjectField2.setSoapType("xsd:boolean");
-        sObjectField2.setGroupable(true);
-        sObjectField2.setCustom(false);
-        sObjectField2.setScale(0);
-        sObjectField2.setCalculated(false);
-        sObjectField2.setRestrictedDelete(false);
-        sObjectField2.setNamePointing(false);
-        sObjectField2.setIdLookup(false);
-        sObjectField2.setType("boolean");
-        sObjectField2.setSortable(true);
-        sObjectField2.setLength(0);
-        sObjectField2.setPrecision(0);
-        sObjectField2.setByteLength(0);
-        sObjectField2.setQueryByDistance(false);
-        sObjectField2.setFilterable(true);
-        sObjectField2.setUpdateable(false);
-        sObjectField2.setUnique(false);
-        sObjectField2.setAutoNumber(false);
-
-        final SObjectField sObjectField3 = new SObjectField();
-        fields1.add(sObjectField3);
-
-        sObjectField3.setWriteRequiresMasterRead(false);
-        sObjectField3.setNillable(true);
-        sObjectField3.setCreateable(false);
-        sObjectField3.setEncrypted(false);
-        sObjectField3.setDigits("0");
-        sObjectField3.setDependentPicklist(false);
-        sObjectField3.setLabel("Master Record ID");
-        sObjectField3.setHighScaleNumber(false);
-        sObjectField3.setDisplayLocationInDecimal(false);
-        sObjectField3.setName("MasterRecordId");
-        sObjectField3.setHtmlFormatted(false);
-        sObjectField3.setDeprecatedAndHidden(false);
-        sObjectField3.setRestrictedPicklist(false);
-        sObjectField3.setNameField(false);
-        sObjectField3.setCaseSensitive(false);
-        sObjectField3.setPermissionable(false);
-        sObjectField3.setCascadeDelete(false);
-        sObjectField3.setDefaultedOnCreate(false);
-        sObjectField3.setExternalId(false);
-        sObjectField3.setSoapType("tns:ID");
-        sObjectField3.setGroupable(true);
-        sObjectField3.setCustom(false);
-        sObjectField3.setScale(0);
-        sObjectField3.setCalculated(false);
-        sObjectField3.setRestrictedDelete(false);
-        sObjectField3.setNamePointing(false);
-        sObjectField3.setIdLookup(false);
-        sObjectField3.setType("reference");
-
-        final List<String> referenceTo1 = new ArrayList<>();
-        sObjectField3.setReferenceTo(referenceTo1);
-
-        referenceTo1.add("Contact");
-
-        sObjectField3.setRelationshipName("MasterRecord");
-        sObjectField3.setSortable(true);
-        sObjectField3.setLength(18);
-        sObjectField3.setPrecision(0);
-        sObjectField3.setByteLength(18);
-        sObjectField3.setQueryByDistance(false);
-        sObjectField3.setFilterable(true);
-        sObjectField3.setUpdateable(false);
-        sObjectField3.setUnique(false);
-        sObjectField3.setAutoNumber(false);
-
-        final SObjectField sObjectField4 = new SObjectField();
-        fields1.add(sObjectField4);
-
-        sObjectField4.setWriteRequiresMasterRead(false);
-        sObjectField4.setNillable(true);
-        sObjectField4.setCreateable(true);
-        sObjectField4.setEncrypted(false);
-        sObjectField4.setDigits("0");
-        sObjectField4.setDependentPicklist(false);
-        sObjectField4.setLabel("Account ID");
-        sObjectField4.setHighScaleNumber(false);
-        sObjectField4.setDisplayLocationInDecimal(false);
-        sObjectField4.setName("AccountId");
-        sObjectField4.setHtmlFormatted(false);
-        sObjectField4.setDeprecatedAndHidden(false);
-        sObjectField4.setRestrictedPicklist(false);
-        sObjectField4.setNameField(false);
-        sObjectField4.setCaseSensitive(false);
-        sObjectField4.setPermissionable(true);
-        sObjectField4.setCascadeDelete(false);
-        sObjectField4.setDefaultedOnCreate(false);
-        sObjectField4.setExternalId(false);
-        sObjectField4.setSoapType("tns:ID");
-        sObjectField4.setGroupable(true);
-        sObjectField4.setCustom(false);
-        sObjectField4.setScale(0);
-        sObjectField4.setCalculated(false);
-        sObjectField4.setRestrictedDelete(false);
-        sObjectField4.setNamePointing(false);
-        sObjectField4.setIdLookup(false);
-        sObjectField4.setType("reference");
-
-        final List<String> referenceTo2 = new ArrayList<>();
-        sObjectField4.setReferenceTo(referenceTo2);
-
-        referenceTo2.add("Account");
-
-        sObjectField4.setRelationshipName("Account");
-        sObjectField4.setSortable(true);
-        sObjectField4.setLength(18);
-        sObjectField4.setPrecision(0);
-        sObjectField4.setByteLength(18);
-        sObjectField4.setQueryByDistance(false);
-        sObjectField4.setFilterable(true);
-        sObjectField4.setUpdateable(true);
-        sObjectField4.setUnique(false);
-        sObjectField4.setAutoNumber(false);
-
-        final SObjectField sObjectField5 = new SObjectField();
-        fields1.add(sObjectField5);
-
-        sObjectField5.setWriteRequiresMasterRead(false);
-        sObjectField5.setNillable(false);
-        sObjectField5.setCreateable(true);
-        sObjectField5.setEncrypted(false);
-        sObjectField5.setDigits("0");
-        sObjectField5.setExtraTypeInfo("personname");
-        sObjectField5.setDependentPicklist(false);
-        sObjectField5.setLabel("Last Name");
-        sObjectField5.setHighScaleNumber(false);
-        sObjectField5.setDisplayLocationInDecimal(false);
-        sObjectField5.setName("LastName");
-        sObjectField5.setHtmlFormatted(false);
-        sObjectField5.setDeprecatedAndHidden(false);
-        sObjectField5.setRestrictedPicklist(false);
-        sObjectField5.setNameField(false);
-        sObjectField5.setCaseSensitive(false);
-        sObjectField5.setPermissionable(false);
-        sObjectField5.setCascadeDelete(false);
-        sObjectField5.setDefaultedOnCreate(false);
-        sObjectField5.setExternalId(false);
-        sObjectField5.setSoapType("xsd:string");
-        sObjectField5.setGroupable(true);
-        sObjectField5.setCustom(false);
-        sObjectField5.setScale(0);
-        sObjectField5.setCalculated(false);
-        sObjectField5.setRestrictedDelete(false);
-        sObjectField5.setNamePointing(false);
-        sObjectField5.setIdLookup(false);
-        sObjectField5.setType("string");
-        sObjectField5.setSortable(true);
-        sObjectField5.setLength(80);
-        sObjectField5.setPrecision(0);
-        sObjectField5.setByteLength(240);
-        sObjectField5.setQueryByDistance(false);
-        sObjectField5.setFilterable(true);
-        sObjectField5.setUpdateable(true);
-        sObjectField5.setUnique(false);
-        sObjectField5.setAutoNumber(false);
-
-        final SObjectField sObjectField6 = new SObjectField();
-        fields1.add(sObjectField6);
-
-        sObjectField6.setWriteRequiresMasterRead(false);
-        sObjectField6.setNillable(true);
-        sObjectField6.setCreateable(true);
-        sObjectField6.setEncrypted(false);
-        sObjectField6.setDigits("0");
-        sObjectField6.setExtraTypeInfo("personname");
-        sObjectField6.setDependentPicklist(false);
-        sObjectField6.setLabel("First Name");
-        sObjectField6.setHighScaleNumber(false);
-        sObjectField6.setDisplayLocationInDecimal(false);
-        sObjectField6.setName("FirstName");
-        sObjectField6.setHtmlFormatted(false);
-        sObjectField6.setDeprecatedAndHidden(false);
-        sObjectField6.setRestrictedPicklist(false);
-        sObjectField6.setNameField(false);
-        sObjectField6.setCaseSensitive(false);
-        sObjectField6.setPermissionable(false);
-        sObjectField6.setCascadeDelete(false);
-        sObjectField6.setDefaultedOnCreate(false);
-        sObjectField6.setExternalId(false);
-        sObjectField6.setSoapType("xsd:string");
-        sObjectField6.setGroupable(true);
-        sObjectField6.setCustom(false);
-        sObjectField6.setScale(0);
-        sObjectField6.setCalculated(false);
-        sObjectField6.setRestrictedDelete(false);
-        sObjectField6.setNamePointing(false);
-        sObjectField6.setIdLookup(false);
-        sObjectField6.setType("string");
-        sObjectField6.setSortable(true);
-        sObjectField6.setLength(40);
-        sObjectField6.setPrecision(0);
-        sObjectField6.setByteLength(120);
-        sObjectField6.setQueryByDistance(false);
-        sObjectField6.setFilterable(true);
-        sObjectField6.setUpdateable(true);
-        sObjectField6.setUnique(false);
-        sObjectField6.setAutoNumber(false);
-
-        final SObjectField sObjectField7 = new SObjectField();
-        fields1.add(sObjectField7);
-
-        sObjectField7.setWriteRequiresMasterRead(false);
-        sObjectField7.setNillable(true);
-        sObjectField7.setCreateable(true);
-        sObjectField7.setEncrypted(false);
-        sObjectField7.setDigits("0");
-        sObjectField7.setExtraTypeInfo("personname");
-        sObjectField7.setDependentPicklist(false);
-        sObjectField7.setLabel("Salutation");
-        sObjectField7.setHighScaleNumber(false);
-        sObjectField7.setDisplayLocationInDecimal(false);
-        sObjectField7.setName("Salutation");
-        sObjectField7.setHtmlFormatted(false);
-        sObjectField7.setDeprecatedAndHidden(false);
-        sObjectField7.setRestrictedPicklist(false);
-        sObjectField7.setNameField(false);
-        sObjectField7.setCaseSensitive(false);
-        sObjectField7.setPermissionable(false);
-        sObjectField7.setCascadeDelete(false);
-        sObjectField7.setDefaultedOnCreate(false);
-        sObjectField7.setExternalId(false);
-        sObjectField7.setSoapType("xsd:string");
-        sObjectField7.setGroupable(true);
-        sObjectField7.setCustom(false);
-        sObjectField7.setScale(0);
-        sObjectField7.setCalculated(false);
-        sObjectField7.setRestrictedDelete(false);
-        sObjectField7.setNamePointing(false);
-        sObjectField7.setIdLookup(false);
-        sObjectField7.setType("picklist");
-        sObjectField7.setSortable(true);
-        sObjectField7.setLength(40);
-        sObjectField7.setPrecision(0);
-        sObjectField7.setByteLength(120);
-        sObjectField7.setQueryByDistance(false);
-        sObjectField7.setFilterable(true);
-        sObjectField7.setUpdateable(true);
-        sObjectField7.setUnique(false);
-        sObjectField7.setAutoNumber(false);
-
-        final SObjectField sObjectField8 = new SObjectField();
-        fields1.add(sObjectField8);
-
-        sObjectField8.setWriteRequiresMasterRead(false);
-        sObjectField8.setNillable(false);
-        sObjectField8.setCreateable(false);
-        sObjectField8.setEncrypted(false);
-        sObjectField8.setDigits("0");
-        sObjectField8.setExtraTypeInfo("personname");
-        sObjectField8.setDependentPicklist(false);
-        sObjectField8.setLabel("Full Name");
-        sObjectField8.setHighScaleNumber(false);
-        sObjectField8.setDisplayLocationInDecimal(false);
-        sObjectField8.setName("Name");
-        sObjectField8.setHtmlFormatted(false);
-        sObjectField8.setDeprecatedAndHidden(false);
-        sObjectField8.setRestrictedPicklist(false);
-        sObjectField8.setNameField(true);
-        sObjectField8.setCaseSensitive(false);
-        sObjectField8.setPermissionable(false);
-        sObjectField8.setCascadeDelete(false);
-        sObjectField8.setDefaultedOnCreate(false);
-        sObjectField8.setExternalId(false);
-        sObjectField8.setSoapType("xsd:string");
-        sObjectField8.setGroupable(true);
-        sObjectField8.setCustom(false);
-        sObjectField8.setScale(0);
-        sObjectField8.setCalculated(false);
-        sObjectField8.setRestrictedDelete(false);
-        sObjectField8.setNamePointing(false);
-        sObjectField8.setIdLookup(false);
-        sObjectField8.setType("string");
-        sObjectField8.setSortable(true);
-        sObjectField8.setLength(121);
-        sObjectField8.setPrecision(0);
-        sObjectField8.setByteLength(363);
-        sObjectField8.setQueryByDistance(false);
-        sObjectField8.setFilterable(true);
-        sObjectField8.setUpdateable(false);
-        sObjectField8.setUnique(false);
-        sObjectField8.setAutoNumber(false);
-
-        final SObjectField sObjectField9 = new SObjectField();
-        fields1.add(sObjectField9);
-
-        sObjectField9.setWriteRequiresMasterRead(false);
-        sObjectField9.setNillable(true);
-        sObjectField9.setCreateable(true);
-        sObjectField9.setEncrypted(false);
-        sObjectField9.setDigits("0");
-        sObjectField9.setExtraTypeInfo("plaintextarea");
-        sObjectField9.setDependentPicklist(false);
-        sObjectField9.setLabel("Other Street");
-        sObjectField9.setHighScaleNumber(false);
-        sObjectField9.setDisplayLocationInDecimal(false);
-        sObjectField9.setName("OtherStreet");
-        sObjectField9.setHtmlFormatted(false);
-        sObjectField9.setDeprecatedAndHidden(false);
-        sObjectField9.setRestrictedPicklist(false);
-        sObjectField9.setNameField(false);
-        sObjectField9.setCaseSensitive(false);
-        sObjectField9.setPermissionable(true);
-        sObjectField9.setCascadeDelete(false);
-        sObjectField9.setDefaultedOnCreate(false);
-        sObjectField9.setExternalId(false);
-        sObjectField9.setSoapType("xsd:string");
-        sObjectField9.setGroupable(true);
-        sObjectField9.setCustom(false);
-        sObjectField9.setScale(0);
-        sObjectField9.setCalculated(false);
-        sObjectField9.setRestrictedDelete(false);
-        sObjectField9.setNamePointing(false);
-        sObjectField9.setIdLookup(false);
-        sObjectField9.setType("textarea");
-        sObjectField9.setSortable(true);
-        sObjectField9.setLength(255);
-        sObjectField9.setPrecision(0);
-        sObjectField9.setByteLength(765);
-        sObjectField9.setQueryByDistance(false);
-        sObjectField9.setFilterable(true);
-        sObjectField9.setUpdateable(true);
-        sObjectField9.setUnique(false);
-        sObjectField9.setAutoNumber(false);
-
-        final SObjectField sObjectField10 = new SObjectField();
-        fields1.add(sObjectField10);
-
-        sObjectField10.setWriteRequiresMasterRead(false);
-        sObjectField10.setNillable(true);
-        sObjectField10.setCreateable(true);
-        sObjectField10.setEncrypted(false);
-        sObjectField10.setDigits("0");
-        sObjectField10.setDependentPicklist(false);
-        sObjectField10.setLabel("Other City");
-        sObjectField10.setHighScaleNumber(false);
-        sObjectField10.setDisplayLocationInDecimal(false);
-        sObjectField10.setName("OtherCity");
-        sObjectField10.setHtmlFormatted(false);
-        sObjectField10.setDeprecatedAndHidden(false);
-        sObjectField10.setRestrictedPicklist(false);
-        sObjectField10.setNameField(false);
-        sObjectField10.setCaseSensitive(false);
-        sObjectField10.setPermissionable(true);
-        sObjectField10.setCascadeDelete(false);
-        sObjectField10.setDefaultedOnCreate(false);
-        sObjectField10.setExternalId(false);
-        sObjectField10.setSoapType("xsd:string");
-        sObjectField10.setGroupable(true);
-        sObjectField10.setCustom(false);
-        sObjectField10.setScale(0);
-        sObjectField10.setCalculated(false);
-        sObjectField10.setRestrictedDelete(false);
-        sObjectField10.setNamePointing(false);
-        sObjectField10.setIdLookup(false);
-        sObjectField10.setType("string");
-        sObjectField10.setSortable(true);
-        sObjectField10.setLength(40);
-        sObjectField10.setPrecision(0);
-        sObjectField10.setByteLength(120);
-        sObjectField10.setQueryByDistance(false);
-        sObjectField10.setFilterable(true);
-        sObjectField10.setUpdateable(true);
-        sObjectField10.setUnique(false);
-        sObjectField10.setAutoNumber(false);
-
-        final SObjectField sObjectField11 = new SObjectField();
-        fields1.add(sObjectField11);
-
-        sObjectField11.setWriteRequiresMasterRead(false);
-        sObjectField11.setNillable(true);
-        sObjectField11.setCreateable(true);
-        sObjectField11.setEncrypted(false);
-        sObjectField11.setDigits("0");
-        sObjectField11.setDependentPicklist(false);
-        sObjectField11.setLabel("Other State/Province");
-        sObjectField11.setHighScaleNumber(false);
-        sObjectField11.setDisplayLocationInDecimal(false);
-        sObjectField11.setName("OtherState");
-        sObjectField11.setHtmlFormatted(false);
-        sObjectField11.setDeprecatedAndHidden(false);
-        sObjectField11.setRestrictedPicklist(false);
-        sObjectField11.setNameField(false);
-        sObjectField11.setCaseSensitive(false);
-        sObjectField11.setPermissionable(true);
-        sObjectField11.setCascadeDelete(false);
-        sObjectField11.setDefaultedOnCreate(false);
-        sObjectField11.setExternalId(false);
-        sObjectField11.setSoapType("xsd:string");
-        sObjectField11.setGroupable(true);
-        sObjectField11.setCustom(false);
-        sObjectField11.setScale(0);
-        sObjectField11.setCalculated(false);
-        sObjectField11.setRestrictedDelete(false);
-        sObjectField11.setNamePointing(false);
-        sObjectField11.setIdLookup(false);
-        sObjectField11.setType("string");
-        sObjectField11.setSortable(true);
-        sObjectField11.setLength(80);
-        sObjectField11.setPrecision(0);
-        sObjectField11.setByteLength(240);
-        sObjectField11.setQueryByDistance(false);
-        sObjectField11.setFilterable(true);
-        sObjectField11.setUpdateable(true);
-        sObjectField11.setUnique(false);
-        sObjectField11.setAutoNumber(false);
-
-        final SObjectField sObjectField12 = new SObjectField();
-        fields1.add(sObjectField12);
-
-        sObjectField12.setWriteRequiresMasterRead(false);
-        sObjectField12.setNillable(true);
-        sObjectField12.setCreateable(true);
-        sObjectField12.setEncrypted(false);
-        sObjectField12.setDigits("0");
-        sObjectField12.setDependentPicklist(false);
-        sObjectField12.setLabel("Other Zip/Postal Code");
-        sObjectField12.setHighScaleNumber(false);
-        sObjectField12.setDisplayLocationInDecimal(false);
-        sObjectField12.setName("OtherPostalCode");
-        sObjectField12.setHtmlFormatted(false);
-        sObjectField12.setDeprecatedAndHidden(false);
-        sObjectField12.setRestrictedPicklist(false);
-        sObjectField12.setNameField(false);
-        sObjectField12.setCaseSensitive(false);
-        sObjectField12.setPermissionable(true);
-        sObjectField12.setCascadeDelete(false);
-        sObjectField12.setDefaultedOnCreate(false);
-        sObjectField12.setExternalId(false);
-        sObjectField12.setSoapType("xsd:string");
-        sObjectField12.setGroupable(true);
-        sObjectField12.setCustom(false);
-        sObjectField12.setScale(0);
-        sObjectField12.setCalculated(false);
-        sObjectField12.setRestrictedDelete(false);
-        sObjectField12.setNamePointing(false);
-        sObjectField12.setIdLookup(false);
-        sObjectField12.setType("string");
-        sObjectField12.setSortable(true);
-        sObjectField12.setLength(20);
-        sObjectField12.setPrecision(0);
-        sObjectField12.setByteLength(60);
-        sObjectField12.setQueryByDistance(false);
-        sObjectField12.setFilterable(true);
-        sObjectField12.setUpdateable(true);
-        sObjectField12.setUnique(false);
-        sObjectField12.setAutoNumber(false);
-
-        final SObjectField sObjectField13 = new SObjectField();
-        fields1.add(sObjectField13);
-
-        sObjectField13.setWriteRequiresMasterRead(false);
-        sObjectField13.setNillable(true);
-        sObjectField13.setCreateable(true);
-        sObjectField13.setEncrypted(false);
-        sObjectField13.setDigits("0");
-        sObjectField13.setDependentPicklist(false);
-        sObjectField13.setLabel("Other Country");
-        sObjectField13.setHighScaleNumber(false);
-        sObjectField13.setDisplayLocationInDecimal(false);
-        sObjectField13.setName("OtherCountry");
-        sObjectField13.setHtmlFormatted(false);
-        sObjectField13.setDeprecatedAndHidden(false);
-        sObjectField13.setRestrictedPicklist(false);
-        sObjectField13.setNameField(false);
-        sObjectField13.setCaseSensitive(false);
-        sObjectField13.setPermissionable(true);
-        sObjectField13.setCascadeDelete(false);
-        sObjectField13.setDefaultedOnCreate(false);
-        sObjectField13.setExternalId(false);
-        sObjectField13.setSoapType("xsd:string");
-        sObjectField13.setGroupable(true);
-        sObjectField13.setCustom(false);
-        sObjectField13.setScale(0);
-        sObjectField13.setCalculated(false);
-        sObjectField13.setRestrictedDelete(false);
-        sObjectField13.setNamePointing(false);
-        sObjectField13.setIdLookup(false);
-        sObjectField13.setType("string");
-        sObjectField13.setSortable(true);
-        sObjectField13.setLength(80);
-        sObjectField13.setPrecision(0);
-        sObjectField13.setByteLength(240);
-        sObjectField13.setQueryByDistance(false);
-        sObjectField13.setFilterable(true);
-        sObjectField13.setUpdateable(true);
-        sObjectField13.setUnique(false);
-        sObjectField13.setAutoNumber(false);
-
-        final SObjectField sObjectField14 = new SObjectField();
-        fields1.add(sObjectField14);
-
-        sObjectField14.setWriteRequiresMasterRead(false);
-        sObjectField14.setNillable(true);
-        sObjectField14.setCreateable(true);
-        sObjectField14.setEncrypted(false);
-        sObjectField14.setDigits("0");
-        sObjectField14.setDependentPicklist(false);
-        sObjectField14.setLabel("Other Latitude");
-        sObjectField14.setHighScaleNumber(false);
-        sObjectField14.setDisplayLocationInDecimal(false);
-        sObjectField14.setName("OtherLatitude");
-        sObjectField14.setHtmlFormatted(false);
-        sObjectField14.setDeprecatedAndHidden(false);
-        sObjectField14.setRestrictedPicklist(false);
-        sObjectField14.setNameField(false);
-        sObjectField14.setCaseSensitive(false);
-        sObjectField14.setPermissionable(true);
-        sObjectField14.setCascadeDelete(false);
-        sObjectField14.setDefaultedOnCreate(false);
-        sObjectField14.setExternalId(false);
-        sObjectField14.setSoapType("xsd:double");
-        sObjectField14.setGroupable(false);
-        sObjectField14.setCustom(false);
-        sObjectField14.setScale(15);
-        sObjectField14.setCalculated(false);
-        sObjectField14.setRestrictedDelete(false);
-        sObjectField14.setNamePointing(false);
-        sObjectField14.setIdLookup(false);
-        sObjectField14.setType("double");
-        sObjectField14.setSortable(true);
-        sObjectField14.setLength(0);
-        sObjectField14.setPrecision(18);
-        sObjectField14.setByteLength(0);
-        sObjectField14.setQueryByDistance(false);
-        sObjectField14.setFilterable(true);
-        sObjectField14.setUpdateable(true);
-        sObjectField14.setUnique(false);
-        sObjectField14.setAutoNumber(false);
-
-        final SObjectField sObjectField15 = new SObjectField();
-        fields1.add(sObjectField15);
-
-        sObjectField15.setWriteRequiresMasterRead(false);
-        sObjectField15.setNillable(true);
-        sObjectField15.setCreateable(true);
-        sObjectField15.setEncrypted(false);
-        sObjectField15.setDigits("0");
-        sObjectField15.setDependentPicklist(false);
-        sObjectField15.setLabel("Other Longitude");
-        sObjectField15.setHighScaleNumber(false);
-        sObjectField15.setDisplayLocationInDecimal(false);
-        sObjectField15.setName("OtherLongitude");
-        sObjectField15.setHtmlFormatted(false);
-        sObjectField15.setDeprecatedAndHidden(false);
-        sObjectField15.setRestrictedPicklist(false);
-        sObjectField15.setNameField(false);
-        sObjectField15.setCaseSensitive(false);
-        sObjectField15.setPermissionable(true);
-        sObjectField15.setCascadeDelete(false);
-        sObjectField15.setDefaultedOnCreate(false);
-        sObjectField15.setExternalId(false);
-        sObjectField15.setSoapType("xsd:double");
-        sObjectField15.setGroupable(false);
-        sObjectField15.setCustom(false);
-        sObjectField15.setScale(15);
-        sObjectField15.setCalculated(false);
-        sObjectField15.setRestrictedDelete(false);
-        sObjectField15.setNamePointing(false);
-        sObjectField15.setIdLookup(false);
-        sObjectField15.setType("double");
-        sObjectField15.setSortable(true);
-        sObjectField15.setLength(0);
-        sObjectField15.setPrecision(18);
-        sObjectField15.setByteLength(0);
-        sObjectField15.setQueryByDistance(false);
-        sObjectField15.setFilterable(true);
-        sObjectField15.setUpdateable(true);
-        sObjectField15.setUnique(false);
-        sObjectField15.setAutoNumber(false);
-
-        final SObjectField sObjectField16 = new SObjectField();
-        fields1.add(sObjectField16);
-
-        sObjectField16.setWriteRequiresMasterRead(false);
-        sObjectField16.setNillable(true);
-        sObjectField16.setCreateable(true);
-        sObjectField16.setEncrypted(false);
-        sObjectField16.setDigits("0");
-        sObjectField16.setDependentPicklist(false);
-        sObjectField16.setLabel("Other Geocode Accuracy");
-        sObjectField16.setHighScaleNumber(false);
-        sObjectField16.setDisplayLocationInDecimal(false);
-        sObjectField16.setName("OtherGeocodeAccuracy");
-        sObjectField16.setHtmlFormatted(false);
-        sObjectField16.setDeprecatedAndHidden(false);
-        sObjectField16.setRestrictedPicklist(true);
-        sObjectField16.setNameField(false);
-        sObjectField16.setCaseSensitive(false);
-        sObjectField16.setPermissionable(true);
-        sObjectField16.setCascadeDelete(false);
-        sObjectField16.setDefaultedOnCreate(false);
-        sObjectField16.setExternalId(false);
-        sObjectField16.setSoapType("xsd:string");
-        sObjectField16.setGroupable(true);
-        sObjectField16.setCustom(false);
-        sObjectField16.setScale(0);
-        sObjectField16.setCalculated(false);
-        sObjectField16.setRestrictedDelete(false);
-        sObjectField16.setNamePointing(false);
-        sObjectField16.setIdLookup(false);
-        sObjectField16.setType("picklist");
-        sObjectField16.setSortable(true);
-        sObjectField16.setLength(40);
-        sObjectField16.setPrecision(0);
-        sObjectField16.setByteLength(120);
-        sObjectField16.setQueryByDistance(false);
-        sObjectField16.setFilterable(true);
-        sObjectField16.setUpdateable(true);
-        sObjectField16.setUnique(false);
-        sObjectField16.setAutoNumber(false);
-
-        final SObjectField sObjectField17 = new SObjectField();
-        fields1.add(sObjectField17);
-
-        sObjectField17.setWriteRequiresMasterRead(false);
-        sObjectField17.setNillable(true);
-        sObjectField17.setCreateable(false);
-        sObjectField17.setEncrypted(false);
-        sObjectField17.setDigits("0");
-        sObjectField17.setDependentPicklist(false);
-        sObjectField17.setLabel("Other Address");
-        sObjectField17.setHighScaleNumber(false);
-        sObjectField17.setDisplayLocationInDecimal(false);
-        sObjectField17.setName("OtherAddress");
-        sObjectField17.setHtmlFormatted(false);
-        sObjectField17.setDeprecatedAndHidden(false);
-        sObjectField17.setRestrictedPicklist(false);
-        sObjectField17.setNameField(false);
-        sObjectField17.setCaseSensitive(false);
-        sObjectField17.setPermissionable(true);
-        sObjectField17.setCascadeDelete(false);
-        sObjectField17.setDefaultedOnCreate(false);
-        sObjectField17.setExternalId(false);
-        sObjectField17.setSoapType("urn:address");
-        sObjectField17.setGroupable(false);
-        sObjectField17.setCustom(false);
-        sObjectField17.setScale(0);
-        sObjectField17.setCalculated(false);
-        sObjectField17.setRestrictedDelete(false);
-        sObjectField17.setNamePointing(false);
-        sObjectField17.setIdLookup(false);
-        sObjectField17.setType("address");
-        sObjectField17.setSortable(false);
-        sObjectField17.setLength(0);
-        sObjectField17.setPrecision(0);
-        sObjectField17.setByteLength(0);
-        sObjectField17.setQueryByDistance(true);
-        sObjectField17.setFilterable(true);
-        sObjectField17.setUpdateable(false);
-        sObjectField17.setUnique(false);
-        sObjectField17.setAutoNumber(false);
-
-        final SObjectField sObjectField18 = new SObjectField();
-        fields1.add(sObjectField18);
-
-        sObjectField18.setWriteRequiresMasterRead(false);
-        sObjectField18.setNillable(true);
-        sObjectField18.setCreateable(true);
-        sObjectField18.setEncrypted(false);
-        sObjectField18.setDigits("0");
-        sObjectField18.setExtraTypeInfo("plaintextarea");
-        sObjectField18.setDependentPicklist(false);
-        sObjectField18.setLabel("Mailing Street");
-        sObjectField18.setHighScaleNumber(false);
-        sObjectField18.setDisplayLocationInDecimal(false);
-        sObjectField18.setName("MailingStreet");
-        sObjectField18.setHtmlFormatted(false);
-        sObjectField18.setDeprecatedAndHidden(false);
-        sObjectField18.setRestrictedPicklist(false);
-        sObjectField18.setNameField(false);
-        sObjectField18.setCaseSensitive(false);
-        sObjectField18.setPermissionable(true);
-        sObjectField18.setCascadeDelete(false);
-        sObjectField18.setDefaultedOnCreate(false);
-        sObjectField18.setExternalId(false);
-        sObjectField18.setSoapType("xsd:string");
-        sObjectField18.setGroupable(true);
-        sObjectField18.setCustom(false);
-        sObjectField18.setScale(0);
-        sObjectField18.setCalculated(false);
-        sObjectField18.setRestrictedDelete(false);
-        sObjectField18.setNamePointing(false);
-        sObjectField18.setIdLookup(false);
-        sObjectField18.setType("textarea");
-        sObjectField18.setSortable(true);
-        sObjectField18.setLength(255);
-        sObjectField18.setPrecision(0);
-        sObjectField18.setByteLength(765);
-        sObjectField18.setQueryByDistance(false);
-        sObjectField18.setFilterable(true);
-        sObjectField18.setUpdateable(true);
-        sObjectField18.setUnique(false);
-        sObjectField18.setAutoNumber(false);
-
-        final SObjectField sObjectField19 = new SObjectField();
-        fields1.add(sObjectField19);
-
-        sObjectField19.setWriteRequiresMasterRead(false);
-        sObjectField19.setNillable(true);
-        sObjectField19.setCreateable(true);
-        sObjectField19.setEncrypted(false);
-        sObjectField19.setDigits("0");
-        sObjectField19.setDependentPicklist(false);
-        sObjectField19.setLabel("Mailing City");
-        sObjectField19.setHighScaleNumber(false);
-        sObjectField19.setDisplayLocationInDecimal(false);
-        sObjectField19.setName("MailingCity");
-        sObjectField19.setHtmlFormatted(false);
-        sObjectField19.setDeprecatedAndHidden(false);
-        sObjectField19.setRestrictedPicklist(false);
-        sObjectField19.setNameField(false);
-        sObjectField19.setCaseSensitive(false);
-        sObjectField19.setPermissionable(true);
-        sObjectField19.setCascadeDelete(false);
-        sObjectField19.setDefaultedOnCreate(false);
-        sObjectField19.setExternalId(false);
-        sObjectField19.setSoapType("xsd:string");
-        sObjectField19.setGroupable(true);
-        sObjectField19.setCustom(false);
-        sObjectField19.setScale(0);
-        sObjectField19.setCalculated(false);
-        sObjectField19.setRestrictedDelete(false);
-        sObjectField19.setNamePointing(false);
-        sObjectField19.setIdLookup(false);
-        sObjectField19.setType("string");
-        sObjectField19.setSortable(true);
-        sObjectField19.setLength(40);
-        sObjectField19.setPrecision(0);
-        sObjectField19.setByteLength(120);
-        sObjectField19.setQueryByDistance(false);
-        sObjectField19.setFilterable(true);
-        sObjectField19.setUpdateable(true);
-        sObjectField19.setUnique(false);
-        sObjectField19.setAutoNumber(false);
-
-        final SObjectField sObjectField20 = new SObjectField();
-        fields1.add(sObjectField20);
-
-        sObjectField20.setWriteRequiresMasterRead(false);
-        sObjectField20.setNillable(true);
-        sObjectField20.setCreateable(true);
-        sObjectField20.setEncrypted(false);
-        sObjectField20.setDigits("0");
-        sObjectField20.setDependentPicklist(false);
-        sObjectField20.setLabel("Mailing State/Province");
-        sObjectField20.setHighScaleNumber(false);
-        sObjectField20.setDisplayLocationInDecimal(false);
-        sObjectField20.setName("MailingState");
-        sObjectField20.setHtmlFormatted(false);
-        sObjectField20.setDeprecatedAndHidden(false);
-        sObjectField20.setRestrictedPicklist(false);
-        sObjectField20.setNameField(false);
-        sObjectField20.setCaseSensitive(false);
-        sObjectField20.setPermissionable(true);
-        sObjectField20.setCascadeDelete(false);
-        sObjectField20.setDefaultedOnCreate(false);
-        sObjectField20.setExternalId(false);
-        sObjectField20.setSoapType("xsd:string");
-        sObjectField20.setGroupable(true);
-        sObjectField20.setCustom(false);
-        sObjectField20.setScale(0);
-        sObjectField20.setCalculated(false);
-        sObjectField20.setRestrictedDelete(false);
-        sObjectField20.setNamePointing(false);
-        sObjectField20.setIdLookup(false);
-        sObjectField20.setType("string");
-        sObjectField20.setSortable(true);
-        sObjectField20.setLength(80);
-        sObjectField20.setPrecision(0);
-        sObjectField20.setByteLength(240);
-        sObjectField20.setQueryByDistance(false);
-        sObjectField20.setFilterable(true);
-        sObjectField20.setUpdateable(true);
-        sObjectField20.setUnique(false);
-        sObjectField20.setAutoNumber(false);
-
-        final SObjectField sObjectField21 = new SObjectField();
-        fields1.add(sObjectField21);
-
-        sObjectField21.setWriteRequiresMasterRead(false);
-        sObjectField21.setNillable(true);
-        sObjectField21.setCreateable(true);
-        sObjectField21.setEncrypted(false);
-        sObjectField21.setDigits("0");
-        sObjectField21.setDependentPicklist(false);
-        sObjectField21.setLabel("Mailing Zip/Postal Code");
-        sObjectField21.setHighScaleNumber(false);
-        sObjectField21.setDisplayLocationInDecimal(false);
-        sObjectField21.setName("MailingPostalCode");
-        sObjectField21.setHtmlFormatted(false);
-        sObjectField21.setDeprecatedAndHidden(false);
-        sObjectField21.setRestrictedPicklist(false);
-        sObjectField21.setNameField(false);
-        sObjectField21.setCaseSensitive(false);
-        sObjectField21.setPermissionable(true);
-        sObjectField21.setCascadeDelete(false);
-        sObjectField21.setDefaultedOnCreate(false);
-        sObjectField21.setExternalId(false);
-        sObjectField21.setSoapType("xsd:string");
-        sObjectField21.setGroupable(true);
-        sObjectField21.setCustom(false);
-        sObjectField21.setScale(0);
-        sObjectField21.setCalculated(false);
-        sObjectField21.setRestrictedDelete(false);
-        sObjectField21.setNamePointing(false);
-        sObjectField21.setIdLookup(false);
-        sObjectField21.setType("string");
-        sObjectField21.setSortable(true);
-        sObjectField21.setLength(20);
-        sObjectField21.setPrecision(0);
-        sObjectField21.setByteLength(60);
-        sObjectField21.setQueryByDistance(false);
-        sObjectField21.setFilterable(true);
-        sObjectField21.setUpdateable(true);
-        sObjectField21.setUnique(false);
-        sObjectField21.setAutoNumber(false);
-
-        final SObjectField sObjectField22 = new SObjectField();
-        fields1.add(sObjectField22);
-
-        sObjectField22.setWriteRequiresMasterRead(false);
-        sObjectField22.setNillable(true);
-        sObjectField22.setCreateable(true);
-        sObjectField22.setEncrypted(false);
-        sObjectField22.setDigits("0");
-        sObjectField22.setDependentPicklist(false);
-        sObjectField22.setLabel("Mailing Country");
-        sObjectField22.setHighScaleNumber(false);
-        sObjectField22.setDisplayLocationInDecimal(false);
-        sObjectField22.setName("MailingCountry");
-        sObjectField22.setHtmlFormatted(false);
-        sObjectField22.setDeprecatedAndHidden(false);
-        sObjectField22.setRestrictedPicklist(false);
-        sObjectField22.setNameField(false);
-        sObjectField22.setCaseSensitive(false);
-        sObjectField22.setPermissionable(true);
-        sObjectField22.setCascadeDelete(false);
-        sObjectField22.setDefaultedOnCreate(false);
-        sObjectField22.setExternalId(false);
-        sObjectField22.setSoapType("xsd:string");
-        sObjectField22.setGroupable(true);
-        sObjectField22.setCustom(false);
-        sObjectField22.setScale(0);
-        sObjectField22.setCalculated(false);
-        sObjectField22.setRestrictedDelete(false);
-        sObjectField22.setNamePointing(false);
-        sObjectField22.setIdLookup(false);
-        sObjectField22.setType("string");
-        sObjectField22.setSortable(true);
-        sObjectField22.setLength(80);
-        sObjectField22.setPrecision(0);
-        sObjectField22.setByteLength(240);
-        sObjectField22.setQueryByDistance(false);
-        sObjectField22.setFilterable(true);
-        sObjectField22.setUpdateable(true);
-        sObjectField22.setUnique(false);
-        sObjectField22.setAutoNumber(false);
-
-        final SObjectField sObjectField23 = new SObjectField();
-        fields1.add(sObjectField23);
-
-        sObjectField23.setWriteRequiresMasterRead(false);
-        sObjectField23.setNillable(true);
-        sObjectField23.setCreateable(true);
-        sObjectField23.setEncrypted(false);
-        sObjectField23.setDigits("0");
-        sObjectField23.setDependentPicklist(false);
-        sObjectField23.setLabel("Mailing Latitude");
-        sObjectField23.setHighScaleNumber(false);
-        sObjectField23.setDisplayLocationInDecimal(false);
-        sObjectField23.setName("MailingLatitude");
-        sObjectField23.setHtmlFormatted(false);
-        sObjectField23.setDeprecatedAndHidden(false);
-        sObjectField23.setRestrictedPicklist(false);
-        sObjectField23.setNameField(false);
-        sObjectField23.setCaseSensitive(false);
-        sObjectField23.setPermissionable(true);
-        sObjectField23.setCascadeDelete(false);
-        sObjectField23.setDefaultedOnCreate(false);
-        sObjectField23.setExternalId(false);
-        sObjectField23.setSoapType("xsd:double");
-        sObjectField23.setGroupable(false);
-        sObjectField23.setCustom(false);
-        sObjectField23.setScale(15);
-        sObjectField23.setCalculated(false);
-        sObjectField23.setRestrictedDelete(false);
-        sObjectField23.setNamePointing(false);
-        sObjectField23.setIdLookup(false);
-        sObjectField23.setType("double");
-        sObjectField23.setSortable(true);
-        sObjectField23.setLength(0);
-        sObjectField23.setPrecision(18);
-        sObjectField23.setByteLength(0);
-        sObjectField23.setQueryByDistance(false);
-        sObjectField23.setFilterable(true);
-        sObjectField23.setUpdateable(true);
-        sObjectField23.setUnique(false);
-        sObjectField23.setAutoNumber(false);
-
-        final SObjectField sObjectField24 = new SObjectField();
-        fields1.add(sObjectField24);
-
-        sObjectField24.setWriteRequiresMasterRead(false);
-        sObjectField24.setNillable(true);
-        sObjectField24.setCreateable(true);
-        sObjectField24.setEncrypted(false);
-        sObjectField24.setDigits("0");
-        sObjectField24.setDependentPicklist(false);
-        sObjectField24.setLabel("Mailing Longitude");
-        sObjectField24.setHighScaleNumber(false);
-        sObjectField24.setDisplayLocationInDecimal(false);
-        sObjectField24.setName("MailingLongitude");
-        sObjectField24.setHtmlFormatted(false);
-        sObjectField24.setDeprecatedAndHidden(false);
-        sObjectField24.setRestrictedPicklist(false);
-        sObjectField24.setNameField(false);
-        sObjectField24.setCaseSensitive(false);
-        sObjectField24.setPermissionable(true);
-        sObjectField24.setCascadeDelete(false);
-        sObjectField24.setDefaultedOnCreate(false);
-        sObjectField24.setExternalId(false);
-        sObjectField24.setSoapType("xsd:double");
-        sObjectField24.setGroupable(false);
-        sObjectField24.setCustom(false);
-        sObjectField24.setScale(15);
-        sObjectField24.setCalculated(false);
-        sObjectField24.setRestrictedDelete(false);
-        sObjectField24.setNamePointing(false);
-        sObjectField24.setIdLookup(false);
-        sObjectField24.setType("double");
-        sObjectField24.setSortable(true);
-        sObjectField24.setLength(0);
-        sObjectField24.setPrecision(18);
-        sObjectField24.setByteLength(0);
-        sObjectField24.setQueryByDistance(false);
-        sObjectField24.setFilterable(true);
-        sObjectField24.setUpdateable(true);
-        sObjectField24.setUnique(false);
-        sObjectField24.setAutoNumber(false);
-
-        final SObjectField sObjectField25 = new SObjectField();
-        fields1.add(sObjectField25);
-
-        sObjectField25.setWriteRequiresMasterRead(false);
-        sObjectField25.setNillable(true);
-        sObjectField25.setCreateable(true);
-        sObjectField25.setEncrypted(false);
-        sObjectField25.setDigits("0");
-        sObjectField25.setDependentPicklist(false);
-        sObjectField25.setLabel("Mailing Geocode Accuracy");
-        sObjectField25.setHighScaleNumber(false);
-        sObjectField25.setDisplayLocationInDecimal(false);
-        sObjectField25.setName("MailingGeocodeAccuracy");
-        sObjectField25.setHtmlFormatted(false);
-        sObjectField25.setDeprecatedAndHidden(false);
-        sObjectField25.setRestrictedPicklist(true);
-        sObjectField25.setNameField(false);
-        sObjectField25.setCaseSensitive(false);
... 5820 lines suppressed ...