You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2017/03/07 15:24:35 UTC

[1/2] camel git commit: CAMEL-10951: fix constant literals in spring-boot configuration classes

Repository: camel
Updated Branches:
  refs/heads/camel-2.18.x 762495717 -> 7f3b452aa


CAMEL-10951: fix constant literals in spring-boot configuration classes


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/29bdc91c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/29bdc91c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/29bdc91c

Branch: refs/heads/camel-2.18.x
Commit: 29bdc91c8ce04d481ceed78e0c0fb513199e5b5f
Parents: 7624957
Author: Nicola Ferraro <ni...@gmail.com>
Authored: Tue Mar 7 14:53:54 2017 +0100
Committer: Nicola Ferraro <ni...@gmail.com>
Committed: Tue Mar 7 16:23:41 2017 +0100

----------------------------------------------------------------------
 .../SpringBootAutoConfigurationMojo.java        | 71 ++++++++++++++++++--
 1 file changed, 66 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/29bdc91c/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
index 8ebe2f4..0f83ff2 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
@@ -38,11 +38,13 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+
 import org.apache.camel.maven.packaging.model.ComponentModel;
 import org.apache.camel.maven.packaging.model.ComponentOptionModel;
 import org.apache.camel.maven.packaging.model.DataFormatModel;
@@ -130,6 +132,8 @@ public class SpringBootAutoConfigurationMojo extends AbstractMojo {
         PRIMITIVEMAP.put("float", "java.lang.Float");
     }
 
