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 2016/11/02 05:18:54 UTC

incubator-ranger git commit: RANGER-1199: Optimize tag-download to include only tags that have policies

Repository: incubator-ranger
Updated Branches:
  refs/heads/master 08a94c741 -> 01326be73


RANGER-1199: Optimize tag-download to include only tags that have policies

Signed-off-by: Madhan Neethiraj <ma...@apache.org>


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

Branch: refs/heads/master
Commit: 01326be73368a0700dce2c13e1850d620112780c
Parents: 08a94c7
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Wed Oct 26 17:28:12 2016 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Nov 1 21:34:40 2016 -0700

----------------------------------------------------------------------
 .../apache/ranger/biz/RangerTagDBRetriever.java | 18 ++--
 .../org/apache/ranger/biz/ServiceDBStore.java   | 36 +++++---
 .../apache/ranger/db/XXServiceResourceDao.java  |  4 +-
 .../ranger/db/XXServiceResourceElementDao.java  |  4 +-
 .../db/XXServiceResourceElementValueDao.java    |  4 +-
 .../org/apache/ranger/db/XXTagAttributeDao.java |  4 +-
 .../apache/ranger/db/XXTagAttributeDefDao.java  | 12 +++
 .../java/org/apache/ranger/db/XXTagDao.java     | 13 +++
 .../java/org/apache/ranger/db/XXTagDefDao.java  | 13 +++
 .../apache/ranger/db/XXTagResourceMapDao.java   | 12 +++
 .../service/RangerServiceResourceService.java   |  2 +-
 .../resources/META-INF/jpa_named_queries.xml    | 94 +++++++++++++++++++-
 12 files changed, 183 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java
