You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2016/05/16 04:31:48 UTC

incubator-ranger git commit: RANGER-965: Validate Audit DB to Solr Migration script from any previous version to 0.6 upgrade

Repository: incubator-ranger
Updated Branches:
  refs/heads/master b64218a34 -> 3595251bc


RANGER-965: Validate Audit DB to Solr Migration script from any previous version to 0.6 upgrade

Signed-off-by: Gautam Borad <ga...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/3595251b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/3595251b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/3595251b

Branch: refs/heads/master
Commit: 3595251bcbf82ab704914822695a9265d0158c17
Parents: b64218a
Author: pradeep agrawal <pr...@freestoneinfotech.com>
Authored: Fri May 13 18:47:07 2016 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Mon May 16 10:01:37 2016 +0530

----------------------------------------------------------------------
 .../ranger/biz/RangerPolicyRetriever.java       |   2 +-
 .../org/apache/ranger/common/AppConstants.java  |  29 +-
 .../org/apache/ranger/db/XXAccessAuditDao.java  |  56 +-
 .../org/apache/ranger/entity/XXAccessAudit.java | 618 +----------------
 .../apache/ranger/entity/XXAccessAuditBase.java | 660 +++++++++++++++++++
 .../apache/ranger/entity/XXAccessAuditV4.java   |  39 ++
 .../apache/ranger/entity/XXAccessAuditV5.java   |  86 +++
 .../patch/cliutil/DbToSolrMigrationUtil.java    | 161 ++++-
 .../resources/META-INF/jpa_named_queries.xml    |   8 +-
 .../conf.dist/ranger-admin-default-site.xml     |   9 -
 .../main/webapp/META-INF/applicationContext.xml |   4 +-
 .../ranger/tagsync/process/TagSyncConfig.java   |   4 +
 12 files changed, 1025 insertions(+), 651 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
