You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2025/01/13 06:15:27 UTC

(ranger) 02/02: RANGER-5061: checkstyle compliance updates - security-admin modules : org.apache.ranger.util package

This is an automated email from the ASF dual-hosted git repository.

pradeep pushed a commit to branch RANGER-5061_biz
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit a50d8439e949b01f13d46115e99015c8d972e817
Author: Pradeep AgrawaL <pr...@apache.org>
AuthorDate: Mon Jan 13 10:16:05 2025 +0530

    RANGER-5061: checkstyle compliance updates - security-admin modules : org.apache.ranger.util package
---
 .../main/java/org/apache/ranger/util/CLIUtil.java  |  115 +-
 .../ranger/util/Pbkdf2PasswordEncoderCust.java     |   38 +-
 .../org/apache/ranger/util/RangerAdminCache.java   |   46 +-
 .../org/apache/ranger/util/RangerEnumUtil.java     | 3954 ++++++++++----------
 .../org/apache/ranger/util/RangerMetricsUtil.java  |   25 +-
 .../org/apache/ranger/util/RangerRestUtil.java     |  154 +-
 .../apache/ranger/util/RangerServerHealthUtil.java |    4 +-
 .../main/java/org/apache/ranger/util/RestUtil.java |  303 +-
 8 files changed, 2301 insertions(+), 2338 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/util/CLIUtil.java b/security-admin/src/main/java/org/apache/ranger/util/CLIUtil.java
index 0fd584761..410079f61 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/CLIUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/CLIUtil.java
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+/**
+ *
+ */
 package org.apache.ranger.util;
 
 import org.apache.commons.lang.StringUtils;
@@ -38,65 +41,59 @@ import javax.servlet.http.HttpServletRequest;
 
 import java.util.Locale;
 
