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/03/02 23:00:36 UTC
incubator-ranger git commit: RANGER-866: refactor the logic to update
XXService.tagVersion
Repository: incubator-ranger
Updated Branches:
refs/heads/master 3df4ae5ea -> e7541c9da
RANGER-866: refactor the logic to update XXService.tagVersion
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/e7541c9d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/e7541c9d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/e7541c9d
Branch: refs/heads/master
Commit: e7541c9da82add57dd64d2f2cac6f94fa16b49fe
Parents: 3df4ae5
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Tue Mar 1 18:34:36 2016 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Mar 2 11:11:10 2016 -0800
----------------------------------------------------------------------
.../java/org/apache/ranger/db/XXServiceDao.java | 65 ++++++++++++++++++++
.../apache/ranger/db/XXServiceResourceDao.java | 19 ------
.../java/org/apache/ranger/db/XXTagDao.java | 19 ------
.../java/org/apache/ranger/db/XXTagDefDao.java | 19 ------
.../service/RangerServiceResourceService.java | 2 +-
.../ranger/service/RangerTagDefService.java | 2 +-
.../service/RangerTagResourceMapService.java | 6 +-
.../apache/ranger/service/RangerTagService.java | 2 +-
.../resources/META-INF/jpa_named_queries.xml | 42 +++++++------
9 files changed, 95 insertions(+), 81 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/security-admin/src/main/java/org/apache/ranger/db/XXServiceDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceDao.java
index 240345f..4afff31 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceDao.java
@@ -18,10 +18,12 @@
package org.apache.ranger.db;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import javax.persistence.NoResultException;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.entity.XXService;
@@ -81,6 +83,48 @@ public class XXServiceDao extends BaseDao<XXService> {
}
}
+ public void updateServiceForServiceResourceUpdate(Long resourceId, Date updateTime) {
+ if (resourceId == null) {
+ return;
+ }
+
+ try {
+ List<XXService> services = getEntityManager().createNamedQuery("XXService.findByServiceResourceId", tClass).setParameter("resourceId", resourceId).getResultList();
+
+ updateTagVersionAndTagUpdateTime(services, updateTime);
+ } catch (NoResultException e) {
+ return;
+ }
+ }
+
+ public void updateServiceForTagUpdate(Long tagId, Date updateTime) {
+ if (tagId == null) {
+ return;
+ }
+
+ try {
+ List<XXService> services = getEntityManager().createNamedQuery("XXService.findByTagId", tClass).setParameter("tagId", tagId).getResultList();
+
+ updateTagVersionAndTagUpdateTime(services, updateTime);
+ } catch (NoResultException e) {
+ return;
+ }
+ }
+
+ public void updateServiceForTagDefUpdate(Long tagDefId, Date updateTime) {
+ if (tagDefId == null) {
+ return;
+ }
+
+ try {
+ List<XXService> services = getEntityManager().createNamedQuery("XXService.findByTagDefId", tClass).setParameter("tagDefId", tagDefId).getResultList();
+
+ updateTagVersionAndTagUpdateTime(services, updateTime);
+ } catch (NoResultException e) {
+ return;
+ }
+ }
+
public void updateSequence() {
Long maxId = getMaxIdOfXXService();
@@ -90,4 +134,25 @@ public class XXServiceDao extends BaseDao<XXService> {
updateSequence("X_SERVICE_SEQ", maxId + 1);
}
+
+ private void updateTagVersionAndTagUpdateTime(List<XXService> services, Date updateTime) {
+ if(CollectionUtils.isEmpty(services)) {
+ return;
+ }
+
+ if(updateTime == null) {
+ updateTime = new Date();
+ }
+
+ for(XXService service : services) {
+ Long currentTagVersion = service.getTagVersion();
+
+ if(currentTagVersion == null) {
+ currentTagVersion = new Long(0);
+ }
+
+ service.setTagVersion(currentTagVersion + 1);
+ service.setTagUpdateTime(updateTime);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/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 8e6bb02..8e2cca6 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
@@ -83,23 +83,4 @@ public class XXServiceResourceDao extends BaseDao<XXServiceResource> {
return new ArrayList<XXServiceResource>();
}
}
-
- public void updateServiceForServiceResourceUpdate(Long resourceId, Date updateTime) {
- if (resourceId == null) {
- return;
- }
-
- if(updateTime == null) {
- updateTime = new Date();
- }
-
- try {
- getEntityManager().createNamedQuery("XXServiceResource.updateTagVersionInService", tClass)
- .setParameter("resourceId", resourceId)
- .setParameter("tagUpdateTime", updateTime)
- .executeUpdate();
- } catch (NoResultException e) {
- return;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/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 38cfc94..48cd1b9 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,23 +124,4 @@ public class XXTagDao extends BaseDao<XXTag> {
return new ArrayList<XXTag>();
}
}
-
- public void updateServiceForTagUpdate(Long tagId, Date updateTime) {
- if (tagId == null) {
- return;
- }
-
- if(updateTime == null) {
- updateTime = new Date();
- }
-
- try {
- getEntityManager().createNamedQuery("XXTag.updateTagVersionInService", tClass)
- .setParameter("tagId", tagId)
- .setParameter("tagUpdateTime", updateTime)
- .executeUpdate();
- } catch (NoResultException e) {
- return;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/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 9a3ed59..06dd2c4 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
@@ -82,25 +82,6 @@ public class XXTagDefDao extends BaseDao<XXTagDef> {
}
}
- public void updateServiceForTagDefUpdate(Long tagDefId, Date updateTime) {
- if (tagDefId == null) {
- return;
- }
-
- if(updateTime == null) {
- updateTime = new Date();
- }
-
- try {
- getEntityManager().createNamedQuery("XXTagDef.updateTagVersionInService", tClass)
- .setParameter("tagDefId", tagDefId)
- .setParameter("tagUpdateTime", updateTime)
- .executeUpdate();
- } catch (NoResultException e) {
- return;
- }
- }
-
public List<XXTagDef> findByResourceId(Long resourceId) {
if (resourceId == null) {
return new ArrayList<XXTagDef>();
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/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 ffbae18..5cf26c9 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
@@ -54,7 +54,7 @@ public class RangerServiceResourceService extends RangerServiceResourceServiceBa
public RangerServiceResource postUpdate(XXServiceResource resource) {
RangerServiceResource ret = super.postUpdate(resource);
- daoMgr.getXXServiceResource().updateServiceForServiceResourceUpdate(resource.getId(), resource.getUpdateTime());
+ daoMgr.getXXService().updateServiceForServiceResourceUpdate(resource.getId(), resource.getUpdateTime());
return ret;
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
index b049f71..beb6295 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java
@@ -54,7 +54,7 @@ public class RangerTagDefService extends RangerTagDefServiceBase<XXTagDef, Range
public RangerTagDef postUpdate(XXTagDef tagDef) {
RangerTagDef ret = super.postUpdate(tagDef);
- daoMgr.getXXTagDef().updateServiceForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime());
+ daoMgr.getXXService().updateServiceForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime());
return ret;
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java
index 40d9d64..257821d 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java
@@ -54,7 +54,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase
public RangerTagResourceMap postCreate(XXTagResourceMap tagResMap) {
RangerTagResourceMap ret = super.postCreate(tagResMap);
- daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime());
+ daoMgr.getXXService().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime());
return ret;
}
@@ -63,7 +63,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase
public RangerTagResourceMap postUpdate(XXTagResourceMap tagResMap) {
RangerTagResourceMap ret = super.postUpdate(tagResMap);
- daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime());
+ daoMgr.getXXService().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime());
return ret;
}
@@ -73,7 +73,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase
XXTagResourceMap tagResMap = super.preDelete(id);
if (tagResMap != null) {
- daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime());
+ daoMgr.getXXService().updateServiceForServiceResourceUpdate(tagResMap.getResourceId(), null);
}
return tagResMap;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
index 24e081e..34ed0ad 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java
@@ -55,7 +55,7 @@ public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> {
public RangerTag postUpdate(XXTag tag) {
RangerTag ret = super.postUpdate(tag);
- daoMgr.getXXTag().updateServiceForTagUpdate(tag.getId(), tag.getUpdateTime());
+ daoMgr.getXXService().updateServiceForTagUpdate(tag.getId(), tag.getUpdateTime());
return ret;
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e7541c9d/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 89764f5..8737460 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
@@ -392,6 +392,30 @@
<query>select obj from XXService obj where obj.tagService = :tagServiceId</query>
</named-query>
+ <named-query name="XXService.findByServiceResourceId">
+ <query>
+ select obj from XXService obj where obj.id in
+ (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes
+ where res.id = :resourceId and res.id = tagRes.resourceId)
+ </query>
+ </named-query>
+
+ <named-query name="XXService.findByTagId">
+ <query>
+ select obj from XXService obj where obj.id in
+ (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag
+ where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.id = :tagId)
+ </query>
+ </named-query>
+
+ <named-query name="XXService.findByTagDefId">
+ <query>
+ select obj from XXService obj where obj.id in
+ (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag
+ where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.type = :tagDefId)
+ </query>
+ </named-query>
+
<!-- XXPolicyResource -->
<named-query name="XXPolicyResource.findByResDefIdAndPolicyId">
<query>select obj from XXPolicyResource obj where
@@ -772,12 +796,6 @@
<query>select obj.name from XXTagDef obj</query>
</named-query>
- <named-query name="XXTagDef.updateTagVersionInService">
- <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime
- where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag
- where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.type = :tagDefId)</query>
- </named-query>
-
<named-query name="XXTagAttributeDef.findByTagDefId">
<query>select obj from XXTagAttributeDef obj where obj.tagDefId = :tagDefId</query>
</named-query>
@@ -824,12 +842,6 @@
</query>
</named-query>
- <named-query name="XXTag.updateTagVersionInService">
- <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime
- where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag
- where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.id = :tagId)</query>
- </named-query>
-
<named-query name="XXTagAttribute.findByTagId">
<query>select obj from XXTagAttribute obj where obj.tagId = :tagId</query>
</named-query>
@@ -869,12 +881,6 @@
<query>select obj from XXServiceResource obj where obj.resourceSignature = :resourceSignature</query>
</named-query>
- <named-query name="XXServiceResource.updateTagVersionInService">
- <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime
- where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes
- where res.id = :resourceId and res.id = tagRes.resourceId)</query>
- </named-query>
-
<!-- End <== JPA Queries for Tag Based Policies -->
<named-query name="XXTrxLog.getMaxIdOfXXTrxLog">
<query>select max(obj.id) from XXTrxLog obj</query>