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

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

commit 3ad401fccb8083153fb58bd78759157b03214fe5
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Apr 8 12:46:10 2020 +0200

    CAMEL-14864: Be able to generate configurer for any pojo. WIP
---
 .../org/apache/camel/spi/PropertiesFunction.java   |   0
 core/camel-main/pom.xml                            |  18 ---
 .../camel/main/ExtendedCamelContextConfigurer.java | 157 ---------------------
 .../apache/camel/configurer/ExtendedCamelContext   |   2 -
 .../camel/main/HystrixConfigurationProperties.java |   3 +
 .../camel/main/MainConfigurationProperties.java    |   3 +
 .../main/Resilience4jConfigurationProperties.java  |   3 +
 .../camel/main/RestConfigurationProperties.java    |   2 +
 .../maven/packaging/GenerateConfigurerMojo.java    |   4 +
 .../camel/maven/packaging/MainConfigurerMojo.java  | 154 --------------------
 10 files changed, 15 insertions(+), 331 deletions(-)

diff --git 
a/core/camel-api/src/generated/java/org/apache/camel/spi/PropertiesFunction.java
 b/core/camel-api/src/main/java/org/apache/camel/spi/PropertiesFunction.java
similarity index 100%
rename from 
core/camel-api/src/generated/java/org/apache/camel/spi/PropertiesFunction.java
rename to 
core/camel-api/src/main/java/org/apache/camel/spi/PropertiesFunction.java
diff --git a/core/camel-main/pom.xml b/core/camel-main/pom.xml
index a13dea6..bcd57da 100644
--- a/core/camel-main/pom.xml
+++ b/core/camel-main/pom.xml
@@ -128,22 +128,4 @@
         </dependency>
     </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-package-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>generate</id>