+/**
+ *
+ */
 @Component
 public class CLIUtil {
-	private static final Logger logger = LoggerFactory.getLogger(CLIUtil.class);
-
-	private static final String JAVA_PATCHES_CLASS_NAME_PREFIX = "Patch";
-
-	@Autowired
-	StandaloneSecurityHandler securityHandler;
-
-	static ApplicationContext context = null;
-
-	public static void init() {
-		if (context == null) {
-			context = new ClassPathXmlApplicationContext("applicationContext.xml", "security-applicationContext.xml", "asynctask-applicationContext.xml");
-		}
-	}
-
-	public static Object getBean(Class<?> beanClass) {
-		init();
-		checkIfJavaPatchesExecuting(beanClass);
-		return context.getBean(beanClass);
-	}
-
-	public void authenticate() throws Exception {
-		String user = PropertiesUtil.getProperty("xa.cli.user");
-		String pwd  = PropertiesUtil.getProperty("xa.cli.password");
-
-		logger.info("Authenticating user: {}", user);
-
-		securityHandler.login(user, pwd, context);
-	}
-
-	public static String getMessage(String messagekey, HttpServletRequest request) {
-		ServletContext     servletContext = request.getSession().getServletContext();
-		ApplicationContext ctx            = WebApplicationContextUtils.getWebApplicationContext(servletContext);
-		Object[]           args           = new Object[] {};
-
-		return ctx.getMessage(messagekey, args, Locale.getDefault());
-	}
-
-	private static void checkIfJavaPatchesExecuting(Class<?> beanClass) {
-		if (beanClass != null) {
-			final String className = beanClass.getSimpleName();
-
-			if (StringUtils.isNotEmpty(className)) {
-				if (className.startsWith(JAVA_PATCHES_CLASS_NAME_PREFIX)) {
-					UserSessionBase userSessBase = new UserSessionBase();
-
-					userSessBase.setUserAdmin(true);
-					userSessBase.setAuditUserAdmin(true);
-					userSessBase.setKeyAdmin(true);
-					userSessBase.setAuditKeyAdmin(true);
-
-					RangerSecurityContext rangerSecCtx = new RangerSecurityContext();
-
-					rangerSecCtx.setUserSession(userSessBase);
-					RangerContextHolder.setSecurityContext(rangerSecCtx);
-				}
-			}
-		}
-	}
+    private static final Logger             logger                         = LoggerFactory.getLogger(CLIUtil.class);
+    private static final String             JAVA_PATCHES_CLASS_NAME_PREFIX = "Patch";
+    static               ApplicationContext context;
+    @Autowired
+    StandaloneSecurityHandler securityHandler;
+
+    public static void init() {
+        if (context == null) {
+            context = new ClassPathXmlApplicationContext("applicationContext.xml", "security-applicationContext.xml", "asynctask-applicationContext.xml");
+        }
+    }
+
+    public static Object getBean(Class<?> beanClass) {
+        init();
+        checkIfJavaPatchesExecuting(beanClass);
+        return context.getBean(beanClass);
+    }
+
+    public static String getMessage(String messagekey, HttpServletRequest request) {
+        ServletContext     servletContext = request.getSession().getServletContext();
+        ApplicationContext ctx            = WebApplicationContextUtils.getWebApplicationContext(servletContext);
+        Object[]           args           = new Object[] {};
+        String             messageValue   = ctx.getMessage(messagekey, args, Locale.getDefault());
+        return messageValue;
+    }
+
+    public void authenticate() throws Exception {
+        String user = PropertiesUtil.getProperty("xa.cli.user");
+        String pwd  = PropertiesUtil.getProperty("xa.cli.password");
+        logger.info("Authenticating user: {}", user);
+        securityHandler.login(user, pwd, context);
+    }
+
+    private static void checkIfJavaPatchesExecuting(Class<?> beanClass) {
+        if (beanClass != null) {
+            final String className = beanClass.getSimpleName();
+            if (StringUtils.isNotEmpty(className)) {
+                if (className.startsWith(JAVA_PATCHES_CLASS_NAME_PREFIX)) {
+                    UserSessionBase userSessBase = new UserSessionBase();
+                    userSessBase.setUserAdmin(true);
+                    userSessBase.setAuditUserAdmin(true);
+                    userSessBase.setKeyAdmin(true);
+                    userSessBase.setAuditKeyAdmin(true);
+                    RangerSecurityContext rangerSecCtx = new RangerSecurityContext();
+                    rangerSecCtx.setUserSession(userSessBase);
+                    RangerContextHolder.setSecurityContext(rangerSecCtx);
+                }
+            }
+        }
+    }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/Pbkdf2PasswordEncoderCust.java b/security-admin/src/main/java/org/apache/ranger/util/Pbkdf2PasswordEncoderCust.java
index 813ae8717..d50a541b8 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/Pbkdf2PasswordEncoderCust.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/Pbkdf2PasswordEncoderCust.java
@@ -36,15 +36,14 @@ import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
 
 public class Pbkdf2PasswordEncoderCust implements PasswordEncoder {
-    private static final int DEFAULT_HASH_WIDTH = 256;
-    private static final int DEFAULT_ITERATIONS = 185000;
-
-    private final BytesKeyGenerator saltGenerator;
-    private       String            algorithm;
-    private final byte[]            secret;
-    private final int               hashWidth;
-    private final int               iterations;
-    private       boolean           encodeHashAsBase64;
+    private static final int               DEFAULT_HASH_WIDTH = 256;
+    private static final int               DEFAULT_ITERATIONS = 185000;
+    private final        BytesKeyGenerator saltGenerator;
+    private final        byte[]            secret;
+    private final        int               hashWidth;
+    private final        int               iterations;
+    private              String            algorithm;
+    private              boolean           encodeHashAsBase64;
 
     public Pbkdf2PasswordEncoderCust(CharSequence secret) {
         this(secret, DEFAULT_ITERATIONS, DEFAULT_HASH_WIDTH);
@@ -78,10 +77,16 @@ public class Pbkdf2PasswordEncoderCust implements PasswordEncoder {
     public String encode(CharSequence rawPassword) {
         byte[] salt    = this.saltGenerator.generateKey();
         byte[] encoded = this.encode(rawPassword, salt);
-
         return this.encode(encoded);
     }
 
+    @Override
+    public boolean matches(CharSequence rawPassword, String encodedPassword) {
+        byte[] digested = this.decode(encodedPassword);
+        byte[] salt     = EncodingUtils.subArray(digested, 0, this.saltGenerator.getKeyLength());
+        return matches(digested, this.encode(rawPassword, salt));
+    }
+
     public void setEncodeHashAsBase64(boolean encodeHashAsBase64) {
         this.encodeHashAsBase64 = encodeHashAsBase64;
     }
@@ -90,14 +95,6 @@ public class Pbkdf2PasswordEncoderCust implements PasswordEncoder {
         return this.encodeHashAsBase64 ? Utf8.decode(Base64.encode(bytes)) : String.valueOf(Hex.encode(bytes));
     }
 
-    @Override
-    public boolean matches(CharSequence rawPassword, String encodedPassword) {
-        byte[] digested = this.decode(encodedPassword);
-        byte[] salt     = EncodingUtils.subArray(digested, 0, this.saltGenerator.getKeyLength());
-
-        return matches(digested, this.encode(rawPassword, salt));
-    }
-
     private static boolean matches(byte[] expected, byte[] actual) {
         return Arrays.equals(expected, actual);
     }
@@ -108,10 +105,9 @@ public class Pbkdf2PasswordEncoderCust implements PasswordEncoder {
 
     private byte[] encode(CharSequence rawPassword, byte[] salt) {
         try {
-            PBEKeySpec       spec = new PBEKeySpec(rawPassword.toString().toCharArray(), EncodingUtils.concatenate(new byte[][] {salt, this.secret}), this.iterations, this.hashWidth);
+            PBEKeySpec       spec = new PBEKeySpec(rawPassword.toString().toCharArray(), EncodingUtils.concatenate(salt, this.secret), this.iterations, this.hashWidth);
             SecretKeyFactory skf  = SecretKeyFactory.getInstance(this.algorithm);
-
-            return EncodingUtils.concatenate(new byte[][] {salt, skf.generateSecret(spec).getEncoded()});
+            return EncodingUtils.concatenate(salt, skf.generateSecret(spec).getEncoded());
         } catch (GeneralSecurityException var5) {
             throw new IllegalStateException("Could not create hash", var5);
         }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerAdminCache.java b/security-admin/src/main/java/org/apache/ranger/util/RangerAdminCache.java
index ea9895779..d52809fd3 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerAdminCache.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerAdminCache.java
@@ -29,18 +29,16 @@ import org.springframework.transaction.PlatformTransactionManager;
 import org.springframework.transaction.support.TransactionTemplate;
 
 public class RangerAdminCache<K, V> extends RangerCache<K, V> {
-    private static final Logger LOG = LoggerFactory.getLogger(RangerDBValueLoader.class);
-
-    public static final int         DEFAULT_ADMIN_CACHE_LOADER_THREADS_COUNT     = 1;
-    public static final RefreshMode DEFAULT_ADMIN_CACHE_REFRESH_MODE             = RefreshMode.ON_ACCESS;
-    public static final long        DEFAULT_ADMIN_CACHE_VALUE_VALIDITY_PERIOD_MS = 0;          // every access should look to refresh
-    public static final long        DEFAULT_ADMIN_CACHE_VALUE_INIT_TIMEOUT_MS    = -1L;        // infinite timeout
-    public static final long        DEFAULT_ADMIN_CACHE_VALUE_REFRESH_TIMEOUT_MS = 10 * 1000L; // 10 seconds
-
-    private static final String PROP_PREFIX                   = "ranger.admin.cache.";
-    private static final String PROP_LOADER_THREAD_POOL_SIZE  = ".loader.threadpool.size";
-    private static final String PROP_VALUE_INIT_TIMEOUT_MS    = ".value.init.timeout.ms";
-    private static final String PROP_VALUE_REFRESH_TIMEOUT_MS = ".value.refresh.timeout.ms";
+    public static final  int         DEFAULT_ADMIN_CACHE_LOADER_THREADS_COUNT     = 1;
+    public static final  RefreshMode DEFAULT_ADMIN_CACHE_REFRESH_MODE             = RefreshMode.ON_ACCESS;
+    public static final  long        DEFAULT_ADMIN_CACHE_VALUE_VALIDITY_PERIOD_MS = 0;          // every access should look to refresh
+    public static final  long        DEFAULT_ADMIN_CACHE_VALUE_INIT_TIMEOUT_MS    = -1L;        // infinite timeout
+    public static final  long        DEFAULT_ADMIN_CACHE_VALUE_REFRESH_TIMEOUT_MS = 10 * 1000L; // 10 seconds
+    private static final Logger      LOG                                          = LoggerFactory.getLogger(RangerDBValueLoader.class);
+    private static final String      PROP_PREFIX                                  = "ranger.admin.cache.";
+    private static final String      PROP_LOADER_THREAD_POOL_SIZE                 = ".loader.threadpool.size";
+    private static final String      PROP_VALUE_INIT_TIMEOUT_MS                   = ".value.init.timeout.ms";
+    private static final String      PROP_VALUE_REFRESH_TIMEOUT_MS                = ".value.refresh.timeout.ms";
 
     protected RangerAdminCache(String name, RangerDBValueLoader<K, V> loader) {
         this(name, loader, getLoaderThreadPoolSize(name), DEFAULT_ADMIN_CACHE_REFRESH_MODE, DEFAULT_ADMIN_CACHE_VALUE_VALIDITY_PERIOD_MS, getValueInitLoadTimeout(name), getValueRefreshLoadTimeout(name));
@@ -55,6 +53,18 @@ public class RangerAdminCache<K, V> extends RangerCache<K, V> {
         return super.get(key, RangerContextHolder.getSecurityContext());
     }
 
+    private static int getLoaderThreadPoolSize(String cacheName) {
+        return RangerAdminConfig.getInstance().getInt(PROP_PREFIX + cacheName + PROP_LOADER_THREAD_POOL_SIZE, DEFAULT_ADMIN_CACHE_LOADER_THREADS_COUNT);
+    }
+
+    private static long getValueInitLoadTimeout(String cacheName) {
+        return RangerAdminConfig.getInstance().getLong(PROP_PREFIX + cacheName + PROP_VALUE_INIT_TIMEOUT_MS, DEFAULT_ADMIN_CACHE_VALUE_INIT_TIMEOUT_MS);
+    }
+
+    private static long getValueRefreshLoadTimeout(String cacheName) {
+        return RangerAdminConfig.getInstance().getLong(PROP_PREFIX + cacheName + PROP_VALUE_REFRESH_TIMEOUT_MS, DEFAULT_ADMIN_CACHE_VALUE_REFRESH_TIMEOUT_MS);
+    }
+
     public abstract static class RangerDBValueLoader<K, V> extends ValueLoader<K, V> {
         private final TransactionTemplate txTemplate;
 
@@ -101,16 +111,4 @@ public class RangerAdminCache<K, V> extends RangerCache<K, V> {
 
         protected abstract RefreshableValue<V> dbLoad(K key, RefreshableValue<V> currentValue) throws Exception;
     }
-
-    private static int getLoaderThreadPoolSize(String cacheName) {
-        return RangerAdminConfig.getInstance().getInt(PROP_PREFIX + cacheName + PROP_LOADER_THREAD_POOL_SIZE, DEFAULT_ADMIN_CACHE_LOADER_THREADS_COUNT);
-    }
-
-    private static long getValueInitLoadTimeout(String cacheName) {
-        return RangerAdminConfig.getInstance().getLong(PROP_PREFIX + cacheName + PROP_VALUE_INIT_TIMEOUT_MS, DEFAULT_ADMIN_CACHE_VALUE_INIT_TIMEOUT_MS);
-    }
-
-    private static long getValueRefreshLoadTimeout(String cacheName) {
-        return RangerAdminConfig.getInstance().getLong(PROP_PREFIX + cacheName + PROP_VALUE_REFRESH_TIMEOUT_MS, DEFAULT_ADMIN_CACHE_VALUE_REFRESH_TIMEOUT_MS);
-    }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
index 0ca1f769b..ee09e0bc7 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
@@ -19,6 +19,10 @@
 
 package org.apache.ranger.util;
 
+/**
+ *
+ */
+
 import org.apache.ranger.common.view.VEnum;
 import org.apache.ranger.common.view.VEnumElement;
 import org.slf4j.Logger;
@@ -32,1994 +36,1990 @@ import java.util.Map;
 
 @Component
 public class RangerEnumUtil {
-    private static final Logger logger = LoggerFactory.getLogger(RangerEnumUtil.class);
-
-    public final static String ENUM_CommonEnums_ActiveStatus        = "CommonEnums.ActiveStatus";
-    public final static String ENUM_CommonEnums_ActivationStatus    = "CommonEnums.ActivationStatus";
-    public final static String ENUM_CommonEnums_BooleanValue        = "CommonEnums.BooleanValue";
-    public final static String ENUM_CommonEnums_DataType            = "CommonEnums.DataType";
-    public final static String ENUM_CommonEnums_DeviceType          = "CommonEnums.DeviceType";
-    public final static String ENUM_CommonEnums_DiffLevel           = "CommonEnums.DiffLevel";
-    public final static String ENUM_CommonEnums_FileType            = "CommonEnums.FileType";
-    public final static String ENUM_CommonEnums_FreqType            = "CommonEnums.FreqType";
-    public final static String ENUM_CommonEnums_MimeType            = "CommonEnums.MimeType";
-    public final static String ENUM_CommonEnums_NumberFormat        = "CommonEnums.NumberFormat";
-    public final static String ENUM_CommonEnums_ObjectStatus        = "CommonEnums.ObjectStatus";
-    public final static String ENUM_CommonEnums_PasswordResetStatus = "CommonEnums.PasswordResetStatus";
-    public final static String ENUM_CommonEnums_PriorityType        = "CommonEnums.PriorityType";
-    public final static String ENUM_CommonEnums_ProgressStatus      = "CommonEnums.ProgressStatus";
-    public final static String ENUM_CommonEnums_RelationType        = "CommonEnums.RelationType";
-    public final static String ENUM_CommonEnums_UserSource          = "CommonEnums.UserSource";
-    public final static String ENUM_CommonEnums_AssetType           = "CommonEnums.AssetType";
-    public final static String ENUM_CommonEnums_AccessResult        = "CommonEnums.AccessResult";
-    public final static String ENUM_CommonEnums_PolicyType          = "CommonEnums.PolicyType";
-    public final static String ENUM_CommonEnums_XAAuditType         = "CommonEnums.XAAuditType";
-    public final static String ENUM_CommonEnums_ResourceType        = "CommonEnums.ResourceType";
-    public final static String ENUM_CommonEnums_XAGroupType         = "CommonEnums.XAGroupType";
-    public final static String ENUM_CommonEnums_XAPermForType       = "CommonEnums.XAPermForType";
-    public final static String ENUM_CommonEnums_XAPermType          = "CommonEnums.XAPermType";
-    public final static String ENUM_CommonEnums_ClassTypes          = "CommonEnums.ClassTypes";
-    public final static String ENUM_XXAuthSession_AuthStatus        = "XXAuthSession.AuthStatus";
-    public final static String ENUM_XXAuthSession_AuthType          = "XXAuthSession.AuthType";
-    public final static String ENUM_XResponse_ResponseStatus        = "XResponse.ResponseStatus";
-
-    protected Map<String, VEnum> enumMap  = new HashMap<String, VEnum>();
-    protected List<VEnum>        enumList = new ArrayList<VEnum>();
+    public static final  String             ENUM_CommonEnums_ActiveStatus        = "CommonEnums.ActiveStatus";
+    public static final  String             ENUM_CommonEnums_ActivationStatus    = "CommonEnums.ActivationStatus";
+    public static final  String             ENUM_CommonEnums_BooleanValue        = "CommonEnums.BooleanValue";
+    public static final  String             ENUM_CommonEnums_DataType            = "CommonEnums.DataType";
+    public static final  String             ENUM_CommonEnums_DeviceType          = "CommonEnums.DeviceType";
+    public static final  String             ENUM_CommonEnums_DiffLevel           = "CommonEnums.DiffLevel";
+    public static final  String             ENUM_CommonEnums_FileType            = "CommonEnums.FileType";
+    public static final  String             ENUM_CommonEnums_FreqType            = "CommonEnums.FreqType";
+    public static final  String             ENUM_CommonEnums_MimeType            = "CommonEnums.MimeType";
+    public static final  String             ENUM_CommonEnums_NumberFormat        = "CommonEnums.NumberFormat";
+    public static final  String             ENUM_CommonEnums_ObjectStatus        = "CommonEnums.ObjectStatus";
+    public static final  String             ENUM_CommonEnums_PasswordResetStatus = "CommonEnums.PasswordResetStatus";
+    public static final  String             ENUM_CommonEnums_PriorityType        = "CommonEnums.PriorityType";
+    public static final  String             ENUM_CommonEnums_ProgressStatus      = "CommonEnums.ProgressStatus";
+    public static final  String             ENUM_CommonEnums_RelationType        = "CommonEnums.RelationType";
+    public static final  String             ENUM_CommonEnums_UserSource          = "CommonEnums.UserSource";
+    public static final  String             ENUM_CommonEnums_AssetType           = "CommonEnums.AssetType";
+    public static final  String             ENUM_CommonEnums_AccessResult        = "CommonEnums.AccessResult";
+    public static final  String             ENUM_CommonEnums_PolicyType          = "CommonEnums.PolicyType";
+    public static final  String             ENUM_CommonEnums_XAAuditType         = "CommonEnums.XAAuditType";
+    public static final  String             ENUM_CommonEnums_ResourceType        = "CommonEnums.ResourceType";
+    public static final  String             ENUM_CommonEnums_XAGroupType         = "CommonEnums.XAGroupType";
+    public static final  String             ENUM_CommonEnums_XAPermForType       = "CommonEnums.XAPermForType";
+    public static final  String             ENUM_CommonEnums_XAPermType          = "CommonEnums.XAPermType";
+    public static final  String             ENUM_CommonEnums_ClassTypes          = "CommonEnums.ClassTypes";
+    public static final  String             ENUM_XXAuthSession_AuthStatus        = "XXAuthSession.AuthStatus";
+    public static final  String             ENUM_XXAuthSession_AuthType          = "XXAuthSession.AuthType";
+    public static final  String             ENUM_XResponse_ResponseStatus        = "XResponse.ResponseStatus";
+    private static final Logger             logger                               = LoggerFactory.getLogger(RangerEnumUtil.class);
+    protected            Map<String, VEnum> enumMap                              = new HashMap<String, VEnum>();
+    protected            List<VEnum>        enumList                             = new ArrayList<VEnum>();
 
     public List<VEnum> getEnums() {
-		if (enumList.isEmpty()) {
-			init();
-		}
-		return enumList;
+        if (enumList.isEmpty()) {
+            init();
+        }
+        return enumList;
     }
 
     public VEnum getEnum(String enumName) {
-		if (enumList.isEmpty()) {
-			init();
-		}
-		return enumMap.get(enumName);
+        if (enumList.isEmpty()) {
+            init();
+        }
+        return enumMap.get(enumName);
     }
 
     public String getLabel(String enumName, int enumValue) {
-		VEnum vEnum = getEnum(enumName);
-		if (vEnum == null) {
-			logger.error("Enum not found. enum={}", enumName, new Throwable());
-			return "";
-		}
-		for (VEnumElement vEnumElement : vEnum.getElementList()) {
-			if (vEnumElement.getElementValue() == enumValue) {
-				return vEnumElement.getElementLabel();
-			}
-		}
-		logger.error("Enum value not found. enum={}, value={}", enumName, enumValue, new Throwable());
-		return "";
+        VEnum vEnum = getEnum(enumName);
+        if (vEnum == null) {
+            logger.error("Enum {} not found.", enumName, new Throwable());
+            return "";
+        }
+        for (VEnumElement vEnumElement : vEnum.getElementList()) {
+            if (vEnumElement.getElementValue() == enumValue) {
+                return vEnumElement.getElementLabel();
+            }
+        }
+        logger.error("Enum value not found. enum={}, value={}", enumName, enumValue, new Throwable());
+        return "";
     }
 
-	public int getValue(String enumName, String elementName) {
-		VEnum vEnum = getEnum(enumName);
-		if (vEnum == null) {
-			logger.error("Enum not found. enum={}", enumName, new Throwable());
-			return -1;
-		}
-		for (VEnumElement vEnumElement : vEnum.getElementList()) {
-			if (vEnumElement.getElementName().equalsIgnoreCase(elementName)) {
-				return vEnumElement.getElementValue();
-			}
-		}
-		logger.error("Enum value not found. enum={}, elementName={}", enumName, elementName, new Throwable());
-		return -1;
-	}
+    public int getValue(String enumName, String elementName) {
+        VEnum vEnum = getEnum(enumName);
+        if (vEnum == null) {
+            logger.error("Enum {} not found.", enumName, new Throwable());
+            return -1;
+        }
+        for (VEnumElement vEnumElement : vEnum.getElementList()) {
+            if (vEnumElement.getElementName().equalsIgnoreCase(elementName)) {
+                return vEnumElement.getElementValue();
+            }
+        }
+        logger.error("Enum value not found. enum={}, elementName={}", enumName, elementName, new Throwable());
+        return -1;
+    }
 
     protected void init() {
-		VEnum vEnum;
-		VEnumElement vElement;
-
-		///////////////////////////////////
-		// CommonEnums::ActiveStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ActiveStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_DISABLED");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Disabled");
-		vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DISABLED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_ENABLED");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Enabled");
-		vElement.setRbKey("xa.enum.ActiveStatus.STATUS_ENABLED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_DELETED");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Deleted");
-		vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DELETED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::ActivationStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ActivationStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_DISABLED");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Disabled");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DISABLED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_ACTIVE");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Active");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_ACTIVE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_PENDING_APPROVAL");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Pending Approval");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_APPROVAL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_PENDING_ACTIVATION");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Pending Activation");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_ACTIVATION");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_REJECTED");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Rejected");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_REJECTED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_DEACTIVATED");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Deactivated");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DEACTIVATED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_PRE_REGISTRATION");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("Registration Pending");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PRE_REGISTRATION");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACT_STATUS_NO_LOGIN");
-		vElement.setElementValue(7);
-		vElement.setElementLabel("No login privilege");
-		vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_NO_LOGIN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::BooleanValue
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_BooleanValue);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("BOOL_NONE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("None");
-		vElement.setRbKey("xa.enum.BooleanValue.BOOL_NONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("BOOL_TRUE");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("True");
-		vElement.setRbKey("xa.enum.BooleanValue.BOOL_TRUE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("BOOL_FALSE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("False");
-		vElement.setRbKey("xa.enum.BooleanValue.BOOL_FALSE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::DataType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_DataType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_INTEGER");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Integer");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_DOUBLE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Double");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DOUBLE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_STRING");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("String");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_BOOLEAN");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Boolean");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_BOOLEAN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_DATE");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Date");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_STRING_ENUM");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("String enumeration");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING_ENUM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_LONG");
-		vElement.setElementValue(7);
-		vElement.setElementLabel("Long");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_LONG");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DATA_TYPE_INTEGER_ENUM");
-		vElement.setElementValue(8);
-		vElement.setElementLabel("Integer enumeration");
-		vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER_ENUM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::DeviceType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_DeviceType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_BROWSER");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Browser");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_BROWSER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_IPHONE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("iPhone");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPHONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_IPAD");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("iPad");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPAD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_IPOD");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("iPod");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPOD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DEVICE_ANDROID");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Android");
-		vElement.setRbKey("xa.enum.DeviceType.DEVICE_ANDROID");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::DiffLevel
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_DiffLevel);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DIFF_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.DiffLevel.DIFF_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DIFF_LOW");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Low");
-		vElement.setRbKey("xa.enum.DiffLevel.DIFF_LOW");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DIFF_MEDIUM");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Medium");
-		vElement.setRbKey("xa.enum.DiffLevel.DIFF_MEDIUM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("DIFF_HIGH");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("High");
-		vElement.setRbKey("xa.enum.DiffLevel.DIFF_HIGH");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::FileType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_FileType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FILE_FILE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("File");
-		vElement.setRbKey("xa.enum.FileType.FILE_FILE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FILE_DIR");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Directory");
-		vElement.setRbKey("xa.enum.FileType.FILE_DIR");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::FreqType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_FreqType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_NONE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("None");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_NONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_MANUAL");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Manual");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_MANUAL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_HOURLY");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Hourly");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_HOURLY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_DAILY");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Daily");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_DAILY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_WEEKLY");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Weekly");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_WEEKLY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_BI_WEEKLY");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Bi Weekly");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_BI_WEEKLY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("FREQ_MONTHLY");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("Monthly");
-		vElement.setRbKey("xa.enum.FreqType.FREQ_MONTHLY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::MimeType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_MimeType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("MIME_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.MimeType.MIME_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("MIME_TEXT");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Text");
-		vElement.setRbKey("xa.enum.MimeType.MIME_TEXT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("MIME_HTML");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Html");
-		vElement.setRbKey("xa.enum.MimeType.MIME_HTML");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("MIME_PNG");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("png");
-		vElement.setRbKey("xa.enum.MimeType.MIME_PNG");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("MIME_JPEG");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("jpeg");
-		vElement.setRbKey("xa.enum.MimeType.MIME_JPEG");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::NumberFormat
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_NumberFormat);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("NUM_FORMAT_NONE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("None");
-		vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("NUM_FORMAT_NUMERIC");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Numeric");
-		vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NUMERIC");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("NUM_FORMAT_ALPHA");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Alphabhet");
-		vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ALPHA");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("NUM_FORMAT_ROMAN");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Roman");
-		vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ROMAN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::ObjectStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ObjectStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("OBJ_STATUS_ACTIVE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Active");
-		vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ACTIVE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("OBJ_STATUS_DELETED");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Deleted");
-		vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_DELETED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("OBJ_STATUS_ARCHIVED");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Archived");
-		vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ARCHIVED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::PasswordResetStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_PasswordResetStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PWD_RESET_ACTIVE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Active");
-		vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_ACTIVE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PWD_RESET_USED");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Used");
-		vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_USED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PWD_RESET_EXPIRED");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Expired");
-		vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_EXPIRED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PWD_RESET_DISABLED");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Disabled");
-		vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_DISABLED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::PriorityType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_PriorityType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PRIORITY_NORMAL");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Normal");
-		vElement.setRbKey("xa.enum.PriorityType.PRIORITY_NORMAL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PRIORITY_LOW");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Low");
-		vElement.setRbKey("xa.enum.PriorityType.PRIORITY_LOW");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PRIORITY_MEDIUM");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Medium");
-		vElement.setRbKey("xa.enum.PriorityType.PRIORITY_MEDIUM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PRIORITY_HIGH");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("High");
-		vElement.setRbKey("xa.enum.PriorityType.PRIORITY_HIGH");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::ProgressStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ProgressStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PROGRESS_PENDING");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Pending");
-		vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_PENDING");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PROGRESS_IN_PROGRESS");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("In Progress");
-		vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_IN_PROGRESS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PROGRESS_COMPLETE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Complete");
-		vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_COMPLETE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PROGRESS_ABORTED");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Aborted");
-		vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_ABORTED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("PROGRESS_FAILED");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Failed");
-		vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_FAILED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::RelationType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_RelationType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("REL_NONE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("None");
-		vElement.setRbKey("xa.enum.RelationType.REL_NONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("REL_SELF");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Self");
-		vElement.setRbKey("xa.enum.RelationType.REL_SELF");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::UserSource
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_UserSource);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("USER_APP");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Application");
-		vElement.setRbKey("xa.enum.UserSource.USER_APP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("USER_GOOGLE");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Google");
-		vElement.setRbKey("xa.enum.UserSource.USER_GOOGLE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("USER_FB");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("FaceBook");
-		vElement.setRbKey("xa.enum.UserSource.USER_FB");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::AssetType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_AssetType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_HDFS");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("HDFS");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_HDFS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_HBASE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("HBase");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_HBASE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_HIVE");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Hive");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_HIVE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_AGENT");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Agent");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_AGENT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_KNOX");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Knox");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_KNOX");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ASSET_STORM");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("Storm");
-		vElement.setRbKey("xa.enum.AssetType.ASSET_STORM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::AccessResult
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_AccessResult);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACCESS_RESULT_DENIED");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Denied");
-		vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_DENIED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("ACCESS_RESULT_ALLOWED");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Allowed");
-		vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_ALLOWED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::PolicyType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_PolicyType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("POLICY_INCLUSION");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Inclusion");
-		vElement.setRbKey("xa.enum.PolicyType.POLICY_INCLUSION");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("POLICY_EXCLUSION");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Exclusion");
-		vElement.setRbKey("xa.enum.PolicyType.POLICY_EXCLUSION");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::XAAuditType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_XAAuditType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_ALL");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("All");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_ALL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_READ");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Read");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_READ");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_WRITE");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Write");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_WRITE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_CREATE");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Create");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_CREATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_DELETE");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Delete");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_DELETE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_AUDIT_TYPE_LOGIN");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("Login");
-		vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_LOGIN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::ResourceType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ResourceType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_PATH");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Path");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_PATH");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_DB");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Database");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_DB");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_TABLE");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Table");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TABLE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_COL_FAM");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Column Family");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COL_FAM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_COLUMN");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Column");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COLUMN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_VIEW");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("VIEW");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_UDF");
-		vElement.setElementValue(7);
-		vElement.setElementLabel("UDF");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UDF");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_VIEW_COL");
-		vElement.setElementValue(8);
-		vElement.setElementLabel("View Column");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW_COL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_TOPOLOGY");
-		vElement.setElementValue(9);
-		vElement.setElementLabel("Topology");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TOPOLOGY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_SERVICE");
-		vElement.setElementValue(10);
-		vElement.setElementLabel("Service");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_SERVICE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("RESOURCE_GLOBAL");
-		vElement.setElementValue(11);
-		vElement.setElementLabel("Global");
-		vElement.setRbKey("xa.enum.ResourceType.RESOURCE_GLOBAL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::XAGroupType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_XAGroupType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_GROUP_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_GROUP_USER");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("User");
-		vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_USER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_GROUP_GROUP");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Group");
-		vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_GROUP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_GROUP_ROLE");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Role");
-		vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_ROLE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::XAPermForType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_XAPermForType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_FOR_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_FOR_USER");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Permission for Users");
-		vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_USER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_FOR_GROUP");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Permission for Groups");
-		vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_GROUP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::XAPermType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_XAPermType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_RESET");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Reset");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_RESET");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_READ");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Read");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_READ");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_WRITE");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Write");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_WRITE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_CREATE");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Create");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_CREATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_DELETE");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Delete");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DELETE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_ADMIN");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("Admin");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ADMIN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_OBFUSCATE");
-		vElement.setElementValue(7);
-		vElement.setElementLabel("Obfuscate");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_OBFUSCATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_MASK");
-		vElement.setElementValue(8);
-		vElement.setElementLabel("Mask");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_MASK");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_EXECUTE");
-		vElement.setElementValue(9);
-		vElement.setElementLabel("Execute");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_EXECUTE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_SELECT");
-		vElement.setElementValue(10);
-		vElement.setElementLabel("Select");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SELECT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_UPDATE");
-		vElement.setElementValue(11);
-		vElement.setElementLabel("Update");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPDATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_DROP");
-		vElement.setElementValue(12);
-		vElement.setElementLabel("Drop");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DROP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_ALTER");
-		vElement.setElementValue(13);
-		vElement.setElementLabel("Alter");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALTER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_INDEX");
-		vElement.setElementValue(14);
-		vElement.setElementLabel("Index");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_INDEX");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_LOCK");
-		vElement.setElementValue(15);
-		vElement.setElementLabel("Lock");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_LOCK");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_ALL");
-		vElement.setElementValue(16);
-		vElement.setElementLabel("All");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_ALLOW");
-		vElement.setElementValue(17);
-		vElement.setElementLabel("Allow");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALLOW");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_SUBMIT_TOPOLOGY");
-		vElement.setElementValue(18);
-		vElement.setElementLabel("Submit Topology");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SUBMIT_TOPOLOGY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_FILE_UPLOAD");
-		vElement.setElementValue(19);
-		vElement.setElementLabel("File Upload");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_UPLOAD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_NIMBUS");
-		vElement.setElementValue(20);
-		vElement.setElementLabel("Get Nimbus Conf");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_NIMBUS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_CLUSTER_INFO");
-		vElement.setElementValue(21);
-		vElement.setElementLabel("Get Cluster Info");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_CLUSTER_INFO");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_FILE_DOWNLOAD");
-		vElement.setElementValue(22);
-		vElement.setElementLabel("File Download");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_DOWNLOAD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_KILL_TOPOLOGY");
-		vElement.setElementValue(23);
-		vElement.setElementLabel("Kill Topology");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_KILL_TOPOLOGY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_REBALANCE");
-		vElement.setElementValue(24);
-		vElement.setElementLabel("Rebalance");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_REBALANCE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_ACTIVATE");
-		vElement.setElementValue(25);
-		vElement.setElementLabel("Activate");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ACTIVATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_DEACTIVATE");
-		vElement.setElementValue(26);
-		vElement.setElementLabel("Deactivate");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DEACTIVATE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_CONF");
-		vElement.setElementValue(27);
-		vElement.setElementLabel("Get Topology Conf");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_CONF");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY");
-		vElement.setElementValue(28);
-		vElement.setElementLabel("Get Topology");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_USER_TOPOLOGY");
-		vElement.setElementValue(29);
-		vElement.setElementLabel("Get User Topology");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_USER_TOPOLOGY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_INFO");
-		vElement.setElementValue(30);
-		vElement.setElementLabel("Get Topology Info");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_INFO");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
-		vElement.setElementValue(31);
-		vElement.setElementLabel("Upload New Credential");
-		vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// CommonEnums::ClassTypes
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_CommonEnums_ClassTypes);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_NONE");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("None");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NONE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_MESSAGE");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Message");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_MESSAGE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_USER_PROFILE");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("User Profile");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_USER_PROFILE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_AUTH_SESS");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Authentication Session");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_AUTH_SESS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_DATA_OBJECT");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("CLASS_TYPE_DATA_OBJECT");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_DATA_OBJECT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_NAMEVALUE");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("CLASS_TYPE_NAMEVALUE");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NAMEVALUE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_LONG");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("CLASS_TYPE_LONG");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_LONG");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_PASSWORD_CHANGE");
-		vElement.setElementValue(7);
-		vElement.setElementLabel("CLASS_TYPE_PASSWORD_CHANGE");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_STRING");
-		vElement.setElementValue(8);
-		vElement.setElementLabel("CLASS_TYPE_STRING");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_STRING");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_ENUM");
-		vElement.setElementValue(9);
-		vElement.setElementLabel("CLASS_TYPE_ENUM");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_ENUM_ELEMENT");
-		vElement.setElementValue(10);
-		vElement.setElementLabel("CLASS_TYPE_ENUM_ELEMENT");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM_ELEMENT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_RESPONSE");
-		vElement.setElementValue(11);
-		vElement.setElementLabel("Response");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_RESPONSE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_ASSET");
-		vElement.setElementValue(1000);
-		vElement.setElementLabel("Asset");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ASSET");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_RESOURCE");
-		vElement.setElementValue(1001);
-		vElement.setElementLabel("Resource");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_RESOURCE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_GROUP");
-		vElement.setElementValue(1002);
-		vElement.setElementLabel("XA Group");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_USER");
-		vElement.setElementValue(1003);
-		vElement.setElementLabel("XA User");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_USER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_GROUP_USER");
-		vElement.setElementValue(1004);
-		vElement.setElementLabel("XA Group of Users");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_USER");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_GROUP_GROUP");
-		vElement.setElementValue(1005);
-		vElement.setElementLabel("XA Group of groups");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_GROUP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_PERM_MAP");
-		vElement.setElementValue(1006);
-		vElement.setElementLabel("XA permissions for resource");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_PERM_MAP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_AUDIT_MAP");
-		vElement.setElementValue(1007);
-		vElement.setElementLabel("XA audits for resource");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_AUDIT_MAP");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_CRED_STORE");
-		vElement.setElementValue(1008);
-		vElement.setElementLabel("XA credential store");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_CRED_STORE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
-		vElement.setElementValue(1009);
-		vElement.setElementLabel("XA Policy Export Audit");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_TRX_LOG");
-		vElement.setElementValue(1010);
-		vElement.setElementLabel("Transaction log");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_TRX_LOG");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_ACCESS_AUDIT");
-		vElement.setElementValue(1011);
-		vElement.setElementLabel("Access Audit");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ACCESS_AUDIT");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
-		vElement.setElementValue(1012);
-		vElement.setElementLabel("Transaction log attribute");
-		vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// XXAuthSession::AuthStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_XXAuthSession_AuthStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_SUCCESS");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Success");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_SUCCESS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_WRONG_PASSWORD");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Wrong Password");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_WRONG_PASSWORD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_DISABLED");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Account Disabled");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_DISABLED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_LOCKED");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Locked");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_LOCKED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_PASSWORD_EXPIRED");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Password Expired");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_PASSWORD_EXPIRED");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_STATUS_USER_NOT_FOUND");
-		vElement.setElementValue(6);
-		vElement.setElementLabel("User not found");
-		vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_USER_NOT_FOUND");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// XXAuthSession::AuthType
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_XXAuthSession_AuthType);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_TYPE_UNKNOWN");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Unknown");
-		vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_UNKNOWN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_TYPE_PASSWORD");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Username/Password");
-		vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_PASSWORD");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_TYPE_KERBEROS");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Kerberos");
-		vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_KERBEROS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_TYPE_SSO");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("SingleSignOn");
-		vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_SSO");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("AUTH_TYPE_TRUSTED_PROXY");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Trusted Proxy");
-		vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_TRUSTED_PROXY");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		///////////////////////////////////
-		// XResponse::ResponseStatus
-		///////////////////////////////////
-		vEnum = new VEnum();
-		vEnum.setEnumName(ENUM_XResponse_ResponseStatus);
-		vEnum.setElementList(new ArrayList<VEnumElement>());
-		enumList.add(vEnum);
-		enumMap.put(vEnum.getEnumName(), vEnum);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_SUCCESS");
-		vElement.setElementValue(0);
-		vElement.setElementLabel("Success");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_SUCCESS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_ERROR");
-		vElement.setElementValue(1);
-		vElement.setElementLabel("Error");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_ERROR");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_VALIDATION");
-		vElement.setElementValue(2);
-		vElement.setElementLabel("Validation Error");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_VALIDATION");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_WARN");
-		vElement.setElementValue(3);
-		vElement.setElementLabel("Warning");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_WARN");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_INFO");
-		vElement.setElementValue(4);
-		vElement.setElementLabel("Information");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_INFO");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
-
-		vElement = new VEnumElement();
-		vElement.setElementName("STATUS_PARTIAL_SUCCESS");
-		vElement.setElementValue(5);
-		vElement.setElementLabel("Partial Success");
-		vElement.setRbKey("xa.enum.ResponseStatus.STATUS_PARTIAL_SUCCESS");
-		vElement.setEnumName(vEnum.getEnumName());
-
-		vEnum.getElementList().add(vElement);
+        VEnum        vEnum;
+        VEnumElement vElement;
+
+        ///////////////////////////////////
+        // CommonEnums::ActiveStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ActiveStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_DISABLED");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Disabled");
+        vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DISABLED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_ENABLED");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Enabled");
+        vElement.setRbKey("xa.enum.ActiveStatus.STATUS_ENABLED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_DELETED");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Deleted");
+        vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DELETED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::ActivationStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ActivationStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_DISABLED");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Disabled");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DISABLED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_ACTIVE");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Active");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_ACTIVE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_PENDING_APPROVAL");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Pending Approval");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_APPROVAL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_PENDING_ACTIVATION");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Pending Activation");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_ACTIVATION");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_REJECTED");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Rejected");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_REJECTED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_DEACTIVATED");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Deactivated");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DEACTIVATED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_PRE_REGISTRATION");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("Registration Pending");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PRE_REGISTRATION");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACT_STATUS_NO_LOGIN");
+        vElement.setElementValue(7);
+        vElement.setElementLabel("No login privilege");
+        vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_NO_LOGIN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::BooleanValue
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_BooleanValue);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("BOOL_NONE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("None");
+        vElement.setRbKey("xa.enum.BooleanValue.BOOL_NONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("BOOL_TRUE");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("True");
+        vElement.setRbKey("xa.enum.BooleanValue.BOOL_TRUE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("BOOL_FALSE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("False");
+        vElement.setRbKey("xa.enum.BooleanValue.BOOL_FALSE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::DataType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_DataType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_INTEGER");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Integer");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_DOUBLE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Double");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DOUBLE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_STRING");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("String");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_BOOLEAN");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Boolean");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_BOOLEAN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_DATE");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Date");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_STRING_ENUM");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("String enumeration");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING_ENUM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_LONG");
+        vElement.setElementValue(7);
+        vElement.setElementLabel("Long");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_LONG");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DATA_TYPE_INTEGER_ENUM");
+        vElement.setElementValue(8);
+        vElement.setElementLabel("Integer enumeration");
+        vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER_ENUM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::DeviceType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_DeviceType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_BROWSER");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Browser");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_BROWSER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_IPHONE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("iPhone");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPHONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_IPAD");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("iPad");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPAD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_IPOD");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("iPod");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPOD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DEVICE_ANDROID");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Android");
+        vElement.setRbKey("xa.enum.DeviceType.DEVICE_ANDROID");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::DiffLevel
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_DiffLevel);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DIFF_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.DiffLevel.DIFF_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DIFF_LOW");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Low");
+        vElement.setRbKey("xa.enum.DiffLevel.DIFF_LOW");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DIFF_MEDIUM");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Medium");
+        vElement.setRbKey("xa.enum.DiffLevel.DIFF_MEDIUM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("DIFF_HIGH");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("High");
+        vElement.setRbKey("xa.enum.DiffLevel.DIFF_HIGH");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::FileType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_FileType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FILE_FILE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("File");
+        vElement.setRbKey("xa.enum.FileType.FILE_FILE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FILE_DIR");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Directory");
+        vElement.setRbKey("xa.enum.FileType.FILE_DIR");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::FreqType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_FreqType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_NONE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("None");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_NONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_MANUAL");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Manual");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_MANUAL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_HOURLY");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Hourly");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_HOURLY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_DAILY");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Daily");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_DAILY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_WEEKLY");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Weekly");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_WEEKLY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_BI_WEEKLY");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Bi Weekly");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_BI_WEEKLY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("FREQ_MONTHLY");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("Monthly");
+        vElement.setRbKey("xa.enum.FreqType.FREQ_MONTHLY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::MimeType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_MimeType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("MIME_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.MimeType.MIME_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("MIME_TEXT");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Text");
+        vElement.setRbKey("xa.enum.MimeType.MIME_TEXT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("MIME_HTML");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Html");
+        vElement.setRbKey("xa.enum.MimeType.MIME_HTML");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("MIME_PNG");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("png");
+        vElement.setRbKey("xa.enum.MimeType.MIME_PNG");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("MIME_JPEG");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("jpeg");
+        vElement.setRbKey("xa.enum.MimeType.MIME_JPEG");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::NumberFormat
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_NumberFormat);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("NUM_FORMAT_NONE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("None");
+        vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("NUM_FORMAT_NUMERIC");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Numeric");
+        vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NUMERIC");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("NUM_FORMAT_ALPHA");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Alphabhet");
+        vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ALPHA");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("NUM_FORMAT_ROMAN");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Roman");
+        vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ROMAN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::ObjectStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ObjectStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("OBJ_STATUS_ACTIVE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Active");
+        vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ACTIVE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("OBJ_STATUS_DELETED");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Deleted");
+        vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_DELETED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("OBJ_STATUS_ARCHIVED");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Archived");
+        vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ARCHIVED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::PasswordResetStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_PasswordResetStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PWD_RESET_ACTIVE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Active");
+        vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_ACTIVE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PWD_RESET_USED");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Used");
+        vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_USED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PWD_RESET_EXPIRED");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Expired");
+        vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_EXPIRED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PWD_RESET_DISABLED");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Disabled");
+        vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_DISABLED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::PriorityType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_PriorityType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PRIORITY_NORMAL");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Normal");
+        vElement.setRbKey("xa.enum.PriorityType.PRIORITY_NORMAL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PRIORITY_LOW");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Low");
+        vElement.setRbKey("xa.enum.PriorityType.PRIORITY_LOW");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PRIORITY_MEDIUM");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Medium");
+        vElement.setRbKey("xa.enum.PriorityType.PRIORITY_MEDIUM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PRIORITY_HIGH");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("High");
+        vElement.setRbKey("xa.enum.PriorityType.PRIORITY_HIGH");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::ProgressStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ProgressStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PROGRESS_PENDING");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Pending");
+        vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_PENDING");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PROGRESS_IN_PROGRESS");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("In Progress");
+        vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_IN_PROGRESS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PROGRESS_COMPLETE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Complete");
+        vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_COMPLETE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PROGRESS_ABORTED");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Aborted");
+        vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_ABORTED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("PROGRESS_FAILED");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Failed");
+        vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_FAILED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::RelationType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_RelationType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("REL_NONE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("None");
+        vElement.setRbKey("xa.enum.RelationType.REL_NONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("REL_SELF");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Self");
+        vElement.setRbKey("xa.enum.RelationType.REL_SELF");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::UserSource
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_UserSource);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("USER_APP");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Application");
+        vElement.setRbKey("xa.enum.UserSource.USER_APP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("USER_GOOGLE");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Google");
+        vElement.setRbKey("xa.enum.UserSource.USER_GOOGLE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("USER_FB");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("FaceBook");
+        vElement.setRbKey("xa.enum.UserSource.USER_FB");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::AssetType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_AssetType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_HDFS");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("HDFS");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_HDFS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_HBASE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("HBase");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_HBASE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_HIVE");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Hive");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_HIVE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_AGENT");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Agent");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_AGENT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_KNOX");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Knox");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_KNOX");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ASSET_STORM");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("Storm");
+        vElement.setRbKey("xa.enum.AssetType.ASSET_STORM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+        ///////////////////////////////////
+        // CommonEnums::AccessResult
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_AccessResult);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACCESS_RESULT_DENIED");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Denied");
+        vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_DENIED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("ACCESS_RESULT_ALLOWED");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Allowed");
+        vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_ALLOWED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::PolicyType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_PolicyType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("POLICY_INCLUSION");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Inclusion");
+        vElement.setRbKey("xa.enum.PolicyType.POLICY_INCLUSION");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("POLICY_EXCLUSION");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Exclusion");
+        vElement.setRbKey("xa.enum.PolicyType.POLICY_EXCLUSION");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::XAAuditType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_XAAuditType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_ALL");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("All");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_ALL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_READ");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Read");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_READ");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_WRITE");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Write");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_WRITE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_CREATE");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Create");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_CREATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_DELETE");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Delete");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_DELETE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_AUDIT_TYPE_LOGIN");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("Login");
+        vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_LOGIN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::ResourceType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ResourceType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_PATH");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Path");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_PATH");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_DB");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Database");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_DB");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_TABLE");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Table");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TABLE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_COL_FAM");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Column Family");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COL_FAM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_COLUMN");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Column");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COLUMN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_VIEW");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("VIEW");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_UDF");
+        vElement.setElementValue(7);
+        vElement.setElementLabel("UDF");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UDF");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_VIEW_COL");
+        vElement.setElementValue(8);
+        vElement.setElementLabel("View Column");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW_COL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_TOPOLOGY");
+        vElement.setElementValue(9);
+        vElement.setElementLabel("Topology");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TOPOLOGY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_SERVICE");
+        vElement.setElementValue(10);
+        vElement.setElementLabel("Service");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_SERVICE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("RESOURCE_GLOBAL");
+        vElement.setElementValue(11);
+        vElement.setElementLabel("Global");
+        vElement.setRbKey("xa.enum.ResourceType.RESOURCE_GLOBAL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+        ///////////////////////////////////
+        // CommonEnums::XAGroupType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_XAGroupType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_GROUP_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_GROUP_USER");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("User");
+        vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_USER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_GROUP_GROUP");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Group");
+        vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_GROUP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_GROUP_ROLE");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Role");
+        vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_ROLE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::XAPermForType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_XAPermForType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_FOR_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_FOR_USER");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Permission for Users");
+        vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_USER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_FOR_GROUP");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Permission for Groups");
+        vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_GROUP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::XAPermType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_XAPermType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_RESET");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Reset");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_RESET");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_READ");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Read");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_READ");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_WRITE");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Write");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_WRITE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_CREATE");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Create");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_CREATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_DELETE");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Delete");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DELETE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_ADMIN");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("Admin");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ADMIN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_OBFUSCATE");
+        vElement.setElementValue(7);
+        vElement.setElementLabel("Obfuscate");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_OBFUSCATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_MASK");
+        vElement.setElementValue(8);
+        vElement.setElementLabel("Mask");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_MASK");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_EXECUTE");
+        vElement.setElementValue(9);
+        vElement.setElementLabel("Execute");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_EXECUTE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_SELECT");
+        vElement.setElementValue(10);
+        vElement.setElementLabel("Select");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SELECT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_UPDATE");
+        vElement.setElementValue(11);
+        vElement.setElementLabel("Update");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPDATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_DROP");
+        vElement.setElementValue(12);
+        vElement.setElementLabel("Drop");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DROP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_ALTER");
+        vElement.setElementValue(13);
+        vElement.setElementLabel("Alter");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALTER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_INDEX");
+        vElement.setElementValue(14);
+        vElement.setElementLabel("Index");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_INDEX");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_LOCK");
+        vElement.setElementValue(15);
+        vElement.setElementLabel("Lock");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_LOCK");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_ALL");
+        vElement.setElementValue(16);
+        vElement.setElementLabel("All");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_ALLOW");
+        vElement.setElementValue(17);
+        vElement.setElementLabel("Allow");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALLOW");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_SUBMIT_TOPOLOGY");
+        vElement.setElementValue(18);
+        vElement.setElementLabel("Submit Topology");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SUBMIT_TOPOLOGY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_FILE_UPLOAD");
+        vElement.setElementValue(19);
+        vElement.setElementLabel("File Upload");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_UPLOAD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_NIMBUS");
+        vElement.setElementValue(20);
+        vElement.setElementLabel("Get Nimbus Conf");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_NIMBUS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_CLUSTER_INFO");
+        vElement.setElementValue(21);
+        vElement.setElementLabel("Get Cluster Info");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_CLUSTER_INFO");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_FILE_DOWNLOAD");
+        vElement.setElementValue(22);
+        vElement.setElementLabel("File Download");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_DOWNLOAD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_KILL_TOPOLOGY");
+        vElement.setElementValue(23);
+        vElement.setElementLabel("Kill Topology");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_KILL_TOPOLOGY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_REBALANCE");
+        vElement.setElementValue(24);
+        vElement.setElementLabel("Rebalance");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_REBALANCE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_ACTIVATE");
+        vElement.setElementValue(25);
+        vElement.setElementLabel("Activate");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ACTIVATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_DEACTIVATE");
+        vElement.setElementValue(26);
+        vElement.setElementLabel("Deactivate");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DEACTIVATE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_CONF");
+        vElement.setElementValue(27);
+        vElement.setElementLabel("Get Topology Conf");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_CONF");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY");
+        vElement.setElementValue(28);
+        vElement.setElementLabel("Get Topology");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_USER_TOPOLOGY");
+        vElement.setElementValue(29);
+        vElement.setElementLabel("Get User Topology");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_USER_TOPOLOGY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_INFO");
+        vElement.setElementValue(30);
+        vElement.setElementLabel("Get Topology Info");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_INFO");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
+        vElement.setElementValue(31);
+        vElement.setElementLabel("Upload New Credential");
+        vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // CommonEnums::ClassTypes
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_CommonEnums_ClassTypes);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_NONE");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("None");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NONE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_MESSAGE");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Message");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_MESSAGE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_USER_PROFILE");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("User Profile");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_USER_PROFILE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_AUTH_SESS");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Authentication Session");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_AUTH_SESS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_DATA_OBJECT");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("CLASS_TYPE_DATA_OBJECT");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_DATA_OBJECT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_NAMEVALUE");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("CLASS_TYPE_NAMEVALUE");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NAMEVALUE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_LONG");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("CLASS_TYPE_LONG");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_LONG");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_PASSWORD_CHANGE");
+        vElement.setElementValue(7);
+        vElement.setElementLabel("CLASS_TYPE_PASSWORD_CHANGE");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_STRING");
+        vElement.setElementValue(8);
+        vElement.setElementLabel("CLASS_TYPE_STRING");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_STRING");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_ENUM");
+        vElement.setElementValue(9);
+        vElement.setElementLabel("CLASS_TYPE_ENUM");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_ENUM_ELEMENT");
+        vElement.setElementValue(10);
+        vElement.setElementLabel("CLASS_TYPE_ENUM_ELEMENT");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM_ELEMENT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_RESPONSE");
+        vElement.setElementValue(11);
+        vElement.setElementLabel("Response");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_RESPONSE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_ASSET");
+        vElement.setElementValue(1000);
+        vElement.setElementLabel("Asset");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ASSET");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_RESOURCE");
+        vElement.setElementValue(1001);
+        vElement.setElementLabel("Resource");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_RESOURCE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_GROUP");
+        vElement.setElementValue(1002);
+        vElement.setElementLabel("XA Group");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_USER");
+        vElement.setElementValue(1003);
+        vElement.setElementLabel("XA User");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_USER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_GROUP_USER");
+        vElement.setElementValue(1004);
+        vElement.setElementLabel("XA Group of Users");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_USER");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_GROUP_GROUP");
+        vElement.setElementValue(1005);
+        vElement.setElementLabel("XA Group of groups");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_GROUP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_PERM_MAP");
+        vElement.setElementValue(1006);
+        vElement.setElementLabel("XA permissions for resource");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_PERM_MAP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_AUDIT_MAP");
+        vElement.setElementValue(1007);
+        vElement.setElementLabel("XA audits for resource");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_AUDIT_MAP");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_CRED_STORE");
+        vElement.setElementValue(1008);
+        vElement.setElementLabel("XA credential store");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_CRED_STORE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
+        vElement.setElementValue(1009);
+        vElement.setElementLabel("XA Policy Export Audit");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_TRX_LOG");
+        vElement.setElementValue(1010);
+        vElement.setElementLabel("Transaction log");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_TRX_LOG");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_ACCESS_AUDIT");
+        vElement.setElementValue(1011);
+        vElement.setElementLabel("Access Audit");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ACCESS_AUDIT");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
+        vElement.setElementValue(1012);
+        vElement.setElementLabel("Transaction log attribute");
+        vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // XXAuthSession::AuthStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_XXAuthSession_AuthStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_SUCCESS");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Success");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_SUCCESS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_WRONG_PASSWORD");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Wrong Password");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_WRONG_PASSWORD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_DISABLED");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Account Disabled");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_DISABLED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_LOCKED");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Locked");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_LOCKED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_PASSWORD_EXPIRED");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Password Expired");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_PASSWORD_EXPIRED");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_STATUS_USER_NOT_FOUND");
+        vElement.setElementValue(6);
+        vElement.setElementLabel("User not found");
+        vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_USER_NOT_FOUND");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // XXAuthSession::AuthType
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_XXAuthSession_AuthType);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_TYPE_UNKNOWN");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Unknown");
+        vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_UNKNOWN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_TYPE_PASSWORD");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Username/Password");
+        vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_PASSWORD");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_TYPE_KERBEROS");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Kerberos");
+        vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_KERBEROS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_TYPE_SSO");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("SingleSignOn");
+        vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_SSO");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("AUTH_TYPE_TRUSTED_PROXY");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Trusted Proxy");
+        vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_TRUSTED_PROXY");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        ///////////////////////////////////
+        // XResponse::ResponseStatus
+        ///////////////////////////////////
+        vEnum = new VEnum();
+        vEnum.setEnumName(ENUM_XResponse_ResponseStatus);
+        vEnum.setElementList(new ArrayList<VEnumElement>());
+        enumList.add(vEnum);
+        enumMap.put(vEnum.getEnumName(), vEnum);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_SUCCESS");
+        vElement.setElementValue(0);
+        vElement.setElementLabel("Success");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_SUCCESS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_ERROR");
+        vElement.setElementValue(1);
+        vElement.setElementLabel("Error");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_ERROR");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_VALIDATION");
+        vElement.setElementValue(2);
+        vElement.setElementLabel("Validation Error");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_VALIDATION");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_WARN");
+        vElement.setElementValue(3);
+        vElement.setElementLabel("Warning");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_WARN");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_INFO");
+        vElement.setElementValue(4);
+        vElement.setElementLabel("Information");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_INFO");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
+
+        vElement = new VEnumElement();
+        vElement.setElementName("STATUS_PARTIAL_SUCCESS");
+        vElement.setElementValue(5);
+        vElement.setElementLabel("Partial Success");
+        vElement.setRbKey("xa.enum.ResponseStatus.STATUS_PARTIAL_SUCCESS");
+        vElement.setEnumName(vEnum.getEnumName());
+
+        vEnum.getElementList().add(vElement);
     }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
