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.