+    private static final List<String> JAVA_LANG_TYPES = Arrays.asList("Boolean", "Byte", "Character", "Class", "Double", "Float", "Integer", "Long", "Object", "Short", "String");
+
     /**
      * The maven project.
      *
@@ -453,16 +457,20 @@ public class SpringBootAutoConfigurationMojo extends AbstractMojo {
                 }
 
                 String defaultValue = null;
+                String defaultValueLiteral = null;
                 if (sourceProp.hasAnnotation(UriParam.class)) {
                     defaultValue = sourceProp.getAnnotation(UriParam.class).getStringValue("defaultValue");
+                    defaultValueLiteral = sourceProp.getAnnotation(UriParam.class).getLiteralValue("defaultValue");
                 } else if (sourceProp.hasAnnotation(UriPath.class)) {
                     defaultValue = sourceProp.getAnnotation(UriPath.class).getStringValue("defaultValue");
+                    defaultValueLiteral = sourceProp.getAnnotation(UriPath.class).getLiteralValue("defaultValue");
                 }
+
+                defaultValueLiteral = makeFQ(nestedType, defaultValueLiteral);
+
                 if (!Strings.isBlank(defaultValue)) {
-                    if ("java.lang.String".equals(optionType)) {
-                        prop.getField().setStringInitializer(defaultValue);
-                    } else if ("integer".equals(optionType) || "boolean".equals(optionType)) {
-                        prop.getField().setLiteralInitializer(defaultValue);
+                    if ("integer".equals(optionType) || "boolean".equals(optionType) || "java.lang.String".equals(optionType)) {
+                        prop.getField().setLiteralInitializer(defaultValueLiteral);
                     } else if (anEnum) {
                         String enumShortName = optionClass.getSimpleName();
                         prop.getField().setLiteralInitializer(enumShortName + "." + defaultValue);
@@ -479,6 +487,59 @@ public class SpringBootAutoConfigurationMojo extends AbstractMojo {
         writeSourceIfChanged(javaClass, fileName);
     }
 
+    private String makeFQ(JavaClassSource source, String literal) {
+        if (literal == null) {
+            return null;
+        }
+
+        if (Pattern.matches("[A-Z][A-Z0-9_]*", literal)) {
+            return source.getQualifiedName() + "." + literal;
+        }
+
+        Map<String, String> fq = new HashMap<>();
+        List<String> classes = extractClasses(literal);
+        for (String cl : classes) {
+
+            boolean found = false;
+            for (Import im : source.getImports()) {
+                if (cl.equals(im.getSimpleName())) {
+                    fq.put(cl, im.getQualifiedName());
+                    found = true;
+                    break;
+                }
+            }
+
+            if (!found) {
+                // if it's not a java.lang object, then it's in the same package
+                if (!JAVA_LANG_TYPES.contains(cl)) {
+                    fq.put(cl, source.getPackage() + "." + cl);
+                }
+            }
+        }
+
+        if (fq.size() > 0) {
+            String res = literal;
+            for (Map.Entry<String, String> fqn : fq.entrySet()) {
+                res = res.replace(fqn.getKey(), fqn.getValue());
+            }
+            return res;
+        }
+        return literal;
+    }
+
+    private List<String> extractClasses(String literal) {
+        if (literal.startsWith("\"") && literal.endsWith("\"")) {
+            return Collections.emptyList();
+        }
+        List<String> classes = new LinkedList<>();
+        Pattern regex = Pattern.compile("[^A-Za-z0-9_.]*([A-Z][A-Za-z0-9]*)[.][A-Za-z0-9_.-]+");
+        Matcher m = regex.matcher(literal);
+        while (m.find()) {
+            classes.add(m.group(1));
+        }
+        return classes;
+    }
+
     // resolved property type name and property source, Roaster doesn't resolve inner classes correctly
     private class ResolvedProperty {
         private String propertyType;
@@ -851,7 +912,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractMojo {
         String configurationName = name.replace("DataFormatAutoConfiguration", "DataFormatConfiguration");
         AnnotationSource<JavaClassSource> ann = javaClass.addAnnotation(EnableConfigurationProperties.class);
         ann.setLiteralValue("value", configurationName + ".class");
-        
+
         javaClass.addAnnotation(Conditional.class).setLiteralValue(name + ".Condition.class");
 
         // add method for auto configure


[2/2] camel git commit: CAMEL-10951: rebuild module starters

Posted by nf...@apache.org.
CAMEL-10951: rebuild module starters


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7f3b452a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7f3b452a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7f3b452a

Branch: refs/heads/camel-2.18.x
Commit: 7f3b452aa0e8a5376bb019768c83fff43f0e70e4
Parents: 29bdc91
Author: Nicola Ferraro <ni...@gmail.com>
Authored: Tue Mar 7 16:24:05 2017 +0100
Committer: Nicola Ferraro <ni...@gmail.com>
Committed: Tue Mar 7 16:24:05 2017 +0100

----------------------------------------------------------------------
 .../ganglia/springboot/GangliaComponentConfiguration.java      | 2 +-
 .../component/mail/springboot/MailComponentConfiguration.java  | 6 +++---
 .../netty/springboot/NettyComponentConfiguration.java          | 2 +-
 .../netty4/springboot/NettyComponentConfiguration.java         | 2 +-
 .../component/ssh/springboot/SshComponentConfiguration.java    | 2 +-
 .../springboot/XmlSignatureComponentConfiguration.java         | 2 +-
 .../camel/maven/packaging/SpringBootAutoConfigurationMojo.java | 3 +--
 7 files changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java b/components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
index 98fa94a..3e84d8d 100644
--- a/components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
+++ b/components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConfiguration.java
@@ -50,7 +50,7 @@ public class GangliaComponentConfiguration {
         /**
          * Host name for Ganglia server
          */
