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:32 UTC
[22/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-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentAutoConfiguration.java
index 82ffa4a..ef8d417 100644
--- a/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentAutoConfiguration.java
@@ -16,68 +16,114 @@
*/
package org.apache.camel.component.github.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.github.GitHubComponent;
+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(GitHubComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-public class GitHubComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GitHubComponentConfiguration.class})
+public class GitHubComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GitHubComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GitHubComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GitHubComponentConfiguration componentConfiguration;
+
+ public GitHubComponentAutoConfiguration() {
+ 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.github");
+ }
+ }
@Lazy
@Bean(name = "github-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GitHubComponent.class)
- public GitHubComponent configureGitHubComponent(CamelContext camelContext)
- throws Exception {
+ public GitHubComponent configureGitHubComponent() throws Exception {
GitHubComponent component = new GitHubComponent();
component.setCamelContext(camelContext);
- 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.github");
- if (isEnabled(conditionContext, "camel.component.github.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ Map<String, Object> parameters = new HashMap<>();
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
+ for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+ Object value = entry.getValue();
+ Class<?> paramClass = value.getClass();
+ if (paramClass.getName().endsWith("NestedConfiguration")) {
+ Class nestedClass = null;
+ try {
+ nestedClass = (Class) paramClass.getDeclaredField(
+ "CAMEL_NESTED_CLASS").get(null);
+ HashMap<String, Object> nestedParameters = new HashMap<>();
+ IntrospectionSupport.getProperties(value, nestedParameters,
+ null, false);
+ Object nestedProperty = nestedClass.newInstance();
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), nestedProperty,
+ nestedParameters);
+ entry.setValue(nestedProperty);
+ } catch (NoSuchFieldException e) {
+ }
}
- 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);
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), component, parameters);
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GitHubComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
+ }
}
+ 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-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentConfiguration.java
index 6b9ee45..047fb3a 100644
--- a/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-github-starter/src/main/java/org/apache/camel/component/github/springboot/GitHubComponentConfiguration.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.github.springboot;
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -23,8 +25,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.github")
-public class GitHubComponentConfiguration {
+public class GitHubComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Whether the component should resolve property placeholders on itself when
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
index ee870b5..ee374ea 100644
--- a/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentAutoConfiguration.java
@@ -17,51 +17,84 @@
package org.apache.camel.component.google.calendar.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.google.calendar.GoogleCalendarComponent;
+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(GoogleCalendarComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GoogleCalendarComponentConfiguration.class)
-public class GoogleCalendarComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GoogleCalendarComponentConfiguration.class})
+public class GoogleCalendarComponentAutoConfiguration
+ extends
+ AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GoogleCalendarComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GoogleCalendarComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GoogleCalendarComponentConfiguration componentConfiguration;
+
+ public GoogleCalendarComponentAutoConfiguration() {
+ 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.google-calendar");
+ }
+ }
@Lazy
@Bean(name = "google-calendar-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GoogleCalendarComponent.class)
- public GoogleCalendarComponent configureGoogleCalendarComponent(
- CamelContext camelContext,
- GoogleCalendarComponentConfiguration configuration)
+ public GoogleCalendarComponent configureGoogleCalendarComponent()
throws Exception {
GoogleCalendarComponent component = new GoogleCalendarComponent();
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 GoogleCalendarComponentAutoConfiguration {
}
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.google-calendar");
- if (isEnabled(conditionContext, "camel.component.google-calendar.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GoogleCalendarComponent> 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-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
index 600fab6..23f670d 100644
--- a/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.google.calendar.springboot;
import javax.annotation.Generated;
import org.apache.camel.component.google.calendar.GoogleCalendarClientFactory;
import org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
@@ -29,7 +30,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.google-calendar")
-public class GoogleCalendarComponentConfiguration {
+public class GoogleCalendarComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* To use the shared configuration
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
index d643326..96772a4 100644
--- a/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentAutoConfiguration.java
@@ -17,50 +17,82 @@
package org.apache.camel.component.google.drive.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.google.drive.GoogleDriveComponent;
+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(GoogleDriveComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GoogleDriveComponentConfiguration.class)
-public class GoogleDriveComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GoogleDriveComponentConfiguration.class})
+public class GoogleDriveComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GoogleDriveComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GoogleDriveComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GoogleDriveComponentConfiguration componentConfiguration;
+
+ public GoogleDriveComponentAutoConfiguration() {
+ 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.google-drive");
+ }
+ }
@Lazy
@Bean(name = "google-drive-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GoogleDriveComponent.class)
- public GoogleDriveComponent configureGoogleDriveComponent(
- CamelContext camelContext,
- GoogleDriveComponentConfiguration configuration) throws Exception {
+ public GoogleDriveComponent configureGoogleDriveComponent()
+ throws Exception {
GoogleDriveComponent component = new GoogleDriveComponent();
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 GoogleDriveComponentAutoConfiguration {
}
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.google-drive");
- if (isEnabled(conditionContext, "camel.component.google-drive.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GoogleDriveComponent> 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-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
index 31d46dd..80f7aad 100644
--- a/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConfiguration.java
@@ -20,6 +20,7 @@ import java.util.List;
import javax.annotation.Generated;
import org.apache.camel.component.google.drive.GoogleDriveClientFactory;
import org.apache.camel.component.google.drive.internal.GoogleDriveApiName;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
@@ -31,7 +32,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.google-drive")
-public class GoogleDriveComponentConfiguration {
+public class GoogleDriveComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* To use the shared configuration
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
index 69b8493..adee3e1 100644
--- a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentAutoConfiguration.java
@@ -17,50 +17,81 @@
package org.apache.camel.component.google.mail.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.google.mail.GoogleMailComponent;
+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(GoogleMailComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GoogleMailComponentConfiguration.class)
-public class GoogleMailComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GoogleMailComponentConfiguration.class})
+public class GoogleMailComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GoogleMailComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GoogleMailComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GoogleMailComponentConfiguration componentConfiguration;
+
+ public GoogleMailComponentAutoConfiguration() {
+ 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.google-mail");
+ }
+ }
@Lazy
@Bean(name = "google-mail-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GoogleMailComponent.class)
- public GoogleMailComponent configureGoogleMailComponent(
- CamelContext camelContext,
- GoogleMailComponentConfiguration configuration) throws Exception {
+ public GoogleMailComponent configureGoogleMailComponent() throws Exception {
GoogleMailComponent component = new GoogleMailComponent();
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 +114,16 @@ public class GoogleMailComponentAutoConfiguration {
}
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.google-mail");
- if (isEnabled(conditionContext, "camel.component.google-mail.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GoogleMailComponent> 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-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
index de05160..668fae5 100644
--- a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConfiguration.java
@@ -20,6 +20,7 @@ import java.util.List;
import javax.annotation.Generated;
import org.apache.camel.component.google.mail.GoogleMailClientFactory;
import org.apache.camel.component.google.mail.internal.GoogleMailApiName;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
@@ -30,7 +31,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.google-mail")
-public class GoogleMailComponentConfiguration {
+public class GoogleMailComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* To use the shared configuration
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentAutoConfiguration.java
index f018f70..b4f0c3b 100644
--- a/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentAutoConfiguration.java
@@ -17,50 +17,82 @@
package org.apache.camel.component.google.pubsub.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.google.pubsub.GooglePubsubComponent;
+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(GooglePubsubComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GooglePubsubComponentConfiguration.class)
-public class GooglePubsubComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GooglePubsubComponentConfiguration.class})
+public class GooglePubsubComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GooglePubsubComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GooglePubsubComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GooglePubsubComponentConfiguration componentConfiguration;
+
+ public GooglePubsubComponentAutoConfiguration() {
+ 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.google-pubsub");
+ }
+ }
@Lazy
@Bean(name = "google-pubsub-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GooglePubsubComponent.class)
- public GooglePubsubComponent configureGooglePubsubComponent(
- CamelContext camelContext,
- GooglePubsubComponentConfiguration configuration) throws Exception {
+ public GooglePubsubComponent configureGooglePubsubComponent()
+ throws Exception {
GooglePubsubComponent component = new GooglePubsubComponent();
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 GooglePubsubComponentAutoConfiguration {
}
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.google-pubsub");
- if (isEnabled(conditionContext, "camel.component.google-pubsub.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GooglePubsubComponent> 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-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentConfiguration.java
index 80e22f8..58b6464 100644
--- a/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-google-pubsub-starter/src/main/java/org/apache/camel/component/google/pubsub/springboot/GooglePubsubComponentConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.google.pubsub.springboot;
import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -27,7 +28,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.google-pubsub")
-public class GooglePubsubComponentConfiguration {
+public class GooglePubsubComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Sets the connection factory to use: provides the ability to explicitly
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentAutoConfiguration.java
index 431f241..5e81306 100644
--- a/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentAutoConfiguration.java
@@ -16,68 +16,114 @@
*/
package org.apache.camel.component.gora.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.gora.GoraComponent;
+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(GoraComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-public class GoraComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GoraComponentConfiguration.class})
+public class GoraComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GoraComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GoraComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GoraComponentConfiguration componentConfiguration;
+
+ public GoraComponentAutoConfiguration() {
+ 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.gora");
+ }
+ }
@Lazy
@Bean(name = "gora-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GoraComponent.class)
- public GoraComponent configureGoraComponent(CamelContext camelContext)
- throws Exception {
+ public GoraComponent configureGoraComponent() throws Exception {
GoraComponent component = new GoraComponent();
component.setCamelContext(camelContext);
- 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.gora");
- if (isEnabled(conditionContext, "camel.component.gora.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ Map<String, Object> parameters = new HashMap<>();
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
+ for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+ Object value = entry.getValue();
+ Class<?> paramClass = value.getClass();
+ if (paramClass.getName().endsWith("NestedConfiguration")) {
+ Class nestedClass = null;
+ try {
+ nestedClass = (Class) paramClass.getDeclaredField(
+ "CAMEL_NESTED_CLASS").get(null);
+ HashMap<String, Object> nestedParameters = new HashMap<>();
+ IntrospectionSupport.getProperties(value, nestedParameters,
+ null, false);
+ Object nestedProperty = nestedClass.newInstance();
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), nestedProperty,
+ nestedParameters);
+ entry.setValue(nestedProperty);
+ } catch (NoSuchFieldException e) {
+ }
}
- 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);
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), component, parameters);
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GoraComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
+ }
}
+ 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-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentConfiguration.java
index 1cf7136..7ccf63b 100644
--- a/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-gora-starter/src/main/java/org/apache/camel/component/gora/springboot/GoraComponentConfiguration.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.gora.springboot;
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -24,8 +26,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.gora")
-public class GoraComponentConfiguration {
+public class GoraComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
/**
* Whether the component should resolve property placeholders on itself when
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageAutoConfiguration.java
index f1d4da7..08bd03e 100644
--- a/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageAutoConfiguration.java
@@ -17,45 +17,78 @@
package org.apache.camel.language.groovy.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.language.groovy.GroovyLanguage;
+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(GroovyLanguageAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GroovyLanguageConfiguration.class)
-public class GroovyLanguageAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({LanguageConfigurationProperties.class,
+ GroovyLanguageConfiguration.class})
+public class GroovyLanguageAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GroovyLanguageAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<LanguageCustomizer<GroovyLanguage>> customizers;
+ @Autowired
+ private LanguageConfigurationProperties globalConfiguration;
+ @Autowired
+ private GroovyLanguageConfiguration languageConfiguration;
+
+ public GroovyLanguageAutoConfiguration() {
+ 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.groovy");
+ }
+ }
@Bean(name = "groovy-language")
@Scope("prototype")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GroovyLanguage.class)
- public GroovyLanguage configureGroovyLanguage(CamelContext camelContext,
- GroovyLanguageConfiguration configuration) throws Exception {
+ public GroovyLanguage configureGroovyLanguage() throws Exception {
GroovyLanguage language = new GroovyLanguage();
if (CamelContextAware.class.isAssignableFrom(GroovyLanguage.class)) {
CamelContextAware contextAware = CamelContextAware.class
@@ -65,36 +98,20 @@ public class GroovyLanguageAutoConfiguration {
}
}
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.groovy");
- if (isEnabled(conditionContext, "camel.language.groovy.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && languageConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (LanguageCustomizer<GroovyLanguage> 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-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageConfiguration.java b/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageConfiguration.java
index a10a018..90cb3aa 100644
--- a/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-groovy-starter/src/main/java/org/apache/camel/language/groovy/springboot/GroovyLanguageConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.language.groovy.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.groovy")
-public class GroovyLanguageConfiguration {
+public class GroovyLanguageConfiguration
+ 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-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentAutoConfiguration.java
index 2b584d5..c89517d 100644
--- a/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentAutoConfiguration.java
@@ -16,68 +16,114 @@
*/
package org.apache.camel.component.grpc.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.grpc.GrpcComponent;
+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(GrpcComponentAutoConfiguration.Condition.class)
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-public class GrpcComponentAutoConfiguration {
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+ GrpcComponentConfiguration.class})
+public class GrpcComponentAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GrpcComponentAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<ComponentCustomizer<GrpcComponent>> customizers;
+ @Autowired
+ private ComponentConfigurationProperties globalConfiguration;
+ @Autowired
+ private GrpcComponentConfiguration componentConfiguration;
+
+ public GrpcComponentAutoConfiguration() {
+ 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.grpc");
+ }
+ }
@Lazy
@Bean(name = "grpc-component")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GrpcComponent.class)
- public GrpcComponent configureGrpcComponent(CamelContext camelContext)
- throws Exception {
+ public GrpcComponent configureGrpcComponent() throws Exception {
GrpcComponent component = new GrpcComponent();
component.setCamelContext(camelContext);
- 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.grpc");
- if (isEnabled(conditionContext, "camel.component.grpc.",
- groupEnabled)) {
- return ConditionOutcome.match(message.because("enabled"));
+ Map<String, Object> parameters = new HashMap<>();
+ IntrospectionSupport.getProperties(componentConfiguration, parameters,
+ null, false);
+ for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+ Object value = entry.getValue();
+ Class<?> paramClass = value.getClass();
+ if (paramClass.getName().endsWith("NestedConfiguration")) {
+ Class nestedClass = null;
+ try {
+ nestedClass = (Class) paramClass.getDeclaredField(
+ "CAMEL_NESTED_CLASS").get(null);
+ HashMap<String, Object> nestedParameters = new HashMap<>();
+ IntrospectionSupport.getProperties(value, nestedParameters,
+ null, false);
+ Object nestedProperty = nestedClass.newInstance();
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), nestedProperty,
+ nestedParameters);
+ entry.setValue(nestedProperty);
+ } catch (NoSuchFieldException e) {
+ }
}
- 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);
+ IntrospectionSupport.setProperties(camelContext,
+ camelContext.getTypeConverter(), component, parameters);
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && componentConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (ComponentCustomizer<GrpcComponent> configurer : customizers) {
+ LOGGER.debug("Configure component {}, with configurer {}",
+ component, configurer);
+ configurer.customize(component);
+ }
}
+ 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-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentConfiguration.java
new file mode 100644
index 0000000..f305898
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-grpc-starter/src/main/java/org/apache/camel/component/grpc/springboot/GrpcComponentConfiguration.java
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.grpc.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The gRPC component is using for calling remote procedures via HTTP/2
+ *
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@ConfigurationProperties(prefix = "camel.component.grpc")
+public class GrpcComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
+
+ /**
+ * Whether the component should resolve property placeholders on itself when
+ * starting. Only properties which are of String type can use property
+ * placeholders.
+ */
+ private Boolean resolvePropertyPlaceholders = true;
+
+ public Boolean getResolvePropertyPlaceholders() {
+ return resolvePropertyPlaceholders;
+ }
+
+ public void setResolvePropertyPlaceholders(
+ Boolean resolvePropertyPlaceholders) {
+ this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatAutoConfiguration.java
index 09db4a2..727b885 100644
--- a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatAutoConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.gson.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.gson.GsonDataFormat;
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(GsonDataFormatAutoConfiguration.Condition.class)
@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@EnableConfigurationProperties(GsonDataFormatConfiguration.class)
-public class GsonDataFormatAutoConfiguration {
+@EnableConfigurationProperties({DataFormatConfigurationProperties.class,
+ GsonDataFormatConfiguration.class})
+public class GsonDataFormatAutoConfiguration extends AllNestedConditions {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GsonDataFormatAutoConfiguration.class);
+ @Autowired
+ private CamelContext camelContext;
+ @Autowired(required = false)
+ private List<DataFormatCustomizer<GsonDataFormat>> customizers;
+ @Autowired
+ private DataFormatConfigurationProperties globalConfiguration;
+ @Autowired
+ private GsonDataFormatConfiguration dataformatConfiguration;
+
+ public GsonDataFormatAutoConfiguration() {
+ 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.json-gson");
+ }
+ }
@Bean(name = "json-gson-dataformat-factory")
@ConditionalOnClass(CamelContext.class)
@ConditionalOnMissingBean(GsonDataFormat.class)
- public DataFormatFactory configureGsonDataFormatFactory(
- final CamelContext camelContext,
- final GsonDataFormatConfiguration configuration) {
+ public DataFormatFactory configureGsonDataFormatFactory() throws Exception {
return new DataFormatFactory() {
public DataFormat newInstance() {
GsonDataFormat dataformat = new GsonDataFormat();
@@ -71,7 +103,7 @@ public class GsonDataFormatAutoConfiguration {
}
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 GsonDataFormatAutoConfiguration {
} catch (Exception e) {
throw new RuntimeCamelException(e);
}
+ boolean useConfigurers = globalConfiguration.getConfigurer()
+ .isEnabled()
+ && dataformatConfiguration.getConfigurer().isEnabled();
+ if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) {
+ for (DataFormatCustomizer<GsonDataFormat> 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.json-gson");
- if (isEnabled(conditionContext, "camel.dataformat.json-gson.",
- 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-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java
index 4897562..00f41b5 100644
--- a/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-gson-starter/src/main/java/org/apache/camel/component/gson/springboot/GsonDataFormatConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.gson.springboot;
import javax.annotation.Generated;
import org.apache.camel.component.gson.GsonDataFormat;
import org.apache.camel.model.dataformat.JsonLibrary;
+import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -28,7 +29,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.dataformat.json-gson")
-public class GsonDataFormatConfiguration {
+public class GsonDataFormatConfiguration
+ extends
+ DataFormatConfigurationPropertiesCommon {
/**
* Lookup and use the existing ObjectMapper with the given id when using