You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/02/10 13:05:32 UTC
[4/8] git commit: CAMEL-7185: Fixed apt compile processor to handle
super classes that is generics based.
CAMEL-7185: Fixed apt compile processor to handle super classes that is generics based.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a553aaa8
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a553aaa8
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a553aaa8
Branch: refs/heads/master
Commit: a553aaa8f91896b7e8e8e1fb56b3741150d6fe08
Parents: 3a85641
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 10 13:05:41 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 10 13:05:41 2014 +0100
----------------------------------------------------------------------
.../camel/tools/apt/EndpointAnnotationProcessor.java | 7 +++++--
.../java/org/apache/camel/tools/apt/util/Strings.java | 13 +++++++++++++
2 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/a553aaa8/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index b06930d..9879993 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -54,6 +54,8 @@ import org.apache.camel.spi.UriParams;
import org.apache.camel.tools.apt.util.Func1;
import org.apache.camel.tools.apt.util.Strings;
+import static org.apache.camel.tools.apt.util.Strings.canonicalClassName;
+
/**
* Processes all Camel endpoints
*/
@@ -240,7 +242,8 @@ public class EndpointAnnotationProcessor extends AbstractProcessor {
TypeElement baseTypeElement = null;
TypeMirror superclass = classElement.getSuperclass();
if (superclass != null) {
- baseTypeElement = findTypeElement(roundEnv, superclass.toString());
+ String superClassName = canonicalClassName(superclass.toString());
+ baseTypeElement = findTypeElement(roundEnv, superClassName);
}
if (baseTypeElement != null) {
classElement = baseTypeElement;
@@ -257,7 +260,7 @@ public class EndpointAnnotationProcessor extends AbstractProcessor {
for (Element rootElement : rootElements) {
if (rootElement instanceof TypeElement) {
TypeElement typeElement = (TypeElement) rootElement;
- String aRootName = typeElement.getQualifiedName().toString();
+ String aRootName = canonicalClassName(typeElement.getQualifiedName().toString());
if (className.equals(aRootName)) {
return typeElement;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/a553aaa8/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/Strings.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/Strings.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/Strings.java
index 74df4dd..bfa8c6b 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/Strings.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/util/Strings.java
@@ -36,4 +36,17 @@ public final class Strings {
public static String getOrElse(String text, String defaultValue) {
return (text != null) ? text : defaultValue;
}
+
+ /**
+ * Returns the canonical class name by removing any generic type information.
+ */
+ public static String canonicalClassName(String className) {
+ // remove generics
+ int pos = className.indexOf('<');
+ if (pos != -1) {
+ return className.substring(0, pos);
+ } else {
+ return className;
+ }
+ }
}