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 b9cc4dc6906318bdc5a7249f5f3bbb92397cae1f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Apr 8 13:41:00 2020 +0200 CAMEL-14864: Be able to generate configurer for any pojo. WIP --- .../main/java/org/apache/camel/spi/Configurer.java | 5 - .../HystrixConfigurationPropertiesConfigurer.java | 112 ++++++++++- .../MainConfigurationPropertiesConfigurer.java | 220 ++++++++++++++++++++- ...ilience4jConfigurationPropertiesConfigurer.java | 76 ++++++- .../RestConfigurationPropertiesConfigurer.java | 103 +++++++++- .../maven/packaging/GenerateConfigurerMojo.java | 4 +- .../packaging/PropertyMainConfigurerGenerator.java | 90 --------- 7 files changed, 510 insertions(+), 100 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/Configurer.java b/core/camel-api/src/main/java/org/apache/camel/spi/Configurer.java index 72aeabe..ac4ba06 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/Configurer.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/Configurer.java @@ -38,9 +38,4 @@ public @interface Configurer { */ boolean generateConfigurer() default true; - /** - * Whether this configurer is read-only (can only use getters) - */ - boolean readOnly() default false; - } diff --git a/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java b/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java index aa8f79d..166ddad 100644 --- a/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java +++ b/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java @@ -1,15 +1,19 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.main; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.main.HystrixConfigurationProperties; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class HystrixConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class HystrixConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { @@ -81,5 +85,111 @@ public class HystrixConfigurationPropertiesConfigurer extends org.apache.camel.s } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("AllowMaximumSizeToDivergeFromCoreSize", java.lang.Boolean.class); + answer.put("CircuitBreakerEnabled", java.lang.Boolean.class); + answer.put("CircuitBreakerErrorThresholdPercentage", java.lang.Integer.class); + answer.put("CircuitBreakerForceClosed", java.lang.Boolean.class); + answer.put("CircuitBreakerForceOpen", java.lang.Boolean.class); + answer.put("CircuitBreakerRequestVolumeThreshold", java.lang.Integer.class); + answer.put("CircuitBreakerSleepWindowInMilliseconds", java.lang.Integer.class); + answer.put("CorePoolSize", java.lang.Integer.class); + answer.put("ExecutionIsolationSemaphoreMaxConcurrentRequests", java.lang.Integer.class); + answer.put("ExecutionIsolationStrategy", java.lang.String.class); + answer.put("ExecutionIsolationThreadInterruptOnTimeout", java.lang.Boolean.class); + answer.put("ExecutionTimeoutEnabled", java.lang.Boolean.class); + answer.put("ExecutionTimeoutInMilliseconds", java.lang.Integer.class); + answer.put("FallbackEnabled", java.lang.Boolean.class); + answer.put("FallbackIsolationSemaphoreMaxConcurrentRequests", java.lang.Integer.class); + answer.put("GroupKey", java.lang.String.class); + answer.put("KeepAliveTime", java.lang.Integer.class); + answer.put("MaxQueueSize", java.lang.Integer.class); + answer.put("MaximumSize", java.lang.Integer.class); + answer.put("MetricsHealthSnapshotIntervalInMilliseconds", java.lang.Integer.class); + answer.put("MetricsRollingPercentileBucketSize", java.lang.Integer.class); + answer.put("MetricsRollingPercentileEnabled", java.lang.Boolean.class); + answer.put("MetricsRollingPercentileWindowBuckets", java.lang.Integer.class); + answer.put("MetricsRollingPercentileWindowInMilliseconds", java.lang.Integer.class); + answer.put("MetricsRollingStatisticalWindowBuckets", java.lang.Integer.class); + answer.put("MetricsRollingStatisticalWindowInMilliseconds", java.lang.Integer.class); + answer.put("QueueSizeRejectionThreshold", java.lang.Integer.class); + answer.put("RequestLogEnabled", java.lang.Boolean.class); + answer.put("ThreadPoolKey", java.lang.String.class); + answer.put("ThreadPoolRollingNumberStatisticalWindowBuckets", java.lang.Integer.class); + answer.put("ThreadPoolRollingNumberStatisticalWindowInMilliseconds", java.lang.Integer.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + org.apache.camel.main.HystrixConfigurationProperties target = (org.apache.camel.main.HystrixConfigurationProperties) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "allowmaximumsizetodivergefromcoresize": + case "AllowMaximumSizeToDivergeFromCoreSize": return target.getAllowMaximumSizeToDivergeFromCoreSize(); + case "circuitbreakerenabled": + case "CircuitBreakerEnabled": return target.getCircuitBreakerEnabled(); + case "circuitbreakererrorthresholdpercentage": + case "CircuitBreakerErrorThresholdPercentage": return target.getCircuitBreakerErrorThresholdPercentage(); + case "circuitbreakerforceclosed": + case "CircuitBreakerForceClosed": return target.getCircuitBreakerForceClosed(); + case "circuitbreakerforceopen": + case "CircuitBreakerForceOpen": return target.getCircuitBreakerForceOpen(); + case "circuitbreakerrequestvolumethreshold": + case "CircuitBreakerRequestVolumeThreshold": return target.getCircuitBreakerRequestVolumeThreshold(); + case "circuitbreakersleepwindowinmilliseconds": + case "CircuitBreakerSleepWindowInMilliseconds": return target.getCircuitBreakerSleepWindowInMilliseconds(); + case "corepoolsize": + case "CorePoolSize": return target.getCorePoolSize(); + case "executionisolationsemaphoremaxconcurrentrequests": + case "ExecutionIsolationSemaphoreMaxConcurrentRequests": return target.getExecutionIsolationSemaphoreMaxConcurrentRequests(); + case "executionisolationstrategy": + case "ExecutionIsolationStrategy": return target.getExecutionIsolationStrategy(); + case "executionisolationthreadinterruptontimeout": + case "ExecutionIsolationThreadInterruptOnTimeout": return target.getExecutionIsolationThreadInterruptOnTimeout(); + case "executiontimeoutenabled": + case "ExecutionTimeoutEnabled": return target.getExecutionTimeoutEnabled(); + case "executiontimeoutinmilliseconds": + case "ExecutionTimeoutInMilliseconds": return target.getExecutionTimeoutInMilliseconds(); + case "fallbackenabled": + case "FallbackEnabled": return target.getFallbackEnabled(); + case "fallbackisolationsemaphoremaxconcurrentrequests": + case "FallbackIsolationSemaphoreMaxConcurrentRequests": return target.getFallbackIsolationSemaphoreMaxConcurrentRequests(); + case "groupkey": + case "GroupKey": return target.getGroupKey(); + case "keepalivetime": + case "KeepAliveTime": return target.getKeepAliveTime(); + case "maxqueuesize": + case "MaxQueueSize": return target.getMaxQueueSize(); + case "maximumsize": + case "MaximumSize": return target.getMaximumSize(); + case "metricshealthsnapshotintervalinmilliseconds": + case "MetricsHealthSnapshotIntervalInMilliseconds": return target.getMetricsHealthSnapshotIntervalInMilliseconds(); + case "metricsrollingpercentilebucketsize": + case "MetricsRollingPercentileBucketSize": return target.getMetricsRollingPercentileBucketSize(); + case "metricsrollingpercentileenabled": + case "MetricsRollingPercentileEnabled": return target.getMetricsRollingPercentileEnabled(); + case "metricsrollingpercentilewindowbuckets": + case "MetricsRollingPercentileWindowBuckets": return target.getMetricsRollingPercentileWindowBuckets(); + case "metricsrollingpercentilewindowinmilliseconds": + case "MetricsRollingPercentileWindowInMilliseconds": return target.getMetricsRollingPercentileWindowInMilliseconds(); + case "metricsrollingstatisticalwindowbuckets": + case "MetricsRollingStatisticalWindowBuckets": return target.getMetricsRollingStatisticalWindowBuckets(); + case "metricsrollingstatisticalwindowinmilliseconds": + case "MetricsRollingStatisticalWindowInMilliseconds": return target.getMetricsRollingStatisticalWindowInMilliseconds(); + case "queuesizerejectionthreshold": + case "QueueSizeRejectionThreshold": return target.getQueueSizeRejectionThreshold(); + case "requestlogenabled": + case "RequestLogEnabled": return target.getRequestLogEnabled(); + case "threadpoolkey": + case "ThreadPoolKey": return target.getThreadPoolKey(); + case "threadpoolrollingnumberstatisticalwindowbuckets": + case "ThreadPoolRollingNumberStatisticalWindowBuckets": return target.getThreadPoolRollingNumberStatisticalWindowBuckets(); + case "threadpoolrollingnumberstatisticalwindowinmilliseconds": + case "ThreadPoolRollingNumberStatisticalWindowInMilliseconds": return target.getThreadPoolRollingNumberStatisticalWindowInMilliseconds(); + default: return null; + } + } } diff --git a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java index 311b113..0afff9f 100644 --- a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java +++ b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java @@ -1,15 +1,19 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.main; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.main.MainConfigurationProperties; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class MainConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class MainConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { @@ -153,5 +157,219 @@ public class MainConfigurationPropertiesConfigurer extends org.apache.camel.supp } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("AllowUseOriginalMessage", boolean.class); + answer.put("AutoConfigurationEnabled", boolean.class); + answer.put("AutoConfigurationEnvironmentVariablesEnabled", boolean.class); + answer.put("AutoConfigurationFailFast", boolean.class); + answer.put("AutoConfigurationLogSummary", boolean.class); + answer.put("AutoStartup", boolean.class); + answer.put("AutowireComponentProperties", boolean.class); + answer.put("AutowireComponentPropertiesAllowPrivateSetter", boolean.class); + answer.put("AutowireComponentPropertiesDeep", boolean.class); + answer.put("AutowireComponentPropertiesNonNullOnly", boolean.class); + answer.put("BacklogTracing", boolean.class); + answer.put("BeanIntrospectionExtendedStatistics", boolean.class); + answer.put("BeanIntrospectionLoggingLevel", org.apache.camel.LoggingLevel.class); + answer.put("CaseInsensitiveHeaders", boolean.class); + answer.put("ConsumerTemplateCacheSize", int.class); + answer.put("DurationHitExitCode", int.class); + answer.put("DurationMaxIdleSeconds", int.class); + answer.put("DurationMaxMessages", int.class); + answer.put("DurationMaxSeconds", int.class); + answer.put("EndpointBasicPropertyBinding", boolean.class); + answer.put("EndpointBridgeErrorHandler", boolean.class); + answer.put("EndpointLazyStartProducer", boolean.class); + answer.put("EndpointRuntimeStatisticsEnabled", boolean.class); + answer.put("FileConfigurations", java.lang.String.class); + answer.put("HangupInterceptorEnabled", boolean.class); + answer.put("InflightRepositoryBrowseEnabled", boolean.class); + answer.put("JavaRoutesExcludePattern", java.lang.String.class); + answer.put("JavaRoutesIncludePattern", java.lang.String.class); + answer.put("JmxEnabled", boolean.class); + answer.put("JmxManagementNamePattern", java.lang.String.class); + answer.put("JmxManagementStatisticsLevel", org.apache.camel.ManagementStatisticsLevel.class); + answer.put("Lightweight", boolean.class); + answer.put("LoadTypeConverters", boolean.class); + answer.put("LogDebugMaxChars", int.class); + answer.put("LogExhaustedMessageBody", boolean.class); + answer.put("LogMask", boolean.class); + answer.put("MdcLoggingKeysPattern", java.lang.String.class); + answer.put("MessageHistory", boolean.class); + answer.put("Name", java.lang.String.class); + answer.put("PackageScanRouteBuilders", java.lang.String.class); + answer.put("ProducerTemplateCacheSize", int.class); + answer.put("RouteFilterExcludePattern", java.lang.String.class); + answer.put("RouteFilterIncludePattern", java.lang.String.class); + answer.put("RoutesCollectorEnabled", boolean.class); + answer.put("ShutdownLogInflightExchangesOnTimeout", boolean.class); + answer.put("ShutdownNowOnTimeout", boolean.class); + answer.put("ShutdownRoutesInReverseOrder", boolean.class); + answer.put("ShutdownSuppressLoggingOnTimeout", boolean.class); + answer.put("ShutdownTimeout", int.class); + answer.put("StreamCachingAnySpoolRules", boolean.class); + answer.put("StreamCachingBufferSize", int.class); + answer.put("StreamCachingEnabled", boolean.class); + answer.put("StreamCachingRemoveSpoolDirectoryWhenStopping", boolean.class); + answer.put("StreamCachingSpoolCipher", java.lang.String.class); + answer.put("StreamCachingSpoolDirectory", java.lang.String.class); + answer.put("StreamCachingSpoolThreshold", long.class); + answer.put("StreamCachingSpoolUsedHeapMemoryLimit", java.lang.String.class); + answer.put("StreamCachingSpoolUsedHeapMemoryThreshold", int.class); + answer.put("StreamCachingStatisticsEnabled", boolean.class); + answer.put("ThreadNamePattern", java.lang.String.class); + answer.put("Tracing", boolean.class); + answer.put("TracingPattern", java.lang.String.class); + answer.put("UseBreadcrumb", boolean.class); + answer.put("UseDataType", boolean.class); + answer.put("UseMdcLogging", boolean.class); + answer.put("XmlRests", java.lang.String.class); + answer.put("XmlRoutes", java.lang.String.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + org.apache.camel.main.MainConfigurationProperties target = (org.apache.camel.main.MainConfigurationProperties) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "allowuseoriginalmessage": + case "AllowUseOriginalMessage": return target.isAllowUseOriginalMessage(); + case "autoconfigurationenabled": + case "AutoConfigurationEnabled": return target.isAutoConfigurationEnabled(); + case "autoconfigurationenvironmentvariablesenabled": + case "AutoConfigurationEnvironmentVariablesEnabled": return target.isAutoConfigurationEnvironmentVariablesEnabled(); + case "autoconfigurationfailfast": + case "AutoConfigurationFailFast": return target.isAutoConfigurationFailFast(); + case "autoconfigurationlogsummary": + case "AutoConfigurationLogSummary": return target.isAutoConfigurationLogSummary(); + case "autostartup": + case "AutoStartup": return target.isAutoStartup(); + case "autowirecomponentproperties": + case "AutowireComponentProperties": return target.isAutowireComponentProperties(); + case "autowirecomponentpropertiesallowprivatesetter": + case "AutowireComponentPropertiesAllowPrivateSetter": return target.isAutowireComponentPropertiesAllowPrivateSetter(); + case "autowirecomponentpropertiesdeep": + case "AutowireComponentPropertiesDeep": return target.isAutowireComponentPropertiesDeep(); + case "autowirecomponentpropertiesnonnullonly": + case "AutowireComponentPropertiesNonNullOnly": return target.isAutowireComponentPropertiesNonNullOnly(); + case "backlogtracing": + case "BacklogTracing": return target.isBacklogTracing(); + case "beanintrospectionextendedstatistics": + case "BeanIntrospectionExtendedStatistics": return target.isBeanIntrospectionExtendedStatistics(); + case "beanintrospectionlogginglevel": + case "BeanIntrospectionLoggingLevel": return target.getBeanIntrospectionLoggingLevel(); + case "caseinsensitiveheaders": + case "CaseInsensitiveHeaders": return target.isCaseInsensitiveHeaders(); + case "consumertemplatecachesize": + case "ConsumerTemplateCacheSize": return target.getConsumerTemplateCacheSize(); + case "durationhitexitcode": + case "DurationHitExitCode": return target.getDurationHitExitCode(); + case "durationmaxidleseconds": + case "DurationMaxIdleSeconds": return target.getDurationMaxIdleSeconds(); + case "durationmaxmessages": + case "DurationMaxMessages": return target.getDurationMaxMessages(); + case "durationmaxseconds": + case "DurationMaxSeconds": return target.getDurationMaxSeconds(); + case "endpointbasicpropertybinding": + case "EndpointBasicPropertyBinding": return target.isEndpointBasicPropertyBinding(); + case "endpointbridgeerrorhandler": + case "EndpointBridgeErrorHandler": return target.isEndpointBridgeErrorHandler(); + case "endpointlazystartproducer": + case "EndpointLazyStartProducer": return target.isEndpointLazyStartProducer(); + case "endpointruntimestatisticsenabled": + case "EndpointRuntimeStatisticsEnabled": return target.isEndpointRuntimeStatisticsEnabled(); + case "fileconfigurations": + case "FileConfigurations": return target.getFileConfigurations(); + case "hangupinterceptorenabled": + case "HangupInterceptorEnabled": return target.isHangupInterceptorEnabled(); + case "inflightrepositorybrowseenabled": + case "InflightRepositoryBrowseEnabled": return target.isInflightRepositoryBrowseEnabled(); + case "javaroutesexcludepattern": + case "JavaRoutesExcludePattern": return target.getJavaRoutesExcludePattern(); + case "javaroutesincludepattern": + case "JavaRoutesIncludePattern": return target.getJavaRoutesIncludePattern(); + case "jmxenabled": + case "JmxEnabled": return target.isJmxEnabled(); + case "jmxmanagementnamepattern": + case "JmxManagementNamePattern": return target.getJmxManagementNamePattern(); + case "jmxmanagementstatisticslevel": + case "JmxManagementStatisticsLevel": return target.getJmxManagementStatisticsLevel(); + case "lightweight": + case "Lightweight": return target.isLightweight(); + case "loadtypeconverters": + case "LoadTypeConverters": return target.isLoadTypeConverters(); + case "logdebugmaxchars": + case "LogDebugMaxChars": return target.getLogDebugMaxChars(); + case "logexhaustedmessagebody": + case "LogExhaustedMessageBody": return target.isLogExhaustedMessageBody(); + case "logmask": + case "LogMask": return target.isLogMask(); + case "mdcloggingkeyspattern": + case "MdcLoggingKeysPattern": return target.getMdcLoggingKeysPattern(); + case "messagehistory": + case "MessageHistory": return target.isMessageHistory(); + case "name": + case "Name": return target.getName(); + case "packagescanroutebuilders": + case "PackageScanRouteBuilders": return target.getPackageScanRouteBuilders(); + case "producertemplatecachesize": + case "ProducerTemplateCacheSize": return target.getProducerTemplateCacheSize(); + case "routefilterexcludepattern": + case "RouteFilterExcludePattern": return target.getRouteFilterExcludePattern(); + case "routefilterincludepattern": + case "RouteFilterIncludePattern": return target.getRouteFilterIncludePattern(); + case "routescollectorenabled": + case "RoutesCollectorEnabled": return target.isRoutesCollectorEnabled(); + case "shutdownloginflightexchangesontimeout": + case "ShutdownLogInflightExchangesOnTimeout": return target.isShutdownLogInflightExchangesOnTimeout(); + case "shutdownnowontimeout": + case "ShutdownNowOnTimeout": return target.isShutdownNowOnTimeout(); + case "shutdownroutesinreverseorder": + case "ShutdownRoutesInReverseOrder": return target.isShutdownRoutesInReverseOrder(); + case "shutdownsuppressloggingontimeout": + case "ShutdownSuppressLoggingOnTimeout": return target.isShutdownSuppressLoggingOnTimeout(); + case "shutdowntimeout": + case "ShutdownTimeout": return target.getShutdownTimeout(); + case "streamcachinganyspoolrules": + case "StreamCachingAnySpoolRules": return target.isStreamCachingAnySpoolRules(); + case "streamcachingbuffersize": + case "StreamCachingBufferSize": return target.getStreamCachingBufferSize(); + case "streamcachingenabled": + case "StreamCachingEnabled": return target.isStreamCachingEnabled(); + case "streamcachingremovespooldirectorywhenstopping": + case "StreamCachingRemoveSpoolDirectoryWhenStopping": return target.isStreamCachingRemoveSpoolDirectoryWhenStopping(); + case "streamcachingspoolcipher": + case "StreamCachingSpoolCipher": return target.getStreamCachingSpoolCipher(); + case "streamcachingspooldirectory": + case "StreamCachingSpoolDirectory": return target.getStreamCachingSpoolDirectory(); + case "streamcachingspoolthreshold": + case "StreamCachingSpoolThreshold": return target.getStreamCachingSpoolThreshold(); + case "streamcachingspoolusedheapmemorylimit": + case "StreamCachingSpoolUsedHeapMemoryLimit": return target.getStreamCachingSpoolUsedHeapMemoryLimit(); + case "streamcachingspoolusedheapmemorythreshold": + case "StreamCachingSpoolUsedHeapMemoryThreshold": return target.getStreamCachingSpoolUsedHeapMemoryThreshold(); + case "streamcachingstatisticsenabled": + case "StreamCachingStatisticsEnabled": return target.isStreamCachingStatisticsEnabled(); + case "threadnamepattern": + case "ThreadNamePattern": return target.getThreadNamePattern(); + case "tracing": + case "Tracing": return target.isTracing(); + case "tracingpattern": + case "TracingPattern": return target.getTracingPattern(); + case "usebreadcrumb": + case "UseBreadcrumb": return target.isUseBreadcrumb(); + case "usedatatype": + case "UseDataType": return target.isUseDataType(); + case "usemdclogging": + case "UseMdcLogging": return target.isUseMdcLogging(); + case "xmlrests": + case "XmlRests": return target.getXmlRests(); + case "xmlroutes": + case "XmlRoutes": return target.getXmlRoutes(); + default: return null; + } + } } diff --git a/core/camel-main/src/generated/java/org/apache/camel/main/Resilience4jConfigurationPropertiesConfigurer.java b/core/camel-main/src/generated/java/org/apache/camel/main/Resilience4jConfigurationPropertiesConfigurer.java index a45e877..1bb5386 100644 --- a/core/camel-main/src/generated/java/org/apache/camel/main/Resilience4jConfigurationPropertiesConfigurer.java +++ b/core/camel-main/src/generated/java/org/apache/camel/main/Resilience4jConfigurationPropertiesConfigurer.java @@ -1,15 +1,19 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.main; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.main.Resilience4jConfigurationProperties; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class Resilience4jConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class Resilience4jConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { @@ -57,5 +61,75 @@ public class Resilience4jConfigurationPropertiesConfigurer extends org.apache.ca } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("AutomaticTransitionFromOpenToHalfOpenEnabled", java.lang.Boolean.class); + answer.put("BulkheadEnabled", java.lang.Boolean.class); + answer.put("BulkheadMaxConcurrentCalls", java.lang.Integer.class); + answer.put("BulkheadMaxWaitDuration", java.lang.Integer.class); + answer.put("CircuitBreakerRef", java.lang.String.class); + answer.put("ConfigRef", java.lang.String.class); + answer.put("FailureRateThreshold", java.lang.Float.class); + answer.put("MinimumNumberOfCalls", java.lang.Integer.class); + answer.put("PermittedNumberOfCallsInHalfOpenState", java.lang.Integer.class); + answer.put("SlidingWindowSize", java.lang.Integer.class); + answer.put("SlidingWindowType", java.lang.String.class); + answer.put("SlowCallDurationThreshold", java.lang.Integer.class); + answer.put("SlowCallRateThreshold", java.lang.Float.class); + answer.put("TimeoutCancelRunningFuture", java.lang.Boolean.class); + answer.put("TimeoutDuration", java.lang.Integer.class); + answer.put("TimeoutEnabled", java.lang.Boolean.class); + answer.put("TimeoutExecutorServiceRef", java.lang.String.class); + answer.put("WaitDurationInOpenState", java.lang.Integer.class); + answer.put("WritableStackTraceEnabled", java.lang.Boolean.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + org.apache.camel.main.Resilience4jConfigurationProperties target = (org.apache.camel.main.Resilience4jConfigurationProperties) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "automatictransitionfromopentohalfopenenabled": + case "AutomaticTransitionFromOpenToHalfOpenEnabled": return target.getAutomaticTransitionFromOpenToHalfOpenEnabled(); + case "bulkheadenabled": + case "BulkheadEnabled": return target.getBulkheadEnabled(); + case "bulkheadmaxconcurrentcalls": + case "BulkheadMaxConcurrentCalls": return target.getBulkheadMaxConcurrentCalls(); + case "bulkheadmaxwaitduration": + case "BulkheadMaxWaitDuration": return target.getBulkheadMaxWaitDuration(); + case "circuitbreakerref": + case "CircuitBreakerRef": return target.getCircuitBreakerRef(); + case "configref": + case "ConfigRef": return target.getConfigRef(); + case "failureratethreshold": + case "FailureRateThreshold": return target.getFailureRateThreshold(); + case "minimumnumberofcalls": + case "MinimumNumberOfCalls": return target.getMinimumNumberOfCalls(); + case "permittednumberofcallsinhalfopenstate": + case "PermittedNumberOfCallsInHalfOpenState": return target.getPermittedNumberOfCallsInHalfOpenState(); + case "slidingwindowsize": + case "SlidingWindowSize": return target.getSlidingWindowSize(); + case "slidingwindowtype": + case "SlidingWindowType": return target.getSlidingWindowType(); + case "slowcalldurationthreshold": + case "SlowCallDurationThreshold": return target.getSlowCallDurationThreshold(); + case "slowcallratethreshold": + case "SlowCallRateThreshold": return target.getSlowCallRateThreshold(); + case "timeoutcancelrunningfuture": + case "TimeoutCancelRunningFuture": return target.getTimeoutCancelRunningFuture(); + case "timeoutduration": + case "TimeoutDuration": return target.getTimeoutDuration(); + case "timeoutenabled": + case "TimeoutEnabled": return target.getTimeoutEnabled(); + case "timeoutexecutorserviceref": + case "TimeoutExecutorServiceRef": return target.getTimeoutExecutorServiceRef(); + case "waitdurationinopenstate": + case "WaitDurationInOpenState": return target.getWaitDurationInOpenState(); + case "writablestacktraceenabled": + case "WritableStackTraceEnabled": return target.getWritableStackTraceEnabled(); + default: return null; + } + } } diff --git a/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java b/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java index f4346f7..275583b 100644 --- a/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java +++ b/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java @@ -1,15 +1,19 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.main; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.main.RestConfigurationProperties; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class RestConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class RestConfigurationPropertiesConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { @@ -75,5 +79,102 @@ public class RestConfigurationPropertiesConfigurer extends org.apache.camel.supp } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("ApiComponent", java.lang.String.class); + answer.put("ApiContextIdPattern", java.lang.String.class); + answer.put("ApiContextListing", boolean.class); + answer.put("ApiContextPath", java.lang.String.class); + answer.put("ApiContextRouteId", java.lang.String.class); + answer.put("ApiHost", java.lang.String.class); + answer.put("ApiProperties", java.util.Map.class); + answer.put("ApiVendorExtension", boolean.class); + answer.put("BindingMode", java.lang.String.class); + answer.put("ClientRequestValidation", boolean.class); + answer.put("Component", java.lang.String.class); + answer.put("ComponentProperties", java.util.Map.class); + answer.put("ConsumerProperties", java.util.Map.class); + answer.put("ContextPath", java.lang.String.class); + answer.put("CorsHeaders", java.util.Map.class); + answer.put("DataFormatProperties", java.util.Map.class); + answer.put("EnableCORS", boolean.class); + answer.put("EndpointProperties", java.util.Map.class); + answer.put("Host", java.lang.String.class); + answer.put("HostNameResolver", java.lang.String.class); + answer.put("JsonDataFormat", java.lang.String.class); + answer.put("Port", int.class); + answer.put("ProducerApiDoc", java.lang.String.class); + answer.put("ProducerComponent", java.lang.String.class); + answer.put("Scheme", java.lang.String.class); + answer.put("SkipBindingOnErrorCode", boolean.class); + answer.put("UseXForwardHeaders", boolean.class); + answer.put("XmlDataFormat", java.lang.String.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + org.apache.camel.main.RestConfigurationProperties target = (org.apache.camel.main.RestConfigurationProperties) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "apicomponent": + case "ApiComponent": return target.getApiComponent(); + case "apicontextidpattern": + case "ApiContextIdPattern": return target.getApiContextIdPattern(); + case "apicontextlisting": + case "ApiContextListing": return target.isApiContextListing(); + case "apicontextpath": + case "ApiContextPath": return target.getApiContextPath(); + case "apicontextrouteid": + case "ApiContextRouteId": return target.getApiContextRouteId(); + case "apihost": + case "ApiHost": return target.getApiHost(); + case "apiproperties": + case "ApiProperties": return target.getApiProperties(); + case "apivendorextension": + case "ApiVendorExtension": return target.isApiVendorExtension(); + case "bindingmode": + case "BindingMode": return target.getBindingMode(); + case "clientrequestvalidation": + case "ClientRequestValidation": return target.isClientRequestValidation(); + case "component": + case "Component": return target.getComponent(); + case "componentproperties": + case "ComponentProperties": return target.getComponentProperties(); + case "consumerproperties": + case "ConsumerProperties": return target.getConsumerProperties(); + case "contextpath": + case "ContextPath": return target.getContextPath(); + case "corsheaders": + case "CorsHeaders": return target.getCorsHeaders(); + case "dataformatproperties": + case "DataFormatProperties": return target.getDataFormatProperties(); + case "enablecors": + case "EnableCORS": return target.isEnableCORS(); + case "endpointproperties": + case "EndpointProperties": return target.getEndpointProperties(); + case "host": + case "Host": return target.getHost(); + case "hostnameresolver": + case "HostNameResolver": return target.getHostNameResolver(); + case "jsondataformat": + case "JsonDataFormat": return target.getJsonDataFormat(); + case "port": + case "Port": return target.getPort(); + case "producerapidoc": + case "ProducerApiDoc": return target.getProducerApiDoc(); + case "producercomponent": + case "ProducerComponent": return target.getProducerComponent(); + case "scheme": + case "Scheme": return target.getScheme(); + case "skipbindingonerrorcode": + case "SkipBindingOnErrorCode": return target.isSkipBindingOnErrorCode(); + case "usexforwardheaders": + case "UseXForwardHeaders": return target.isUseXForwardHeaders(); + case "xmldataformat": + case "XmlDataFormat": return target.getXmlDataFormat(); + default: return null; + } + } } 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 1527855..74c574b 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 @@ -171,7 +171,9 @@ public class GenerateConfigurerMojo extends AbstractGeneratorMojo { String psn = "org.apache.camel.support.component.PropertyConfigurerSupport"; StringWriter sw = new StringWriter(); - PropertyMainConfigurerGenerator.generatePropertyConfigurer(pn, cn, en, pfqn, psn, options, sw); +// PropertyMainConfigurerGenerator.generatePropertyConfigurer(pn, cn, en, pfqn, psn, options, sw); + PropertyConfigurerGenerator.generatePropertyConfigurer(pn, cn, en, pfqn, psn, + false, false, options, sw); String source = sw.toString(); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PropertyMainConfigurerGenerator.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PropertyMainConfigurerGenerator.java deleted file mode 100644 index 1e98e55..0000000 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PropertyMainConfigurerGenerator.java +++ /dev/null @@ -1,90 +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.IOException; -import java.io.Writer; -import java.util.Collection; -import java.util.Comparator; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.camel.tooling.model.BaseOptionModel; - -public final class PropertyMainConfigurerGenerator { - - private PropertyMainConfigurerGenerator() { - } - - public static void generatePropertyConfigurer(String pn, String cn, String en, - String pfqn, String psn, - Collection<? extends BaseOptionModel> options, Writer w) throws IOException { - w.write("/* " + AbstractGeneratorMojo.GENERATED_MSG + " */\n"); - w.write("package " + pn + ";\n"); - w.write("\n"); - w.write("import org.apache.camel.CamelContext;\n"); - w.write("import org.apache.camel.spi.GeneratedPropertyConfigurer;\n"); - w.write("import " + pfqn + ";\n"); - w.write("\n"); - w.write("/**\n"); - w.write(" * " + AbstractGeneratorMojo.GENERATED_MSG + "\n"); - w.write(" */\n"); - w.write("@SuppressWarnings(\"unchecked\")\n"); - w.write("public class " + cn + " extends " + psn + " implements GeneratedPropertyConfigurer {\n"); - w.write("\n"); - if (!options.isEmpty()) { - - // sort options A..Z so they always have same order - options = options.stream().sorted(Comparator.comparing(BaseOptionModel::getName)).collect(Collectors.toList()); - w.write(" @Override\n"); - w.write(" public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {\n"); - if (!options.isEmpty()) { - w.write(" " + en + " target = (" + en + ") obj;\n"); - w.write(" switch (ignoreCase ? name.toLowerCase() : name) {\n"); - for (BaseOptionModel option : options) { - String getOrSet = option.getName(); - getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + getOrSet.substring(1); - String setterLambda = setterLambda(getOrSet, option.getJavaType()); - if (!option.getName().toLowerCase().equals(option.getName())) { - w.write(String.format(" case \"%s\":\n", option.getName().toLowerCase())); - } - w.write(String.format(" case \"%s\": %s; return true;\n", option.getName(), setterLambda)); - } - w.write(" default: return false;\n"); - w.write(" }\n"); - } - w.write(" }\n"); - } - w.write("\n"); - w.write("}\n"); - w.write("\n"); - } - - private static String setterLambda(String getOrSet, String type) { - // type may contain generics so remove those - if (type.indexOf('<') != -1) { - type = type.substring(0, type.indexOf('<')); - } - type = type.replace('$', '.'); - getOrSet = "target.set" + getOrSet; - - // ((LogComponent) target).setGroupSize(property(camelContext, - // java.lang.Integer.class, value)) - return String.format("%s(property(camelContext, %s.class, value))", getOrSet, type); - } - -}