index 56cb35c24..a6788bf09 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
@@ -39,26 +39,19 @@ import java.util.Map;
  */
 @Component
 public class RangerMetricsUtil {
-    private static final Logger LOG = LoggerFactory.getLogger(RangerMetricsUtil.class);
-
+    private static final Logger                LOG = LoggerFactory.getLogger(RangerMetricsUtil.class);
     private static final OperatingSystemMXBean OS;
     private static final MemoryMXBean          MEM_BEAN;
 
-    static {
-        OS       = ManagementFactory.getOperatingSystemMXBean();
-        MEM_BEAN = ManagementFactory.getMemoryMXBean();
-    }
-
     public Map<String, Object> getValues() {
         LOG.debug("==> RangerMetricsUtil.getValues()");
 
         Map<String, Object> values = new LinkedHashMap<>();
-
         values.put("os.spec", StringUtils.join(Arrays.asList(addSystemInfo()), ", "));
         values.put("os.vcpus", String.valueOf(OS.getAvailableProcessors()));
         values.put("memory", addMemoryDetails());
 
-        LOG.debug("<== RangerMetricsUtil.getValues() {}", values);
+        LOG.debug("<== RangerMetricsUtil.getValues():{}", values);
 
         return values;
     }
@@ -70,14 +63,13 @@ public class RangerMetricsUtil {
         LOG.debug("==> RangerMetricsUtil.getPoolDivision()");
 
         Map<String, Object> poolDivisionValues = new LinkedHashMap<>();
-
         for (MemoryPoolMXBean mpBean : ManagementFactory.getMemoryPoolMXBeans()) {
             if (mpBean.getType() == MemoryType.HEAP) {
                 poolDivisionValues.put(mpBean.getName(), mpBean.getUsage());
             }
         }
 
-        LOG.debug("<== RangerMetricsUtil.getPoolDivision() {}", poolDivisionValues);
+        LOG.debug("<== RangerMetricsUtil.getPoolDivision(){}", poolDivisionValues);
 
         return poolDivisionValues;
     }
@@ -91,7 +83,6 @@ public class RangerMetricsUtil {
         Map<String, Object> memory       = new LinkedHashMap<>();
         MemoryUsage         memHeapUsage = MEM_BEAN.getHeapMemoryUsage();
         MemoryUsage         nonHeapUsage = MEM_BEAN.getNonHeapMemoryUsage();
-
         memory.put("heapInit", String.valueOf(memHeapUsage.getInit()));
         memory.put("heapMax", String.valueOf(memHeapUsage.getMax()));
         memory.put("heapCommitted", String.valueOf(memHeapUsage.getCommitted()));
@@ -102,7 +93,7 @@ public class RangerMetricsUtil {
         memory.put("nonHeapUsed", String.valueOf(nonHeapUsage.getUsed()));
         memory.put("memory_pool_usages", getPoolDivision());
 
-        LOG.debug("<== RangerMetricsUtil.addMemoryDetails() {}", memory);
+        LOG.debug("<== RangerMetricsUtil.addMemoryDetails(){}", memory);
 
         return memory;
     }
@@ -114,9 +105,13 @@ public class RangerMetricsUtil {
         LOG.debug("==> RangerMetricsUtil.addSystemInfo()");
 
         String[] osInfo = {OS.getName(), OS.getArch(), OS.getVersion()};
-
-        LOG.debug("<== RangerMetricsUtil.addSystemInfo() {}", osInfo);
+        LOG.debug("<== RangerMetricsUtil.addSystemInfo(){}", osInfo);
 
         return osInfo;
     }
+
+    static {
+        OS       = ManagementFactory.getOperatingSystemMXBean();
+        MEM_BEAN = ManagementFactory.getMemoryMXBean();
+    }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
index 7316f2177..a95960a0d 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
@@ -39,81 +39,81 @@ import java.util.List;
 
 @Component
 public class RangerRestUtil {
-	private static final Logger logger = LoggerFactory.getLogger(RangerRestUtil.class);
-
-	@Autowired
-	StringUtil stringUtil;
-
-	@Autowired
-	RESTErrorUtil restErrorUtil;
-
-	@Autowired
-	RangerConfigUtil configUtil;
-
-	void splitUserRoleList(Collection<String> collection) {
-		Collection<String> newCollection = new ArrayList<String>();
-		for (String role : collection) {
-			String[] roles = role.split(",");
-			newCollection.addAll(Arrays.asList(roles));
-		}
-		collection.clear();
-		collection.addAll(newCollection);
-	}
-
-	/**
-	 * This method cleans up the data provided by the user for update
-	 *
-	 * @param userProfile
-	 * @return
-	 */
-	public void validateVUserProfileForUpdate(XXPortalUser gjUser, VXPortalUser userProfile) {
-		List<VXMessage> messageList = new ArrayList<VXMessage>();
-		// Email Update is allowed.
-		// if (userProfile.getEmailAddress() != null
-		// && !userProfile.getEmailAddress().equalsIgnoreCase(
-		// gjUser.getEmailAddress())) {
-		// throw restErrorUtil.createRESTException(
-		// "Email address can't be updated",
-		// MessageEnums.DATA_NOT_UPDATABLE, null, "emailAddress",
-		// userProfile.getEmailAddress());
-		// }
-
-		// Login Id can't be changed
-		if (userProfile.getLoginId() != null && !gjUser.getLoginId().equalsIgnoreCase(userProfile.getLoginId())) {
-			throw restErrorUtil.createRESTException("Username can't be updated", MessageEnums.DATA_NOT_UPDATABLE, null, "loginId", userProfile.getLoginId());
-		}
-
-		userProfile.setFirstName(restErrorUtil.validateStringForUpdate(userProfile.getFirstName(), gjUser.getFirstName(), StringUtil.VALIDATION_NAME, "Invalid first name", MessageEnums.INVALID_INPUT_DATA, null, "firstName"));
-
-		userProfile.setFirstName(restErrorUtil.validateStringForUpdate(userProfile.getFirstName(), gjUser.getFirstName(), StringUtil.VALIDATION_NAME, "Invalid first name", MessageEnums.INVALID_INPUT_DATA, null, "firstName"));
-
-		// firstName
-		if (!stringUtil.isValidName(userProfile.getFirstName())) {
-			logger.info("Invalid first name. {}", userProfile);
-			messageList.add(MessageEnums.INVALID_INPUT_DATA.getMessage(null, "firstName"));
-		}
-
-		// create the public screen name
-		userProfile.setPublicScreenName(userProfile.getFirstName() + " " + userProfile.getLastName());
-
-		userProfile.setNotes(restErrorUtil.validateStringForUpdate(userProfile.getNotes(), gjUser.getNotes(), StringUtil.VALIDATION_NAME, "Invalid notes", MessageEnums.INVALID_INPUT_DATA, null, "notes"));
-
-		// validate user roles
-		if (userProfile.getUserRoleList() != null) {
-			// First let's normalize it
-			splitUserRoleList(userProfile.getUserRoleList());
-			for (String userRole : userProfile.getUserRoleList()) {
-				restErrorUtil.validateStringList(userRole, configUtil.getRoles(), "Invalid role", null, "userRoleList");
-			}
-		}
-
-		if (!messageList.isEmpty()) {
-			VXResponse gjResponse = new VXResponse();
-			gjResponse.setStatusCode(VXResponse.STATUS_ERROR);
-			gjResponse.setMsgDesc("Validation failure");
-			gjResponse.setMessageList(messageList);
-			logger.info("Validation Error in updateUser() userProfile={}, error={}", userProfile, gjResponse);
-			throw restErrorUtil.createRESTException(gjResponse);
-		}
-	}
+    private static final Logger logger = LoggerFactory.getLogger(RangerRestUtil.class);
+
+    @Autowired
+    StringUtil stringUtil;
+
+    @Autowired
+    RESTErrorUtil restErrorUtil;
+
+    @Autowired
+    RangerConfigUtil configUtil;
+
+    /**
+     * This method cleans up the data provided by the user for update
+     *
+     * @param userProfile
+     * @return
+     */
+    public void validateVUserProfileForUpdate(XXPortalUser gjUser, VXPortalUser userProfile) {
+        List<VXMessage> messageList = new ArrayList<VXMessage>();
+
+        // Email Update is allowed.
+        // if (userProfile.getEmailAddress() != null
+        // && !userProfile.getEmailAddress().equalsIgnoreCase(
+        // gjUser.getEmailAddress())) {
+        // throw restErrorUtil.createRESTException(
+        // "Email address can't be updated",
+        // MessageEnums.DATA_NOT_UPDATABLE, null, "emailAddress",
+        // userProfile.getEmailAddress());
+        // }
+
+        // Login Id can't be changed
+        if (userProfile.getLoginId() != null && !gjUser.getLoginId().equalsIgnoreCase(userProfile.getLoginId())) {
+            throw restErrorUtil.createRESTException("Username can't be updated", MessageEnums.DATA_NOT_UPDATABLE, null, "loginId", userProfile.getLoginId());
+        }
+        // }
+        userProfile.setFirstName(restErrorUtil.validateStringForUpdate(userProfile.getFirstName(), gjUser.getFirstName(), StringUtil.VALIDATION_NAME, "Invalid first name", MessageEnums.INVALID_INPUT_DATA, null, "firstName"));
+
+        userProfile.setFirstName(restErrorUtil.validateStringForUpdate(userProfile.getFirstName(), gjUser.getFirstName(), StringUtil.VALIDATION_NAME, "Invalid first name", MessageEnums.INVALID_INPUT_DATA, null, "firstName"));
+
+        // firstName
+        if (!stringUtil.isValidName(userProfile.getFirstName())) {
+            logger.info("Invalid first name.{}", userProfile);
+            messageList.add(MessageEnums.INVALID_INPUT_DATA.getMessage(null, "firstName"));
+        }
+
+        // create the public screen name
+        userProfile.setPublicScreenName(userProfile.getFirstName() + " " + userProfile.getLastName());
+
+        userProfile.setNotes(restErrorUtil.validateStringForUpdate(userProfile.getNotes(), gjUser.getNotes(), StringUtil.VALIDATION_NAME, "Invalid notes", MessageEnums.INVALID_INPUT_DATA, null, "notes"));
+
+        // validate user roles
+        if (userProfile.getUserRoleList() != null) {
+            // First let's normalize it
+            splitUserRoleList(userProfile.getUserRoleList());
+            for (String userRole : userProfile.getUserRoleList()) {
+                restErrorUtil.validateStringList(userRole, configUtil.getRoles(), "Invalid role", null, "userRoleList");
+            }
+        }
+        if (!messageList.isEmpty()) {
+            VXResponse gjResponse = new VXResponse();
+            gjResponse.setStatusCode(VXResponse.STATUS_ERROR);
+            gjResponse.setMsgDesc("Validation failure");
+            gjResponse.setMessageList(messageList);
+            logger.info("Validation Error in updateUser() userProfile= {}, error= {}", userProfile, gjResponse);
+            throw restErrorUtil.createRESTException(gjResponse);
+        }
+    }
+
+    void splitUserRoleList(Collection<String> collection) {
+        Collection<String> newCollection = new ArrayList<String>();
+        for (String role : collection) {
+            String[] roles = role.split(",");
+            newCollection.addAll(Arrays.asList(roles));
+        }
+        collection.clear();
+        collection.addAll(newCollection);
+    }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerServerHealthUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RangerServerHealthUtil.java
index ba2a23fc7..4f3cb9a65 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerServerHealthUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerServerHealthUtil.java
@@ -60,7 +60,7 @@ public class RangerServerHealthUtil {
          "audit-Elasticsearch": { "status": "UP", "details": { "provider": "Elastic Search", "providerHealthCheckEndpoint": "http://localhost:9200/_cluster/health?pretty" } }
        }
      }
-	*/
+    */
 
     public RangerServerHealth getRangerServerHealth(String dbVersion) {
         Map<String, Object> components = new HashMap<>();
@@ -81,8 +81,8 @@ public class RangerServerHealthUtil {
 
     private Map<String, Object> getDbStatus(String dbVersion) {
         Map<String, Object> ret      = new LinkedHashMap<>();
-        Map<String, Object> details  = new LinkedHashMap<>();
         int                 dbFlavor = RangerBizUtil.getDBFlavor();
+        Map<String, Object> details  = new LinkedHashMap<>();
 
         details.put(DB_FLAVOR, RangerBizUtil.getDBFlavorType(dbFlavor));
         details.put(DB_VERSION, dbVersion);
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
index cf91a0978..ece7c0073 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.ranger.util;
 
 import org.apache.commons.lang.StringUtils;
@@ -37,166 +36,144 @@ import java.util.Enumeration;
 
 @Component
 public class RestUtil {
-	private static final Logger LOG = LoggerFactory.getLogger(RestUtil.class);
-
-	private static final String PROXY_RANGER_URL_PATH = "/ranger";
-
-	public static final String timeOffsetCookieName    = "clientTimeOffset";
-	public static final String TIMEOUT_ACTION          = "timeout";
-	public static final String LOCAL_LOGIN_URL         = "locallogin";
-	public static final String ZONED_EVENT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss z";
-
-	public static Integer getTimeOffset(HttpServletRequest request) {
-		Integer cookieVal = 0;
-
-		try {
-			Cookie[] cookies    = request.getCookies();
-			String   timeOffset = null;
-			
-			if (cookies != null) {
-				for (Cookie cookie : cookies) {
-					try {
-						if (timeOffsetCookieName.equals(cookie.getName())) {
-							timeOffset = cookie.getValue();
-
-							if (timeOffset != null) {
-								cookieVal = Integer.parseInt(timeOffset);
-							}
-							break;
-						}
-					} catch (Exception ex) {
-						cookieVal = 0;
-					}
-				}
-			}
-		} catch (Exception ex) {
-			// ignored
-		}
-
-		return cookieVal;
-	}
-	
-	public static int getClientTimeOffset() {
-		int clientTimeOffsetInMinute = 0;
-
-		try {
-			clientTimeOffsetInMinute = RangerContextHolder.getSecurityContext().getRequestContext().getClientTimeOffsetInMinute();
-		} catch (Exception ex) {
-			// ignored
-		}
-
-		if (clientTimeOffsetInMinute == 0) {
-			try {
-				clientTimeOffsetInMinute = RangerContextHolder.getSecurityContext().getUserSession().getClientTimeOffsetInMinute();
-			} catch (Exception ex) {
-				// ignored
-			}
-		}
-
-		return clientTimeOffsetInMinute;
-	}
-
-	public static String constructForwardableURL(HttpServletRequest httpRequest) {
-		String         xForwardedProto   = "";
-		String         xForwardedHost    = "";
-		String         xForwardedContext = "";
-		Enumeration<?> names             = httpRequest.getHeaderNames();
-
-		while (names.hasMoreElements()) {
-			String         name   = (String) names.nextElement();
-			Enumeration<?> values = httpRequest.getHeaders(name);
-			String         value  = "";
-
-			if (values != null) {
-				while (values.hasMoreElements()) {
-					value = (String) values.nextElement();
-				}
-			}
-
-			if (StringUtils.trimToNull(name) != null && StringUtils.trimToNull(value) != null) {
-				if (name.equalsIgnoreCase("x-forwarded-proto")) {
-					xForwardedProto = value;
-				} else if (name.equalsIgnoreCase("x-forwarded-host")) {
-					xForwardedHost = value;
-				} else if (name.equalsIgnoreCase("x-forwarded-context")) {
-					xForwardedContext = value;
-				}
-			}
-		}
-
-		if (xForwardedHost.contains(",")) {
-			LOG.debug("xForwardedHost value is {}, it contains multiple hosts, selecting the first host.", xForwardedHost);
-
-			xForwardedHost = xForwardedHost.split(",")[0].trim();
-		}
-
-		String xForwardedURL = "";
-
-		if (StringUtils.trimToNull(xForwardedProto) != null) {
-			//if header contains x-forwarded-host and x-forwarded-context
-			if (StringUtils.trimToNull(xForwardedHost) != null && StringUtils.trimToNull(xForwardedContext) != null) {
-				xForwardedURL = xForwardedProto + "://" + xForwardedHost + xForwardedContext + PROXY_RANGER_URL_PATH + httpRequest.getRequestURI();
-			} else if (StringUtils.trimToNull(xForwardedHost) != null) {
-				//if header contains x-forwarded-host and does not contains x-forwarded-context
-				xForwardedURL = xForwardedProto + "://" + xForwardedHost + httpRequest.getRequestURI();
-			} else {
-				//if header does not contains x-forwarded-host and x-forwarded-context
-				//preserve the x-forwarded-proto value coming from the request.
-				String requestURL = httpRequest.getRequestURL().toString();
-
-				if (StringUtils.trimToNull(requestURL) != null && requestURL.startsWith("http:")) {
-					requestURL = requestURL.replaceFirst("http", xForwardedProto);
-				}
-
-				xForwardedURL = requestURL;
-			}
-		}
-
-		return xForwardedURL;
-	}
-
-	public static String constructRedirectURL(HttpServletRequest request, String redirectUrl, String xForwardedURL, String originalUrlQueryParam) {
-		String delimiter = "?";
-
-		if (redirectUrl.contains("?")) {
-			delimiter = "&";
-		}
-
-		String loginURL = redirectUrl + delimiter + originalUrlQueryParam + "=";
-
-		if (StringUtils.trimToNull(xForwardedURL) != null) {
-			loginURL += xForwardedURL + getOriginalQueryString(request);
-		} else {
-			loginURL += request.getRequestURL().append(getOriginalQueryString(request));
-		}
-
-		return loginURL;
-	}
-
-	public static String convertToTimeZone(Date date, String timeZone) {
-		try {
-			Instant       utcInstant    = date.toInstant();
-			// Get the ZoneId from the request parameter
-			ZoneId        zoneId        = ZoneId.of(timeZone);
-			// Convert the UTC date to the specified timezone
-			ZonedDateTime zonedDateTime = utcInstant.atZone(zoneId);
-
-			return zonedDateTime.format(DateTimeFormatter.ofPattern(ZONED_EVENT_TIME_FORMAT));
-		} catch (Exception e) {
-			LOG.info("Exception occurred while converting to timeZone", e);
-			return null;
-		}
-	}
-
-	private static String getOriginalQueryString(HttpServletRequest request) {
-		String originalQueryString = request.getQueryString();
-
-		LOG.debug("originalQueryString = {} ", originalQueryString);
-
-		if (originalQueryString == null || originalQueryString.contains("action")) {
-			return "";
-		} else {
-			return "?" + originalQueryString;
-		}
-	}
+    public static final  String timeOffsetCookieName    = "clientTimeOffset";
+    public static final  String TIMEOUT_ACTION          = "timeout";
+    public static final  String LOCAL_LOGIN_URL         = "locallogin";
+    public static final  String ZONED_EVENT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss z";
+    private static final Logger LOG                     = LoggerFactory.getLogger(RestUtil.class);
+    private static final String PROXY_RANGER_URL_PATH   = "/ranger";
+
+    private RestUtil() {
+        //To block instantiation
+    }
+
+    public static Integer getTimeOffset(HttpServletRequest request) {
+        Integer cookieVal = 0;
+        try {
+            Cookie[] cookies    = request.getCookies();
+            String   timeOffset = null;
+
+            if (cookies != null) {
+                for (Cookie cookie : cookies) {
+                    try {
+                        if (timeOffsetCookieName.equals(cookie.getName())) {
+                            timeOffset = cookie.getValue();
+                            if (timeOffset != null) {
+                                cookieVal = Integer.parseInt(timeOffset);
+                            }
+                            break;
+                        }
+                    } catch (Exception ex) {
+                        cookieVal = 0;
+                    }
+                }
+            }
+        } catch (Exception ex) {
+        }
+        return cookieVal;
+    }
+
+    public static int getClientTimeOffset() {
+        int clientTimeOffsetInMinute = 0;
+        try {
+            clientTimeOffsetInMinute = RangerContextHolder.getSecurityContext().getRequestContext().getClientTimeOffsetInMinute();
+        } catch (Exception ex) {
+        }
+        if (clientTimeOffsetInMinute == 0) {
+            try {
+                clientTimeOffsetInMinute = RangerContextHolder.getSecurityContext().getUserSession().getClientTimeOffsetInMinute();
+            } catch (Exception ex) {
+            }
+        }
+        return clientTimeOffsetInMinute;
+    }
+
+    public static String constructForwardableURL(HttpServletRequest httpRequest) {
+        String         xForwardedProto   = "";
+        String         xForwardedHost    = "";
+        String         xForwardedContext = "";
+        Enumeration<?> names             = httpRequest.getHeaderNames();
+        while (names.hasMoreElements()) {
+            String         name   = (String) names.nextElement();
+            Enumeration<?> values = httpRequest.getHeaders(name);
+            String         value  = "";
+            if (values != null) {
+                while (values.hasMoreElements()) {
+                    value = (String) values.nextElement();
+                }
+            }
+            if (StringUtils.trimToNull(name) != null && StringUtils.trimToNull(value) != null) {
+                if (name.equalsIgnoreCase("x-forwarded-proto")) {
+                    xForwardedProto = value;
+                } else if (name.equalsIgnoreCase("x-forwarded-host")) {
+                    xForwardedHost = value;
+                } else if (name.equalsIgnoreCase("x-forwarded-context")) {
+                    xForwardedContext = value;
+                }
+            }
+        }
+        if (xForwardedHost.contains(",")) {
+            LOG.debug("xForwardedHost value is {} it contains multiple hosts, selecting the first host.", xForwardedHost);
+            xForwardedHost = xForwardedHost.split(",")[0].trim();
+        }
+        String xForwardedURL = "";
+        if (StringUtils.trimToNull(xForwardedProto) != null) {
+            //if header contains x-forwarded-host and x-forwarded-context
+            if (StringUtils.trimToNull(xForwardedHost) != null && StringUtils.trimToNull(xForwardedContext) != null) {
+                xForwardedURL = xForwardedProto + "://" + xForwardedHost + xForwardedContext + PROXY_RANGER_URL_PATH + httpRequest.getRequestURI();
+            } else if (StringUtils.trimToNull(xForwardedHost) != null) {
+                //if header contains x-forwarded-host and does not contains x-forwarded-context
+                xForwardedURL = xForwardedProto + "://" + xForwardedHost + httpRequest.getRequestURI();
+            } else {
+                //if header does not contains x-forwarded-host and x-forwarded-context
+                //preserve the x-forwarded-proto value coming from the request.
+                String requestURL = httpRequest.getRequestURL().toString();
+                if (StringUtils.trimToNull(requestURL) != null && requestURL.startsWith("http:")) {
+                    requestURL = requestURL.replaceFirst("http", xForwardedProto);
+                }
+                xForwardedURL = requestURL;
+            }
+        }
+        return xForwardedURL;
+    }
+
+    public static String constructRedirectURL(HttpServletRequest request, String redirectUrl, String xForwardedURL, String originalUrlQueryParam) {
+        String delimiter = "?";
+        if (redirectUrl.contains("?")) {
+            delimiter = "&";
+        }
+        String loginURL = redirectUrl + delimiter + originalUrlQueryParam + "=";
+        if (StringUtils.trimToNull(xForwardedURL) != null) {
+            loginURL += xForwardedURL + getOriginalQueryString(request);
+        } else {
+            loginURL += request.getRequestURL().append(getOriginalQueryString(request));
+        }
+        return loginURL;
+    }
+
+    public static String convertToTimeZone(Date date, String timeZone) {
+        try {
+            Instant utcInstant = date.toInstant();
+
+            // Get the ZoneId from the request parameter
+            ZoneId zoneId = ZoneId.of(timeZone);
+            // Convert the UTC date to the specified timezone
+            ZonedDateTime zonedDateTime = utcInstant.atZone(zoneId);
+
+            return zonedDateTime.format(DateTimeFormatter.ofPattern(ZONED_EVENT_TIME_FORMAT));
+        } catch (Exception e) {
+            LOG.info("Exception occurred while converting to timeZone", e);
+            return null;
+        }
+    }
+
+    private static String getOriginalQueryString(HttpServletRequest request) {
+        String originalQueryString = request.getQueryString();
+        LOG.debug("originalQueryString = {}", originalQueryString);
+        if (originalQueryString == null || originalQueryString.contains("action")) {
+            return "";
+        } else {
+            return "?" + originalQueryString;
+        }
+    }
 }