-                        <goals>
-                            <goal>generate-main-configurer</goal>
-                        </goals>
-                        <phase>process-classes</phase>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
 </project>
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/ExtendedCamelContextConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/ExtendedCamelContextConfigurer.java
deleted file mode 100644
index 2702d26..0000000
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/ExtendedCamelContextConfigurer.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.main;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.ExtendedCamelContext;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer {
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
-        org.apache.camel.ExtendedCamelContext target = 
(org.apache.camel.ExtendedCamelContext) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "allowuseoriginalmessage":
-        case "AllowUseOriginalMessage": 
target.setAllowUseOriginalMessage(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "applicationcontextclassloader":
-        case "ApplicationContextClassLoader": 
target.setApplicationContextClassLoader(property(camelContext, 
java.lang.ClassLoader.class, value)); return true;
-        case "asyncprocessorawaitmanager":
-        case "AsyncProcessorAwaitManager": 
target.setAsyncProcessorAwaitManager(property(camelContext, 
org.apache.camel.spi.AsyncProcessorAwaitManager.class, value)); return true;
-        case "autostartup":
-        case "AutoStartup": target.setAutoStartup(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "backlogtracing":
-        case "BacklogTracing": target.setBacklogTracing(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "beanintrospection":
-        case "BeanIntrospection": 
target.setBeanIntrospection(property(camelContext, 
org.apache.camel.spi.BeanIntrospection.class, value)); return true;
-        case "caseinsensitiveheaders":
-        case "CaseInsensitiveHeaders": 
target.setCaseInsensitiveHeaders(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "classresolver":
-        case "ClassResolver": target.setClassResolver(property(camelContext, 
org.apache.camel.spi.ClassResolver.class, value)); return true;
-        case "componentnameresolver":
-        case "ComponentNameResolver": 
target.setComponentNameResolver(property(camelContext, 
org.apache.camel.spi.ComponentNameResolver.class, value)); return true;
-        case "componentresolver":
-        case "ComponentResolver": 
target.setComponentResolver(property(camelContext, 
org.apache.camel.spi.ComponentResolver.class, value)); return true;
-        case "configurerresolver":
-        case "ConfigurerResolver": 
target.setConfigurerResolver(property(camelContext, 
org.apache.camel.spi.ConfigurerResolver.class, value)); return true;
-        case "dataformatresolver":
-        case "DataFormatResolver": 
target.setDataFormatResolver(property(camelContext, 
org.apache.camel.spi.DataFormatResolver.class, value)); return true;
-        case "debugger":
-        case "Debugger": target.setDebugger(property(camelContext, 
org.apache.camel.spi.Debugger.class, value)); return true;
-        case "debugging":
-        case "Debugging": target.setDebugging(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "delayer":
-        case "Delayer": target.setDelayer(property(camelContext, 
java.lang.Long.class, value)); return true;
-        case "errorhandlerfactory":
-        case "ErrorHandlerFactory": 
target.setErrorHandlerFactory(property(camelContext, 
org.apache.camel.ErrorHandlerFactory.class, value)); return true;
-        case "eventnotificationapplicable":
-        case "EventNotificationApplicable": 
target.setEventNotificationApplicable(property(camelContext, boolean.class, 
value)); return true;
-        case "executorservicemanager":
-        case "ExecutorServiceManager": 
target.setExecutorServiceManager(property(camelContext, 
org.apache.camel.spi.ExecutorServiceManager.class, value)); return true;
-        case "factoryfinderresolver":
-        case "FactoryFinderResolver": 
target.setFactoryFinderResolver(property(camelContext, 
org.apache.camel.spi.FactoryFinderResolver.class, value)); return true;
-        case "globaloptions":
-        case "GlobalOptions": target.setGlobalOptions(property(camelContext, 
java.util.Map.class, value)); return true;
-        case "headersmapfactory":
-        case "HeadersMapFactory": 
target.setHeadersMapFactory(property(camelContext, 
org.apache.camel.spi.HeadersMapFactory.class, value)); return true;
-        case "inflightrepository":
-        case "InflightRepository": 
target.setInflightRepository(property(camelContext, 
org.apache.camel.spi.InflightRepository.class, value)); return true;
-        case "injector":
-        case "Injector": target.setInjector(property(camelContext, 
org.apache.camel.spi.Injector.class, value)); return true;
-        case "languageresolver":
-        case "LanguageResolver": 
target.setLanguageResolver(property(camelContext, 
org.apache.camel.spi.LanguageResolver.class, value)); return true;
-        case "loadtypeconverters":
-        case "LoadTypeConverters": 
target.setLoadTypeConverters(property(camelContext, java.lang.Boolean.class, 
value)); return true;
-        case "logexhaustedmessagebody":
-        case "LogExhaustedMessageBody": 
target.setLogExhaustedMessageBody(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "logmask":
-        case "LogMask": target.setLogMask(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "mdcloggingkeyspattern":
-        case "MDCLoggingKeysPattern": 
target.setMDCLoggingKeysPattern(property(camelContext, java.lang.String.class, 
value)); return true;
-        case "managementname":
-        case "ManagementName": target.setManagementName(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "managementnamestrategy":
-        case "ManagementNameStrategy": 
target.setManagementNameStrategy(property(camelContext, 
org.apache.camel.spi.ManagementNameStrategy.class, value)); return true;
-        case "managementstrategy":
-        case "ManagementStrategy": 
target.setManagementStrategy(property(camelContext, 
org.apache.camel.spi.ManagementStrategy.class, value)); return true;
-        case "messagehistory":
-        case "MessageHistory": target.setMessageHistory(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "messagehistoryfactory":
-        case "MessageHistoryFactory": 
target.setMessageHistoryFactory(property(camelContext, 
org.apache.camel.spi.MessageHistoryFactory.class, value)); return true;
-        case "modeljaxbcontextfactory":
-        case "ModelJAXBContextFactory": 
target.setModelJAXBContextFactory(property(camelContext, 
org.apache.camel.spi.ModelJAXBContextFactory.class, value)); return true;
-        case "modeltoxmldumper":
-        case "ModelToXMLDumper": 
target.setModelToXMLDumper(property(camelContext, 
org.apache.camel.spi.ModelToXMLDumper.class, value)); return true;
-        case "name":
-        case "Name": target.setName(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "namestrategy":
-        case "NameStrategy": target.setNameStrategy(property(camelContext, 
org.apache.camel.spi.CamelContextNameStrategy.class, value)); return true;
-        case "nodeidfactory":
-        case "NodeIdFactory": target.setNodeIdFactory(property(camelContext, 
org.apache.camel.spi.NodeIdFactory.class, value)); return true;
-        case "packagescanclassresolver":
-        case "PackageScanClassResolver": 
target.setPackageScanClassResolver(property(camelContext, 
org.apache.camel.spi.PackageScanClassResolver.class, value)); return true;
-        case "packagescanresourceresolver":
-        case "PackageScanResourceResolver": 
target.setPackageScanResourceResolver(property(camelContext, 
org.apache.camel.spi.PackageScanResourceResolver.class, value)); return true;
-        case "processorfactory":
-        case "ProcessorFactory": 
target.setProcessorFactory(property(camelContext, 
org.apache.camel.spi.ProcessorFactory.class, value)); return true;
-        case "propertiescomponent":
-        case "PropertiesComponent": 
target.setPropertiesComponent(property(camelContext, 
org.apache.camel.spi.PropertiesComponent.class, value)); return true;
-        case "reactiveexecutor":
-        case "ReactiveExecutor": 
target.setReactiveExecutor(property(camelContext, 
org.apache.camel.spi.ReactiveExecutor.class, value)); return true;
-        case "registry":
-        case "Registry": target.setRegistry(property(camelContext, 
org.apache.camel.spi.Registry.class, value)); return true;
-        case "restbindingjaxbdataformatfactory":
-        case "RestBindingJaxbDataFormatFactory": 
target.setRestBindingJaxbDataFormatFactory(property(camelContext, 
org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class, value)); return 
true;
-        case "restconfiguration":
-        case "RestConfiguration": 
target.setRestConfiguration(property(camelContext, 
org.apache.camel.spi.RestConfiguration.class, value)); return true;
-        case "restregistry":
-        case "RestRegistry": target.setRestRegistry(property(camelContext, 
org.apache.camel.spi.RestRegistry.class, value)); return true;
-        case "routecontroller":
-        case "RouteController": 
target.setRouteController(property(camelContext, 
org.apache.camel.spi.RouteController.class, value)); return true;
-        case "runtimecamelcatalog":
-        case "RuntimeCamelCatalog": 
target.setRuntimeCamelCatalog(property(camelContext, 
org.apache.camel.catalog.RuntimeCamelCatalog.class, value)); return true;
-        case "runtimeendpointregistry":
-        case "RuntimeEndpointRegistry": 
target.setRuntimeEndpointRegistry(property(camelContext, 
org.apache.camel.spi.RuntimeEndpointRegistry.class, value)); return true;
-        case "sslcontextparameters":
-        case "SSLContextParameters": 
target.setSSLContextParameters(property(camelContext, 
org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
-        case "shutdownroute":
-        case "ShutdownRoute": target.setShutdownRoute(property(camelContext, 
org.apache.camel.ShutdownRoute.class, value)); return true;
-        case "shutdownrunningtask":
-        case "ShutdownRunningTask": 
target.setShutdownRunningTask(property(camelContext, 
org.apache.camel.ShutdownRunningTask.class, value)); return true;
-        case "shutdownstrategy":
-        case "ShutdownStrategy": 
target.setShutdownStrategy(property(camelContext, 
org.apache.camel.spi.ShutdownStrategy.class, value)); return true;
-        case "streamcaching":
-        case "StreamCaching": target.setStreamCaching(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "streamcachingstrategy":
-        case "StreamCachingStrategy": 
target.setStreamCachingStrategy(property(camelContext, 
org.apache.camel.spi.StreamCachingStrategy.class, value)); return true;
-        case "tracer":
-        case "Tracer": target.setTracer(property(camelContext, 
org.apache.camel.spi.Tracer.class, value)); return true;
-        case "tracing":
-        case "Tracing": target.setTracing(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "tracingpattern":
-        case "TracingPattern": target.setTracingPattern(property(camelContext, 
java.lang.String.class, value)); return true;
-        case "typeconverterregistry":
-        case "TypeConverterRegistry": 
target.setTypeConverterRegistry(property(camelContext, 
org.apache.camel.spi.TypeConverterRegistry.class, value)); return true;
-        case "typeconverterstatisticsenabled":
-        case "TypeConverterStatisticsEnabled": 
target.setTypeConverterStatisticsEnabled(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "unitofworkfactory":
-        case "UnitOfWorkFactory": 
target.setUnitOfWorkFactory(property(camelContext, 
org.apache.camel.spi.UnitOfWorkFactory.class, value)); return true;
-        case "usebreadcrumb":
-        case "UseBreadcrumb": target.setUseBreadcrumb(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "usedatatype":
-        case "UseDataType": target.setUseDataType(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "usemdclogging":
-        case "UseMDCLogging": target.setUseMDCLogging(property(camelContext, 
java.lang.Boolean.class, value)); return true;
-        case "uuidgenerator":
-        case "UuidGenerator": target.setUuidGenerator(property(camelContext, 
org.apache.camel.spi.UuidGenerator.class, value)); return true;
-        case "xmlroutesdefinitionloader":
-        case "XMLRoutesDefinitionLoader": 
target.setXMLRoutesDefinitionLoader(property(camelContext, 
org.apache.camel.spi.XMLRoutesDefinitionLoader.class, value)); return true;
-        default: return false;
-        }
-    }
-
-}
-
diff --git 
a/core/camel-main/src/generated/resources/META-INF/services/org/apache/camel/configurer/ExtendedCamelContext
 
b/core/camel-main/src/generated/resources/META-INF/services/org/apache/camel/configurer/ExtendedCamelContext
deleted file mode 100644
index dcc120a..0000000
--- 
a/core/camel-main/src/generated/resources/META-INF/services/org/apache/camel/configurer/ExtendedCamelContext
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.main.ExtendedCamelContextConfigurer
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
index a86e3df..c4ad458 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
@@ -21,9 +21,12 @@ import java.util.concurrent.Future;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.camel.spi.Configurer;
+
 /**
  * Global configuration for Hystrix EIP circuit breaker.
  */
+@Configurer
 public class HystrixConfigurationProperties {
 
     private final MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
index c5eca6d..eb7180f 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
@@ -16,9 +16,12 @@
  */
 package org.apache.camel.main;
 
+import org.apache.camel.spi.Configurer;
+
 /**
  * Global configuration for Camel Main to setup context name, stream caching 
and other global configurations.
  */
+@Configurer
 public class MainConfigurationProperties extends 
DefaultConfigurationProperties<MainConfigurationProperties> {
 
     private boolean autoConfigurationEnabled = true;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/Resilience4jConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/Resilience4jConfigurationProperties.java
index 35d5c95..cf5bc5d 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/Resilience4jConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/Resilience4jConfigurationProperties.java
@@ -18,9 +18,12 @@ package org.apache.camel.main;
 
 import java.util.concurrent.ForkJoinPool;
 
+import org.apache.camel.spi.Configurer;
+
 /**
  * Global configuration for Resilience EIP circuit breaker.
  */
+@Configurer
 public class Resilience4jConfigurationProperties {
 
     private final MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
index da64bb7..e582fca 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
@@ -18,12 +18,14 @@ package org.apache.camel.main;
 
 import java.util.HashMap;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.support.PatternHelper;
 
 /**
  * Global configuration for Rest DSL.
  */
+@Configurer
 public class RestConfigurationProperties extends RestConfiguration {
 
     private final MainConfigurationProperties parent;
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateConfigurerMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateConfigurerMojo.java
index 55f7265..1527855 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateConfigurerMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateConfigurerMojo.java
@@ -79,6 +79,10 @@ public class GenerateConfigurerMojo extends 
AbstractGeneratorMojo {
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
+        if ("pom".equals(project.getPackaging())) {
+            return;
+        }
+
         if (sourcesOutputDir == null) {
             sourcesOutputDir = new File(project.getBasedir(), 
"src/generated/java");
         }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MainConfigurerMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MainConfigurerMojo.java
deleted file mode 100644
index 533b7d9..0000000
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MainConfigurerMojo.java
+++ /dev/null
@@ -1,154 +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.packaging;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.camel.tooling.model.BaseOptionModel;
-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.springframework.util.ReflectionUtils;
-
-/**
- * Generate configurer classes for camel-main.
- */
-@Mojo(name = "generate-main-configurer", threadSafe = true, defaultPhase = 
LifecyclePhase.PROCESS_CLASSES)
-@Deprecated
-public class MainConfigurerMojo extends AbstractGeneratorMojo {
-
-    private static final String[] CLASS_NAMES = new String[]{
-        "org.apache.camel.main.MainConfigurationProperties",
-        "org.apache.camel.main.HystrixConfigurationProperties",
-        "org.apache.camel.main.Resilience4jConfigurationProperties",
-        "org.apache.camel.main.RestConfigurationProperties",
-        "org.apache.camel.ExtendedCamelContext"};
-
-    /**
-     * The output directory for generated java source code
-     */
-    @Parameter(defaultValue = "${project.basedir}/src/generated/java")
-    protected File srcOutDir;
-
-    @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
-    protected File resourcesOutputDir;
-
-    private DynamicClassLoader projectClassLoader;
-
-    private static class Option extends BaseOptionModel {
-
-        public Option(String name, Class type) {
-            // we just use name, type
-            setName(name);
-            setJavaType(type.getName());
-        }
-    }
-
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        List<String> cp = new ArrayList<>();
-        cp.add(0, project.getBuild().getOutputDirectory());
-        project.getDependencyArtifacts().forEach(a -> {
-            if (a.isResolved() && a.getFile() != null) {
-                cp.add(a.getFile().getPath());
-            }
-        });
-        projectClassLoader = DynamicClassLoader.createDynamicClassLoader(cp);
-
-        for (String fqn : CLASS_NAMES) {
-            try {
-                List<Option> options = processClass(fqn);
-                generateConfigurer(fqn, options);
-                generateMetaInfConfigurer(fqn);
-            } catch (Exception e) {
-                throw new MojoExecutionException("Error processing class: " + 
fqn, e);
-            }
-        }
-    }
-
-    private List<Option> processClass(String name) throws 
ClassNotFoundException {
-        List<Option> answer = new ArrayList<>();
-
-        Class clazz = projectClassLoader.loadClass(name);
-        // find all public setters
-        ReflectionUtils.doWithMethods(clazz, m -> {
-            boolean setter = m.getName().length() >= 4 && 
m.getName().startsWith("set") && Character.isUpperCase(m.getName().charAt(3));
-            setter &= Modifier.isPublic(m.getModifiers()) && 
m.getParameterCount() == 1;
-            setter &= filterSetter(m);
-            if (setter) {
-                String t = Character.toUpperCase(m.getName().charAt(3)) + 
m.getName().substring(3 + 1);
-                answer.add(new Option(t, m.getParameterTypes()[0]));
-            }
-        });
-
-        return answer;
-    }
-
-    private boolean filterSetter(Method setter) {
-        // special for some
-        if ("setBindingMode".equals(setter.getName())) {
-            // we only want the string setter
-            return setter.getParameterTypes()[0] == String.class;
-        } else if ("setHostNameResolver".equals(setter.getName())) {
-            // we only want the string setter
-            return setter.getParameterTypes()[0] == String.class;
-        }
-
-        return true;
-    }
-
-    private void generateConfigurer(String name, List<Option> options) throws 
IOException {
-        String pn = "org.apache.camel.main";
-        String cn = name.substring(name.lastIndexOf('.') + 1) + "Configurer";
-        String en = name;
-        String pfqn = name;
-        String psn = 
"org.apache.camel.support.component.PropertyConfigurerSupport";
-
-        StringWriter sw = new StringWriter();
-        PropertyMainConfigurerGenerator.generatePropertyConfigurer(pn, cn, en, 
pfqn, psn, options, sw);
-
-        String source = sw.toString();
-
-        String fileName = pn.replace('.', '/') + "/" + cn + ".java";
-        boolean updated = updateResource(srcOutDir.toPath(), fileName, source);
-        if (updated) {
-            getLog().info("Updated " + fileName);
-        }
-    }
-
-    private void generateMetaInfConfigurer(String name) {
-        String pn = "org.apache.camel.main";
-        String en = name.substring(name.lastIndexOf('.') + 1);
-        try (Writer w = new StringWriter()) {
-            w.append("# " + GENERATED_MSG + "\n");
-            
w.append("class=").append(pn).append(".").append(en).append("Configurer").append("\n");
-            updateResource(resourcesOutputDir.toPath(), 
"META-INF/services/org/apache/camel/configurer/" + en, w.toString());
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-}

Reply via email to