You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/02/13 22:24:58 UTC

[3/5] incubator-ranger git commit: RANGER-203: database service-store implementation

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyItemUserPerm.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyItemUserPerm.java b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyItemUserPerm.java
new file mode 100644
index 0000000..874ca20
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyItemUserPerm.java
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_policy_item_user_perm")
+public class XXPolicyItemUserPerm extends XXDBBase implements
+		java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXPolicyItemUserPerm
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_policy_item_user_perm_SEQ", sequenceName = "x_policy_item_user_perm_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_policy_item_user_perm_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * policyItemId of the XXPolicyItemUserPerm
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "policy_item_id")
+	protected Long policyItemId;
+
+	/**
+	 * userId of the XXPolicyItemUserPerm
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "user_id")
+	protected Long userId;
+
+	/**
+	 * order of the XXPolicyItemUserPerm
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "sort_order")
+	protected Integer order;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> policyItemId</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param policyItemId
+	 *            Value to set member attribute <b> policyItemId</b>
+	 */
+	public void setPolicyItemId(Long policyItemId) {
+		this.policyItemId = policyItemId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>policyItemId</b>
+	 * 
+	 * @return Date - value of member attribute <b>policyItemId</b> .
+	 */
+	public Long getPolicyitemid() {
+		return this.policyItemId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> userId</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param userId
+	 *            Value to set member attribute <b> userId</b>
+	 */
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>userId</b>
+	 * 
+	 * @return Date - value of member attribute <b>userId</b> .
+	 */
+	public Long getUserid() {
+		return this.userId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> order</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param order
+	 *            Value to set member attribute <b> order</b>
+	 */
+	public void setOrder(Integer order) {
+		this.order = order;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>order</b>
+	 * 
+	 * @return Date - value of member attribute <b>order</b> .
+	 */
+	public Integer getOrder() {
+		return this.order;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXPolicyItemUserPerm other = (XXPolicyItemUserPerm) obj;
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (order == null) {
+			if (other.order != null) {
+				return false;
+			}
+		} else if (!order.equals(other.order)) {
+			return false;
+		}
+		if (policyItemId == null) {
+			if (other.policyItemId != null) {
+				return false;
+			}
+		} else if (!policyItemId.equals(other.policyItemId)) {
+			return false;
+		}
+		if (userId == null) {
+			if (other.userId != null) {
+				return false;
+			}
+		} else if (!userId.equals(other.userId)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXPolicyItemUserPerm [id=" + id + ", policyItemId="
+				+ policyItemId + ", userId=" + userId + ", order=" + order
+				+ "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResource.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResource.java b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResource.java
new file mode 100644
index 0000000..3303e41
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResource.java
@@ -0,0 +1,241 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_policy_resource")
+public class XXPolicyResource extends XXDBBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXPolicyResource
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_policy_resource_SEQ", sequenceName = "x_policy_resource_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_policy_resource_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * policyId of the XXPolicyResource
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "policy_id")
+	protected Long policyId;
+
+	/**
+	 * resDefId of the XXPolicyResource
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "res_def_id")
+	protected Long resDefId;
+
+	/**
+	 * isExcludes of the XXPolicyResource
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "is_excludes")
+	protected boolean isExcludes;
+
+	/**
+	 * isRecursive of the XXPolicyResource
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "is_recursive")
+	protected boolean isRecursive;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * 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 Date - value of member attribute <b>policyId</b> .
+	 */
+	public Long getPolicyid() {
+		return this.policyId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> resDefId</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param resDefId
+	 *            Value to set member attribute <b> resDefId</b>
+	 */
+	public void setResDefId(Long resDefId) {
+		this.resDefId = resDefId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>resDefId</b>
+	 * 
+	 * @return Date - value of member attribute <b>resDefId</b> .
+	 */
+	public Long getResdefid() {
+		return this.resDefId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> isExcludes</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param isExcludes
+	 *            Value to set member attribute <b> isExcludes</b>
+	 */
+	public void setIsExcludes(boolean isExcludes) {
+		this.isExcludes = isExcludes;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>isExcludes</b>
+	 * 
+	 * @return Date - value of member attribute <b>isExcludes</b> .
+	 */
+	public boolean getIsexcludes() {
+		return this.isExcludes;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> isRecursive</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param isRecursive
+	 *            Value to set member attribute <b> isRecursive</b>
+	 */
+	public void setIsRecursive(boolean isRecursive) {
+		this.isRecursive = isRecursive;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>isRecursive</b>
+	 * 
+	 * @return Date - value of member attribute <b>isRecursive</b> .
+	 */
+	public boolean getIsrecursive() {
+		return this.isRecursive;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXPolicyResource other = (XXPolicyResource) obj;
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (isExcludes != other.isExcludes) {
+			return false;
+		}
+		if (isRecursive != other.isRecursive) {
+			return false;
+		}
+		if (policyId == null) {
+			if (other.policyId != null) {
+				return false;
+			}
+		} else if (!policyId.equals(other.policyId)) {
+			return false;
+		}
+		if (resDefId == null) {
+			if (other.resDefId != null) {
+				return false;
+			}
+		} else if (!resDefId.equals(other.resDefId)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXPolicyResource [" + super.toString() + " id=" + id
+				+ ", policyId=" + policyId + ", resDefId=" + resDefId
+				+ ", isExcludes=" + isExcludes + ", isRecursive=" + isRecursive
+				+ "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResourceMap.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResourceMap.java b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResourceMap.java
new file mode 100644
index 0000000..c000b39
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXPolicyResourceMap.java
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_policy_resource_map")
+public class XXPolicyResourceMap extends XXDBBase implements
+		java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXPolicyResourceMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_policy_resource_map_SEQ", sequenceName = "x_policy_resource_map_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_policy_resource_map_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * resourceId of the XXPolicyResourceMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "resource_id")
+	protected Long resourceId;
+
+	/**
+	 * value of the XXPolicyResourceMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "value")
+	protected String value;
+
+	/**
+	 * order of the XXPolicyResourceMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "sort_order")
+	protected Integer order;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> resourceId</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param resourceId
+	 *            Value to set member attribute <b> resourceId</b>
+	 */
+	public void setResourceId(Long resourceId) {
+		this.resourceId = resourceId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>resourceId</b>
+	 * 
+	 * @return Date - value of member attribute <b>resourceId</b> .
+	 */
+	public Long getResourceid() {
+		return this.resourceId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> value</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param value
+	 *            Value to set member attribute <b> value</b>
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>value</b>
+	 * 
+	 * @return Date - value of member attribute <b>value</b> .
+	 */
+	public String getValue() {
+		return this.value;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> order</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param order
+	 *            Value to set member attribute <b> order</b>
+	 */
+	public void setOrder(Integer order) {
+		this.order = order;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>order</b>
+	 * 
+	 * @return Date - value of member attribute <b>order</b> .
+	 */
+	public Integer getOrder() {
+		return this.order;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXPolicyResourceMap other = (XXPolicyResourceMap) obj;
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (order == null) {
+			if (other.order != null) {
+				return false;
+			}
+		} else if (!order.equals(other.order)) {
+			return false;
+		}
+		if (resourceId == null) {
+			if (other.resourceId != null) {
+				return false;
+			}
+		} else if (!resourceId.equals(other.resourceId)) {
+			return false;
+		}
+		if (value == null) {
+			if (other.value != null) {
+				return false;
+			}
+		} else if (!value.equals(other.value)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXPolicyResourceMap [" + super.toString() + " id=" + id
+				+ ", resourceId=" + resourceId + ", value=" + value
+				+ ", order=" + order + "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXResourceDef.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXResourceDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXResourceDef.java
new file mode 100644
index 0000000..7d5df92
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXResourceDef.java
@@ -0,0 +1,668 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_resource_def")
+public class XXResourceDef extends XXDBBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_resource_def_SEQ", sequenceName = "x_resource_def_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_resource_def_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * defId of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "def_id")
+	protected Long defId;
+
+	/**
+	 * name of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "name")
+	protected String name;
+
+	/**
+	 * type of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "type")
+	protected String type;
+
+	/**
+	 * level of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "level")
+	protected Integer level;
+
+	/**
+	 * parent of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "parent")
+	protected Long parent;
+
+	/**
+	 * mandatory of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "mandatory")
+	protected boolean mandatory;
+
+	/**
+	 * lookUpSupported of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "look_up_supported")
+	protected boolean lookUpSupported;
+
+	/**
+	 * recursiveSupported of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "recursive_supported")
+	protected boolean recursiveSupported;
+
+	/**
+	 * excludesSupported of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "excludes_supported")
+	protected boolean excludesSupported;
+
+	/**
+	 * matcher of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "matcher")
+	protected String matcher;
+
+	/**
+	 * matcherOptions of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "matcher_options")
+	protected String matcherOptions;
+
+	/**
+	 * label of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "label")
+	protected String label;
+
+	/**
+	 * description of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "description")
+	protected String description;
+
+	/**
+	 * rbKeyLabel of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_label")
+	protected String rbKeyLabel;
+
+	/**
+	 * rbKeyDescription of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_description")
+	protected String rbKeyDescription;
+
+	/**
+	 * order of the XXResourceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "sort_order")
+	protected Integer order;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> defId</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param defId
+	 *            Value to set member attribute <b> defId</b>
+	 */
+	public void setDefid(Long defId) {
+		this.defId = defId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>defId</b>
+	 * 
+	 * @return Date - value of member attribute <b>defId</b> .
+	 */
+	public Long getDefid() {
+		return this.defId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> name</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param name
+	 *            Value to set member attribute <b> name</b>
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>name</b>
+	 * 
+	 * @return Date - value of member attribute <b>name</b> .
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> type</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param type
+	 *            Value to set member attribute <b> type</b>
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>type</b>
+	 * 
+	 * @return Date - value of member attribute <b>type</b> .
+	 */
+	public String getType() {
+		return this.type;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> level</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param level
+	 *            Value to set member attribute <b> level</b>
+	 */
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>level</b>
+	 * 
+	 * @return Date - value of member attribute <b>level</b> .
+	 */
+	public Integer getLevel() {
+		return this.level;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> parent</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param parent
+	 *            Value to set member attribute <b> parent</b>
+	 */
+	public void setParent(Long parent) {
+		this.parent = parent;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>parent</b>
+	 * 
+	 * @return Date - value of member attribute <b>parent</b> .
+	 */
+	public Long getParent() {
+		return this.parent;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> mandatory</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param mandatory
+	 *            Value to set member attribute <b> mandatory</b>
+	 */
+	public void setMandatory(boolean mandatory) {
+		this.mandatory = mandatory;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>mandatory</b>
+	 * 
+	 * @return Date - value of member attribute <b>mandatory</b> .
+	 */
+	public boolean getMandatory() {
+		return this.mandatory;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * lookUpSupported</b> . You cannot set null to the attribute.
+	 * 
+	 * @param lookUpSupported
+	 *            Value to set member attribute <b> lookUpSupported</b>
+	 */
+	public void setLookupsupported(boolean lookUpSupported) {
+		this.lookUpSupported = lookUpSupported;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>lookUpSupported</b>
+	 * 
+	 * @return Date - value of member attribute <b>lookUpSupported</b> .
+	 */
+	public boolean getLookupsupported() {
+		return this.lookUpSupported;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * recursiveSupported</b> . You cannot set null to the attribute.
+	 * 
+	 * @param recursiveSupported
+	 *            Value to set member attribute <b> recursiveSupported</b>
+	 */
+	public void setRecursivesupported(boolean recursiveSupported) {
+		this.recursiveSupported = recursiveSupported;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>recursiveSupported</b>
+	 * 
+	 * @return Date - value of member attribute <b>recursiveSupported</b> .
+	 */
+	public boolean getRecursivesupported() {
+		return this.recursiveSupported;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * excludesSupported</b> . You cannot set null to the attribute.
+	 * 
+	 * @param excludesSupported
+	 *            Value to set member attribute <b> excludesSupported</b>
+	 */
+	public void setExcludessupported(boolean excludesSupported) {
+		this.excludesSupported = excludesSupported;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>excludesSupported</b>
+	 * 
+	 * @return Date - value of member attribute <b>excludesSupported</b> .
+	 */
+	public boolean getExcludessupported() {
+		return this.excludesSupported;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> matcher</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param matcher
+	 *            Value to set member attribute <b> matcher</b>
+	 */
+	public void setMatcher(String matcher) {
+		this.matcher = matcher;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>matcher</b>
+	 * 
+	 * @return Date - value of member attribute <b>matcher</b> .
+	 */
+	public String getMatcher() {
+		return this.matcher;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> matcherOptions</b>
+	 * . You cannot set null to the attribute.
+	 * 
+	 * @param matcherOptions
+	 *            Value to set member attribute <b> matcherOptions</b>
+	 */
+	public void setMatcheroptions(String matcherOptions) {
+		this.matcherOptions = matcherOptions;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>matcherOptions</b>
+	 * 
+	 * @return Date - value of member attribute <b>matcherOptions</b> .
+	 */
+	public String getMatcheroptions() {
+		return this.matcherOptions;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> label</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param label
+	 *            Value to set member attribute <b> label</b>
+	 */
+	public void setLabel(String label) {
+		this.label = label;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>label</b>
+	 * 
+	 * @return Date - value of member attribute <b>label</b> .
+	 */
+	public String getLabel() {
+		return this.label;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> description</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param description
+	 *            Value to set member attribute <b> description</b>
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>description</b>
+	 * 
+	 * @return Date - value of member attribute <b>description</b> .
+	 */
+	public String getDescription() {
+		return this.description;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> rbKeyLabel</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyLabel
+	 *            Value to set member attribute <b> rbKeyLabel</b>
+	 */
+	public void setRbkeylabel(String rbKeyLabel) {
+		this.rbKeyLabel = rbKeyLabel;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyLabel</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyLabel</b> .
+	 */
+	public String getRbkeylabel() {
+		return this.rbKeyLabel;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * rbKeyDescription</b> . You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyDescription
+	 *            Value to set member attribute <b> rbKeyDescription</b>
+	 */
+	public void setRbkeydescription(String rbKeyDescription) {
+		this.rbKeyDescription = rbKeyDescription;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyDescription</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyDescription</b> .
+	 */
+	public String getRbkeydescription() {
+		return this.rbKeyDescription;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> order</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param order
+	 *            Value to set member attribute <b> order</b>
+	 */
+	public void setOrder(Integer order) {
+		this.order = order;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>order</b>
+	 * 
+	 * @return Date - value of member attribute <b>order</b> .
+	 */
+	public Integer getOrder() {
+		return this.order;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXResourceDef other = (XXResourceDef) obj;
+		if (defId == null) {
+			if (other.defId != null) {
+				return false;
+			}
+		} else if (!defId.equals(other.defId)) {
+			return false;
+		}
+		if (description == null) {
+			if (other.description != null) {
+				return false;
+			}
+		} else if (!description.equals(other.description)) {
+			return false;
+		}
+		if (excludesSupported != other.excludesSupported) {
+			return false;
+		}
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (label == null) {
+			if (other.label != null) {
+				return false;
+			}
+		} else if (!label.equals(other.label)) {
+			return false;
+		}
+		if (level == null) {
+			if (other.level != null) {
+				return false;
+			}
+		} else if (!level.equals(other.level)) {
+			return false;
+		}
+		if (lookUpSupported != other.lookUpSupported) {
+			return false;
+		}
+		if (mandatory != other.mandatory) {
+			return false;
+		}
+		if (matcher == null) {
+			if (other.matcher != null) {
+				return false;
+			}
+		} else if (!matcher.equals(other.matcher)) {
+			return false;
+		}
+		if (matcherOptions == null) {
+			if (other.matcherOptions != null) {
+				return false;
+			}
+		} else if (!matcherOptions.equals(other.matcherOptions)) {
+			return false;
+		}
+		if (name == null) {
+			if (other.name != null) {
+				return false;
+			}
+		} else if (!name.equals(other.name)) {
+			return false;
+		}
+		if (order == null) {
+			if (other.order != null) {
+				return false;
+			}
+		} else if (!order.equals(other.order)) {
+			return false;
+		}
+		if (parent == null) {
+			if (other.parent != null) {
+				return false;
+			}
+		} else if (!parent.equals(other.parent)) {
+			return false;
+		}
+		if (rbKeyDescription == null) {
+			if (other.rbKeyDescription != null) {
+				return false;
+			}
+		} else if (!rbKeyDescription.equals(other.rbKeyDescription)) {
+			return false;
+		}
+		if (rbKeyLabel == null) {
+			if (other.rbKeyLabel != null) {
+				return false;
+			}
+		} else if (!rbKeyLabel.equals(other.rbKeyLabel)) {
+			return false;
+		}
+		if (recursiveSupported != other.recursiveSupported) {
+			return false;
+		}
+		if (type == null) {
+			if (other.type != null) {
+				return false;
+			}
+		} else if (!type.equals(other.type)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXResourceDef [" + super.toString() + " id=" + id + ", defId="
+				+ defId + ", name=" + name + ", type=" + type + ", level="
+				+ level + ", parent=" + parent + ", mandatory=" + mandatory
+				+ ", lookUpSupported=" + lookUpSupported
+				+ ", recursiveSupported=" + recursiveSupported
+				+ ", excludesSupported=" + excludesSupported + ", matcher="
+				+ matcher + ", matcherOptions=" + matcherOptions + ", label="
+				+ label + ", description=" + description + ", rbKeyLabel="
+				+ rbKeyLabel + ", rbKeyDescription=" + rbKeyDescription
+				+ ", order=" + order + "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXService.java b/security-admin/src/main/java/org/apache/ranger/entity/XXService.java
new file mode 100644
index 0000000..9d6cf4d
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXService.java
@@ -0,0 +1,390 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import java.util.Date;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_service")
+public class XXService extends XXDBBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_service_SEQ", sequenceName = "x_service_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_service_SEQ")
+	@Column(name = "id")
+	protected Long id;
+	
+	/**
+	 * Global Id for the object
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>512</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name = "guid", unique = true, nullable = false, length = 512)
+	protected String guid;
+
+	/**
+	 * version of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "version")
+	protected Long version;
+
+	/**
+	 * type of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "type")
+	protected Long type;
+
+	/**
+	 * name of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "name")
+	protected String name;
+
+	/**
+	 * policyVersion of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "policy_version")
+	protected Long policyVersion;
+
+	/**
+	 * policyUpdateTime of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Temporal(TemporalType.TIMESTAMP)
+	@Column(name = "policy_update_time")
+	protected Date policyUpdateTime;
+
+	/**
+	 * description of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "description")
+	protected String description;
+
+	/**
+	 * isEnabled of the XXService
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "is_enabled")
+	protected Boolean isEnabled;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+	
+	/**
+	 * @return the gUID
+	 */
+	public String getGuid() {
+		return this.guid;
+	}
+
+	/**
+	 * @param guid
+	 *            the gUID to set
+	 */
+	public void setGuid(String guid) {
+		this.guid = guid;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> version</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param version
+	 *            Value to set member attribute <b> version</b>
+	 */
+	public void setVersion(Long version) {
+		this.version = version;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>version</b>
+	 * 
+	 * @return Date - value of member attribute <b>version</b> .
+	 */
+	public Long getVersion() {
+		return this.version;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> type</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param type
+	 *            Value to set member attribute <b> type</b>
+	 */
+	public void setType(Long type) {
+		this.type = type;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>type</b>
+	 * 
+	 * @return Date - value of member attribute <b>type</b> .
+	 */
+	public Long getType() {
+		return this.type;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> name</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param name
+	 *            Value to set member attribute <b> name</b>
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>name</b>
+	 * 
+	 * @return Date - value of member attribute <b>name</b> .
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> policyVersion</b>
+	 * . You cannot set null to the attribute.
+	 * 
+	 * @param policyVersion
+	 *            Value to set member attribute <b> policyVersion</b>
+	 */
+	public void setPolicyVersion(Long policyVersion) {
+		this.policyVersion = policyVersion;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>policyVersion</b>
+	 * 
+	 * @return Date - value of member attribute <b>policyVersion</b> .
+	 */
+	public Long getPolicyVersion() {
+		return this.policyVersion;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * policyUpdateTime</b> . You cannot set null to the attribute.
+	 * 
+	 * @param policyUpdateTime
+	 *            Value to set member attribute <b> policyUpdateTime</b>
+	 */
+	public void setPolicyUpdateTime(Date policyUpdateTime) {
+		this.policyUpdateTime = policyUpdateTime;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>policyUpdateTime</b>
+	 * 
+	 * @return Date - value of member attribute <b>policyUpdateTime</b> .
+	 */
+	public Date getPolicyUpdateTime() {
+		return this.policyUpdateTime;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> description</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param description
+	 *            Value to set member attribute <b> description</b>
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>description</b>
+	 * 
+	 * @return Date - value of member attribute <b>description</b> .
+	 */
+	public String getDescription() {
+		return this.description;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> isEnabled</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param isEnabled
+	 *            Value to set member attribute <b> isEnabled</b>
+	 */
+	public void setIsEnabled(Boolean isEnabled) {
+		this.isEnabled = isEnabled;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>isEnabled</b>
+	 * 
+	 * @return Date - value of member attribute <b>isEnabled</b> .
+	 */
+	public Boolean getIsenabled() {
+		return this.isEnabled;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXService other = (XXService) obj;
+		if (description == null) {
+			if (other.description != null) {
+				return false;
+			}
+		} else if (!description.equals(other.description)) {
+			return false;
+		}
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (isEnabled == null) {
+			if (other.isEnabled != null) {
+				return false;
+			}
+		} else if (!isEnabled.equals(other.isEnabled)) {
+			return false;
+		}
+		if (name == null) {
+			if (other.name != null) {
+				return false;
+			}
+		} else if (!name.equals(other.name)) {
+			return false;
+		}
+		if (policyUpdateTime == null) {
+			if (other.policyUpdateTime != null) {
+				return false;
+			}
+		} else if (!policyUpdateTime.equals(other.policyUpdateTime)) {
+			return false;
+		}
+		if (policyVersion == null) {
+			if (other.policyVersion != null) {
+				return false;
+			}
+		} else if (!policyVersion.equals(other.policyVersion)) {
+			return false;
+		}
+		if (type == null) {
+			if (other.type != null) {
+				return false;
+			}
+		} else if (!type.equals(other.type)) {
+			return false;
+		}
+		if (version == null) {
+			if (other.version != null) {
+				return false;
+			}
+		} else if (!version.equals(other.version)) {
+			return false;
+		}
+		if (guid == null) {
+			if (other.guid != null) {
+				return false;
+			}
+		} else if (!guid.equals(other.guid)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXService [" + super.toString() + " id=" + id + ", guid="
+				+ guid + ", version=" + version + ", type=" + type + ", name="
+				+ name + ", policyVersion=" + policyVersion
+				+ ", policyUpdateTime=" + policyUpdateTime + ", description="
+				+ description + ", isEnabled=" + isEnabled + "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigDef.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigDef.java
new file mode 100644
index 0000000..524c2a1
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigDef.java
@@ -0,0 +1,502 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_service_config_def")
+public class XXServiceConfigDef extends XXDBBase implements
+		java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_service_config_def_SEQ", sequenceName = "x_service_config_def_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_service_config_def_SEQ")
+	@Column(name = "id")
+	protected Long id;
+	
+	/**
+	 * defId of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "def_id")
+	protected Long defId;
+
+	/**
+	 * name of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "name")
+	protected String name;
+
+	/**
+	 * type of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "type")
+	protected String type;
+
+	/**
+	 * subType of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "sub_type")
+	protected String subType;
+
+	/**
+	 * isMandatory of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "is_mandatory")
+	protected boolean isMandatory;
+
+	/**
+	 * defaultValue of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "default_value")
+	protected String defaultValue;
+
+	/**
+	 * label of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "label")
+	protected String label;
+
+	/**
+	 * description of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "description")
+	protected String description;
+
+	/**
+	 * rbKeyLabel of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_label")
+	protected String rbKeyLabel;
+
+	/**
+	 * rbKeyDecription of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_decription")
+	protected String rbKeyDescription;
+
+	/**
+	 * order of the XXServiceConfigDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "sort_order")
+	protected Integer order;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+	
+	/**
+	 * This method sets the value to the member attribute <b> defId</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param defId
+	 *            Value to set member attribute <b> defId</b>
+	 */
+	public void setDefid(Long defId) {
+		this.defId = defId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>defId</b>
+	 * 
+	 * @return Date - value of member attribute <b>defId</b> .
+	 */
+	public Long getDefid() {
+		return this.defId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> name</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param name
+	 *            Value to set member attribute <b> name</b>
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>name</b>
+	 * 
+	 * @return Date - value of member attribute <b>name</b> .
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> type</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param type
+	 *            Value to set member attribute <b> type</b>
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>type</b>
+	 * 
+	 * @return Date - value of member attribute <b>type</b> .
+	 */
+	public String getType() {
+		return this.type;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> subType</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param subType
+	 *            Value to set member attribute <b> subType</b>
+	 */
+	public void setSubtype(String subType) {
+		this.subType = subType;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>subType</b>
+	 * 
+	 * @return Date - value of member attribute <b>subType</b> .
+	 */
+	public String getSubtype() {
+		return this.subType;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> isMandatory</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param isMandatory
+	 *            Value to set member attribute <b> isMandatory</b>
+	 */
+	public void setIsMandatory(boolean isMandatory) {
+		this.isMandatory = isMandatory;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>isMandatory</b>
+	 * 
+	 * @return Date - value of member attribute <b>isMandatory</b> .
+	 */
+	public boolean getIsMandatory() {
+		return this.isMandatory;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> defaultValue</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param defaultValue
+	 *            Value to set member attribute <b> defaultValue</b>
+	 */
+	public void setDefaultvalue(String defaultValue) {
+		this.defaultValue = defaultValue;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>defaultValue</b>
+	 * 
+	 * @return Date - value of member attribute <b>defaultValue</b> .
+	 */
+	public String getDefaultvalue() {
+		return this.defaultValue;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> label</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param label
+	 *            Value to set member attribute <b> label</b>
+	 */
+	public void setLabel(String label) {
+		this.label = label;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>label</b>
+	 * 
+	 * @return Date - value of member attribute <b>label</b> .
+	 */
+	public String getLabel() {
+		return this.label;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> description</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param description
+	 *            Value to set member attribute <b> description</b>
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>description</b>
+	 * 
+	 * @return Date - value of member attribute <b>description</b> .
+	 */
+	public String getDescription() {
+		return this.description;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> rbKeyLabel</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyLabel
+	 *            Value to set member attribute <b> rbKeyLabel</b>
+	 */
+	public void setRbkeylabel(String rbKeyLabel) {
+		this.rbKeyLabel = rbKeyLabel;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyLabel</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyLabel</b> .
+	 */
+	public String getRbkeylabel() {
+		return this.rbKeyLabel;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * rbKeyDecription</b> . You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyDescription
+	 *            Value to set member attribute <b> rbKeyDecription</b>
+	 */
+	public void setRbkeydescription(String rbKeyDescription) {
+		this.rbKeyDescription = rbKeyDescription;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyDecription</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyDecription</b> .
+	 */
+	public String getRbkeydescription() {
+		return this.rbKeyDescription;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> order</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param order
+	 *            Value to set member attribute <b> order</b>
+	 */
+	public void setOrder(Integer order) {
+		this.order = order;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>order</b>
+	 * 
+	 * @return Date - value of member attribute <b>order</b> .
+	 */
+	public Integer getOrder() {
+		return this.order;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXServiceConfigDef other = (XXServiceConfigDef) obj;
+		if (defId == null) {
+			if (other.defId != null) {
+				return false;
+			}
+		} else if (!defId.equals(other.defId)) {
+			return false;
+		}
+		if (defaultValue == null) {
+			if (other.defaultValue != null) {
+				return false;
+			}
+		} else if (!defaultValue.equals(other.defaultValue)) {
+			return false;
+		}
+		if (description == null) {
+			if (other.description != null) {
+				return false;
+			}
+		} else if (!description.equals(other.description)) {
+			return false;
+		}
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (isMandatory != other.isMandatory) {
+			return false;
+		}
+		if (label == null) {
+			if (other.label != null) {
+				return false;
+			}
+		} else if (!label.equals(other.label)) {
+			return false;
+		}
+		if (name == null) {
+			if (other.name != null) {
+				return false;
+			}
+		} else if (!name.equals(other.name)) {
+			return false;
+		}
+		if (order == null) {
+			if (other.order != null) {
+				return false;
+			}
+		} else if (!order.equals(other.order)) {
+			return false;
+		}
+		if (rbKeyDescription == null) {
+			if (other.rbKeyDescription != null) {
+				return false;
+			}
+		} else if (!rbKeyDescription.equals(other.rbKeyDescription)) {
+			return false;
+		}
+		if (rbKeyLabel == null) {
+			if (other.rbKeyLabel != null) {
+				return false;
+			}
+		} else if (!rbKeyLabel.equals(other.rbKeyLabel)) {
+			return false;
+		}
+		if (subType == null) {
+			if (other.subType != null) {
+				return false;
+			}
+		} else if (!subType.equals(other.subType)) {
+			return false;
+		}
+		if (type == null) {
+			if (other.type != null) {
+				return false;
+			}
+		} else if (!type.equals(other.type)) {
+			return false;
+		}
+		
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXServiceConfigDef [" + super.toString() + " id=" + id
+				+ ", defId=" + defId + ", name=" + name + ", type=" + type
+				+ ", subType=" + subType + ", isMandatory=" + isMandatory
+				+ ", defaultValue=" + defaultValue + ", label=" + label
+				+ ", description=" + description + ", rbKeyLabel=" + rbKeyLabel
+				+ ", rbKeyDecription=" + rbKeyDescription + ", order=" + order
+				+ "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigMap.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigMap.java b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigMap.java
new file mode 100644
index 0000000..ff9a6f8
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceConfigMap.java
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_service_config_map")
+public class XXServiceConfigMap extends XXDBBase implements
+		java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXServiceConfigMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_service_config_map_SEQ", sequenceName = "x_service_config_map_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_service_config_map_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * service of the XXServiceConfigMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "service")
+	protected Long serviceId;
+
+	/**
+	 * configKey of the XXServiceConfigMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "config_key")
+	protected String configKey;
+
+	/**
+	 * configValue of the XXServiceConfigMap
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "config_value")
+	protected String configValue;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> service</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param service
+	 *            Value to set member attribute <b> service</b>
+	 */
+	public void setServiceId(Long serviceId) {
+		this.serviceId = serviceId;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>service</b>
+	 * 
+	 * @return Date - value of member attribute <b>service</b> .
+	 */
+	public Long getServiceId() {
+		return this.serviceId;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> configKey</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param configKey
+	 *            Value to set member attribute <b> configKey</b>
+	 */
+	public void setConfigkey(String configKey) {
+		this.configKey = configKey;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>configKey</b>
+	 * 
+	 * @return Date - value of member attribute <b>configKey</b> .
+	 */
+	public String getConfigkey() {
+		return this.configKey;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> configValue</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param configValue
+	 *            Value to set member attribute <b> configValue</b>
+	 */
+	public void setConfigvalue(String configValue) {
+		this.configValue = configValue;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>configValue</b>
+	 * 
+	 * @return Date - value of member attribute <b>configValue</b> .
+	 */
+	public String getConfigvalue() {
+		return this.configValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXServiceConfigMap other = (XXServiceConfigMap) obj;
+		if (configKey == null) {
+			if (other.configKey != null) {
+				return false;
+			}
+		} else if (!configKey.equals(other.configKey)) {
+			return false;
+		}
+		if (configValue == null) {
+			if (other.configValue != null) {
+				return false;
+			}
+		} else if (!configValue.equals(other.configValue)) {
+			return false;
+		}
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (serviceId == null) {
+			if (other.serviceId != null) {
+				return false;
+			}
+		} else if (!serviceId.equals(other.serviceId)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXServiceConfigMap [" + super.toString() + " id=" + id
+				+ ", service=" + serviceId + ", configKey=" + configKey
+				+ ", configValue=" + configValue + "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java
new file mode 100644
index 0000000..4e52eb9
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java
@@ -0,0 +1,422 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ranger.entity;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Cacheable
+@XmlRootElement
+@Table(name = "x_service_def")
+public class XXServiceDef extends XXDBBase implements java.io.Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * id of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Id
+	@SequenceGenerator(name = "x_service_def_SEQ", sequenceName = "x_service_def_SEQ", allocationSize = 1)
+	@GeneratedValue(strategy = GenerationType.AUTO, generator = "x_service_def_SEQ")
+	@Column(name = "id")
+	protected Long id;
+
+	/**
+	 * Global Id for the object
+	 * <ul>
+	 * <li>The maximum length for this attribute is <b>512</b>.
+	 * </ul>
+	 *
+	 */
+	@Column(name = "guid", unique = true, nullable = false, length = 512)
+	protected String guid;
+	/**
+	 * version of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "version")
+	protected Long version;
+
+	/**
+	 * name of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "name")
+	protected String name;
+
+	/**
+	 * implClassName of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "impl_class_name")
+	protected String implClassName;
+
+	/**
+	 * label of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "label")
+	protected String label;
+
+	/**
+	 * description of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "description")
+	protected String description;
+
+	/**
+	 * rbKeyLabel of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_label")
+	protected String rbKeyLabel;
+
+	/**
+	 * rbKeyDescription of the XXServiceDef
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "rb_key_description")
+	protected String rbKeyDescription;
+	/**
+	 * isEnabled of the XXPolicy
+	 * <ul>
+	 * </ul>
+	 *
+	 */
+	@Column(name = "is_enabled")
+	protected Boolean isEnabled;
+
+	/**
+	 * This method sets the value to the member attribute <b> id</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param id
+	 *            Value to set member attribute <b> id</b>
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>id</b>
+	 * 
+	 * @return Date - value of member attribute <b>id</b> .
+	 */
+	public Long getId() {
+		return this.id;
+	}
+
+	/**
+	 * @return the gUID
+	 */
+	public String getGuid() {
+		return this.guid;
+	}
+
+	/**
+	 * @param guid
+	 *            the gUID to set
+	 */
+	public void setGuid(String guid) {
+		this.guid = guid;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> version</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param version
+	 *            Value to set member attribute <b> version</b>
+	 */
+	public void setVersion(Long version) {
+		this.version = version;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>version</b>
+	 * 
+	 * @return Date - value of member attribute <b>version</b> .
+	 */
+	public Long getVersion() {
+		return this.version;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> name</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param name
+	 *            Value to set member attribute <b> name</b>
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>name</b>
+	 * 
+	 * @return Date - value of member attribute <b>name</b> .
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> implClassName</b>
+	 * . You cannot set null to the attribute.
+	 * 
+	 * @param implClassName
+	 *            Value to set member attribute <b> implClassName</b>
+	 */
+	public void setImplclassname(String implClassName) {
+		this.implClassName = implClassName;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>implClassName</b>
+	 * 
+	 * @return Date - value of member attribute <b>implClassName</b> .
+	 */
+	public String getImplclassname() {
+		return this.implClassName;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> label</b> . You
+	 * cannot set null to the attribute.
+	 * 
+	 * @param label
+	 *            Value to set member attribute <b> label</b>
+	 */
+	public void setLabel(String label) {
+		this.label = label;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>label</b>
+	 * 
+	 * @return Date - value of member attribute <b>label</b> .
+	 */
+	public String getLabel() {
+		return this.label;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> description</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param description
+	 *            Value to set member attribute <b> description</b>
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>description</b>
+	 * 
+	 * @return Date - value of member attribute <b>description</b> .
+	 */
+	public String getDescription() {
+		return this.description;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b> rbKeyLabel</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyLabel
+	 *            Value to set member attribute <b> rbKeyLabel</b>
+	 */
+	public void setRbkeylabel(String rbKeyLabel) {
+		this.rbKeyLabel = rbKeyLabel;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyLabel</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyLabel</b> .
+	 */
+	public String getRbkeylabel() {
+		return this.rbKeyLabel;
+	}
+
+	/**
+	 * This method sets the value to the member attribute <b>
+	 * rbKeyDescription</b> . You cannot set null to the attribute.
+	 * 
+	 * @param rbKeyDescription
+	 *            Value to set member attribute <b> rbKeyDescription</b>
+	 */
+	public void setRbkeydescription(String rbKeyDescription) {
+		this.rbKeyDescription = rbKeyDescription;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>rbKeyDescription</b>
+	 * 
+	 * @return Date - value of member attribute <b>rbKeyDescription</b> .
+	 */
+	public String getRbkeydescription() {
+		return this.rbKeyDescription;
+	}
+	
+	/**
+	 * This method sets the value to the member attribute <b> isEnabled</b> .
+	 * You cannot set null to the attribute.
+	 * 
+	 * @param isEnabled
+	 *            Value to set member attribute <b> isEnabled</b>
+	 */
+	public void setIsEnabled(boolean isEnabled) {
+		this.isEnabled = isEnabled;
+	}
+
+	/**
+	 * Returns the value for the member attribute <b>isEnabled</b>
+	 * 
+	 * @return Date - value of member attribute <b>isEnabled</b> .
+	 */
+	public boolean getIsEnabled() {
+		return this.isEnabled;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (!super.equals(obj)) {
+			return false;
+		}
+		if (this == obj) {
+			return true;
+		}
+		if (getClass() != obj.getClass()) {
+			return false;
+		}
+		XXServiceDef other = (XXServiceDef) obj;
+		if (description == null) {
+			if (other.description != null) {
+				return false;
+			}
+		} else if (!description.equals(other.description)) {
+			return false;
+		}
+		if (id == null) {
+			if (other.id != null) {
+				return false;
+			}
+		} else if (!id.equals(other.id)) {
+			return false;
+		}
+		if (guid == null) {
+			if (other.guid != null) {
+				return false;
+			}
+		} else if (!guid.equals(other.guid)) {
+			return false;
+		}
+		if (implClassName == null) {
+			if (other.implClassName != null) {
+				return false;
+			}
+		} else if (!implClassName.equals(other.implClassName)) {
+			return false;
+		}
+		if (label == null) {
+			if (other.label != null) {
+				return false;
+			}
+		} else if (!label.equals(other.label)) {
+			return false;
+		}
+		if (name == null) {
+			if (other.name != null) {
+				return false;
+			}
+		} else if (!name.equals(other.name)) {
+			return false;
+		}
+		if (rbKeyDescription == null) {
+			if (other.rbKeyDescription != null) {
+				return false;
+			}
+		} else if (!rbKeyDescription.equals(other.rbKeyDescription)) {
+			return false;
+		}
+		if (rbKeyLabel == null) {
+			if (other.rbKeyLabel != null) {
+				return false;
+			}
+		} else if (!rbKeyLabel.equals(other.rbKeyLabel)) {
+			return false;
+		}
+		if (version == null) {
+			if (other.version != null) {
+				return false;
+			}
+		} else if (!version.equals(other.version)) {
+			return false;
+		}
+		if (isEnabled == null) {
+			if (other.isEnabled != null) {
+				return false;
+			}
+		} else if (!isEnabled.equals(other.isEnabled)) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "XXServiceDef [" + super.toString() + " id=" + id + ", guid="
+				+ guid + ", version=" + version + ", name=" + name
+				+ ", implClassName=" + implClassName + ", label=" + label
+				+ ", description=" + description + ", rbKeyLabel=" + rbKeyLabel
+				+ ", rbKeyDescription=" + rbKeyDescription + ", isEnabled"
+				+ isEnabled + "]";
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/service/RangerAuditFields.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerAuditFields.java b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditFields.java
new file mode 100644
index 0000000..c5033ad
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditFields.java
@@ -0,0 +1,17 @@
+package org.apache.ranger.service;
+
+import org.apache.ranger.entity.XXDBBase;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RangerAuditFields<T extends XXDBBase> {
+	
+	public T populateAuditFields(T xObj, T parentObj) {
+		xObj.setCreateTime(parentObj.getCreateTime());
+		xObj.setUpdateTime(parentObj.getUpdateTime());
+		xObj.setAddedByUserId(parentObj.getAddedByUserId());
+		xObj.setUpdatedByUserId(parentObj.getUpdatedByUserId());
+		return xObj;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
new file mode 100644
index 0000000..0a6046b
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
@@ -0,0 +1,276 @@
+package org.apache.ranger.service;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.TypeVariable;
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.DateUtil;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.StringUtil;
+import org.apache.ranger.common.db.BaseDao;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.entity.XXDBBase;
+import org.apache.ranger.entity.XXPortalUser;
+import org.apache.ranger.plugin.model.RangerBaseModelObject;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public abstract class RangerBaseModelService<T extends XXDBBase, V extends RangerBaseModelObject> {
+	private static final Log LOG = LogFactory
+			.getLog(RangerBaseModelService.class);
+
+	@Autowired
+	protected RangerDaoManager daoMgr;
+
+	@Autowired
+	protected StringUtil stringUtil;
+
+	@Autowired
+	protected RESTErrorUtil restErrorUtil;
+
+	public static final int OPERATION_CREATE_CONTEXT = 1;
+	public static final int OPERATION_UPDATE_CONTEXT = 2;
+
+	protected Class<T> tEntityClass;
+	protected Class<V> tViewClass;
+
+	BaseDao<T> entityDao;
+
+	@SuppressWarnings("unchecked")
+	public RangerBaseModelService() {
+		Class klass = getClass();
+		ParameterizedType genericSuperclass = (ParameterizedType) klass
+				.getGenericSuperclass();
+		TypeVariable<Class<?>> var[] = klass.getTypeParameters();
+
+		if (genericSuperclass.getActualTypeArguments()[0] instanceof Class) {
+			tEntityClass = (Class<T>) genericSuperclass
+					.getActualTypeArguments()[0];
+			tViewClass = (Class<V>) genericSuperclass.getActualTypeArguments()[1];
+		} else if (var.length > 0) {
+			tEntityClass = (Class<T>) var[0].getBounds()[0];
+			tViewClass = (Class<V>) var[1].getBounds()[0];
+		} else {
+			LOG.fatal("Cannot find class for template", new Throwable());
+		}
+	}
+
+	protected abstract T mapViewToEntityBean(V viewBean, T t,
+			int OPERATION_CONTEXT);
+
+	protected abstract V mapEntityToViewBean(V viewBean, T t);
+
+	protected T createEntityObject() {
+		try {
+			return tEntityClass.newInstance();
+		} catch (Throwable e) {
+			LOG.error("Error instantiating entity class. tEntityClass="
+					+ tEntityClass.toString(), e);
+		}
+		return null;
+	}
+
+	protected V createViewObject() {
+		try {
+			return tViewClass.newInstance();
+		} catch (Throwable e) {
+			LOG.error("Error instantiating view class. tViewClass="
+					+ tViewClass.toString(), e);
+		}
+		return null;
+	}
+
+	@SuppressWarnings("unchecked")
+	protected BaseDao<T> getDao() {
+		if (entityDao == null) {
+			entityDao = (BaseDao<T>) daoMgr.getDaoForClassName(tEntityClass
+					.getSimpleName());
+
+		}
+		return entityDao;
+	}
+
+	protected V populateViewBean(T entityObj) {
+		V vObj = createViewObject();
+		vObj.setId(entityObj.getId());
+		vObj.setCreateTime(entityObj.getCreateTime());
+		vObj.setUpdateTime(entityObj.getUpdateTime());
+
+		if (entityObj.getAddedByUserId() != null) {
+			XXPortalUser tUser = daoMgr.getXXPortalUser().getById(
+					entityObj.getUpdatedByUserId());
+			if (!stringUtil.isEmpty(tUser.getPublicScreenName())) {
+				vObj.setCreatedBy(tUser.getPublicScreenName());
+			} else {
+				if (!stringUtil.isEmpty(tUser.getFirstName())) {
+					if (!stringUtil.isEmpty(tUser.getLastName())) {
+						vObj.setCreatedBy(tUser.getFirstName() + " "
+								+ tUser.getLastName());
+					} else {
+						vObj.setCreatedBy(tUser.getFirstName());
+					}
+				} else {
+					vObj.setCreatedBy(tUser.getLoginId());
+				}
+			}
+		}
+		if (entityObj.getUpdatedByUserId() != null) {
+			XXPortalUser tUser = daoMgr.getXXPortalUser().getById(
+					entityObj.getUpdatedByUserId());
+			if (!stringUtil.isEmpty(tUser.getPublicScreenName())) {
+				vObj.setUpdatedBy(tUser.getPublicScreenName());
+			} else {
+				if (!stringUtil.isEmpty(tUser.getFirstName())) {
+					if (!stringUtil.isEmpty(tUser.getLastName())) {
+						vObj.setUpdatedBy(tUser.getFirstName() + " "
+								+ tUser.getLastName());
+					} else {
+						vObj.setUpdatedBy(tUser.getFirstName());
+					}
+				} else {
+					vObj.setUpdatedBy(tUser.getLoginId());
+				}
+			}
+		}
+		
+		return mapEntityToViewBean(vObj, entityObj);
+	}
+
+	protected T populateEntityBean(V vObj, int operationContext) {
+		T entityObj;
+
+		Date createTime = null;
+		Date updTime = null;
+		Long createdById = null;
+		Long updById = null;
+
+		if (operationContext == OPERATION_CREATE_CONTEXT) {
+			entityObj = createEntityObject();
+
+			createTime = DateUtil.getUTCDate();
+			updTime = DateUtil.getUTCDate();
+			createdById = ContextUtil.getCurrentUserId();
+			updById = ContextUtil.getCurrentUserId();
+		} else if (operationContext == OPERATION_UPDATE_CONTEXT) {
+			entityObj = getDao().getById(vObj.getId());
+
+			if (entityObj == null) {
+				throw restErrorUtil.createRESTException(
+						"No Object found to update.",
+						MessageEnums.DATA_NOT_FOUND);
+			}
+
+			createTime = entityObj.getCreateTime();
+			if (createTime == null) {
+				createTime = DateUtil.getUTCDate();
+			}
+			updTime = DateUtil.getUTCDate();
+
+			createdById = entityObj.getAddedByUserId();
+			if (createdById == null) {
+				createdById = ContextUtil.getCurrentUserId();
+			}
+			updById = ContextUtil.getCurrentUserId();
+		} else {
+			throw restErrorUtil.createRESTException(
+					"Error while populating EntityBean",
+					MessageEnums.INVALID_INPUT_DATA);
+		}
+		entityObj.setAddedByUserId(createdById);
+		entityObj.setUpdatedByUserId(updById);
+		entityObj.setCreateTime(createTime);
+		entityObj.setUpdateTime(updTime);
+
+		return mapViewToEntityBean(vObj, entityObj, operationContext);
+	}
+
+	protected abstract void validateForCreate(V vObj);
+
+	protected abstract void validateForUpdate(V vObj, T entityObj);
+
+	public T preCreate(V vObj) {
+		validateForCreate(vObj);
+		return populateEntityBean(vObj, OPERATION_CREATE_CONTEXT);
+	}
+
+	public V postCreate(T xObj) {
+		return populateViewBean(xObj);
+	}
+
+	public V create(V vObj) {
+		T resource = preCreate(vObj);
+		resource = getDao().create(resource);
+		vObj = postCreate(resource);
+		return vObj;
+	}
+
+	public V read(Long id) {
+		T resource = getDao().getById(id);
+		if (resource == null) {
+			throw restErrorUtil.createRESTException(tViewClass.getName()
+					+ " :Data Not Found for given Id",
+					MessageEnums.DATA_NOT_FOUND, id, null,
+					"readResource : No Object found with given id.");
+		}
+		return populateViewBean(resource);
+	}
+	
+	public V update(V viewBaseBean) {
+		T resource = preUpdate(viewBaseBean);
+		resource = getDao().update(resource);
+		V viewBean = postUpdate(resource);
+		return viewBean;
+	}
+
+	public V postUpdate(T resource) {
+		return populateViewBean(resource);
+	}
+
+	public T preUpdate(V viewBaseBean) {
+		T resource = getDao().getById(viewBaseBean.getId());
+		if (resource == null) {
+			throw restErrorUtil.createRESTException(tEntityClass.getSimpleName()
+					+ " not found", MessageEnums.DATA_NOT_FOUND,
+					viewBaseBean.getId(), null, "preUpdate: id not found.");
+		}
+		validateForUpdate(viewBaseBean, resource);
+		return populateEntityBean(viewBaseBean, OPERATION_UPDATE_CONTEXT);
+	}
+	
+	public boolean delete(V vObj) {
+		boolean result = false;
+		Long id = vObj.getId();
+		T resource = preDelete(id);
+		if (resource == null) {
+			throw restErrorUtil.createRESTException(
+					tEntityClass.getSimpleName() + " not found",
+					MessageEnums.DATA_NOT_FOUND, id, null,
+					tEntityClass.getSimpleName() + ":" + id);
+		}
+		try {
+			result = getDao().remove(resource);
+		} catch (Exception e) {
+			LOG.error("Error deleting " + tEntityClass.getSimpleName()
+					+ ". Id=" + id, e);
+
+			throw restErrorUtil.createRESTException(
+					tEntityClass.getSimpleName() + " can't be deleted",
+					MessageEnums.OPER_NOT_ALLOWED_FOR_STATE, id, null, "" + id
+							+ ", error=" + e.getMessage());
+		}
+		return result;
+	}
+
+	protected T preDelete(Long id) {
+		T resource = getDao().getById(id);
+		if (resource == null) {
+			// Return without error
+			LOG.info("Delete ignored for non-existent Object, id=" + id);
+		}
+		return resource;
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c928a415/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
new file mode 100644
index 0000000..a5aa16e
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerDataHistService.java
@@ -0,0 +1,126 @@
+package org.apache.ranger.service;
+
+import java.io.IOException;
+import java.util.Date;
+
+import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.DateUtil;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.entity.XXDataHist;
+import org.apache.ranger.plugin.model.RangerBaseModelObject;
+import org.apache.ranger.plugin.model.RangerPolicy;
+import org.apache.ranger.plugin.model.RangerService;
+import org.apache.ranger.plugin.model.RangerServiceDef;
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+@Service
+@Scope("singleton")
+public class RangerDataHistService {
+
+	@Autowired
+	RESTErrorUtil restErrorUtil;
+	
+	@Autowired
+	RangerDaoManager daoMgr;
+	
+	public static final String ACTION_CREATE = "Create";
+	public static final String ACTION_UPDATE = "Update";
+	public static final String ACTION_DELETE = "Delete";
+	
+	public void createObjectDataHistory(RangerBaseModelObject baseModelObj, String action) {
+		if(baseModelObj == null || action == null) {
+			throw restErrorUtil
+					.createRESTException("Error while creating DataHistory. "
+							+ "Object or Action can not be null.",
+							MessageEnums.DATA_NOT_FOUND);
+		}
+		
+		
+		Integer classType = null;
+		String objectName = null;
+		String content = null;
+		
+		Long objectId = baseModelObj.getId();
+		String objectGuid = baseModelObj.getGuid();
+		Long version = baseModelObj.getVersion();
+		Date currentDate = DateUtil.getUTCDate();
+		
+		XXDataHist xDataHist = new XXDataHist();;
+		
+		xDataHist.setObjectId(baseModelObj.getId());
+		xDataHist.setObjectGuid(objectGuid);
+		xDataHist.setCreateTime(currentDate);
+		xDataHist.setAction(action);
+		xDataHist.setVersion(baseModelObj.getVersion());
+		xDataHist.setUpdateTime(currentDate);
+		xDataHist.setFromTime(currentDate);
+
+		if(baseModelObj instanceof RangerServiceDef) {
+			RangerServiceDef serviceDef = (RangerServiceDef) baseModelObj;
+			objectName = serviceDef.getName();
+			classType = AppConstants.CLASS_TYPE_XA_SERVICE_DEF;
+			content = writeObjectAsString(serviceDef);
+		} else if(baseModelObj instanceof RangerService) {
+			RangerService service = (RangerService) baseModelObj;
+			objectName = service.getName();
+			classType = AppConstants.CLASS_TYPE_XA_SERVICE;
+			content = writeObjectAsString(service);
+		} else if(baseModelObj instanceof RangerPolicy) {
+			RangerPolicy policy = (RangerPolicy) baseModelObj;
+			objectName = policy.getName();
+			classType = AppConstants.CLASS_TYPE_RANGER_POLICY;
+			content = writeObjectAsString(policy);
+		}
+		
+		xDataHist.setObjectClassType(classType);
+		xDataHist.setObjectName(objectName);
+		xDataHist.setContent(content);
+		xDataHist = daoMgr.getXXDataHist().create(xDataHist);
+		
+		if (ACTION_UPDATE.equalsIgnoreCase(action) || ACTION_DELETE.equalsIgnoreCase(action)) {
+			XXDataHist prevHist = daoMgr.getXXDataHist().findLatestByObjectClassTypeAndObjectId(classType, objectId);
+			
+			if(prevHist == null) {
+				throw restErrorUtil.createRESTException(
+						"Error updating DataHistory Object. ObjectName: "
+								+ objectName, MessageEnums.DATA_NOT_UPDATABLE);
+			}
+			
+			prevHist.setVersion(version);
+			prevHist.setUpdateTime(currentDate);
+			prevHist.setToTime(currentDate);
+			prevHist.setObjectName(objectName);
+			prevHist = daoMgr.getXXDataHist().update(prevHist);
+		}
+	}
+
+	public String writeObjectAsString(RangerBaseModelObject vObj) {
+		ObjectMapper mapper = new ObjectMapper();
+
+		String jsonStr;
+		try {
+			jsonStr = mapper.writeValueAsString(vObj);
+			return jsonStr;
+		} catch (JsonParseException e) {
+			throw restErrorUtil.createRESTException(
+					"Invalid input data: " + e.getMessage(),
+					MessageEnums.INVALID_INPUT_DATA);
+		} catch (JsonMappingException e) {
+			throw restErrorUtil.createRESTException(
+					"Invalid input data: " + e.getMessage(),
+					MessageEnums.INVALID_INPUT_DATA);
+		} catch (IOException e) {
+			throw restErrorUtil.createRESTException(
+					"Invalid input data: " + e.getMessage(),
+					MessageEnums.INVALID_INPUT_DATA);
+		}
+	}
+	
+}