Repository: cloudstack Updated Branches: refs/heads/master c2f2f77ab -> bec44bffb
Upgrade Reflections to 0.9.9 Signed-off-by: Rajani Karuturi <rajanikarut...@gmail.com> This closes #333 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bec44bff Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bec44bff Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bec44bff Branch: refs/heads/master Commit: bec44bffb3ed415315793cf83603ce13bf865ff0 Parents: c2f2f77 Author: Rafael da Fonseca <rsafons...@gmail.com> Authored: Fri May 29 23:32:35 2015 +0200 Committer: Rajani Karuturi <rajanikarut...@gmail.com> Committed: Wed Jun 3 11:01:32 2015 +0530 ---------------------------------------------------------------------- pom.xml | 2 +- server/src/com/cloud/api/doc/ApiXmlDocWriter.java | 5 ++++- utils/src/com/cloud/utils/ReflectUtil.java | 12 ++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bec44bff/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 6e3730b..fa019ef 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ <cs.lang.version>2.6</cs.lang.version> <cs.commons-io.version>2.4</cs.commons-io.version> <cs.commons-validator.version>1.4.0</cs.commons-validator.version> - <cs.reflections.version>0.9.8</cs.reflections.version> + <cs.reflections.version>0.9.9</cs.reflections.version> <cs.java-ipv6.version>0.15</cs.java-ipv6.version> <cs.replace.properties>build/replace.properties</cs.replace.properties> <cs.libvirt-java.version>0.5.1</cs.libvirt-java.version> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bec44bff/server/src/com/cloud/api/doc/ApiXmlDocWriter.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/doc/ApiXmlDocWriter.java b/server/src/com/cloud/api/doc/ApiXmlDocWriter.java index 2d2cada..166af4b 100644 --- a/server/src/com/cloud/api/doc/ApiXmlDocWriter.java +++ b/server/src/com/cloud/api/doc/ApiXmlDocWriter.java @@ -96,12 +96,15 @@ public class ApiXmlDocWriter { } public static void main(String[] args) { - Set<Class<?>> cmdClasses = ReflectUtil.getClassesWithAnnotation(APICommand.class, new String[] {"org.apache.cloudstack.api", "com.cloud.api", "com.cloud.api.commands", "com.globo.globodns.cloudstack.api", "org.apache.cloudstack.network.opendaylight.api", "com.cloud.api.commands.netapp", "org.apache.cloudstack.api.command.admin.zone", "org.apache.cloudstack.network.contrail.api.command"}); for (Class<?> cmdClass : cmdClasses) { + if(cmdClass.getAnnotation(APICommand.class)==null){ + System.out.println("Warning, API Cmd class " + cmdClass.getName() + " has no APICommand annotation "); + continue; + } String apiName = cmdClass.getAnnotation(APICommand.class).name(); if (s_apiNameCmdClassMap.containsKey(apiName)) { // handle API cmd separation into admin cmd and user cmd with the common api name http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bec44bff/utils/src/com/cloud/utils/ReflectUtil.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/ReflectUtil.java b/utils/src/com/cloud/utils/ReflectUtil.java index 9c09980..c8ae954 100644 --- a/utils/src/com/cloud/utils/ReflectUtil.java +++ b/utils/src/com/cloud/utils/ReflectUtil.java @@ -37,6 +37,10 @@ import java.util.Set; import org.apache.log4j.Logger; import org.reflections.Reflections; +import org.reflections.util.ConfigurationBuilder; +import org.reflections.util.ClasspathHelper; +import org.reflections.scanners.SubTypesScanner; +import org.reflections.scanners.TypeAnnotationsScanner; import com.google.common.collect.ImmutableSet; @@ -45,6 +49,7 @@ import com.cloud.utils.exception.CloudRuntimeException; public class ReflectUtil { private static final Logger s_logger = Logger.getLogger(ReflectUtil.class); + private static final Logger logger = Logger.getLogger(Reflections.class); public static Pair<Class<?>, Field> getAnyField(Class<?> clazz, String fieldName) { try { @@ -65,10 +70,13 @@ public class ReflectUtil { public static Set<Class<?>> getClassesWithAnnotation(Class<? extends Annotation> annotation, String[] packageNames) { Reflections reflections; Set<Class<?>> classes = new HashSet<Class<?>>(); + ConfigurationBuilder builder=new ConfigurationBuilder(); for (String packageName : packageNames) { - reflections = new Reflections(packageName); - classes.addAll(reflections.getTypesAnnotatedWith(annotation)); + builder.addUrls(ClasspathHelper.forPackage(packageName)); } + builder.setScanners(new SubTypesScanner(),new TypeAnnotationsScanner()); + reflections = new Reflections(builder); + classes.addAll(reflections.getTypesAnnotatedWith(annotation)); return classes; }