From d76027194578ab7b12ec33aa8738abec1e9c8fa3 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 8 Jan 2013 18:43:45 -0800 Subject: [PATCH] ApiDispatcher: Get rid of reflections, reuse utils' ReflectUtil Signed-off-by: Rohit Yadav --- server/pom.xml | 5 ----- server/src/com/cloud/api/ApiDispatcher.java | 16 +++------------- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/server/pom.xml b/server/pom.xml index 9e6bc68f8f6..64bd2a206da 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -80,11 +80,6 @@ tests test - - org.reflections - reflections - 0.9.8 - install diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 60d883677cd..fa9114e3ff7 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -31,6 +31,7 @@ import java.util.StringTokenizer; import java.util.regex.Matcher; import com.cloud.dao.EntityManager; +import com.cloud.utils.ReflectUtil; import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.InfrastructureEntity; import org.apache.cloudstack.acl.Role; @@ -374,19 +375,8 @@ public class ApiDispatcher { } } - // Process all the fields of the cmd object using reflection to recursively process super class - Field[] fields = cmd.getClass().getDeclaredFields(); - Class superClass = cmd.getClass().getSuperclass(); - while (BaseCmd.class.isAssignableFrom(superClass)) { - Field[] superClassFields = superClass.getDeclaredFields(); - if (superClassFields != null) { - Field[] tmpFields = new Field[fields.length + superClassFields.length]; - System.arraycopy(fields, 0, tmpFields, 0, fields.length); - System.arraycopy(superClassFields, 0, tmpFields, fields.length, superClassFields.length); - fields = tmpFields; - } - superClass = superClass.getSuperclass(); - } + Field[] fields = ReflectUtil.getAllFieldsForClass(cmd.getClass(), + new Class[] {BaseCmd.class}); for (Field field : fields) { PlugService plugServiceAnnotation = field.getAnnotation(PlugService.class);