-        private String host = "DEFAULT_DESTINATION";
+        private String host = org.apache.camel.component.ganglia.GangliaConfiguration.DEFAULT_DESTINATION;
         /**
          * Port for Ganglia server
          */

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java b/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
index 5cc29b7..ad5de29 100644
--- a/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
+++ b/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
@@ -116,7 +116,7 @@ public class MailComponentConfiguration {
         /**
          * The from email address
          */
-        private String from = "MailConstants.MAIL_DEFAULT_FROM";
+        private String from = org.apache.camel.component.mail.MailConstants.MAIL_DEFAULT_FROM;
         /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
@@ -137,7 +137,7 @@ public class MailComponentConfiguration {
         /**
          * The folder to poll.
          */
-        private String folderName = "MailConstants.MAIL_DEFAULT_FOLDER";
+        private String folderName = org.apache.camel.component.mail.MailConstants.MAIL_DEFAULT_FOLDER;
         /**
          * Option to let Camel ignore unsupported charset in the local JVM when
          * sending mails. If the charset is unsupported then charset=XXX (where
@@ -203,7 +203,7 @@ public class MailComponentConfiguration {
          * email clients, set the alternative mail body with this key as a
          * header.
          */
-        private String alternativeBodyHeader = "MailConstants.MAIL_ALTERNATIVE_BODY";
+        private String alternativeBodyHeader = org.apache.camel.component.mail.MailConstants.MAIL_ALTERNATIVE_BODY;
         /**
          * Whether to use disposition inline or attachment.
          */

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java b/components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
index 8720056..883f912 100644
--- a/components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
+++ b/components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConfiguration.java
@@ -426,7 +426,7 @@ public class NettyComponentConfiguration {
         /**
          * Which protocols to enable when using SSL
          */
-        private String enabledProtocols = "DEFAULT_ENABLED_PROTOCOLS";
+        private String enabledProtocols = org.apache.camel.component.netty.NettyConfiguration.DEFAULT_ENABLED_PROTOCOLS;
 
         public Long getRequestTimeout() {
             return requestTimeout;

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-netty4-starter/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-netty4-starter/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java b/components-starter/camel-netty4-starter/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
index fb5f59d..9e06119 100644
--- a/components-starter/camel-netty4-starter/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
+++ b/components-starter/camel-netty4-starter/src/main/java/org/apache/camel/component/netty4/springboot/NettyComponentConfiguration.java
@@ -466,7 +466,7 @@ public class NettyComponentConfiguration {
         /**
          * Which protocols to enable when using SSL
          */
-        private String enabledProtocols = "DEFAULT_ENABLED_PROTOCOLS";
+        private String enabledProtocols = org.apache.camel.component.netty4.NettyConfiguration.DEFAULT_ENABLED_PROTOCOLS;
         private Boolean reconnect;
         private Integer reconnectInterval;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java b/components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
index db15ef6..ec7edc0 100644
--- a/components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
+++ b/components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConfiguration.java
@@ -242,7 +242,7 @@ public class SshComponentConfiguration {
          *            authentication.
          * @see KeyPairProvider
          */
-        private String keyType = "KeyPairProvider.SSH_RSA";
+        private String keyType = org.apache.sshd.common.KeyPairProvider.SSH_RSA;
         /**
          * Sets the timeout in milliseconds to wait in establishing the remote
          * SSH server connection. Defaults to 30000 milliseconds.

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java b/components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
index 7a09eec..8ff1e83 100644
--- a/components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
+++ b/components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignatureComponentConfiguration.java
@@ -629,7 +629,7 @@ public class XmlSignatureComponentConfiguration {
          * {@link #setOutputNodeSearch(Object)} . The supported default search
          * types you can find in {@link DefaultXmlSignature2Message} .
          */
-        private String outputNodeSearchType = "DefaultXmlSignature2Message.OUTPUT_NODE_SEARCH_TYPE_DEFAULT";
+        private String outputNodeSearchType = org.apache.camel.component.xmlsecurity.api.DefaultXmlSignature2Message.OUTPUT_NODE_SEARCH_TYPE_DEFAULT;
         /**
          * Indicator whether the XML signature elements (elements with local
          * name "Signature" and namesapce

http://git-wip-us.apache.org/repos/asf/camel/blob/7f3b452a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
index 0f83ff2..7c04386 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootAutoConfigurationMojo.java
@@ -28,6 +28,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -69,10 +70,8 @@ import org.jboss.forge.roaster.model.source.JavaClassSource;
 import org.jboss.forge.roaster.model.source.MethodSource;
 import org.jboss.forge.roaster.model.source.PropertySource;
 import org.jboss.forge.roaster.model.util.Strings;
-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.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.SpringBootCondition;