You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2017/05/19 12:35:29 UTC
[19/38] camel git commit: CAMEL-11291: spring boot starters: allow to
hook into auto configuration process
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageAutoConfiguration.java
index bdeb045..6765299 100644
--- a/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageAutoConfiguration.java
@@ -17,45 +17,78 @@
package org.apache.camel.component.hl7.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.component.hl7.TerserLanguage;
+import org.apache.camel.spi.LanguageCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.LanguageConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(TerserLanguageAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(TerserLanguageConfiguration.class)
-public class TerserLanguageAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({LanguageConfigurationProperties.class,
+ TerserLanguageConfiguration.class})
+public class TerserLanguageAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(TerserLanguageAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<LanguageCustomizer<TerserLanguage>> customizers;
+ @Autowired
+ private LanguageConfigurationProperties globalConfiguration;
+ @Autowired
+ private TerserLanguageConfiguration languageConfiguration;
+
+ public TerserLanguageAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.terser");
+ }
+ }
@Bean(name = "terser-language")
@Scope("prototype")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(TerserLanguage.class)
- public TerserLanguage configureTerserLanguage(CamelContext camelContext,
- TerserLanguageConfiguration configuration) throws Exception {
+ public TerserLanguage configureTerserLanguage() throws Exception {
TerserLanguage language = new TerserLanguage();
if (CamelContextAware.class.isAssignableFrom(TerserLanguage.class)) {
CamelContextAware contextAware = CamelContextAware.class
@@ -65,36 +98,20 @@ public class TerserLanguageAutoConfiguration {
}
}
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(languageConfiguration, parameters,
+ null, false);
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), language, parameters);
- return language;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.language.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.language.terser");
- if (isEnabled(conditionContext, "camel.language.terser.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && languageConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (LanguageCustomizer<TerserLanguage> configurer : customizers) {
+ LOGGER.debug("Configure language {}, with configurer {}",
+ language, configurer);
+ configurer.customize(language);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return language;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageConfiguration.java b/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageConfiguration.java
index e13994a..80b4ad5 100644
--- a/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-hl7-starter/src/main/java/org/apache/camel/component/hl7/springboot/TerserLanguageConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.hl7.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -26,7 +27,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.language.terser")
-public class TerserLanguageConfiguration {
+public class TerserLanguageConfiguration
+ extends
+ LanguageConfigurationPropertiesCommon {
/**
* Whether to trim the value to remove leading and trailing whitespaces and
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
index 96daf13..05e56a3 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentAutoConfiguration.java
@@ -17,49 +17,81 @@
package org.apache.camel.component.http.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.http.HttpComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(HttpComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(HttpComponentConfiguration.class)
-public class HttpComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ HttpComponentConfiguration.class})
+public class HttpComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(HttpComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<HttpComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private HttpComponentConfiguration componentConfiguration;
+
+ public HttpComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.http");
+ }
+ }
@Lazy
@Bean(name = {"http-component", "https-component"})
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(HttpComponent.class)
- public HttpComponent configureHttpComponent(CamelContext camelContext,
- HttpComponentConfiguration configuration) throws Exception {
+ public HttpComponent configureHttpComponent() throws Exception {
HttpComponent component = new HttpComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -82,32 +114,16 @@ public class HttpComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.http");
- if (isEnabled(conditionContext, "camel.component.http.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<HttpComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
index 62b4821..afea1a3 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
@@ -21,6 +21,7 @@ import org.apache.camel.component.http.HttpClientConfigurer;
import org.apache.camel.http.common.HttpBinding;
import org.apache.camel.http.common.HttpConfiguration;
import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.commons.httpclient.HttpConnectionManager;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
@@ -32,7 +33,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.http")
-public class HttpComponentConfiguration {
+public class HttpComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* To use the custom HttpClientConfigurer to perform configuration of the
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
index 040655f..37b6aca 100644
--- a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentAutoConfiguration.java
@@ -17,49 +17,81 @@
package org.apache.camel.component.http4.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.http4.HttpComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(HttpComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(HttpComponentConfiguration.class)
-public class HttpComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ HttpComponentConfiguration.class})
+public class HttpComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(HttpComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<HttpComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private HttpComponentConfiguration componentConfiguration;
+
+ public HttpComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.http4");
+ }
+ }
@Lazy
@Bean(name = "http4-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(HttpComponent.class)
- public HttpComponent configureHttpComponent(CamelContext camelContext,
- HttpComponentConfiguration configuration) throws Exception {
+ public HttpComponent configureHttpComponent() throws Exception {
HttpComponent component = new HttpComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -82,32 +114,16 @@ public class HttpComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.http4");
- if (isEnabled(conditionContext, "camel.component.http4.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<HttpComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
index 78aa3ff..0ecf827 100644
--- a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
@@ -22,6 +22,7 @@ import org.apache.camel.component.http4.HttpClientConfigurer;
import org.apache.camel.http.common.HttpBinding;
import org.apache.camel.http.common.HttpConfiguration;
import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.http.client.CookieStore;
import org.apache.http.conn.HttpClientConnectionManager;
@@ -36,7 +37,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.http4")
-public class HttpComponentConfiguration {
+public class HttpComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* To use the custom HttpClientConfigurer to perform configuration of the
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatAutoConfiguration.java
index 36ec2a5..288c0ab 100644
--- a/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatAutoConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ical.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
@@ -24,40 +25,71 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.ical.ICalDataFormat;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.DataFormatCustomizer;
import org.apache.camel.spi.DataFormatFactory;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.DataFormatConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(ICalDataFormatAutoConfiguration.Condition.class)
@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(ICalDataFormatConfiguration.class)
-public class ICalDataFormatAutoConfiguration {
+@EnableConfigurationProperties({DataFormatConfigurationProperties.class,
+ ICalDataFormatConfiguration.class})
+public class ICalDataFormatAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ICalDataFormatAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<DataFormatCustomizer<ICalDataFormat>> customizers;
+ @Autowired
+ private DataFormatConfigurationProperties globalConfiguration;
+ @Autowired
+ private ICalDataFormatConfiguration dataformatConfiguration;
+
+ public ICalDataFormatAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.dataformat", "camel.dataformat.ical");
+ }
+ }
@Bean(name = "ical-dataformat-factory")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(ICalDataFormat.class)
- public DataFormatFactory configureICalDataFormatFactory(
- final CamelContext camelContext,
- final ICalDataFormatConfiguration configuration) {
+ public DataFormatFactory configureICalDataFormatFactory() throws Exception {
return new DataFormatFactory() {
public DataFormat newInstance() {
ICalDataFormat dataformat = new ICalDataFormat();
@@ -71,7 +103,7 @@ public class ICalDataFormatAutoConfiguration {
}
try {
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration,
+ IntrospectionSupport.getProperties(dataformatConfiguration,
parameters, null, false);
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), dataformat,
@@ -79,34 +111,19 @@ public class ICalDataFormatAutoConfiguration {
} catch (Exception e) {
throw new RuntimeCamelException(e);
}
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && dataformatConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (DataFormatCustomizer<ICalDataFormat> configurer : customizers) {
+ LOGGER.debug(
+ "Configure dataformat {}, with configurer {}",
+ dataformat, configurer);
+ configurer.customize(dataformat);
+ }
+ }
return dataformat;
}
};
}
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.dataformat.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.dataformat.ical");
- if (isEnabled(conditionContext, "camel.dataformat.ical.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
- }
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
- }
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatConfiguration.java
index 2b654ae..9034b74 100644
--- a/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ical-starter/src/main/java/org/apache/camel/component/ical/springboot/ICalDataFormatConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ical.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -26,7 +27,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.dataformat.ical")
-public class ICalDataFormatConfiguration {
+public class ICalDataFormatConfiguration
+ extends
+ DataFormatConfigurationPropertiesCommon {
/**
* Whether to validate.
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentAutoConfiguration.java
index 211fc3e..3d699f2 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentAutoConfiguration.java
@@ -17,50 +17,82 @@
package org.apache.camel.component.ignite.cache.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.ignite.cache.IgniteCacheComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(IgniteCacheComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(IgniteCacheComponentConfiguration.class)
-public class IgniteCacheComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ IgniteCacheComponentConfiguration.class})
+public class IgniteCacheComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(IgniteCacheComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<IgniteCacheComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private IgniteCacheComponentConfiguration componentConfiguration;
+
+ public IgniteCacheComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.ignite-cache");
+ }
+ }
@Lazy
@Bean(name = "ignite-cache-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(IgniteCacheComponent.class)
- public IgniteCacheComponent configureIgniteCacheComponent(
- CamelContext camelContext,
- IgniteCacheComponentConfiguration configuration) throws Exception {
+ public IgniteCacheComponent configureIgniteCacheComponent()
+ throws Exception {
IgniteCacheComponent component = new IgniteCacheComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -83,32 +115,16 @@ public class IgniteCacheComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.ignite-cache");
- if (isEnabled(conditionContext, "camel.component.ignite-cache.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<IgniteCacheComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConfiguration.java
index 3334263..a280e81 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ignite.cache.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.ignite.Ignite;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -30,7 +31,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.ignite-cache")
-public class IgniteCacheComponentConfiguration {
+public class IgniteCacheComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the Ignite instance.
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentAutoConfiguration.java
index 731d594..1384a3f 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentAutoConfiguration.java
@@ -17,50 +17,84 @@
package org.apache.camel.component.ignite.compute.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.ignite.compute.IgniteComputeComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(IgniteComputeComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(IgniteComputeComponentConfiguration.class)
-public class IgniteComputeComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ IgniteComputeComponentConfiguration.class})
+public class IgniteComputeComponentAutoConfiguration
+ extends
+ AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(IgniteComputeComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<IgniteComputeComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private IgniteComputeComponentConfiguration componentConfiguration;
+
+ public IgniteComputeComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.ignite-compute");
+ }
+ }
@Lazy
@Bean(name = "ignite-compute-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(IgniteComputeComponent.class)
- public IgniteComputeComponent configureIgniteComputeComponent(
- CamelContext camelContext,
- IgniteComputeComponentConfiguration configuration) throws Exception {
+ public IgniteComputeComponent configureIgniteComputeComponent()
+ throws Exception {
IgniteComputeComponent component = new IgniteComputeComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -83,32 +117,16 @@ public class IgniteComputeComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.ignite-compute");
- if (isEnabled(conditionContext, "camel.component.ignite-compute.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<IgniteComputeComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConfiguration.java
index 25fb2b9..57015ec 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ignite.compute.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.ignite.Ignite;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -32,7 +33,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.ignite-compute")
-public class IgniteComputeComponentConfiguration {
+public class IgniteComputeComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the Ignite instance.
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentAutoConfiguration.java
index a91d8a6..566ebf9 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentAutoConfiguration.java
@@ -17,50 +17,82 @@
package org.apache.camel.component.ignite.events.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.ignite.events.IgniteEventsComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(IgniteEventsComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(IgniteEventsComponentConfiguration.class)
-public class IgniteEventsComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ IgniteEventsComponentConfiguration.class})
+public class IgniteEventsComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(IgniteEventsComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<IgniteEventsComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private IgniteEventsComponentConfiguration componentConfiguration;
+
+ public IgniteEventsComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.ignite-events");
+ }
+ }
@Lazy
@Bean(name = "ignite-events-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(IgniteEventsComponent.class)
- public IgniteEventsComponent configureIgniteEventsComponent(
- CamelContext camelContext,
- IgniteEventsComponentConfiguration configuration) throws Exception {
+ public IgniteEventsComponent configureIgniteEventsComponent()
+ throws Exception {
IgniteEventsComponent component = new IgniteEventsComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -83,32 +115,16 @@ public class IgniteEventsComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.ignite-events");
- if (isEnabled(conditionContext, "camel.component.ignite-events.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<IgniteEventsComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConfiguration.java
index e96521d..cad3823 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ignite.events.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.ignite.Ignite;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -30,7 +31,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.ignite-events")
-public class IgniteEventsComponentConfiguration {
+public class IgniteEventsComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the Ignite instance.
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentAutoConfiguration.java
index 9a5671e..24ad8cf 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentAutoConfiguration.java
@@ -17,50 +17,82 @@
package org.apache.camel.component.ignite.idgen.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.ignite.idgen.IgniteIdGenComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(IgniteIdGenComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(IgniteIdGenComponentConfiguration.class)
-public class IgniteIdGenComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ IgniteIdGenComponentConfiguration.class})
+public class IgniteIdGenComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(IgniteIdGenComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<IgniteIdGenComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private IgniteIdGenComponentConfiguration componentConfiguration;
+
+ public IgniteIdGenComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.ignite-idgen");
+ }
+ }
@Lazy
@Bean(name = "ignite-idgen-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(IgniteIdGenComponent.class)
- public IgniteIdGenComponent configureIgniteIdGenComponent(
- CamelContext camelContext,
- IgniteIdGenComponentConfiguration configuration) throws Exception {
+ public IgniteIdGenComponent configureIgniteIdGenComponent()
+ throws Exception {
IgniteIdGenComponent component = new IgniteIdGenComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -83,32 +115,16 @@ public class IgniteIdGenComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.ignite-idgen");
- if (isEnabled(conditionContext, "camel.component.ignite-idgen.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<IgniteIdGenComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConfiguration.java
index 345563b..4fa3b57 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ignite.idgen.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.ignite.Ignite;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -30,7 +31,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.ignite-idgen")
-public class IgniteIdGenComponentConfiguration {
+public class IgniteIdGenComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the Ignite instance.
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentAutoConfiguration.java
index a3076e5..2acc3d7 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentAutoConfiguration.java
@@ -17,51 +17,84 @@
package org.apache.camel.component.ignite.messaging.springboot;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.CamelContext;
import org.apache.camel.component.ignite.messaging.IgniteMessagingComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.GroupCondition;
import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionMessage;
-import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
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.autoconfigure.condition.SpringBootCondition;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
-import org.springframework.core.type.AnnotatedTypeMetadata;
/**
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
@Conditional(IgniteMessagingComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(IgniteMessagingComponentConfiguration.class)
-public class IgniteMessagingComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ IgniteMessagingComponentConfiguration.class})
+public class IgniteMessagingComponentAutoConfiguration
+ extends
+ AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(IgniteMessagingComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<IgniteMessagingComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private IgniteMessagingComponentConfiguration componentConfiguration;
+
+ public IgniteMessagingComponentAutoConfiguration() {
+ super(ConfigurationPhase.REGISTER_BEAN);
+ }
+
+ @ConditionalOnBean(CamelContext.class)
+ public static class OnCamelContext {
+ }
+
+ @ConditionalOnBean(CamelAutoConfiguration.class)
+ public static class OnCamelAutoConfiguration {
+ }
+
+ public static class Condition extends GroupCondition {
+ public Condition() {
+ super("camel.component", "camel.component.ignite-messaging");
+ }
+ }
@Lazy
@Bean(name = "ignite-messaging-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(IgniteMessagingComponent.class)
- public IgniteMessagingComponent configureIgniteMessagingComponent(
- CamelContext camelContext,
- IgniteMessagingComponentConfiguration configuration)
+ public IgniteMessagingComponent configureIgniteMessagingComponent()
throws Exception {
IgniteMessagingComponent component = new IgniteMessagingComponent();
component.setCamelContext(camelContext);
Map<String, Object> parameters = new HashMap<>();
- IntrospectionSupport.getProperties(configuration, parameters, null,
- false);
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
Object value = entry.getValue();
Class<?> paramClass = value.getClass();
@@ -84,32 +117,16 @@ public class IgniteMessagingComponentAutoConfiguration {
}
IntrospectionSupport.setProperties(camelContext,
camelContext.getTypeConverter(), component, parameters);
- return component;
- }
-
- @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
- public static class Condition extends SpringBootCondition {
- @Override
- public ConditionOutcome getMatchOutcome(
- ConditionContext conditionContext,
- AnnotatedTypeMetadata annotatedTypeMetadata) {
- boolean groupEnabled = isEnabled(conditionContext,
- "camel.component.", true);
- ConditionMessage.Builder message = ConditionMessage
- .forCondition("camel.component.ignite-messaging");
- if (isEnabled(conditionContext,
- "camel.component.ignite-messaging.", groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<IgniteMessagingComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
}
- return ConditionOutcome.noMatch(message.because("not enabled"));
- }
-
- private boolean isEnabled(
- org.springframework.context.annotation.ConditionContext context,
- java.lang.String prefix, boolean defaultValue) {
- RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
- context.getEnvironment(), prefix);
- return resolver.getProperty("enabled", Boolean.class, defaultValue);
}
+ return component;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConfiguration.java
index ac0bd64..17185cb 100644
--- a/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.ignite.messaging.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.ignite.Ignite;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -30,7 +31,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.ignite-messaging")
-public class IgniteMessagingComponentConfiguration {
+public class IgniteMessagingComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the Ignite instance.