index ec4f165..6b4b149 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
@@ -490,7 +490,7 @@ public class RangerPolicyRetriever {
 					ret.setVersion(xPolicy.getVersion());
 					ret.setService(service == null ? null : service.getName());
 					ret.setName(xPolicy.getName());
-					ret.setPolicyType(xPolicy.getPolicyType());
+					ret.setPolicyType(xPolicy.getPolicyType() == null ? RangerPolicy.POLICY_TYPE_ACCESS : xPolicy.getPolicyType());
 					ret.setDescription(xPolicy.getDescription());
 					ret.setResourceSignature(xPolicy.getResourceSignature());
 					ret.setIsAuditEnabled(xPolicy.getIsAuditEnabled());

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
index e9c7ac0..23d3dbd 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
@@ -592,11 +592,12 @@ public class AppConstants extends RangerCommonEnums {
 	 * CLASS_TYPE_XA_SERVICE_VERSION_INFO is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE_VERSION_INFO".
 	 */
 	public static final int CLASS_TYPE_XA_SERVICE_VERSION_INFO = 1052;
-
+	public static final int CLASS_TYPE_XA_ACCESS_AUDIT_V4 = 1053;
+	public static final int CLASS_TYPE_XA_ACCESS_AUDIT_V5 = 1054;
 	/**
 	 * Max value for enum ClassTypes_MAX
 	 */
-	public static final int ClassTypes_MAX = 1052;
+	public static final int ClassTypes_MAX = 1054;
 	
 	/***************************************************************
 	 * Enum values for Default SortOrder
@@ -961,6 +962,12 @@ public class AppConstants extends RangerCommonEnums {
 		if( elementValue == 1052 ) {
 			return "XA Service Version Info"; //CLASS_TYPE_XA_SERVICE_VERSION_INFO
 		}
+		if( elementValue == 1053 ) {
+			return "Access Audit V4"; //CLASS_TYPE_XA_ACCESS_AUDIT_V4
+		}
+		if( elementValue == 1054 ) {
+			return "Access Audit V5"; //CLASS_TYPE_XA_ACCESS_AUDIT_V5
+		}
 		return null;
 	}
 
@@ -1173,6 +1180,15 @@ public class AppConstants extends RangerCommonEnums {
 		if ("ORACLE".equalsIgnoreCase(label)) {
 			return DB_FLAVOR_ORACLE; // DB_FLAVOR_ORACLE
 		}
+		if ("POSTGRES".equalsIgnoreCase(label)) {
+			return DB_FLAVOR_POSTGRES; // DB_FLAVOR_POSTGRES
+		}
+		if ("MSSQL".equalsIgnoreCase(label)) {
+			return DB_FLAVOR_SQLSERVER; // DB_FLAVOR_MSSQL
+		}
+		if ("SQLA".equalsIgnoreCase(label)) {
+			return DB_FLAVOR_SQLANYWHERE; // DB_FLAVOR_SQLANYWHERE
+		}
 		return DB_FLAVOR_UNKNOWN;
 	}
 
@@ -1186,6 +1202,15 @@ public class AppConstants extends RangerCommonEnums {
 		if (elementValue == DB_FLAVOR_ORACLE) {
 			return "ORACLE"; // ORACLE
 		}
+		if (elementValue == DB_FLAVOR_POSTGRES) {
+			return "POSTGRES"; // POSTGRES
+		}
+		if (elementValue == DB_FLAVOR_SQLSERVER) {
+			return "MSSQL"; // MSSQL
+		}
+		if (elementValue == DB_FLAVOR_SQLANYWHERE) {
+			return "SQLA"; // SQLA
+		}
 		return null;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
index 432dfa9..7bd6a3e 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
@@ -25,6 +25,8 @@ import javax.persistence.NoResultException;
 import org.apache.log4j.Logger;
 import org.apache.ranger.common.db.BaseDao;
 import org.apache.ranger.entity.XXAccessAudit;
+import org.apache.ranger.entity.XXAccessAuditV4;
+import org.apache.ranger.entity.XXAccessAuditV5;
 
 public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
 	private static Logger logger = Logger.getLogger(XXAccessAuditDao.class);
@@ -46,11 +48,61 @@ public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
 		}
 		return maxXXAccessAuditID;
 	}
-	public List<XXAccessAudit> getByIdRange(long idFrom,long idTo){
+
+	@SuppressWarnings("unchecked")
+	public List<String> getColumnNames(String db_flavor){
+		List<String> columnList=new ArrayList<String>();
+		String sqlStr=null;
+		if("MYSQL".equalsIgnoreCase(db_flavor)){
+			sqlStr="SELECT lower(column_name) FROM information_schema.columns WHERE table_schema=database() AND table_name = 'xa_access_audit'";
+		}else if("ORACLE".equalsIgnoreCase(db_flavor)){
+			sqlStr="SELECT lower(column_name) FROM user_tab_cols WHERE table_name = upper('XA_ACCESS_AUDIT')";
+		}else if("POSTGRES".equalsIgnoreCase(db_flavor)){
+			sqlStr="SELECT lower(attname) FROM pg_attribute WHERE attrelid IN(SELECT oid FROM pg_class WHERE relname='xa_access_audit')";
+		}else if("MSSQL".equalsIgnoreCase(db_flavor)){
+			sqlStr="SELECT lower(column_name) FROM INFORMATION_SCHEMA.columns WHERE table_name = 'xa_access_audit'";
+		}else if("SQLA".equalsIgnoreCase(db_flavor)){
+			sqlStr="SELECT lower(cname) FROM SYS.SYSCOLUMNS WHERE tname = 'xa_access_audit'";
+		}else{
+			return columnList;
+		}
+		try {
+			columnList=getEntityManager().createNativeQuery(sqlStr).getResultList();
+		} catch (NoResultException e) {
+		}
+		return columnList;
+	}
+	public List<XXAccessAuditV4> getByIdRangeV4(long idFrom,long idTo){
+		//idFrom and idTo both exclusive
+		List<XXAccessAuditV4> xXAccessAuditList = new ArrayList<XXAccessAuditV4>();
+		try {
+			xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAuditV4.getByIdRangeV4", XXAccessAuditV4.class)
+				.setParameter("idFrom", idFrom)
+				.setParameter("idTo", idTo)
+				.getResultList();
+		} catch (NoResultException e) {
+			logger.debug(e.getMessage());
+		}
+		return xXAccessAuditList;
+	}
+	public List<XXAccessAuditV5> getByIdRangeV5(long idFrom,long idTo){
+		//idFrom and idTo both exclusive
+		List<XXAccessAuditV5> xXAccessAuditList = new ArrayList<XXAccessAuditV5>();
+		try {
+			xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAuditV5.getByIdRangeV5", XXAccessAuditV5.class)
+				.setParameter("idFrom", idFrom)
+				.setParameter("idTo", idTo)
+				.getResultList();
+		} catch (NoResultException e) {
+			logger.debug(e.getMessage());
+		}
+		return xXAccessAuditList;
+	}
+	public List<XXAccessAudit> getByIdRangeV6(long idFrom,long idTo){
 		//idFrom and idTo both exclusive
 		List<XXAccessAudit> xXAccessAuditList = new ArrayList<XXAccessAudit>();
 		try {
-			xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAudit.getByIdRange", tClass)
+			xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAudit.getByIdRangeV6", XXAccessAudit.class)
 				.setParameter("idFrom", idFrom)
 				.setParameter("idTo", idTo)
 				.getResultList();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
index 96859a7..3043931 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
@@ -24,222 +24,17 @@
  * 
  */
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.ranger.common.AppConstants;
-import org.apache.ranger.common.DateUtil;
-import org.apache.ranger.common.RangerConstants;
-
-
 @Entity
 @Table(name="xa_access_audit")
 @XmlRootElement
-public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
+public class XXAccessAudit extends XXAccessAuditBase implements java.io.Serializable {
 	private static final long serialVersionUID = 1L;
 
-	@Id
-	@SequenceGenerator(name="XA_ACCESS_AUDIT_SEQ",sequenceName="XA_ACCESS_AUDIT_SEQ",allocationSize=1)
-	@GeneratedValue(strategy=GenerationType.AUTO,generator="XA_ACCESS_AUDIT_SEQ")
-	@Column(name="ID")
-	protected Long id;
-
-	@Override
-	public void setId(Long id) {
-		this.id=id;
-	}
-	@Override
-	public Long getId() {
-		return id;
-	}
-	/**
-	 * Repository Type
-	 * <ul>
-	 * <li>This attribute is of type enum CommonEnums::AssetType
-	 * </ul>
-	 *
-	 */
-	@Column(name="AUDIT_TYPE"  , nullable=false )
-	protected int auditType = AppConstants.ASSET_UNKNOWN;
-
-	/**
-	 * Access Result
-	 * <ul>
-	 * <li>This attribute is of type enum CommonEnums::AccessResult
-	 * </ul>
-	 *
-	 */
-	@Column(name="ACCESS_RESULT"   )
-	protected int accessResult = RangerConstants.ACCESS_RESULT_DENIED;
-
-	/**
-	 * Access Type
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="ACCESS_TYPE"   , length=255)
-	protected String accessType;
-
-	/**
-	 * Acl Enforcer
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="ACL_ENFORCER"   , length=255)
-	protected String aclEnforcer;
-
-	/**
-	 * Agent Id
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="AGENT_ID"   , length=255)
-	protected String agentId;
-
-	/**
-	 * Client Ip
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="CLIENT_IP"   , length=255)
-	protected String clientIP;
-
-	/**
-	 * Client Type
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="CLIENT_TYPE"   , length=255)
-	protected String clientType;
-
-	/**
-	 * Policy Id
-	 * <ul>
-	 * </ul>
-	 *
-	 */
-	@Column(name="POLICY_ID"   )
-	protected long policyId;
-
-	/**
-	 * Repository Name
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="REPO_NAME"   , length=255)
-	protected String repoName;
-
-	/**
-	 * Repository Type
-	 * <ul>
-	 * </ul>
-	 *
-	 */
-	@Column(name="REPO_TYPE"   )
-	protected int repoType;
-
-	/**
-	 * Reason of result
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="RESULT_REASON"   , length=255)
-	protected String resultReason;
-
-	/**
-	 * Session Id
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="SESSION_ID"   , length=255)
-	protected String sessionId;
-
-	/**
-	 * Event Time
-	 * <ul>
-	 * </ul>
-	 *
-	 */
-	@Temporal(TemporalType.TIMESTAMP)
-	@Column(name="EVENT_TIME"   )
-	protected Date eventTime = DateUtil.getUTCDate();
-
-	/**
-	 * Requesting User
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="REQUEST_USER"   , length=255)
-	protected String requestUser;
-
-	/**
-	 * Action
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>2000</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="ACTION"   , length=2000)
-	protected String action;
-
-	/**
-	 * Requesting Data
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>2000</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="REQUEST_DATA"   , length=2000)
-	protected String requestData;
-
-	/**
-	 * Resource Path
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>2000</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="RESOURCE_PATH"   , length=2000)
-	protected String resourcePath;
-
-	/**
-	 * Resource Type
-	 * <ul>
-	 * <li>The maximum length for this attribute is <b>255</b>.
-	 * </ul>
-	 *
-	 */
-	@Column(name="RESOURCE_TYPE"   , length=255)
-	protected String resourceType;
-
 	@Column(name="SEQ_NUM")
 	protected long sequenceNumber;
 
@@ -250,329 +45,6 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
 	@Column(name="EVENT_DUR_MS")
 	protected long eventDuration;
 
-	@Column(name="tags")
-	protected String tags;
-	
-	/**
-	 * Default constructor. This will set all the attributes to default value.
-	 */
-	public XXAccessAudit ( ) {
-		auditType = AppConstants.ASSET_UNKNOWN;
-		accessResult = RangerConstants.ACCESS_RESULT_DENIED;
-	}
-
-	@Override
-	public int getMyClassType( ) {
-	    return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>auditType</b>.
-	 * You cannot set null to the attribute.
-	 * @param auditType Value to set member attribute <b>auditType</b>
-	 */
-	public void setAuditType( int auditType ) {
-		this.auditType = auditType;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>auditType</b>
-	 * @return int - value of member attribute <b>auditType</b>.
-	 */
-	public int getAuditType( ) {
-		return this.auditType;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>accessResult</b>.
-	 * You cannot set null to the attribute.
-	 * @param accessResult Value to set member attribute <b>accessResult</b>
-	 */
-	public void setAccessResult( int accessResult ) {
-		this.accessResult = accessResult;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>accessResult</b>
-	 * @return int - value of member attribute <b>accessResult</b>.
-	 */
-	public int getAccessResult( ) {
-		return this.accessResult;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>accessType</b>.
-	 * You cannot set null to the attribute.
-	 * @param accessType Value to set member attribute <b>accessType</b>
-	 */
-	public void setAccessType( String accessType ) {
-		this.accessType = accessType;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>accessType</b>
-	 * @return String - value of member attribute <b>accessType</b>.
-	 */
-	public String getAccessType( ) {
-		return this.accessType;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>aclEnforcer</b>.
-	 * You cannot set null to the attribute.
-	 * @param aclEnforcer Value to set member attribute <b>aclEnforcer</b>
-	 */
-	public void setAclEnforcer( String aclEnforcer ) {
-		this.aclEnforcer = aclEnforcer;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>aclEnforcer</b>
-	 * @return String - value of member attribute <b>aclEnforcer</b>.
-	 */
-	public String getAclEnforcer( ) {
-		return this.aclEnforcer;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>agentId</b>.
-	 * You cannot set null to the attribute.
-	 * @param agentId Value to set member attribute <b>agentId</b>
-	 */
-	public void setAgentId( String agentId ) {
-		this.agentId = agentId;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>agentId</b>
-	 * @return String - value of member attribute <b>agentId</b>.
-	 */
-	public String getAgentId( ) {
-		return this.agentId;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>clientIP</b>.
-	 * You cannot set null to the attribute.
-	 * @param clientIP Value to set member attribute <b>clientIP</b>
-	 */
-	public void setClientIP( String clientIP ) {
-		this.clientIP = clientIP;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>clientIP</b>
-	 * @return String - value of member attribute <b>clientIP</b>.
-	 */
-	public String getClientIP( ) {
-		return this.clientIP;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>clientType</b>.
-	 * You cannot set null to the attribute.
-	 * @param clientType Value to set member attribute <b>clientType</b>
-	 */
-	public void setClientType( String clientType ) {
-		this.clientType = clientType;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>clientType</b>
-	 * @return String - value of member attribute <b>clientType</b>.
-	 */
-	public String getClientType( ) {
-		return this.clientType;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>policyId</b>.
-	 * You cannot set null to the attribute.
-	 * @param policyId Value to set member attribute <b>policyId</b>
-	 */
-	public void setPolicyId( long policyId ) {
-		this.policyId = policyId;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>policyId</b>
-	 * @return long - value of member attribute <b>policyId</b>.
-	 */
-	public long getPolicyId( ) {
-		return this.policyId;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>repoName</b>.
-	 * You cannot set null to the attribute.
-	 * @param repoName Value to set member attribute <b>repoName</b>
-	 */
-	public void setRepoName( String repoName ) {
-		this.repoName = repoName;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>repoName</b>
-	 * @return String - value of member attribute <b>repoName</b>.
-	 */
-	public String getRepoName( ) {
-		return this.repoName;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>repoType</b>.
-	 * You cannot set null to the attribute.
-	 * @param repoType Value to set member attribute <b>repoType</b>
-	 */
-	public void setRepoType( int repoType ) {
-		this.repoType = repoType;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>repoType</b>
-	 * @return int - value of member attribute <b>repoType</b>.
-	 */
-	public int getRepoType( ) {
-		return this.repoType;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>resultReason</b>.
-	 * You cannot set null to the attribute.
-	 * @param resultReason Value to set member attribute <b>resultReason</b>
-	 */
-	public void setResultReason( String resultReason ) {
-		this.resultReason = resultReason;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>resultReason</b>
-	 * @return String - value of member attribute <b>resultReason</b>.
-	 */
-	public String getResultReason( ) {
-		return this.resultReason;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>sessionId</b>.
-	 * You cannot set null to the attribute.
-	 * @param sessionId Value to set member attribute <b>sessionId</b>
-	 */
-	public void setSessionId( String sessionId ) {
-		this.sessionId = sessionId;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>sessionId</b>
-	 * @return String - value of member attribute <b>sessionId</b>.
-	 */
-	public String getSessionId( ) {
-		return this.sessionId;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>eventTime</b>.
-	 * You cannot set null to the attribute.
-	 * @param eventTime Value to set member attribute <b>eventTime</b>
-	 */
-	public void setEventTime( Date eventTime ) {
-		this.eventTime = eventTime;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>eventTime</b>
-	 * @return Date - value of member attribute <b>eventTime</b>.
-	 */
-	public Date getEventTime( ) {
-		return this.eventTime;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>requestUser</b>.
-	 * You cannot set null to the attribute.
-	 * @param requestUser Value to set member attribute <b>requestUser</b>
-	 */
-	public void setRequestUser( String requestUser ) {
-		this.requestUser = requestUser;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>requestUser</b>
-	 * @return String - value of member attribute <b>requestUser</b>.
-	 */
-	public String getRequestUser( ) {
-		return this.requestUser;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>action</b>.
-	 * You cannot set null to the attribute.
-	 * @param action Value to set member attribute <b>action</b>
-	 */
-	public void setAction( String action ) {
-		this.action = action;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>action</b>
-	 * @return String - value of member attribute <b>action</b>.
-	 */
-	public String getAction( ) {
-		return this.action;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>requestData</b>.
-	 * You cannot set null to the attribute.
-	 * @param requestData Value to set member attribute <b>requestData</b>
-	 */
-	public void setRequestData( String requestData ) {
-		this.requestData = requestData;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>requestData</b>
-	 * @return String - value of member attribute <b>requestData</b>.
-	 */
-	public String getRequestData( ) {
-		return this.requestData;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>resourcePath</b>.
-	 * You cannot set null to the attribute.
-	 * @param resourcePath Value to set member attribute <b>resourcePath</b>
-	 */
-	public void setResourcePath( String resourcePath ) {
-		this.resourcePath = resourcePath;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>resourcePath</b>
-	 * @return String - value of member attribute <b>resourcePath</b>.
-	 */
-	public String getResourcePath( ) {
-		return this.resourcePath;
-	}
-
-	/**
-	 * This method sets the value to the member attribute <b>resourceType</b>.
-	 * You cannot set null to the attribute.
-	 * @param resourceType Value to set member attribute <b>resourceType</b>
-	 */
-	public void setResourceType( String resourceType ) {
-		this.resourceType = resourceType;
-	}
-
-	/**
-	 * Returns the value for the member attribute <b>resourceType</b>
-	 * @return String - value of member attribute <b>resourceType</b>.
-	 */
-	public String getResourceType( ) {
-		return this.resourceType;
-	}
-
-
 	public long getSequenceNumber() {
 		return sequenceNumber;
 	}
@@ -591,6 +63,9 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
 	public void setEventDuration(long eventDuration) {
 		this.eventDuration = eventDuration;
 	}
+
+	@Column(name="tags")
+	protected String tags;
 	
 	/**
 	 * @return the tags
@@ -610,31 +85,11 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
 	*/
 	@Override
 	public String toString( ) {
-		String str = "XXAccessAudit={";
-		str += super.toString();
-		str += "auditType={" + auditType + "} ";
-		str += "accessResult={" + accessResult + "} ";
-		str += "accessType={" + accessType + "} ";
-		str += "aclEnforcer={" + aclEnforcer + "} ";
-		str += "agentId={" + agentId + "} ";
-		str += "clientIP={" + clientIP + "} ";
-		str += "clientType={" + clientType + "} ";
-		str += "policyId={" + policyId + "} ";
-		str += "repoName={" + repoName + "} ";
-		str += "repoType={" + repoType + "} ";
-		str += "resultReason={" + resultReason + "} ";
-		str += "sessionId={" + sessionId + "} ";
-		str += "eventTime={" + eventTime + "} ";
-		str += "requestUser={" + requestUser + "} ";
-		str += "action={" + action + "} ";
-		str += "requestData={" + requestData + "} ";
-		str += "resourcePath={" + resourcePath + "} ";
-		str += "resourceType={" + resourceType + "} ";
+		String str = super.toString();
 		str += "sequenceNumber={" + sequenceNumber + "}";
 		str += "eventCount={" + eventCount + "}";
 		str += "eventDuration={" + eventDuration + "}";
 		str += "tags={" + tags + "}";
-		str += "}";
 		return str;
 	}
 
@@ -648,67 +103,10 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
 			return false;
 		}
 		XXAccessAudit other = (XXAccessAudit) obj;
-		if( this.auditType != other.auditType ) return false;
-		if( this.accessResult != other.accessResult ) return false;
-        	if ((this.accessType == null && other.accessType != null) || (this.accessType != null && !this.accessType.equals(other.accessType))) {
-            		return false;
-        	}
-        	if ((this.aclEnforcer == null && other.aclEnforcer != null) || (this.aclEnforcer != null && !this.aclEnforcer.equals(other.aclEnforcer))) {
-            		return false;
-        	}
-        	if ((this.agentId == null && other.agentId != null) || (this.agentId != null && !this.agentId.equals(other.agentId))) {
-            		return false;
-        	}
-        	if ((this.clientIP == null && other.clientIP != null) || (this.clientIP != null && !this.clientIP.equals(other.clientIP))) {
-            		return false;
-        	}
-        	if ((this.clientType == null && other.clientType != null) || (this.clientType != null && !this.clientType.equals(other.clientType))) {
-            		return false;
-        	}
-		if( this.policyId != other.policyId ) return false;
-        	if ((this.repoName == null && other.repoName != null) || (this.repoName != null && !this.repoName.equals(other.repoName))) {
-            		return false;
-        	}
-		if( this.repoType != other.repoType ) return false;
-        	if ((this.resultReason == null && other.resultReason != null) || (this.resultReason != null && !this.resultReason.equals(other.resultReason))) {
-            		return false;
-        	}
-        	if ((this.sessionId == null && other.sessionId != null) || (this.sessionId != null && !this.sessionId.equals(other.sessionId))) {
-            		return false;
-        	}
-        	if ((this.eventTime == null && other.eventTime != null) || (this.eventTime != null && !this.eventTime.equals(other.eventTime))) {
-            		return false;
-        	}
-        	if ((this.requestUser == null && other.requestUser != null) || (this.requestUser != null && !this.requestUser.equals(other.requestUser))) {
-            		return false;
-        	}
-        	if ((this.action == null && other.action != null) || (this.action != null && !this.action.equals(other.action))) {
-            		return false;
-        	}
-        	if ((this.requestData == null && other.requestData != null) || (this.requestData != null && !this.requestData.equals(other.requestData))) {
-            		return false;
-        	}
-        	if ((this.resourcePath == null && other.resourcePath != null) || (this.resourcePath != null && !this.resourcePath.equals(other.resourcePath))) {
-            		return false;
-        	}
-        	if ((this.resourceType == null && other.resourceType != null) || (this.resourceType != null && !this.resourceType.equals(other.resourceType))) {
-            		return false;
-        	}
-			if ((this.tags == null && other.tags != null) || (this.tags != null && !this.tags.equals(other.tags))) {
-				return false;
-			}
-		return true;
-	}
-	public static String getEnumName(String fieldName ) {
-		if( fieldName.equals("auditType") ) {
-			return "CommonEnums.AssetType";
-		}
-		if( fieldName.equals("accessResult") ) {
-			return "CommonEnums.AccessResult";
+		if ((this.tags == null && other.tags != null) || (this.tags != null && !this.tags.equals(other.tags))) {
+			return false;
 		}
-		//Later TODO
-		//return super.getEnumName(fieldName);
-		return null;
+		return true;
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
new file mode 100644
index 0000000..8287d31
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
@@ -0,0 +1,660 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ package org.apache.ranger.entity;
+
+/**
+ * Access Audit
+ * 
+ */
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.DateUtil;
+import org.apache.ranger.common.RangerConstants;
+
+@MappedSuperclass
+@XmlRootElement
+public class XXAccessAuditBase extends XXDBBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@Id
+	@SequenceGenerator(name="XA_ACCESS_AUDIT_SEQ",sequenceName="XA_ACCESS_AUDIT_SEQ",allocationSize=1)
+	@GeneratedValue(strategy=GenerationType.AUTO,generator="XA_ACCESS_AUDIT_SEQ")
+	@Column(name="ID")
+	protected Long id;
+
+	@Override
+	public void setId(Long id) {
+		this.id=id;
+	}
+	@Override
+	public Long getId() {
+		return id;
+	}
+
+	/**
+	 * Repository Type
+	 * <ul>
+	 * <li>This attribute is of type enum CommonEnums::AssetType
+	 * </ul>
+	 *
+	 */
+	@Column(name="AUDIT_TYPE"  , nullable=false )
+	protected int auditType = AppConstants.ASSET_UNKNOWN;
+
+	/**
+	 * Access Result
+	 * <ul>
+	 * <li>This attribute is of type enum CommonEnums::AccessResult
+	 * </ul>
+	 *
+	 */
+	@Column(name="ACCESS_RESULT"   )
+	protected int accessResult = RangerConstants.ACCESS_RESULT_DENIED;
+
+	/**
+	 * Access Type
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="ACCESS_TYPE"   , length=255)
+	protected String accessType;
+
+	/**
+	 * Acl Enforcer
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="ACL_ENFORCER"   , length=255)
+	protected String aclEnforcer;
+
+	/**
+	 * Agent Id
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="AGENT_ID"   , length=255)
+	protected String agentId;
+
+	/**
+	 * Client Ip
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="CLIENT_IP"   , length=255)
+	protected String clientIP;
+
+	/**
+	 * Client Type
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="CLIENT_TYPE"   , length=255)
+	protected String clientType;
+
+	/**
+	 * Policy Id
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name="POLICY_ID"   )
+	protected long policyId;
+
+	/**
+	 * Repository Name
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="REPO_NAME"   , length=255)
+	protected String repoName;
+
+	/**
+	 * Repository Type
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name="REPO_TYPE"   )
+	protected int repoType;
+
+	/**
+	 * Reason of result
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="RESULT_REASON"   , length=255)
+	protected String resultReason;
+
+	/**
+	 * Session Id
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="SESSION_ID"   , length=255)
+	protected String sessionId;
+
+	/**
+	 * Event Time
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Temporal(TemporalType.TIMESTAMP)
+	@Column(name="EVENT_TIME"   )
+	protected Date eventTime = DateUtil.getUTCDate();
+
+	/**
+	 * Requesting User
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="REQUEST_USER"   , length=255)
+	protected String requestUser;
+
+	/**
+	 * Action
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>2000</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="ACTION"   , length=2000)
+	protected String action;
+
+	/**
+	 * Requesting Data
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>2000</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="REQUEST_DATA"   , length=2000)
+	protected String requestData;
+
+	/**
+	 * Resource Path
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>2000</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="RESOURCE_PATH"   , length=2000)
+	protected String resourcePath;
+
+	/**
+	 * Resource Type
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>255</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name="RESOURCE_TYPE"   , length=255)
+	protected String resourceType;
+
+	
+	
+	/**
+	 * Default constructor. This will set all the attributes to default value.
+	 */
+	public XXAccessAuditBase ( ) {
+		auditType = AppConstants.ASSET_UNKNOWN;
+		accessResult = RangerConstants.ACCESS_RESULT_DENIED;
+	}
+
+	@Override
+	public int getMyClassType( ) {
+	    return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>auditType</b>.
+	 * You cannot set null to the attribute.
+	 * @param auditType Value to set member attribute <b>auditType</b>
+	 */
+	public void setAuditType( int auditType ) {
+		this.auditType = auditType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>auditType</b>
+	 * @return int - value of member attribute <b>auditType</b>.
+	 */
+	public int getAuditType( ) {
+		return this.auditType;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>accessResult</b>.
+	 * You cannot set null to the attribute.
+	 * @param accessResult Value to set member attribute <b>accessResult</b>
+	 */
+	public void setAccessResult( int accessResult ) {
+		this.accessResult = accessResult;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>accessResult</b>
+	 * @return int - value of member attribute <b>accessResult</b>.
+	 */
+	public int getAccessResult( ) {
+		return this.accessResult;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>accessType</b>.
+	 * You cannot set null to the attribute.
+	 * @param accessType Value to set member attribute <b>accessType</b>
+	 */
+	public void setAccessType( String accessType ) {
+		this.accessType = accessType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>accessType</b>
+	 * @return String - value of member attribute <b>accessType</b>.
+	 */
+	public String getAccessType( ) {
+		return this.accessType;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>aclEnforcer</b>.
+	 * You cannot set null to the attribute.
+	 * @param aclEnforcer Value to set member attribute <b>aclEnforcer</b>
+	 */
+	public void setAclEnforcer( String aclEnforcer ) {
+		this.aclEnforcer = aclEnforcer;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>aclEnforcer</b>
+	 * @return String - value of member attribute <b>aclEnforcer</b>.
+	 */
+	public String getAclEnforcer( ) {
+		return this.aclEnforcer;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>agentId</b>.
+	 * You cannot set null to the attribute.
+	 * @param agentId Value to set member attribute <b>agentId</b>
+	 */
+	public void setAgentId( String agentId ) {
+		this.agentId = agentId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>agentId</b>
+	 * @return String - value of member attribute <b>agentId</b>.
+	 */
+	public String getAgentId( ) {
+		return this.agentId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>clientIP</b>.
+	 * You cannot set null to the attribute.
+	 * @param clientIP Value to set member attribute <b>clientIP</b>
+	 */
+	public void setClientIP( String clientIP ) {
+		this.clientIP = clientIP;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>clientIP</b>
+	 * @return String - value of member attribute <b>clientIP</b>.
+	 */
+	public String getClientIP( ) {
+		return this.clientIP;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>clientType</b>.
+	 * You cannot set null to the attribute.
+	 * @param clientType Value to set member attribute <b>clientType</b>
+	 */
+	public void setClientType( String clientType ) {
+		this.clientType = clientType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>clientType</b>
+	 * @return String - value of member attribute <b>clientType</b>.
+	 */
+	public String getClientType( ) {
+		return this.clientType;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>policyId</b>.
+	 * You cannot set null to the attribute.
+	 * @param policyId Value to set member attribute <b>policyId</b>
+	 */
+	public void setPolicyId( long policyId ) {
+		this.policyId = policyId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>policyId</b>
+	 * @return long - value of member attribute <b>policyId</b>.
+	 */
+	public long getPolicyId( ) {
+		return this.policyId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>repoName</b>.
+	 * You cannot set null to the attribute.
+	 * @param repoName Value to set member attribute <b>repoName</b>
+	 */
+	public void setRepoName( String repoName ) {
+		this.repoName = repoName;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>repoName</b>
+	 * @return String - value of member attribute <b>repoName</b>.
+	 */
+	public String getRepoName( ) {
+		return this.repoName;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>repoType</b>.
+	 * You cannot set null to the attribute.
+	 * @param repoType Value to set member attribute <b>repoType</b>
+	 */
+	public void setRepoType( int repoType ) {
+		this.repoType = repoType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>repoType</b>
+	 * @return int - value of member attribute <b>repoType</b>.
+	 */
+	public int getRepoType( ) {
+		return this.repoType;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>resultReason</b>.
+	 * You cannot set null to the attribute.
+	 * @param resultReason Value to set member attribute <b>resultReason</b>
+	 */
+	public void setResultReason( String resultReason ) {
+		this.resultReason = resultReason;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>resultReason</b>
+	 * @return String - value of member attribute <b>resultReason</b>.
+	 */
+	public String getResultReason( ) {
+		return this.resultReason;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>sessionId</b>.
+	 * You cannot set null to the attribute.
+	 * @param sessionId Value to set member attribute <b>sessionId</b>
+	 */
+	public void setSessionId( String sessionId ) {
+		this.sessionId = sessionId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>sessionId</b>
+	 * @return String - value of member attribute <b>sessionId</b>.
+	 */
+	public String getSessionId( ) {
+		return this.sessionId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>eventTime</b>.
+	 * You cannot set null to the attribute.
+	 * @param eventTime Value to set member attribute <b>eventTime</b>
+	 */
+	public void setEventTime( Date eventTime ) {
+		this.eventTime = eventTime;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>eventTime</b>
+	 * @return Date - value of member attribute <b>eventTime</b>.
+	 */
+	public Date getEventTime( ) {
+		return this.eventTime;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>requestUser</b>.
+	 * You cannot set null to the attribute.
+	 * @param requestUser Value to set member attribute <b>requestUser</b>
+	 */
+	public void setRequestUser( String requestUser ) {
+		this.requestUser = requestUser;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>requestUser</b>
+	 * @return String - value of member attribute <b>requestUser</b>.
+	 */
+	public String getRequestUser( ) {
+		return this.requestUser;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>action</b>.
+	 * You cannot set null to the attribute.
+	 * @param action Value to set member attribute <b>action</b>
+	 */
+	public void setAction( String action ) {
+		this.action = action;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>action</b>
+	 * @return String - value of member attribute <b>action</b>.
+	 */
+	public String getAction( ) {
+		return this.action;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>requestData</b>.
+	 * You cannot set null to the attribute.
+	 * @param requestData Value to set member attribute <b>requestData</b>
+	 */
+	public void setRequestData( String requestData ) {
+		this.requestData = requestData;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>requestData</b>
+	 * @return String - value of member attribute <b>requestData</b>.
+	 */
+	public String getRequestData( ) {
+		return this.requestData;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>resourcePath</b>.
+	 * You cannot set null to the attribute.
+	 * @param resourcePath Value to set member attribute <b>resourcePath</b>
+	 */
+	public void setResourcePath( String resourcePath ) {
+		this.resourcePath = resourcePath;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>resourcePath</b>
+	 * @return String - value of member attribute <b>resourcePath</b>.
+	 */
+	public String getResourcePath( ) {
+		return this.resourcePath;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>resourceType</b>.
+	 * You cannot set null to the attribute.
+	 * @param resourceType Value to set member attribute <b>resourceType</b>
+	 */
+	public void setResourceType( String resourceType ) {
+		this.resourceType = resourceType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>resourceType</b>
+	 * @return String - value of member attribute <b>resourceType</b>.
+	 */
+	public String getResourceType( ) {
+		return this.resourceType;
+	}
+
+	/**
+	 * This return the bean content in string format
+	 * @return formatedStr
+	*/
+	@Override
+	public String toString( ) {
+		String str = "XXAccessAudit=";
+		str += super.toString();
+		str += "id={" + id + "} ";
+		str += "auditType={" + auditType + "} ";
+		str += "accessResult={" + accessResult + "} ";
+		str += "accessType={" + accessType + "} ";
+		str += "aclEnforcer={" + aclEnforcer + "} ";
+		str += "agentId={" + agentId + "} ";
+		str += "clientIP={" + clientIP + "} ";
+		str += "clientType={" + clientType + "} ";
+		str += "policyId={" + policyId + "} ";
+		str += "repoName={" + repoName + "} ";
+		str += "repoType={" + repoType + "} ";
+		str += "resultReason={" + resultReason + "} ";
+		str += "sessionId={" + sessionId + "} ";
+		str += "eventTime={" + eventTime + "} ";
+		str += "requestUser={" + requestUser + "} ";
+		str += "action={" + action + "} ";
+		str += "requestData={" + requestData + "} ";
+		str += "resourcePath={" + resourcePath + "} ";
+		str += "resourceType={" + resourceType + "} ";
+		return str;
+	}
+
+	/**
+	 * Checks for all attributes except referenced db objects
+	 * @return true if all attributes match
+	*/
+	@Override
+	public boolean equals( Object obj) {
+		if ( !super.equals(obj) ) {
+			return false;
+		}
+		XXAccessAuditBase other = (XXAccessAuditBase) obj;
+		if( this.auditType != other.auditType ) return false;
+		if( this.accessResult != other.accessResult ) return false;
+    	if ((this.accessType == null && other.accessType != null) || (this.accessType != null && !this.accessType.equals(other.accessType))) {
+        		return false;
+    	}
+    	if ((this.aclEnforcer == null && other.aclEnforcer != null) || (this.aclEnforcer != null && !this.aclEnforcer.equals(other.aclEnforcer))) {
+        		return false;
+    	}
+    	if ((this.agentId == null && other.agentId != null) || (this.agentId != null && !this.agentId.equals(other.agentId))) {
+        		return false;
+    	}
+    	if ((this.clientIP == null && other.clientIP != null) || (this.clientIP != null && !this.clientIP.equals(other.clientIP))) {
+        		return false;
+    	}
+    	if ((this.clientType == null && other.clientType != null) || (this.clientType != null && !this.clientType.equals(other.clientType))) {
+        		return false;
+    	}
+    	if( this.policyId != other.policyId ) return false;
+    	if ((this.repoName == null && other.repoName != null) || (this.repoName != null && !this.repoName.equals(other.repoName))) {
+        		return false;
+    	}
+    	if( this.repoType != other.repoType ) return false;
+    	if ((this.resultReason == null && other.resultReason != null) || (this.resultReason != null && !this.resultReason.equals(other.resultReason))) {
+        		return false;
+    	}
+    	if ((this.sessionId == null && other.sessionId != null) || (this.sessionId != null && !this.sessionId.equals(other.sessionId))) {
+        		return false;
+    	}
+    	if ((this.eventTime == null && other.eventTime != null) || (this.eventTime != null && !this.eventTime.equals(other.eventTime))) {
+        		return false;
+    	}
+    	if ((this.requestUser == null && other.requestUser != null) || (this.requestUser != null && !this.requestUser.equals(other.requestUser))) {
+        		return false;
+    	}
+    	if ((this.action == null && other.action != null) || (this.action != null && !this.action.equals(other.action))) {
+        		return false;
+    	}
+    	if ((this.requestData == null && other.requestData != null) || (this.requestData != null && !this.requestData.equals(other.requestData))) {
+        		return false;
+    	}
+    	if ((this.resourcePath == null && other.resourcePath != null) || (this.resourcePath != null && !this.resourcePath.equals(other.resourcePath))) {
+        		return false;
+    	}
+    	if ((this.resourceType == null && other.resourceType != null) || (this.resourceType != null && !this.resourceType.equals(other.resourceType))) {
+        		return false;
+    	}
+		return true;
+	}
+	public static String getEnumName(String fieldName ) {
+		if( fieldName.equals("auditType") ) {
+			return "CommonEnums.AssetType";
+		}
+		if( fieldName.equals("accessResult") ) {
+			return "CommonEnums.AccessResult";
+		}
+		return null;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
new file mode 100644
index 0000000..54e3cb3
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ranger.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+
+@Entity
+@XmlRootElement
+@Table(name = "xa_access_audit")
+public class XXAccessAuditV4 extends XXAccessAuditBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@Override
+	public int getMyClassType() {
+		return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT_V4;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
new file mode 100644
index 0000000..ff0f4f1
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ package org.apache.ranger.entity;
+
+/**
+ * Access Audit
+ * 
+ */
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+
+@Entity
+@XmlRootElement
+@Table(name = "xa_access_audit")
+public class XXAccessAuditV5 extends XXAccessAuditBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@Override
+	public int getMyClassType() {
+		return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT_V5;
+	}
+
+	@Column(name="SEQ_NUM")
+	protected long sequenceNumber;
+
+	@Column(name="EVENT_COUNT")
+	protected long eventCount;
+
+	//event duration in ms
+	@Column(name="EVENT_DUR_MS")
+	protected long eventDuration;
+
+	public long getSequenceNumber() {
+		return sequenceNumber;
+	}
+	public void setSequenceNumber(long sequenceNumber) {
+		this.sequenceNumber = sequenceNumber;
+	}
+	public long getEventCount() {
+		return eventCount;
+	}
+	public void setEventCount(long eventCount) {
+		this.eventCount = eventCount;
+	}
+	public long getEventDuration() {
+		return eventDuration;
+	}
+	public void setEventDuration(long eventDuration) {
+		this.eventDuration = eventDuration;
+	}
+
+	/**
+	 * This return the bean content in string format
+	 * @return formatedStr
+	*/
+	@Override
+	public String toString( ) {
+		String str = super.toString();
+		str += "sequenceNumber={" + sequenceNumber + "}";
+		str += "eventCount={" + eventCount + "}";
+		str += "eventDuration={" + eventDuration + "}";
+		return str;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
index 9ce1a12..433f5c9 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
@@ -29,9 +29,14 @@ import java.util.UUID;
 import org.apache.log4j.Logger;
 import org.apache.ranger.db.RangerDaoManager;
 import org.apache.ranger.entity.XXAccessAudit;
+import org.apache.ranger.entity.XXAccessAuditBase;
+import org.apache.ranger.entity.XXAccessAuditV4;
+import org.apache.ranger.entity.XXAccessAuditV5;
 import org.apache.ranger.patch.BaseLoader;
 import org.apache.ranger.solr.SolrAccessAuditsService;
 import org.apache.ranger.authorization.utils.StringUtil;
+import org.apache.ranger.biz.RangerBizUtil;
+import org.apache.ranger.common.AppConstants;
 import org.apache.ranger.common.DateUtil;
 import org.apache.ranger.common.PropertiesUtil;
 import org.apache.ranger.util.CLIUtil;
@@ -41,6 +46,7 @@ import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.SolrInputField;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 
 @Component
 public class DbToSolrMigrationUtil extends BaseLoader {
@@ -86,9 +92,11 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 	}
 
 	public void migrateAuditDbLogsToSolr() {
+		System.out.println("Migration process is started..");
 		long maxXXAccessAuditID = daoManager.getXXAccessAudit().getMaxIdOfXXAccessAudit();
 		if(maxXXAccessAuditID==0){
 			logger.info("Access Audit log does not exist.");
+			System.out.println("Access Audit log does not exist in db.");
 			return;
 		}
 		long maxMigratedID=0;
@@ -103,8 +111,21 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 		}
 		if(maxMigratedID>=maxXXAccessAuditID){
 			logger.info("No more DB Audit logs to migrate. Last migrated audit log ID: " + maxMigratedID);
+			System.out.println("No more DB Audit logs to migrate. Last migrated audit log ID: " + maxMigratedID);
 			return;
 		}
+		String db_flavor=AppConstants.getLabelFor_DatabaseFlavor(RangerBizUtil.getDBFlavor());
+		logger.info("DB flavor: " + db_flavor);
+		List<String> columnList=daoManager.getXXAccessAudit().getColumnNames(db_flavor);
+		int auditTableVersion=4;
+		if(columnList!=null){
+			if(columnList.contains("tags")){
+				auditTableVersion=6;
+			}else if(columnList.contains("seq_num") && columnList.contains("event_count") && columnList.contains("event_dur_ms")){
+				auditTableVersion=5;
+			}
+		}
+		logger.info("Columns Name:"+columnList);
 		long maxRowsPerBatch=10000;
 		//To ceil the actual division result i.e noOfBatches=maxXXAccessAuditID/maxRowsPerBatch
 		long noOfBatches=((maxXXAccessAuditID-maxMigratedID)+maxRowsPerBatch-1)/maxRowsPerBatch;
@@ -112,21 +133,72 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 		long rangeEnd=maxXXAccessAuditID-maxMigratedID<=maxRowsPerBatch ? maxXXAccessAuditID : rangeStart+maxRowsPerBatch;
 		long startTimeInMS=0;
 		long timeTaken=0;
-		List<XXAccessAudit> xXAccessAuditList=null;
+		long lastMigratedID=0;
+		long totalMigratedLogs=0;
 		for(long index=1;index<=noOfBatches;index++){
 			logger.info("Batch "+ index+" of total "+noOfBatches);
+			System.out.println("Processing batch "+ index+" of total "+noOfBatches);
 			startTimeInMS=System.currentTimeMillis();
 			//rangeStart and rangeEnd both exclusive, if we add +1 in maxRange
-			xXAccessAuditList=daoManager.getXXAccessAudit().getByIdRange(rangeStart,rangeEnd+1);
-			for(XXAccessAudit xXAccessAudit:xXAccessAuditList){
-				if(xXAccessAudit!=null){
-					try {
-						send2solr(xXAccessAudit);
-					} catch (Throwable e) {
-						logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
-						writeMigrationStatusFile(xXAccessAudit.getId(),CHECK_FILE_NAME);
-						logger.info("Stopping migration process!");
-						return;
+			if(auditTableVersion==4){
+				List<XXAccessAuditV4> xXAccessAuditV4List=daoManager.getXXAccessAudit().getByIdRangeV4(rangeStart,rangeEnd+1);
+				if(!CollectionUtils.isEmpty(xXAccessAuditV4List)){
+					for(XXAccessAuditV4 xXAccessAudit:xXAccessAuditV4List){
+						if(xXAccessAudit!=null){
+							try {
+								send2solr(xXAccessAudit);
+								lastMigratedID=xXAccessAudit.getId();
+								totalMigratedLogs++;
+							} catch (Throwable e) {
+								logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+								writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+								logger.info("Stopping migration process!");
+								System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+								System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+								return;
+							}
+						}
+					}
+				}
+			}else if(auditTableVersion==5){
+				List<XXAccessAuditV5>  xXAccessAuditV5List=daoManager.getXXAccessAudit().getByIdRangeV5(rangeStart,rangeEnd+1);
+				if(!CollectionUtils.isEmpty(xXAccessAuditV5List)){
+					for(XXAccessAuditV5 xXAccessAudit:xXAccessAuditV5List){
+						if(xXAccessAudit!=null){
+							try {
+								send2solr(xXAccessAudit);
+								lastMigratedID=xXAccessAudit.getId();
+								totalMigratedLogs++;
+							} catch (Throwable e) {
+								logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+								writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+								logger.info("Stopping migration process!");
+								System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+								System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+								return;
+							}
+						}
+					}
+				}
+			}
+			else if(auditTableVersion==6){
+				List<XXAccessAudit> xXAccessAuditV6List=daoManager.getXXAccessAudit().getByIdRangeV6(rangeStart,rangeEnd+1);
+				if(!CollectionUtils.isEmpty(xXAccessAuditV6List)){
+					for(XXAccessAudit xXAccessAudit:xXAccessAuditV6List){
+						if(xXAccessAudit!=null){
+							try {
+								send2solr(xXAccessAudit);
+								lastMigratedID=xXAccessAudit.getId();
+								totalMigratedLogs++;
+							} catch (Throwable e) {
+								logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+								writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+								logger.info("Stopping migration process!");
+								System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+								System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+								return;
+							}
+						}
 					}
 				}
 			}
@@ -140,12 +212,48 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 			rangeStart=rangeEnd;
 			rangeEnd=rangeEnd+maxRowsPerBatch;
 		}
-		
+		if(totalMigratedLogs>0){
+			System.out.println("Total Number of Migrated Audit logs:"+totalMigratedLogs);
+			logger.info("Total Number of Migrated Audit logs:"+totalMigratedLogs);
+		}
+		System.out.println("Migration process finished!!");
+	}
+
+	public void send2solr(XXAccessAuditV4 xXAccessAudit) throws Throwable {
+		SolrInputDocument document = new SolrInputDocument();
+		toSolrDocument(xXAccessAudit,document);
+		UpdateResponse response = solrServer.add(document);
+		if (response.getStatus() != 0) {
+			logger.info("Response=" + response.toString() + ", status= "
+					+ response.getStatus() + ", event=" + xXAccessAudit.toString());
+			throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+		}
+	}
+
+	public void send2solr(XXAccessAuditV5 xXAccessAudit) throws Throwable {
+		SolrInputDocument document = new SolrInputDocument();
+		toSolrDocument(xXAccessAudit,document);
+		UpdateResponse response = solrServer.add(document);
+		if (response.getStatus() != 0) {
+			logger.info("Response=" + response.toString() + ", status= "
+					+ response.getStatus() + ", event=" + xXAccessAudit.toString());
+			throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+		}
 	}
 
 	public void send2solr(XXAccessAudit xXAccessAudit) throws Throwable {
-		boolean uidIsString = true;
 		SolrInputDocument document = new SolrInputDocument();
+		toSolrDocument(xXAccessAudit,document);
+		UpdateResponse response = solrServer.add(document);
+		if (response.getStatus() != 0) {
+			logger.info("Response=" + response.toString() + ", status= "
+					+ response.getStatus() + ", event=" + xXAccessAudit.toString());
+			throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+		}
+	}
+
+	private void toSolrDocument(XXAccessAuditBase xXAccessAudit,  SolrInputDocument document) {
+		// add v4 fields
 		document.addField("id", xXAccessAudit.getId());
 		document.addField("access", xXAccessAudit.getAccessType());
 		document.addField("enforcer", xXAccessAudit.getAclEnforcer());
@@ -164,12 +272,8 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 		document.addField("reason", xXAccessAudit.getResultReason());
 		document.addField("action", xXAccessAudit.getAction());
 		document.addField("evtTime", DateUtil.getLocalDateForUTCDate(xXAccessAudit.getEventTime()));
-		document.addField("seq_num", xXAccessAudit.getSequenceNumber());
-		document.addField("event_count", xXAccessAudit.getEventCount());
-		document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
-		document.addField("tags", xXAccessAudit.getTags());
-		//If ID is not set, then we should add it.
 		SolrInputField idField = document.getField("id");
+		boolean uidIsString = true;
 		if( idField == null) {
 			Object uid = null;
 			if(uidIsString) {
@@ -177,15 +281,24 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 			}
 			document.setField("id", uid);
 		}
+	}
 
-		UpdateResponse response = solrServer.add(document);
-		if (response.getStatus() != 0) {
-			logger.info("Response=" + response.toString() + ", status= "
-					+ response.getStatus() + ", event=" + xXAccessAudit.toString());
-			throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
-		}
+	private void toSolrDocument(XXAccessAuditV5 xXAccessAudit,  SolrInputDocument document) {
+		toSolrDocument((XXAccessAuditBase)xXAccessAudit, document);
+		// add v5 fields
+		document.addField("seq_num", xXAccessAudit.getSequenceNumber());
+		document.addField("event_count", xXAccessAudit.getEventCount());
+		document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
 	}
 
+	private void toSolrDocument(XXAccessAudit xXAccessAudit,SolrInputDocument document) {
+		toSolrDocument((XXAccessAuditBase)xXAccessAudit, document);
+		// add v6 fields
+		document.addField("seq_num", xXAccessAudit.getSequenceNumber());
+		document.addField("event_count", xXAccessAudit.getEventCount());
+		document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
+		document.addField("tags", xXAccessAudit.getTags());
+	}
 	private Long readMigrationStatusFile(String aFileName) throws IOException {
 		Long migratedDbID=0L;
 		Path path = Paths.get(aFileName);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index f209bc4..76d3f21 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -1012,7 +1012,13 @@
 	<named-query name="XXAccessAudit.getMaxIdOfXXAccessAudit">
 		<query>select max(obj.id) from XXAccessAudit obj</query>
 	</named-query>
-	<named-query name="XXAccessAudit.getByIdRange">
+	<named-query name="XXAccessAuditV4.getByIdRangeV4">
+		<query>select obj from XXAccessAuditV4 obj WHERE obj.id &gt; :idFrom AND obj.id &lt; :idTo</query>
+    </named-query>
+    <named-query name="XXAccessAuditV5.getByIdRangeV5">
+		<query>select obj from XXAccessAuditV5 obj WHERE obj.id &gt; :idFrom AND obj.id &lt; :idTo</query>
+    </named-query>
+    <named-query name="XXAccessAudit.getByIdRangeV6">
 		<query>select obj from XXAccessAudit obj WHERE obj.id &gt; :idFrom AND obj.id &lt; :idTo</query>
     </named-query>
 	<named-query name="XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime">

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index 0d6679c..aee1c82 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -107,15 +107,6 @@
 		<name>ranger.mail.listener.enable</name>
 		<value>false</value>
 	</property>
-<!-- #Hibernate/JPA settings -->
-	<property>
-		<name>ranger.jpa.showsql</name>
-		<value>false</value>
-	</property>
-
-
-
-
 <!-- #Second Level Cache -->
 	<property>
 		<name>ranger.second_level_cache</name>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/webapp/META-INF/applicationContext.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/META-INF/applicationContext.xml b/security-admin/src/main/webapp/META-INF/applicationContext.xml
index 17f35a2..0580154 100644
--- a/security-admin/src/main/webapp/META-INF/applicationContext.xml
+++ b/security-admin/src/main/webapp/META-INF/applicationContext.xml
@@ -66,7 +66,7 @@ http://www.springframework.org/schema/util/spring-util.xsd">
 		<property name="dataSource" ref="loggingDataSource" />
 		<property name="jpaVendorAdapter">
 			<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
-				<property name="databasePlatform" value="${ranger.jpa.audit.jdbc.dialect}" />
+				<property name="databasePlatform" value="${ranger.jpa.jdbc.dialect}" />
 				<property name="showSql" value="${ranger.jpa.showsql}" />
 				<property name="generateDdl" value="false" />
 			</bean>
@@ -174,7 +174,7 @@ http://www.springframework.org/schema/util/spring-util.xsd">
 	
 	<bean id="loggingDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
 		<property name="driverClass">
-			<value>${ranger.jpa.audit.jdbc.driver}</value>
+			<value>${ranger.jpa.jdbc.driver}</value>
 		</property>
 		<property name="jdbcUrl">
 			<value>${ranger.jpa.audit.jdbc.url}</value>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
----------------------------------------------------------------------
diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
index e51d165..4cb8dea 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
@@ -72,6 +72,7 @@ public class TagSyncConfig extends Configuration {
 	private static final String TAGSYNC_TAGADMIN_KEYSTORE_PROP = "ranger.tagsync.keystore.filename";
 
 	private static final String DEFAULT_TAGADMIN_USERNAME = "rangertagsync";
+	private static final String DEFAULT_TAGADMIN_PASSWORD = "rangertagsync";
 
 	private static final int DEFAULT_TAGSYNC_TAGADMIN_CONNECTION_CHECK_INTERVAL = 15000;
 	private static final long DEFAULT_TAGSYNC_REST_SOURCE_DOWNLOAD_INTERVAL = 900000;
@@ -268,6 +269,9 @@ public class TagSyncConfig extends Configuration {
 				}
 			}
 		}
+		if(StringUtils.isBlank(password)){
+			return DEFAULT_TAGADMIN_PASSWORD;
+		}
 		return null;
 	}