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;