index 0949092..04c27a7 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java
@@ -96,7 +96,7 @@ public class RangerTagDBRetriever {
 
 	private List<RangerTagResourceMap> getAllTagResourceMaps() {
 
-		List<XXTagResourceMap> xTagResourceMaps = daoMgr.getXXTagResourceMap().findByServiceId(xService.getId());
+		List<XXTagResourceMap> xTagResourceMaps = daoMgr.getXXTagResourceMap().findForServicePlugin(xService.getId());
 		ListIterator<XXTagResourceMap> iterTagResourceMap = xTagResourceMaps.listIterator();
 
 		List<RangerTagResourceMap> ret = new ArrayList<RangerTagResourceMap>();
@@ -203,9 +203,9 @@ public class RangerTagDBRetriever {
 		TagRetrieverServiceResourceContext(XXService xService) {
 			Long serviceId = xService == null ? null : xService.getId();
 
-			List<XXServiceResource> xServiceResources = daoMgr.getXXServiceResource().findTaggedResourcesInServiceId(serviceId);
-			List<XXServiceResourceElement> xServiceResourceElements = daoMgr.getXXServiceResourceElement().findForTaggedResourcesInServiceId(serviceId);
-			List<XXServiceResourceElementValue> xServiceResourceElementValues = daoMgr.getXXServiceResourceElementValue().findForTaggedResourcesInServiceId(serviceId);
+			List<XXServiceResource> xServiceResources = daoMgr.getXXServiceResource().findForServicePlugin(serviceId);
+			List<XXServiceResourceElement> xServiceResourceElements = daoMgr.getXXServiceResourceElement().findForServicePlugin(serviceId);
+			List<XXServiceResourceElementValue> xServiceResourceElementValues = daoMgr.getXXServiceResourceElementValue().findForServicePlugin(serviceId);
 
 			this.service = xService;
 			this.iterServiceResource = xServiceResources.listIterator();
@@ -318,7 +318,7 @@ public class RangerTagDBRetriever {
 			List<RangerServiceResource> ret = null;
 
 			if (service != null) {
-				List<XXServiceResource> xServiceResources = daoMgr.getXXServiceResource().findTaggedResourcesInServiceId(service.getId());
+				List<XXServiceResource> xServiceResources = daoMgr.getXXServiceResource().findForServicePlugin(service.getId());
 
 				if (CollectionUtils.isNotEmpty(xServiceResources)) {
 					ret = new ArrayList<RangerServiceResource>(xServiceResources.size());
@@ -348,8 +348,8 @@ public class RangerTagDBRetriever {
 		TagRetrieverTagDefContext(XXService xService) {
 			Long serviceId = xService == null ? null : xService.getId();
 
-			List<XXTagDef> xTagDefs = daoMgr.getXXTagDef().findByServiceId(serviceId);
-			List<XXTagAttributeDef> xTagAttributeDefs = daoMgr.getXXTagAttributeDef().findByServiceId(serviceId);
+			List<XXTagDef> xTagDefs = daoMgr.getXXTagDef().findForServicePlugin(serviceId);
+			List<XXTagAttributeDef> xTagAttributeDefs = daoMgr.getXXTagAttributeDef().findForServicePlugin(serviceId);
 
 			this.service = xService;
 			this.iterTagDef = xTagDefs.listIterator();
@@ -473,8 +473,8 @@ public class RangerTagDBRetriever {
 		TagRetrieverTagContext(XXService xService) {
 			Long serviceId = xService == null ? null : xService.getId();
 
-			List<XXTag> xTags = daoMgr.getXXTag().findByServiceId(serviceId);
-			List<XXTagAttribute> xTagAttributes = daoMgr.getXXTagAttribute().findByServiceId(serviceId);
+			List<XXTag> xTags = daoMgr.getXXTag().findForServicePlugin(serviceId);
+			List<XXTagAttribute> xTagAttributes = daoMgr.getXXTagAttribute().findForServicePlugin(serviceId);
 
 			this.service = xService;
 			this.iterTag = xTags.listIterator();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index d709869..b6b2dc5 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -34,11 +34,9 @@ import java.util.Map.Entry;
 import java.util.StringTokenizer;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.OutputStreamWriter;
 import java.text.SimpleDateFormat;
 import java.util.TreeMap;
 
@@ -1515,7 +1513,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 			service = svcService.update(service);
 
 			if (hasTagServiceValueChanged || hasIsEnabledChanged) {
-				updatePolicyVersion(service);
+				updatePolicyVersion(service, false);
 			}
 		}
 
@@ -1786,7 +1784,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 		createNewPolicyItemsForPolicy(policy, xCreatedPolicy, denyExceptions, xServiceDef, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DENY_EXCEPTIONS);
 		createNewDataMaskPolicyItemsForPolicy(policy, xCreatedPolicy, dataMaskItems, xServiceDef, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DATAMASK);
 		createNewRowFilterPolicyItemsForPolicy(policy, xCreatedPolicy, rowFilterItems, xServiceDef, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ROWFILTER);
-		handlePolicyUpdate(service);
+		handlePolicyUpdate(service, true);
 		RangerPolicy createdPolicy = policyService.getPopulatedViewObject(xCreatedPolicy);
 		dataHistService.createObjectDataHistory(createdPolicy, RangerDataHistService.ACTION_CREATE);
 
@@ -1846,9 +1844,14 @@ public class ServiceDBStore extends AbstractServiceStore {
 		policy.setVersion(xxExisting.getVersion());
 
 		List<XXTrxLog> trxLogList = policyService.getTransactionLog(policy, xxExisting, RangerPolicyService.OPERATION_UPDATE_CONTEXT);
-		
+
 		updatePolicySignature(policy);
-		
+
+		boolean isTagVersionUpdateNeeded = false;
+		if (service.getType().equals(EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_TAG_NAME)) {
+			isTagVersionUpdateNeeded = existing.getIsEnabled() ? !policy.getIsEnabled() : policy.getIsEnabled();
+			isTagVersionUpdateNeeded = isTagVersionUpdateNeeded || !StringUtils.equals(existing.getResourceSignature(), policy.getResourceSignature());
+		}
 		policy = policyService.update(policy);
 		XXPolicy newUpdPolicy = daoMgr.getXXPolicy().getById(policy.getId());
 
@@ -1863,7 +1866,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 		createNewDataMaskPolicyItemsForPolicy(policy, newUpdPolicy, dataMaskPolicyItems, xServiceDef, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DATAMASK);
 		createNewRowFilterPolicyItemsForPolicy(policy, newUpdPolicy, rowFilterItems, xServiceDef, RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ROWFILTER);
 
-		handlePolicyUpdate(service);
+		handlePolicyUpdate(service, isTagVersionUpdateNeeded);
 		RangerPolicy updPolicy = policyService.getPopulatedViewObject(newUpdPolicy);
 		dataHistService.createObjectDataHistory(updPolicy, RangerDataHistService.ACTION_UPDATE);
 		
@@ -1907,7 +1910,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 		deleteExistingPolicyResources(policy);
 		
 		policyService.delete(policy);
-		handlePolicyUpdate(service);
+		handlePolicyUpdate(service, true);
 		
 		dataHistService.createObjectDataHistory(policy, RangerDataHistService.ACTION_DELETE);
 		
@@ -2690,11 +2693,11 @@ public class ServiceDBStore extends AbstractServiceStore {
 		return validConfigs;
 	}
 
-	private void handlePolicyUpdate(RangerService service) throws Exception {
-		updatePolicyVersion(service);
+	private void handlePolicyUpdate(RangerService service, boolean isTagVersionUpdateNeeded) throws Exception {
+		updatePolicyVersion(service, isTagVersionUpdateNeeded);
 	}
 
-	private void updatePolicyVersion(RangerService service) throws Exception {
+	private void updatePolicyVersion(RangerService service, boolean isTagVersionUpdateNeeded) throws Exception {
 		if(service == null || service.getId() == null) {
 			return;
 		}
@@ -2739,20 +2742,27 @@ public class ServiceDBStore extends AbstractServiceStore {
 
 			if(CollectionUtils.isNotEmpty(referringServices)) {
 				for(XXService referringService : referringServices) {
-
 					serviceVersionInfoDbObj = serviceVersionInfoDao.findByServiceId(referringService.getId());
 					if (serviceVersionInfoDbObj != null) {
 
 						serviceVersionInfoDbObj.setPolicyVersion(getNextVersion(serviceVersionInfoDbObj.getPolicyVersion()));
 						serviceVersionInfoDbObj.setPolicyUpdateTime(service.getPolicyUpdateTime());
 
+						if (isTagVersionUpdateNeeded) {
+							serviceVersionInfoDbObj.setTagVersion(getNextVersion(serviceVersionInfoDbObj.getTagVersion()));
+							serviceVersionInfoDbObj.setTagUpdateTime(service.getTagUpdateTime());
+						}
 						serviceVersionInfoDao.update(serviceVersionInfoDbObj);
 					} else {
 						LOG.warn("updatePolicyVersion(service=" + referringService.getName() + "): serviceVersionInfo not found, creating it..");
 						serviceVersionInfoDbObj = new XXServiceVersionInfo();
 						serviceVersionInfoDbObj.setServiceId(referringService.getId());
 						serviceVersionInfoDbObj.setPolicyVersion(getNextVersion(referringService.getPolicyVersion()));
-						serviceVersionInfoDbObj.setTagVersion(referringService.getTagVersion());
+						if (isTagVersionUpdateNeeded) {
+							serviceVersionInfoDbObj.setTagVersion(getNextVersion(referringService.getTagVersion()));
+						} else {
+							serviceVersionInfoDbObj.setTagVersion(referringService.getTagVersion());
+						}
 						serviceVersionInfoDbObj.setPolicyUpdateTime(new Date());
 						serviceVersionInfoDbObj.setTagUpdateTime(referringService.getTagUpdateTime());
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java
index 71bbfab..ef90a45 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java
@@ -72,12 +72,12 @@ public class XXServiceResourceDao extends BaseDao<XXServiceResource> {
 		}
 	}
 
-	public List<XXServiceResource> findTaggedResourcesInServiceId(Long serviceId) {
+	public List<XXServiceResource> findForServicePlugin(Long serviceId) {
 		if (serviceId == null) {
 			return new ArrayList<XXServiceResource>();
 		}
 		try {
-			return getEntityManager().createNamedQuery("XXServiceResource.findTaggedResourcesInServiceId", tClass)
+			return getEntityManager().createNamedQuery("XXServiceResource.findForServicePlugin", tClass)
 					.setParameter("serviceId", serviceId).getResultList();
 		} catch (NoResultException e) {
 			return new ArrayList<XXServiceResource>();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java
index 240eb62..4f958ea 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java
@@ -59,12 +59,12 @@ public class XXServiceResourceElementDao extends BaseDao<XXServiceResourceElemen
 		}
 	}
 
-	public List<XXServiceResourceElement> findForTaggedResourcesInServiceId(Long serviceId) {
+	public List<XXServiceResourceElement> findForServicePlugin(Long serviceId) {
 		if (serviceId == null) {
 			return new ArrayList<XXServiceResourceElement>();
 		}
 		try {
-			return getEntityManager().createNamedQuery("XXServiceResourceElement.findForTaggedResourcesInServiceId", tClass)
+			return getEntityManager().createNamedQuery("XXServiceResourceElement.findForServicePlugin", tClass)
 					.setParameter("serviceId", serviceId)
 					.getResultList();
 		} catch (NoResultException e) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java
index d324331..e780bc1 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java
@@ -72,12 +72,12 @@ public class XXServiceResourceElementValueDao extends BaseDao<XXServiceResourceE
 	}
 
 	@SuppressWarnings("unchecked")
-	public List<XXServiceResourceElementValue> findForTaggedResourcesInServiceId(Long serviceId) {
+	public List<XXServiceResourceElementValue> findForServicePlugin(Long serviceId) {
 		if (serviceId == null) {
 			return new ArrayList<XXServiceResourceElementValue>();
 		}
 		try {
-			return getEntityManager().createNamedQuery("XXServiceResourceElementValue.findForTaggedResourcesInServiceId")
+			return getEntityManager().createNamedQuery("XXServiceResourceElementValue.findForServicePlugin")
 					.setParameter("serviceId", serviceId).getResultList();
 		} catch (NoResultException e) {
 			return new ArrayList<XXServiceResourceElementValue>();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java
index a24e3db..a5b7fac 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java
@@ -45,12 +45,12 @@ public class XXTagAttributeDao extends BaseDao<XXTagAttribute> {
 		}
 	}
 
-	public List<XXTagAttribute> findByServiceId(Long serviceId) {
+	public List<XXTagAttribute> findForServicePlugin(Long serviceId) {
 		if (serviceId == null) {
 			return new ArrayList<XXTagAttribute>();
 		}
 		try {
-			return getEntityManager().createNamedQuery("XXTagAttribute.findByServiceId", tClass)
+			return getEntityManager().createNamedQuery("XXTagAttribute.findForServicePlugin", tClass)
 					.setParameter("serviceId", serviceId).getResultList();
 		} catch (NoResultException e) {
 			return new ArrayList<XXTagAttribute>();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java
index 294c222..145399f 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java
@@ -57,6 +57,18 @@ public class XXTagAttributeDefDao extends BaseDao<XXTagAttributeDef> {
 		}
 	}
 
+	public List<XXTagAttributeDef> findForServicePlugin(Long serviceId) {
+		if (serviceId == null) {
+			return new ArrayList<XXTagAttributeDef>();
+		}
+		try {
+			return getEntityManager().createNamedQuery("XXTagAttributeDef.findForServicePlugin", tClass)
+					.setParameter("serviceId", serviceId).getResultList();
+		} catch (NoResultException e) {
+			return new ArrayList<XXTagAttributeDef>();
+		}
+	}
+
 	public List<XXTagAttributeDef> findByResourceId(Long resourceId) {
 		if (resourceId == null) {
 			return new ArrayList<XXTagAttributeDef>();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java
index 199a155..77428db 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java
@@ -124,6 +124,19 @@ public class XXTagDao extends BaseDao<XXTag> {
 		}
 	}
 
+	public List<XXTag> findForServicePlugin(Long serviceId) {
+		if (serviceId == null) {
+			return new ArrayList<XXTag>();
+		}
+
+		try {
+			return getEntityManager().createNamedQuery("XXTag.findForServicePlugin", tClass)
+					.setParameter("serviceId", serviceId).getResultList();
+		} catch (NoResultException e) {
+			return new ArrayList<XXTag>();
+		}
+	}
+
 	public List<XXTag> findByServiceIdAndOwner(Long serviceId, Short owner) {
 		if (serviceId == null) {
 			return new ArrayList<XXTag>();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java
index 86793ec..dfd2fcb 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java
@@ -73,6 +73,19 @@ public class XXTagDefDao extends BaseDao<XXTagDef> {
 		}
 	}
 
+	public List<XXTagDef> findForServicePlugin(Long serviceId) {
+		if (serviceId == null) {
+			return new ArrayList<XXTagDef>();
+		}
+
+		try {
+			return getEntityManager().createNamedQuery("XXTagDef.findForServicePlugin", tClass)
+					.setParameter("serviceId", serviceId).getResultList();
+		} catch (NoResultException e) {
+			return new ArrayList<XXTagDef>();
+		}
+	}
+
 	public List<String> getAllNames() {
 		try {
 			return getEntityManager().createNamedQuery("XXTagDef.getAllNames", String.class).getResultList();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java
index 40dbe86..bbcd546 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java
@@ -140,4 +140,16 @@ public class XXTagResourceMapDao extends BaseDao<XXTagResourceMap> {
 			return new ArrayList<XXTagResourceMap>();
 		}
 	}
+
+	public List<XXTagResourceMap> findForServicePlugin(Long serviceId) {
+		if (serviceId == null) {
+			return new ArrayList<XXTagResourceMap>();
+		}
+		try {
+			return getEntityManager().createNamedQuery("XXTagResourceMap.findForServicePlugin", tClass)
+					.setParameter("serviceId", serviceId).getResultList();
+		} catch (NoResultException e) {
+			return new ArrayList<XXTagResourceMap>();
+		}
+	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
index e5937e6..d725680 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
@@ -116,7 +116,7 @@ public class RangerServiceResourceService extends RangerServiceResourceServiceBa
 	public List<RangerServiceResource> getTaggedResourcesInServiceId(Long serviceId) {
 		List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>();
 
-		List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findTaggedResourcesInServiceId(serviceId);
+		List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findByServiceId(serviceId);
 		
 		if(CollectionUtils.isNotEmpty(xxServiceResources)) {
 			for(XXServiceResource xxServiceResource : xxServiceResources) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/01326be7/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index 4fcf0ea..a94b9a0 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -781,6 +781,20 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXServiceResourceElement.findForServicePlugin">
+		<query>
+			select obj from XXServiceResourceElement obj where obj.resourceId in
+			(select serviceRes.id from XXServiceResource serviceRes, XXService service where service.id = :serviceId and service.tagService is not null and serviceRes.serviceId = service.id and serviceRes.id in
+			(select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef
+			where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			)
+			)
+			order by obj.resourceId, obj.id
+		</query>
+	</named-query>
+
 	<named-query name="XXServiceResourceElement.findByServiceId">
 		<query>select obj from XXServiceResourceElement obj where obj.resourceId in
 					(select serviceresource.id from XXServiceResource serviceresource where serviceresource.serviceId = :serviceId)
@@ -805,6 +819,20 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXServiceResourceElementValue.findForServicePlugin">
+		<query>
+			select obj from XXServiceResourceElementValue obj, XXServiceResourceElement serviceResElem where obj.resElementId = serviceResElem.id and
+			serviceResElem.resourceId in
+			(select serviceRes.id from XXServiceResource serviceRes, XXService service where service.id = :serviceId and service.tagService is not null and serviceRes.serviceId = service.id and serviceRes.id in
+			(select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef
+			where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			)
+			)
+			order by serviceResElem.resourceId, serviceResElem.id
+		</query>
+	</named-query>
 	<named-query name="XXServiceResourceElementValue.findByServiceId">
 		<query>select obj from XXServiceResourceElementValue obj, XXServiceResourceElement resElem where obj.resElementId = resElem.id and resElem.resourceId in
 			(select res.id from XXServiceResource res where res.serviceId = :serviceId)
@@ -852,6 +880,17 @@
 				order by obj.resourceId</query>
 	</named-query>
 
+	<named-query name="XXTagResourceMap.findForServicePlugin">
+		<query>
+			select obj from XXTagResourceMap obj, XXService service where service.id = :serviceId and service.tagService is not null and obj.tagId in
+			(select tag.id from XXTag tag, XXTagDef tagDef where tag.type = tagDef.id and tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			)
+			order by obj.resourceId
+		</query>
+	</named-query>
+
 	<named-query name="XXTagResourceMap.getTagIdsForResourceId">
 		<query>select obj.tagId from XXTagResourceMap obj
 				where obj.resourceId = :resourceId order by obj.id
@@ -873,6 +912,14 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXTagDef.findForServicePlugin">
+		<query>select obj from XXTagDef obj, XXService service where service.id = :serviceId and service.tagService is not null and
+			obj.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			order by obj.id
+		</query>
+	</named-query>
 	<named-query name="XXTagDef.findByResourceId">
 		<query>select obj from XXTagDef obj where obj.id in
 			(select tag.type from XXTag tag, XXTagResourceMap tagRes where tag.id = tagRes.tagId and tagRes.resourceId = :resourceId)
@@ -894,7 +941,16 @@
 			order by obj.tagDefId
 		</query>
 	</named-query>
-
+	<named-query name="XXTagAttributeDef.findForServicePlugin">
+		<query>select obj from XXTagAttributeDef obj where obj.tagDefId in
+			(select tagDef.id from XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and
+			tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			)
+			order by obj.tagDefId
+		</query>
+	</named-query>
 	<named-query name="XXTagAttributeDef.findByResourceId">
 		<query>select obj from XXTagAttributeDef obj where obj.tagDefId in
 			(select tag.type from XXTag tag, XXTagResourceMap tagRes where tag.id = tagRes.tagId and tagRes.resourceId = :resourceId)
@@ -930,6 +986,16 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXTag.findForServicePlugin">
+		<query>
+			select obj from XXTag obj, XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and
+			obj.type = tagDef.id and tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			order by obj.id
+		</query>
+	</named-query>
+
 	<named-query name="XXTag.findByServiceIdAndOwner">
 		<query>select obj from XXTag obj where obj.owner = :owner and obj.id in
 			(select tagRes.tagId from XXTagResourceMap tagRes, XXServiceResource resource where tagRes.resourceId = resource.id and resource.serviceId = :serviceId)
@@ -964,6 +1030,18 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXTagAttribute.findForServicePlugin">
+		<query>
+			select obj from XXTagAttribute obj where obj.tagId in
+			(select tag.id from XXTag tag, XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and
+			tag.type = tagDef.id and tagDef.name in
+			(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+			where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+			)
+			order by obj.tagId
+		</query>
+	</named-query>
+
 	<named-query name="XXServiceResource.findByGuid">
 		<query>select obj from XXServiceResource obj where obj.guid = :guid</query>
 	</named-query>
@@ -973,7 +1051,7 @@
 				order by obj.id
 		</query>
 	</named-query>
-	
+
 	<named-query name="XXServiceResource.findTaggedResourcesInServiceId">
 		<query>select obj from XXServiceResource obj where obj.serviceId = :serviceId and obj.id in
 					(select tagResMap.resourceId from XXTagResourceMap tagResMap)
@@ -981,6 +1059,18 @@
 		</query>
 	</named-query>
 
+	<named-query name="XXServiceResource.findForServicePlugin">
+		<query>
+			select obj from XXServiceResource obj, XXService service where service.id = :serviceId and service.tagService is not null and obj.serviceId = service.id and obj.id in
+				(select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef
+					where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in
+						(select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy
+							where policy.service = service.tagService and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id)
+				)
+			order by obj.id
+		</query>
+	</named-query>
+
 	<named-query name="XXServiceResource.findByServiceAndResourceSignature">
 		<query>select obj from XXServiceResource obj where obj.serviceId = :serviceId and obj.resourceSignature = :resourceSignature</query>
 	</named-query>