You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2018/06/06 14:58:45 UTC
[camel] 01/03: CAMEL-12537 - Moved to compliant package
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 <an...@gmail.com>
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
acosentino@apache.org.