http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/common/view/VList.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/view/VList.java 
b/security-admin/src/main/java/org/apache/ranger/common/view/VList.java
new file mode 100644
index 0000000..177e7fd
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/common/view/VList.java
@@ -0,0 +1,189 @@
+/*
+ * 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.common.view;
+
+
+import java.util.List;
+
+import javax.xml.bind.annotation.*;
+
+@XmlRootElement
+public abstract class VList extends ViewBaseBean implements
+       java.io.Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Start index for the result
+     */
+    protected int startIndex;
+    /**
+     * Page size used for the result
+     */
+    protected int pageSize;
+    /**
+     * Total records in the database for the given search conditions
+     */
+    protected long totalCount;
+    /**
+     * Number of rows returned for the search condition
+     */
+    protected int resultSize;
+    /**
+     * Sort type. Either desc or asc
+     */
+    protected String sortType;
+    /**
+     * Comma seperated list of the fields for sorting
+     */
+    protected String sortBy;
+
+    protected long queryTimeMS = System.currentTimeMillis();
+
+    /**
+     * Default constructor. This will set all the attributes to default value.
+     */
+    public VList() {
+    }
+
+    /**
+     * Initialize with existing list
+     *
+     * @param size
+     */
+    public VList(@SuppressWarnings("rawtypes") List objectList) {
+       int size = 0;
+       if (objectList != null) {
+           size = objectList.size();
+       }
+
+       startIndex = 0;
+       pageSize = size;
+       totalCount = size;
+       resultSize = size;
+       sortType = null;
+       sortBy = null;
+    }
+
+    abstract public int getListSize();
+
+    abstract public List<?> getList();
+
+    /**
+     * This method sets the value to the member attribute <b>startIndex</b>. 
You
+     * cannot set null to the attribute.
+     *
+     * @param startIndex
+     *            Value to set member attribute <b>startIndex</b>
+     */
+    public void setStartIndex(int startIndex) {
+       this.startIndex = startIndex;
+    }
+
+
+    /**
+     * This method sets the value to the member attribute <b>pageSize</b>. You
+     * cannot set null to the attribute.
+     *
+     * @param pageSize
+     *            Value to set member attribute <b>pageSize</b>
+     */
+    public void setPageSize(int pageSize) {
+       this.pageSize = pageSize;
+    }
+
+
+    /**
+     * This method sets the value to the member attribute <b>totalCount</b>. 
You
+     * cannot set null to the attribute.
+     *
+     * @param totalCount
+     *            Value to set member attribute <b>totalCount</b>
+     */
+    public void setTotalCount(long totalCount) {
+       this.totalCount = totalCount;
+    }
+
+    
+
+    /**
+     * This method sets the value to the member attribute <b>resultSize</b>. 
You
+     * cannot set null to the attribute.
+     *
+     * @param resultSize
+     *            Value to set member attribute <b>resultSize</b>
+     */
+    public void setResultSize(int resultSize) {
+       this.resultSize = resultSize;
+    }
+
+    /**
+     * Returns the value for the member attribute <b>resultSize</b>
+     *
+     * @return int - value of member attribute <b>resultSize</b>.
+     */
+    public int getResultSize() {
+       return getListSize();
+    }
+
+    /**
+     * This method sets the value to the member attribute <b>sortType</b>. You
+     * cannot set null to the attribute.
+     *
+     * @param sortType
+     *            Value to set member attribute <b>sortType</b>
+     */
+    public void setSortType(String sortType) {
+       this.sortType = sortType;
+    }
+
+
+
+    /**
+     * This method sets the value to the member attribute <b>sortBy</b>. You
+     * cannot set null to the attribute.
+     *
+     * @param sortBy
+     *            Value to set member attribute <b>sortBy</b>
+     */
+    public void setSortBy(String sortBy) {
+       this.sortBy = sortBy;
+    }
+
+   
+
+  
+
+    
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+       return "VList [startIndex=" + startIndex + ", pageSize="
+               + pageSize + ", totalCount=" + totalCount
+               + ", resultSize=" + resultSize + ", sortType="
+               + sortType + ", sortBy=" + sortBy + ", queryTimeMS="
+               + queryTimeMS + "]";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/common/view/VTrxLogAttr.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/view/VTrxLogAttr.java 
b/security-admin/src/main/java/org/apache/ranger/common/view/VTrxLogAttr.java
new file mode 100644
index 0000000..2974e7d
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/view/VTrxLogAttr.java
@@ -0,0 +1,83 @@
+/*
+ * 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.common.view;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.XACommonEnums;
+import org.apache.ranger.common.view.ViewBaseBean;
+
+@XmlRootElement
+public class VTrxLogAttr extends ViewBaseBean implements Serializable{
+       private static final long serialVersionUID = 1L;
+       
+       protected String attribName;
+       protected String attribUserFriendlyName;
+       protected boolean isEnum;
+       
+       public VTrxLogAttr(){}
+
+       public VTrxLogAttr(String attribName, String attribUserFriendlyName,
+                       boolean isEnum) {
+               super();
+               this.attribName = attribName;
+               this.attribUserFriendlyName = attribUserFriendlyName;
+               this.isEnum = isEnum;
+       }
+
+       
+
+
+       /**
+        * @return the attribUserFriendlyName
+        */
+       public String getAttribUserFriendlyName() {
+               return attribUserFriendlyName;
+       }
+
+
+       /**
+        * @return the isEnum
+        */
+       public boolean isEnum() {
+               return isEnum;
+       }
+
+       
+       
+       @Override
+       public int getMyClassType( ) {
+           return AppConstants.CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE;
+       }
+
+       @Override
+       public String toString(){
+               String str = "VTrxLogAttr={";
+               str += super.toString();
+               str += "attribName={" + attribName + "} ";
+               str += "attribUserFriendlyName={" + attribUserFriendlyName + "} 
";
+               str += "isEnum={" + isEnum + "} ";
+               str += "}";
+               return str;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/common/view/ViewBaseBean.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/view/ViewBaseBean.java 
b/security-admin/src/main/java/org/apache/ranger/common/view/ViewBaseBean.java
new file mode 100644
index 0000000..b820120
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/view/ViewBaseBean.java
@@ -0,0 +1,56 @@
+/*
+ * 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.common.view;
+
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.ranger.common.XACommonEnums;
+import org.apache.ranger.entity.XXDBBase;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+public class ViewBaseBean implements java.io.Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @JsonIgnore
+    private XXDBBase mObj = null;
+
+    /**
+     * @return the gjObj
+     */
+    @XmlTransient
+    @JsonIgnore
+    public XXDBBase getMObj() {
+       return mObj;
+    }
+
+    /**
+     * @param gjObj
+     *            the gjObj to set
+     */
+    public void setMObj(XXDBBase gjObj) {
+       this.mObj = gjObj;
+    }
+
+    @XmlTransient
+    @JsonIgnore
+    public int getMyClassType() {
+       return XACommonEnums.CLASS_TYPE_NONE;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/credentialapi/CredentialReader.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/credentialapi/CredentialReader.java
 
b/security-admin/src/main/java/org/apache/ranger/credentialapi/CredentialReader.java
new file mode 100644
index 0000000..920c12d
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/credentialapi/CredentialReader.java
@@ -0,0 +1,87 @@
+/*
+ * 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.credentialapi;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.security.alias.CredentialProvider;
+import org.apache.hadoop.security.alias.CredentialProviderFactory;
+import org.apache.hadoop.security.alias.JavaKeyStoreProvider;
+
+public class CredentialReader {
+       
+       public static String getDecryptedString(String 
CrendentialProviderPath,String alias) {
+                 String credential=null;
+                 try{
+                         if(CrendentialProviderPath==null || alias==null){
+                                 return null;
+                         }                               
+                         char[] pass = null;
+                         Configuration conf = new Configuration();
+                         String 
crendentialProviderPrefix=JavaKeyStoreProvider.SCHEME_NAME + "://file";
+                         
crendentialProviderPrefix=crendentialProviderPrefix.toLowerCase();
+                         
CrendentialProviderPath=CrendentialProviderPath.trim();
+                         alias=alias.trim();
+                         
if(CrendentialProviderPath.toLowerCase().startsWith(crendentialProviderPrefix)){
+                                 
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
+                                                  //UserProvider.SCHEME_NAME + 
":///," +
+                                 CrendentialProviderPath);
+                         }else{
+                                 if(CrendentialProviderPath.startsWith("/")){
+                                         
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
+                                                          
//UserProvider.SCHEME_NAME + ":///," +
+                                         JavaKeyStoreProvider.SCHEME_NAME + 
"://file" + CrendentialProviderPath);
+                                 }else{
+                                         
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
+                                                          
//UserProvider.SCHEME_NAME + ":///," +
+                                         JavaKeyStoreProvider.SCHEME_NAME + 
"://file/" + CrendentialProviderPath);
+                                 }
+                         }               
+                         List<CredentialProvider> providers = 
CredentialProviderFactory.getProviders(conf);
+                         List<String> aliasesList=new ArrayList<String>();
+                         CredentialProvider.CredentialEntry credEntry=null;
+                         for(CredentialProvider provider: providers) {
+                     //System.out.println("Credential Provider :" + provider);
+                                 aliasesList=provider.getAliases();
+                                 if(aliasesList!=null && 
aliasesList.contains(alias.toLowerCase())){
+                                         credEntry=null;
+                                         credEntry= 
provider.getCredentialEntry(alias);
+                                         pass = credEntry.getCredential();
+                                         if(pass!=null && pass.length>0){
+                                                 
credential=String.valueOf(pass);
+                                                 break;
+                                         }                               
+                                 }
+                         }
+                 }catch(Exception ex){
+                         ex.printStackTrace();
+                         credential=null;
+                 }
+                 return credential;
+         }
+  
+  /*
+  public static void main(String args[]) throws Exception{
+         String keystoreFile =new String("/tmp/mykey3.jceks");  
+         String password=CredentialReader.getDecryptedString(keystoreFile, 
"mykey3");
+          System.out.println(password);
+  }*/
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XADaoManager.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XADaoManager.java 
b/security-admin/src/main/java/org/apache/ranger/db/XADaoManager.java
new file mode 100644
index 0000000..64f2148
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XADaoManager.java
@@ -0,0 +1,77 @@
+/*
+ * 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.db;
+
+
+
+import javax.persistence.*;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.BaseDao;
+import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@Component
+public class XADaoManager extends XADaoManagerBase {
+       final static Logger logger = Logger.getLogger(XADaoManager.class);
+
+       @PersistenceContext(unitName = "defaultPU")
+       private EntityManager em;
+
+       @PersistenceContext(unitName = "loggingPU")
+       private EntityManager loggingEM;
+
+       @Autowired
+       StringUtil stringUtil;
+
+       @Override
+       public EntityManager getEntityManager() {
+               return em;
+       }
+
+       public EntityManager getEntityManager(String persistenceContextUnit) {
+               logger.error("XADaoManager.getEntityManager(" + 
persistenceContextUnit + ")");
+               if (persistenceContextUnit.equalsIgnoreCase("loggingPU")) {
+                       return loggingEM;
+               }
+               return getEntityManager();
+       }
+
+       
+       /**
+        * @return the stringUtil
+        */
+       public StringUtil getStringUtil() {
+               return stringUtil;
+       }
+
+       /*
+        * (non-Javadoc)
+        */
+       @Override
+       public BaseDao<?> getDaoForClassType(int classType) {
+               if (classType == XAConstants.CLASS_TYPE_NONE) {
+                       return null;
+               }
+               return super.getDaoForClassType(classType);
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XADaoManagerBase.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XADaoManagerBase.java 
b/security-admin/src/main/java/org/apache/ranger/db/XADaoManagerBase.java
new file mode 100644
index 0000000..e908447
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XADaoManagerBase.java
@@ -0,0 +1,216 @@
+/*
+ * 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.db;
+
+/**
+ * 
+ */
+
+import javax.persistence.*;
+
+import java.util.*;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public abstract class XADaoManagerBase {
+       final static Logger logger = Logger.getLogger(XADaoManagerBase.class);
+
+       @Autowired
+       protected RESTErrorUtil restErrorUtil;
+       abstract public EntityManager getEntityManager();
+
+       public XADaoManagerBase() {
+       }
+
+       public BaseDao<?> getDaoForClassType(int classType) {
+               if (classType == AppConstants.CLASS_TYPE_AUTH_SESS) {
+                       return getXXAuthSession();
+               }
+               if (classType == AppConstants.CLASS_TYPE_USER_PROFILE) {
+                       return getXXPortalUser();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_ASSET) {
+                       return getXXAsset();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_RESOURCE) {
+                       return getXXResource();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_CRED_STORE) {
+                       return getXXCredentialStore();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_GROUP) {
+                       return getXXGroup();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_USER) {
+                       return getXXUser();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_GROUP_USER) {
+                       return getXXGroupUser();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_GROUP_GROUP) {
+                       return getXXGroupGroup();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_PERM_MAP) {
+                       return getXXPermMap();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_AUDIT_MAP) {
+                       return getXXAuditMap();
+               }
+               if (classType == 
AppConstants.CLASS_TYPE_XA_POLICY_EXPORT_AUDIT) {
+                       return getXXPolicyExportAudit();
+               }
+               if (classType == AppConstants.CLASS_TYPE_TRX_LOG) {
+                       return getXXTrxLog();
+               }
+               if (classType == AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT) {
+                       return getXXAccessAudit();
+               }
+
+               logger.error("No DaoManager found for classType=" + classType, 
new Throwable());
+               return null;
+       }
+
+       public BaseDao<?> getDaoForClassName(String className) {
+               if (className.equals("XXDBBase")) {
+                       return getXXDBBase();
+               }
+               if (className.equals("XXAuthSession")) {
+                       return getXXAuthSession();
+               }
+               if (className.equals("XXPortalUser")) {
+                       return getXXPortalUser();
+               }
+               if (className.equals("XXPortalUserRole")) {
+                       return getXXPortalUserRole();
+               }
+               if (className.equals("XXAsset")) {
+                       return getXXAsset();
+               }
+               if (className.equals("XXResource")) {
+                       return getXXResource();
+               }
+               if (className.equals("XXCredentialStore")) {
+                       return getXXCredentialStore();
+               }
+               if (className.equals("XXGroup")) {
+                       return getXXGroup();
+               }
+               if (className.equals("XXUser")) {
+                       return getXXUser();
+               }
+               if (className.equals("XXGroupUser")) {
+                       return getXXGroupUser();
+               }
+               if (className.equals("XXGroupGroup")) {
+                       return getXXGroupGroup();
+               }
+               if (className.equals("XXPermMap")) {
+                       return getXXPermMap();
+               }
+               if (className.equals("XXAuditMap")) {
+                       return getXXAuditMap();
+               }
+               if (className.equals("XXPolicyExportAudit")) {
+                       return getXXPolicyExportAudit();
+               }
+               if (className.equals("XXTrxLog")) {
+                       return getXXTrxLog();
+               }
+               if (className.equals("XXAccessAudit")) {
+                       return getXXAccessAudit();
+               }
+
+               logger.error("No DaoManager found for className=" + className, 
new Throwable());
+               return null;
+       }
+
+       public XXDBBaseDao getXXDBBase() {
+               return new XXDBBaseDao(this);
+       }
+
+       public XXAuthSessionDao getXXAuthSession() {
+               return new XXAuthSessionDao(this);
+       }
+
+       public XXPortalUserDao getXXPortalUser() {
+               return new XXPortalUserDao(this);
+       }
+
+       public XXPortalUserRoleDao getXXPortalUserRole() {
+               return new XXPortalUserRoleDao(this);
+       }
+
+       public XXAssetDao getXXAsset() {
+               return new XXAssetDao(this);
+       }
+
+       public XXResourceDao getXXResource() {
+               return new XXResourceDao(this);
+       }
+
+       public XXCredentialStoreDao getXXCredentialStore() {
+               return new XXCredentialStoreDao(this);
+       }
+
+       public XXGroupDao getXXGroup() {
+               return new XXGroupDao(this);
+       }
+
+       public XXUserDao getXXUser() {
+               return new XXUserDao(this);
+       }
+
+       public XXGroupUserDao getXXGroupUser() {
+               return new XXGroupUserDao(this);
+       }
+
+       public XXGroupGroupDao getXXGroupGroup() {
+               return new XXGroupGroupDao(this);
+       }
+
+       public XXPermMapDao getXXPermMap() {
+               return new XXPermMapDao(this);
+       }
+
+       public XXAuditMapDao getXXAuditMap() {
+               return new XXAuditMapDao(this);
+       }
+
+       public XXPolicyExportAuditDao getXXPolicyExportAudit() {
+               return new XXPolicyExportAuditDao(this);
+       }
+
+       public XXTrxLogDao getXXTrxLog() {
+               return new XXTrxLogDao(this);
+       }
+
+       public XXAccessAuditDao getXXAccessAudit() {
+               return new XXAccessAuditDao(this);
+       }
+
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/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
new file mode 100644
index 0000000..614cea9
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
@@ -0,0 +1,32 @@
+/*
+ * 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.db;
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
+
+    public XXAccessAuditDao( XADaoManagerBase daoManager ) {
+               super(daoManager, "loggingPU");
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXAssetDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXAssetDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXAssetDao.java
new file mode 100644
index 0000000..08a1d2a
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAssetDao.java
@@ -0,0 +1,54 @@
+/*
+ * 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.db;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.XACommonEnums;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXAsset;
+
+public class XXAssetDao extends BaseDao<XXAsset> {
+       static final Logger logger = Logger.getLogger(XXAssetDao.class);
+
+    public XXAssetDao( XADaoManagerBase  daoManager ) {
+               super(daoManager);
+    }
+    
+    public XXAsset findByAssetName(String name){
+               if (daoManager.getStringUtil().isEmpty(name)) {
+                       logger.debug("name is empty");
+                       return null;
+               }
+               try {
+                       return getEntityManager()
+                                       
.createNamedQuery("XXAsset.findByAssetName", XXAsset.class)
+                                       .setParameter("name", name.trim())
+                                       
.setParameter("status",XACommonEnums.STATUS_DELETED)
+                                       .getSingleResult();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+    }
+    
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXAuditMapDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXAuditMapDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXAuditMapDao.java
new file mode 100644
index 0000000..2b1a95f
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAuditMapDao.java
@@ -0,0 +1,57 @@
+/*
+ * 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.db;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXAuditMapDao extends BaseDao<XXAuditMap> {
+       static final Logger logger = Logger.getLogger(XXAssetDao.class);
+
+    public XXAuditMapDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+
+       public List<XXAuditMap> findByResourceId(Long resourceId) {
+               if (resourceId != null) {
+                       try {
+                               return getEntityManager()
+                                               
.createNamedQuery("XXAuditMap.findByResourceId", XXAuditMap.class)
+                                               .setParameter("resourceId", 
resourceId)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               logger.debug(e.getMessage());
+                       }
+               } else {
+                       logger.debug("ResourceId not provided.");
+                       return new ArrayList<XXAuditMap>();
+               }
+               return new ArrayList<XXAuditMap>();
+       }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java
new file mode 100644
index 0000000..4e592f4
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java
@@ -0,0 +1,53 @@
+/*
+ * 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.db;
+
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.ranger.common.db.BaseDao;
+import org.apache.ranger.entity.XXAuthSession;
+
+public class XXAuthSessionDao extends BaseDao<XXAuthSession> {
+
+    public XXAuthSessionDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+    
+    @SuppressWarnings("unchecked")
+       public List<Object[]> getUserLoggedIn(){
+       return getEntityManager()
+                       .createNamedQuery("XXAuthSession.getUserLoggedIn")
+                       .getResultList();
+    }
+       
+       public XXAuthSession getAuthSessionBySessionId(String sessionId){
+               try{
+               return (XXAuthSession) getEntityManager()
+                               
.createNamedQuery("XXAuthSession.getAuthSessionBySessionId")
+                               .setParameter("sessionId", sessionId)
+                               .getSingleResult();
+               } catch(NoResultException ignoreNoResultFound) {
+                       return null;
+               }
+       }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXCredentialStoreDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXCredentialStoreDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXCredentialStoreDao.java
new file mode 100644
index 0000000..1ed278e
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/db/XXCredentialStoreDao.java
@@ -0,0 +1,32 @@
+/*
+ * 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.db;
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXCredentialStoreDao extends BaseDao<XXCredentialStore> {
+
+    public XXCredentialStoreDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXDBBaseDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXDBBaseDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXDBBaseDao.java
new file mode 100644
index 0000000..3913f3d
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXDBBaseDao.java
@@ -0,0 +1,31 @@
+/*
+ * 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.db;
+
+import org.apache.ranger.common.db.BaseDao;
+import org.apache.ranger.entity.*;
+
+public class XXDBBaseDao extends BaseDao<XXDBBase> {
+
+    public XXDBBaseDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
new file mode 100644
index 0000000..e0b7735
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
@@ -0,0 +1,73 @@
+/*
+ * 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.db;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXGroupDao extends BaseDao<XXGroup> {
+
+       public XXGroupDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       @SuppressWarnings("unchecked")
+       public List<XXGroup> findByUserId(Long userId) {
+               if (userId == null) {
+                       return new ArrayList<XXGroup>();
+               }
+
+               List<XXGroup> groupList = (List<XXGroup>) getEntityManager()
+                               .createNamedQuery("XXGroup.findByUserId")
+                               .setParameter("userId", userId).getResultList();
+
+               if (groupList == null) {
+                       groupList = new ArrayList<XXGroup>();
+               }
+
+               return groupList;
+       }
+
+       @SuppressWarnings("unchecked")
+       public XXGroup findByGroupName(String groupName) {
+               if (groupName == null) {
+                       return null;
+               }
+               try {
+
+                       return (XXGroup) getEntityManager()
+                                       
.createNamedQuery("XXGroup.findByGroupName")
+                                       .setParameter("name", groupName)
+                                       .getSingleResult();
+               } catch (Exception e) {
+
+               }
+               return null;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXGroupGroupDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXGroupGroupDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXGroupGroupDao.java
new file mode 100644
index 0000000..5b831a2
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXGroupGroupDao.java
@@ -0,0 +1,32 @@
+/*
+ * 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.db;
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXGroupGroupDao extends BaseDao<XXGroupGroup> {
+
+    public XXGroupGroupDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXGroupUserDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXGroupUserDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXGroupUserDao.java
new file mode 100644
index 0000000..8b27c7f
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXGroupUserDao.java
@@ -0,0 +1,64 @@
+/*
+ * 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.db;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXGroupUserDao extends BaseDao<XXGroupUser> {
+       static final Logger logger = Logger.getLogger(XXGroupUserDao.class);
+
+       public XXGroupUserDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       public void deleteByGroupIdAndUserId(Long groupId, Long userId) {
+               getEntityManager()
+                               
.createNamedQuery("XXGroupUser.deleteByGroupIdAndUserId")
+                               .setParameter("userId", userId)
+                               .setParameter("parentGroupId", 
groupId).executeUpdate();
+
+       }
+
+       public List<XXGroupUser> findByUserId(Long userId) {
+               if (userId != null) {
+                       try {
+                               return getEntityManager()
+                                               
.createNamedQuery("XXGroupUser.findByUserId", XXGroupUser.class)
+                                               .setParameter("userId", userId)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               logger.debug(e.getMessage());
+                       }
+               } else {
+                       logger.debug("ResourceId not provided.");
+                       return new ArrayList<XXGroupUser>();
+               }
+               return null;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXPermMapDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPermMapDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPermMapDao.java
new file mode 100644
index 0000000..659b9be
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXPermMapDao.java
@@ -0,0 +1,56 @@
+/*
+ * 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.db;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXPermMapDao extends BaseDao<XXPermMap> {
+       static final Logger logger = Logger.getLogger(XXResourceDao.class);
+
+    public XXPermMapDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+
+       public List<XXPermMap> findByResourceId(Long resourceId) {
+               if (resourceId != null) {
+                       try {
+                               return getEntityManager()
+                                               
.createNamedQuery("XXPermMap.findByResourceId", XXPermMap.class)
+                                               .setParameter("resourceId", 
resourceId)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               logger.debug(e.getMessage());
+                       }
+               } else {
+                       logger.debug("ResourceId not provided.");
+                       return new ArrayList<XXPermMap>();
+               }
+               return null;
+       }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXPolicyExportAuditDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPolicyExportAuditDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPolicyExportAuditDao.java
new file mode 100644
index 0000000..9ac89b7
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/db/XXPolicyExportAuditDao.java
@@ -0,0 +1,32 @@
+/*
+ * 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.db;
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.*;
+
+public class XXPolicyExportAuditDao extends BaseDao<XXPolicyExportAudit> {
+
+    public XXPolicyExportAuditDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
new file mode 100644
index 0000000..ac11431
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
@@ -0,0 +1,79 @@
+/*
+ * 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.db;
+
+
+import java.util.List;
+
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXPortalUser;
+
+public class XXPortalUserDao extends BaseDao<XXPortalUser> {
+
+       public XXPortalUserDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       public XXPortalUser findByLoginId(String loginId) {
+               if (daoManager.getStringUtil().isEmpty(loginId)) {
+                       return null;
+               }
+
+               @SuppressWarnings("rawtypes")
+               List resultList = getEntityManager()
+                               .createNamedQuery("XXPortalUser.findByLoginId")
+                               .setParameter("loginId", 
loginId).getResultList();
+               if (resultList.size() != 0) {
+                       return (XXPortalUser) resultList.get(0);
+               }
+               return null;
+       }
+
+       public XXPortalUser findByEmailAddress(String emailAddress) {
+               if (daoManager.getStringUtil().isEmpty(emailAddress)) {
+                       return null;
+               }
+
+               @SuppressWarnings("rawtypes")
+               List resultList = getEntityManager()
+                               
.createNamedQuery("XXPortalUser.findByEmailAddress")
+                               .setParameter("emailAddress", emailAddress)
+                               .getResultList();
+               if (resultList.size() != 0) {
+                       return (XXPortalUser) resultList.get(0);
+               }
+               return null;
+       }
+
+       @SuppressWarnings("unchecked")
+       public List<XXPortalUser> findByRole(String userRole) {
+               return 
getEntityManager().createNamedQuery("XXPortalUser.findByRole")
+                               .setParameter("userRole", 
userRole.toUpperCase())
+                               .getResultList();
+       }
+    
+    @SuppressWarnings("unchecked")
+       public List<Object[]> getUserAddedReport(){
+       return getEntityManager()
+                       .createNamedQuery("XXPortalUser.getUserAddedReport")
+                       .getResultList();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
new file mode 100644
index 0000000..cf41d59
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
@@ -0,0 +1,59 @@
+/*
+ * 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.db;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXPortalUserRole;
+
+public class XXPortalUserRoleDao extends BaseDao<XXPortalUserRole> {
+
+       public XXPortalUserRoleDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       @SuppressWarnings("unchecked")
+       public List<XXPortalUserRole> findByUserId(Long userId) {
+               if (userId == null) {
+                       return new ArrayList<XXPortalUserRole>();
+               }
+               return 
getEntityManager().createNamedQuery("XXPortalUserRole.findByUserId")
+                               .setParameter("userId", userId).getResultList();
+       }
+       
+       public XXPortalUserRole findByRoleUserId(Long userId, String role) {
+               if(userId == null || role == null || role.isEmpty()){
+                       return null;
+               }
+               try{
+                       return 
(XXPortalUserRole)getEntityManager().createNamedQuery("XXPortalUserRole.findByRoleUserId")
+                                       .setParameter("userId", userId)
+                                       .setParameter("userRole", 
role).getSingleResult();
+               } catch(NoResultException e){
+                       //doNothing;
+               }
+               return null;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXResourceDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXResourceDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXResourceDao.java
new file mode 100644
index 0000000..0aa3f75
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXResourceDao.java
@@ -0,0 +1,273 @@
+/*
+ * 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.db;
+
+
+import java.util.Date;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXResource;
+
+public class XXResourceDao extends BaseDao<XXResource> {
+       static final Logger logger = Logger.getLogger(XXResourceDao.class);
+
+       public XXResourceDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       public XXResource findByResourceName(String name) {
+               if (daoManager.getStringUtil().isEmpty(name)) {
+                       logger.debug("name is empty");
+                       return null;
+               }
+               try {
+                       return getEntityManager()
+                                       
.createNamedQuery("XXResource.findByResourceName",
+                                                       
XXResource.class).setParameter("name", name.trim())
+                                       .getSingleResult();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }       
+
+       public List<XXResource> findUpdatedResourcesByAssetId(
+                       Long assetId, Date lastUpdated) {
+               if (assetId != null) {
+                       try {
+                               return getEntityManager()
+                                               
.createNamedQuery("XXResource.findUpdatedResourcesByAssetId",
+                                                               
XXResource.class)
+                                               .setParameter("assetId", 
assetId)
+                                               .setParameter("lastUpdated", 
lastUpdated)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               logger.debug(e.getMessage());
+                       }
+               } else {
+                       logger.debug("AssetId not provided.");
+                       return new ArrayList<XXResource>();
+               }
+               return null;
+       }
+       
+       public List<XXResource> findByAssetId(Long assetId) {
+               List<XXResource> xResourceList = null;
+               if (assetId != null) {
+                       try {
+                               xResourceList = getEntityManager()
+                                               
.createNamedQuery("XXResource.findByAssetId", XXResource.class)
+                                               .setParameter("assetId", 
assetId)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               // ignore
+                               logger.debug(e.getMessage());
+                       }
+                       if(xResourceList == null) {
+                               xResourceList = new ArrayList<XXResource>();
+                       }
+               } else {
+                       logger.debug("AssetId not provided.");
+                       xResourceList = new ArrayList<XXResource>();
+               }
+               return xResourceList;
+       }
+       
+       public List<XXResource> findByAssetType(Integer assetType) {
+               List<XXResource> xResourceList = null;
+               if (assetType != null) {
+                       try {
+                               xResourceList = getEntityManager()
+                                               
.createNamedQuery("XXResource.findByAssetType", XXResource.class)
+                                               .setParameter("assetType", 
assetType)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               // ignore
+                               logger.debug(e.getMessage());
+                       }
+                       if(xResourceList == null) {
+                               xResourceList = new ArrayList<XXResource>();
+                       }
+               } else {
+                       logger.debug("AssetType not provided.");
+                       xResourceList = new ArrayList<XXResource>();
+               }
+               return xResourceList;
+       }
+       
+       public Timestamp getMaxUpdateTimeForAssetName(String assetName) {
+               if (assetName == null) {
+                       return null;
+               }
+               try {           
+                        Date date=(Date)getEntityManager()
+                       
.createNamedQuery("XXResource.getMaxUpdateTimeForAssetName")
+                       .setParameter("assetName", assetName)
+                       .getSingleResult();
+                        if(date!=null){
+                                Timestamp timestamp=new 
Timestamp(date.getTime());     
+                                return timestamp;
+                        }else{
+                                return null;
+                        }              
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }
+
+       public List<XXResource> findUpdatedResourcesByAssetName(
+                       String assetName, Date lastUpdated) {
+               if (assetName != null) {
+                       try {
+                               return getEntityManager()
+                                               .createNamedQuery(
+                                                               
"XXResource.findUpdatedResourcesByAssetName",
+                                                               
XXResource.class)
+                                               .setParameter("assetName", 
assetName)
+                                               .setParameter("lastUpdated", 
lastUpdated)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               logger.debug(e.getMessage());
+                       }
+               } else {
+                       logger.debug("Asset name not provided.");
+                       return new ArrayList<XXResource>();
+               }
+               return null;
+       }
+
+       public List<XXResource> findByResourceNameAndAssetIdAndRecursiveFlag(
+                       String name,Long assetId,int isRecursive ) {
+               if (daoManager.getStringUtil().isEmpty(name)) {
+                       logger.debug("name is empty");
+                       return null;
+               }
+               if (assetId==null) {
+                       logger.debug("assetId is null");
+                       return null;
+               }
+               try {
+                       String resourceName = name.trim();
+                       resourceName = "%"+resourceName+"%";
+                       return getEntityManager()
+                                       .createNamedQuery(
+                                                       
"XXResource.findByResourceNameAndAssetIdAndRecursiveFlag",
+                                                       
XXResource.class).setParameter("name", resourceName)                            
                        
+                                       .setParameter("assetId", assetId)
+                                       .setParameter("isRecursive", 
isRecursive)
+                                       .getResultList();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }
+
+       public List<XXResource> 
findByResourceNameAndAssetIdAndResourceType(String name,Long assetId,int 
resourceType) {
+               if (daoManager.getStringUtil().isEmpty(name)) {
+                       logger.debug("name is empty");
+                       return null;
+               }
+               if (assetId==null) {
+                       logger.debug("assetId is null");
+                       return null;
+               }
+               try {
+                       String resourceName = name.trim();
+                       resourceName = "%"+resourceName+"%";
+                       return getEntityManager()
+                                       .createNamedQuery(
+                                                       
"XXResource.findByResourceNameAndAssetIdAndResourceType",
+                                                       
XXResource.class).setParameter("name", resourceName)                            
                        
+                                       .setParameter("assetId", assetId)
+                                       .setParameter("resourceType", 
resourceType)
+                                       .getResultList();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }
+       
+       @SuppressWarnings("unchecked")
+       public List<XXResource> findByAssetIdAndResourceTypes(Long assetId,
+                       List<Integer> resourceType) {
+               if (assetId == null) {
+                       logger.debug("assetId is null");
+                       return null;
+               }
+               try {
+                       StringBuffer query = new StringBuffer(
+                                       "SELECT obj FROM XXResource obj WHERE 
obj.assetId="
+                                                       + assetId);
+                       String whereClause = 
makeWhereCaluseForResourceType(resourceType);
+                       if (!whereClause.trim().isEmpty()) {
+                               query.append(" and ( " + whereClause + " )");
+                       }
+                       return getEntityManager().createQuery(query.toString())
+                                       .getResultList();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }
+
+       private String makeWhereCaluseForResourceType(List<Integer> 
resourceTypes) {
+               StringBuffer whereClause = new StringBuffer();
+               if (resourceTypes != null && resourceTypes.size() != 0) {
+
+                       for (int i = 0; i < resourceTypes.size() - 1; i++) {
+                               whereClause.append("obj.resourceType=" + 
resourceTypes.get(i)
+                                               + " OR ");
+                       }
+                       whereClause.append("obj.resourceType="
+                                       + 
resourceTypes.get(resourceTypes.size() - 1));
+               }
+               return whereClause.toString();
+       }
+       
+       public List<XXResource> findByAssetIdAndResourceStatus(Long assetId, 
int resourceStatus) {
+               List<XXResource> xResourceList = null;
+               if (assetId != null) {
+                       try {
+                               xResourceList = getEntityManager()
+                                               
.createNamedQuery("XXResource.findByAssetIdAndResourceStatus", XXResource.class)
+                                               .setParameter("assetId", 
assetId)
+                                               .setParameter("resourceStatus", 
resourceStatus)
+                                               .getResultList();
+                       } catch (NoResultException e) {
+                               // ignore
+                               logger.debug(e.getMessage());
+                       }
+                       if(xResourceList == null) {
+                               xResourceList = new ArrayList<XXResource>();
+                       }
+               } else {
+                       logger.debug("AssetId not provided.");
+                       xResourceList = new ArrayList<XXResource>();
+               }
+               return xResourceList;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
new file mode 100644
index 0000000..e5729fa
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
@@ -0,0 +1,56 @@
+/*
+ * 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.db;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXTrxLog;
+
+public class XXTrxLogDao extends BaseDao<XXTrxLog> {
+       private static Logger logger = Logger.getLogger(XXTrxLogDao.class);
+       
+    public XXTrxLogDao( XADaoManagerBase daoManager ) {
+               super(daoManager);
+    }
+    
+    public List<XXTrxLog> findByTransactionId(String transactionId){
+       if(transactionId == null){
+               return null;
+       }
+       
+               List<XXTrxLog> xTrxLogList = new ArrayList<XXTrxLog>();
+               try {
+                       xTrxLogList = getEntityManager()
+                                       
.createNamedQuery("XXTrxLog.findByTrxId", XXTrxLog.class)
+                                       .setParameter("transactionId", 
transactionId)
+                                       .getResultList();
+               } catch (NoResultException e) {
+                       logger.debug(e.getMessage());
+               }
+               
+               return xTrxLogList;
+       }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
new file mode 100644
index 0000000..4d2cec4
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
@@ -0,0 +1,51 @@
+/*
+ * 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.db;
+
+
+import javax.persistence.NoResultException;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.db.*;
+import org.apache.ranger.entity.XXUser;
+
+public class XXUserDao extends BaseDao<XXUser> {
+       static final Logger logger = Logger.getLogger(XXResourceDao.class);
+
+       public XXUserDao(XADaoManagerBase daoManager) {
+               super(daoManager);
+       }
+
+       public XXUser findByUserName(String name) {
+               if (daoManager.getStringUtil().isEmpty(name)) {
+                       logger.debug("name is empty");
+                       return null;
+               }
+               try {
+                       return getEntityManager()
+                                       
.createNamedQuery("XXUser.findByUserName", XXUser.class)
+                                       .setParameter("name", name.trim())
+                                       .getSingleResult();
+               } catch (NoResultException e) {
+                       // ignore
+               }
+               return null;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/413fcb68/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
new file mode 100644
index 0000000..1e8f6e7
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
@@ -0,0 +1,653 @@
+/*
+ * 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.*;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.*;
+
+import org.apache.ranger.common.*;
+import org.apache.ranger.entity.*;
+
+
+@Entity
+@Table(name="xa_access_audit")
+@XmlRootElement
+public class XXAccessAudit 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 = XAConstants.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 XXAccessAudit ( ) {
+               auditType = AppConstants.ASSET_UNKNOWN;
+               accessResult = XAConstants.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 += "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 + "} ";
+               str += "}";
+               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;
+               }
+               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;
+               }
+               return true;
+       }
+       public static String getEnumName(String fieldName ) {
+               if( fieldName.equals("auditType") ) {
+                       return "CommonEnums.AssetType";
+               }
+               if( fieldName.equals("accessResult") ) {
+                       return "CommonEnums.AccessResult";
+               }
+               //Later TODO
+               //return super.getEnumName(fieldName);
+               return null;
+       }
+
+}

Reply via email to