This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit ef567028be4d6b3d99030f3988b236df2275a8a6 Author: Andrea Cosentino <[email protected]> AuthorDate: Wed Jun 6 16:29:02 2018 +0200 CAMEL-12537 - Moved to compliant package --- .../mail/stream/GoogleMailStreamComponent.java | 2 +- .../mail/stream/GoogleMailStreamConfiguration.java | 2 +- .../mail/stream/GoogleMailStreamConstants.java | 2 +- .../mail/stream/GoogleMailStreamConsumer.java | 2 +- .../mail/stream/GoogleMailStreamEndpoint.java | 2 +- .../org/apache/camel/component/google-mail-stream | 2 +- .../AbstractGoogleMailStreamTestSupport.java | 4 +- .../src/test/resources/test-options.properties | 10 +- ...GoogleMailStreamComponentAutoConfiguration.java | 130 ++++++++++++ .../GoogleMailStreamComponentConfiguration.java | 220 +++++++++++++++++++++ 10 files changed, 363 insertions(+), 13 deletions(-) diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamComponent.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponent.java similarity index 98% rename from components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamComponent.java rename to components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponent.java index bab0691..62139ef 100644 --- a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamComponent.java +++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponent.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.mail.stream; +package org.apache.camel.component.google.mail.stream; import java.util.Map; diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConfiguration.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConfiguration.java similarity index 98% rename from components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConfiguration.java rename to components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConfiguration.java index edf326b..1d15831 100644 --- a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConfiguration.java +++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConfiguration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.mail.stream; +package org.apache.camel.component.google.mail.stream; import java.util.Arrays; import java.util.List; diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConstants.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConstants.java similarity index 95% rename from components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConstants.java rename to components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConstants.java index b658ddf..ccd2c0f 100644 --- a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConstants.java +++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConstants.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.mail.stream; +package org.apache.camel.component.google.mail.stream; /** * Constants used in Camel Google Mail Stream diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConsumer.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java similarity index 99% rename from components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConsumer.java rename to components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java index bec6bcd..d44f28d 100644 --- a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamConsumer.java +++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.mail.stream; +package org.apache.camel.component.google.mail.stream; import java.io.IOException; import java.util.ArrayList; diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamEndpoint.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamEndpoint.java similarity index 99% rename from components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamEndpoint.java rename to components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamEndpoint.java index 493816e..c2ed119 100644 --- a/components/camel-google-mail/src/main/java/org/apache/camel/component/mail/stream/GoogleMailStreamEndpoint.java +++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamEndpoint.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.mail.stream; +package org.apache.camel.component.google.mail.stream; import java.io.UnsupportedEncodingException; import java.util.List; diff --git a/components/camel-google-mail/src/main/resources/META-INF/services/org/apache/camel/component/google-mail-stream b/components/camel-google-mail/src/main/resources/META-INF/services/org/apache/camel/component/google-mail-stream index a584453..a57907f 100644 --- a/components/camel-google-mail/src/main/resources/META-INF/services/org/apache/camel/component/google-mail-stream +++ b/components/camel-google-mail/src/main/resources/META-INF/services/org/apache/camel/component/google-mail-stream @@ -14,4 +14,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -class=org.apache.camel.component.mail.stream.GoogleMailStreamComponent +class=org.apache.camel.component.google.mail.stream.GoogleMailStreamComponent diff --git a/components/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/stream/AbstractGoogleMailStreamTestSupport.java b/components/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/stream/AbstractGoogleMailStreamTestSupport.java index 79b40e7..200f95a 100644 --- a/components/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/stream/AbstractGoogleMailStreamTestSupport.java +++ b/components/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/stream/AbstractGoogleMailStreamTestSupport.java @@ -22,8 +22,8 @@ import java.util.Map; import java.util.Properties; import org.apache.camel.CamelContext; -import org.apache.camel.component.mail.stream.GoogleMailStreamComponent; -import org.apache.camel.component.mail.stream.GoogleMailStreamConfiguration; +import org.apache.camel.component.google.mail.stream.GoogleMailStreamComponent; +import org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration; import org.apache.camel.test.junit4.CamelTestSupport; import org.apache.camel.util.IntrospectionSupport; diff --git a/components/camel-google-mail/src/test/resources/test-options.properties b/components/camel-google-mail/src/test/resources/test-options.properties index 2ae6269..463fa00 100644 --- a/components/camel-google-mail/src/test/resources/test-options.properties +++ b/components/camel-google-mail/src/test/resources/test-options.properties @@ -19,8 +19,8 @@ ## Login properties for Google Mail Component ##################################### ## Application client id and secret -clientId= -clientSecret= -applicationName=camel-google-mail/1.0 -accessToken= -refreshToken= +clientId=26463036425-1ro2qnrlli4ejavahtnt3pgnst8slshc.apps.googleusercontent.com +clientSecret=E5fOZ9Zd5xyfeB6dnfsti9kB +applicationName=test-gmail3 +accessToken=ya29.GlvSBZh8Al7_Dk7WuH_cLA9oWfoWwkK2oz_sVkkKjqLsHiq4y2AD-fZc-hbcUsxGxn8BsQrgN9uO08_-yH3WcfKI5rUB7gRZjorI-Wc9KncWDmFKj53VLhwzJRRl +refreshToken=1/HeY1rvryd1n5gifWCeToiY3JkefvPoXtGrhhg2xtZCJ5ujqYuAaDH6FScFGx6Cfb diff --git a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentAutoConfiguration.java new file mode 100644 index 0000000..55817fb --- /dev/null +++ b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentAutoConfiguration.java @@ -0,0 +1,130 @@ +/** + * 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.google.mail.stream.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.stream.GoogleMailStreamComponent; +import org.apache.camel.spi.ComponentCustomizer; +import org.apache.camel.spi.HasId; +import org.apache.camel.spring.boot.CamelAutoConfiguration; +import org.apache.camel.spring.boot.ComponentConfigurationProperties; +import org.apache.camel.spring.boot.util.CamelPropertiesHelper; +import org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans; +import org.apache.camel.spring.boot.util.GroupCondition; +import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator; +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.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; + +/** + * Generated by camel-package-maven-plugin - do not edit this file! + */ +@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") +@Configuration +@Conditional({ConditionalOnCamelContextAndAutoConfigurationBeans.class, + GoogleMailStreamComponentAutoConfiguration.GroupConditions.class}) +@AutoConfigureAfter(CamelAutoConfiguration.class) +@EnableConfigurationProperties({ComponentConfigurationProperties.class, + GoogleMailStreamComponentConfiguration.class}) +public class GoogleMailStreamComponentAutoConfiguration { + + private static final Logger LOGGER = LoggerFactory + .getLogger(GoogleMailStreamComponentAutoConfiguration.class); + @Autowired + private ApplicationContext applicationContext; + @Autowired + private CamelContext camelContext; + @Autowired + private GoogleMailStreamComponentConfiguration configuration; + @Autowired(required = false) + private List<ComponentCustomizer<GoogleMailStreamComponent>> customizers; + + static class GroupConditions extends GroupCondition { + public GroupConditions() { + super("camel.component", "camel.component.google-mail-stream"); + } + } + + @Lazy + @Bean(name = "google-mail-stream-component") + @ConditionalOnMissingBean(GoogleMailStreamComponent.class) + public GoogleMailStreamComponent configureGoogleMailStreamComponent() + throws Exception { + GoogleMailStreamComponent component = new GoogleMailStreamComponent(); + component.setCamelContext(camelContext); + Map<String, Object> parameters = new HashMap<>(); + IntrospectionSupport.getProperties(configuration, 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(); + CamelPropertiesHelper.setCamelProperties(camelContext, + nestedProperty, nestedParameters, false); + entry.setValue(nestedProperty); + } catch (NoSuchFieldException e) { + } + } + } + CamelPropertiesHelper.setCamelProperties(camelContext, component, + parameters, false); + if (ObjectHelper.isNotEmpty(customizers)) { + for (ComponentCustomizer<GoogleMailStreamComponent> customizer : customizers) { + boolean useCustomizer = (customizer instanceof HasId) + ? HierarchicalPropertiesEvaluator + .evaluate( + applicationContext.getEnvironment(), + "camel.component.customizer", + "camel.component.google-mail-stream.customizer", + ((HasId) customizer).getId()) + : HierarchicalPropertiesEvaluator + .evaluate(applicationContext.getEnvironment(), + "camel.component.customizer", + "camel.component.google-mail-stream.customizer"); + if (useCustomizer) { + LOGGER.debug("Configure component {}, with customizer {}", + component, customizer); + customizer.customize(component); + } + } + } + return component; + } +} \ No newline at end of file diff --git a/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentConfiguration.java new file mode 100644 index 0000000..e2e5cd6 --- /dev/null +++ b/platforms/spring-boot/components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentConfiguration.java @@ -0,0 +1,220 @@ +/** + * 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.google.mail.stream.springboot; + +import java.util.List; +import javax.annotation.Generated; +import org.apache.camel.component.google.mail.GoogleMailClientFactory; +import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +/** + * The google-mail component provides access to Google Mail. + * + * Generated by camel-package-maven-plugin - do not edit this file! + */ +@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") +@ConfigurationProperties(prefix = "camel.component.google-mail-stream") +public class GoogleMailStreamComponentConfiguration + extends + ComponentConfigurationPropertiesCommon { + + /** + * The configuration + */ + private GoogleMailStreamConfigurationNestedConfiguration configuration; + /** + * The client Factory + */ + @NestedConfigurationProperty + private GoogleMailClientFactory clientFactory; + /** + * 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 GoogleMailStreamConfigurationNestedConfiguration getConfiguration() { + return configuration; + } + + public void setConfiguration( + GoogleMailStreamConfigurationNestedConfiguration configuration) { + this.configuration = configuration; + } + + public GoogleMailClientFactory getClientFactory() { + return clientFactory; + } + + public void setClientFactory(GoogleMailClientFactory clientFactory) { + this.clientFactory = clientFactory; + } + + public Boolean getResolvePropertyPlaceholders() { + return resolvePropertyPlaceholders; + } + + public void setResolvePropertyPlaceholders( + Boolean resolvePropertyPlaceholders) { + this.resolvePropertyPlaceholders = resolvePropertyPlaceholders; + } + + public static class GoogleMailStreamConfigurationNestedConfiguration { + public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration.class; + /** + * Client ID of the mail application + */ + private String clientId; + /** + * Client secret of the mail application + */ + private String clientSecret; + /** + * OAuth 2 access token. This typically expires after an hour so + * refreshToken is recommended for long term usage. + */ + private String accessToken; + /** + * OAuth 2 refresh token. Using this, the Google Calendar component can + * obtain a new accessToken whenever the current one expires - a + * necessity if the application is long-lived. + */ + private String refreshToken; + /** + * Google mail application name. Example would be + * "camel-google-mail/1.0" + */ + private String applicationName; + /** + * Specifies the level of permissions you want a mail application to + * have to a user account. See + * https://developers.google.com/gmail/api/auth/scopes for more info. + */ + private List scopes; + /** + * Specifies an index for the endpoint + */ + private String index; + /** + * The query to execute on gmail box + */ + private String query = "is:unread"; + /** + * Max results to be returned + */ + private Long maxResults = 10L; + /** + * Comma separated list of labels to take into account + */ + private String labels; + /** + * Mark the message as read once it has been consumed + */ + private Boolean markAsRead = false; + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public void setClientSecret(String clientSecret) { + this.clientSecret = clientSecret; + } + + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + public String getRefreshToken() { + return refreshToken; + } + + public void setRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; + } + + public String getApplicationName() { + return applicationName; + } + + public void setApplicationName(String applicationName) { + this.applicationName = applicationName; + } + + public List getScopes() { + return scopes; + } + + public void setScopes(List scopes) { + this.scopes = scopes; + } + + public String getIndex() { + return index; + } + + public void setIndex(String index) { + this.index = index; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public Long getMaxResults() { + return maxResults; + } + + public void setMaxResults(Long maxResults) { + this.maxResults = maxResults; + } + + public String getLabels() { + return labels; + } + + public void setLabels(String labels) { + this.labels = labels; + } + + public Boolean getMarkAsRead() { + return markAsRead; + } + + public void setMarkAsRead(Boolean markAsRead) { + this.markAsRead = markAsRead; + } + } +} \ No newline at end of file -- To stop receiving notification emails like this one, please contact [email protected].
