You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by sn...@apache.org on 2014/11/14 01:22:02 UTC

incubator-argus git commit: ARGUS-183:Fix for search policies API failing in Oracle

Repository: incubator-argus
Updated Branches:
  refs/heads/master f446cbe9b -> 1d9ffb4f7


ARGUS-183:Fix for search policies API failing in Oracle

Signed-off-by: sneethiraj <sn...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-argus/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-argus/commit/1d9ffb4f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-argus/tree/1d9ffb4f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-argus/diff/1d9ffb4f

Branch: refs/heads/master
Commit: 1d9ffb4f7a0c6b3de7f728a9fa772d2981c0601b
Parents: f446cbe
Author: vperiasamy <vp...@hortonworks.com>
Authored: Thu Nov 13 18:34:11 2014 -0500
Committer: sneethiraj <sn...@apache.org>
Committed: Thu Nov 13 19:21:22 2014 -0500

----------------------------------------------------------------------
 .../main/java/com/xasecure/biz/XABizUtil.java   | 36 +++++++++++++++++
 .../java/com/xasecure/common/AppConstants.java  | 42 ++++++++++++++++++++
 .../com/xasecure/common/SearchCriteria.java     | 12 ++++++
 .../main/java/com/xasecure/rest/AssetREST.java  |  2 +-
 4 files changed, 91 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/1d9ffb4f/security-admin/src/main/java/com/xasecure/biz/XABizUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/biz/XABizUtil.java b/security-admin/src/main/java/com/xasecure/biz/XABizUtil.java
index 6dc21a4..5a071c4 100644
--- a/security-admin/src/main/java/com/xasecure/biz/XABizUtil.java
+++ b/security-admin/src/main/java/com/xasecure/biz/XABizUtil.java
@@ -1277,4 +1277,40 @@ public class XABizUtil {
 			daoManager.getXXTrxLog().create(xTrxLog);
 		}
 	}
+
+	public static int getDBFlavor() {
+
+		String dbFlavor = "";
+		boolean dbFlavorPropFound = true;
+
+		dbFlavor = PropertiesUtil.getProperty("xa.db.flavor");
+		if (dbFlavor == null || dbFlavor.trim().isEmpty()) {
+			dbFlavor = PropertiesUtil.getProperty("jdbc.dialect");
+			dbFlavorPropFound = false;
+		}
+
+		if (dbFlavor != null && !dbFlavor.trim().isEmpty()) {
+			if (dbFlavorPropFound) {
+				if ("MYSQL".equalsIgnoreCase(dbFlavor)) {
+					return AppConstants.DB_FLAVOR_MYSQL;
+				} else if ("ORACLE".equalsIgnoreCase(dbFlavor)) {
+					return AppConstants.DB_FLAVOR_ORACLE;
+				} else {
+					return AppConstants.DB_FLAVOR_UNKNOWN;
+				}
+			} else {
+				if (dbFlavor.toUpperCase().contains("MYSQL")) {
+					return AppConstants.DB_FLAVOR_MYSQL;
+				} else if (dbFlavor.toUpperCase().contains("ORACLE")) {
+					return AppConstants.DB_FLAVOR_ORACLE;
+				} else {
+					return AppConstants.DB_FLAVOR_UNKNOWN;
+				}
+			}
+		} else {
+			logger.error("Property : xa.db.flavor or jdbc.dialect, not found");
+			return AppConstants.DB_FLAVOR_UNKNOWN;
+		}
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/1d9ffb4f/security-admin/src/main/java/com/xasecure/common/AppConstants.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/common/AppConstants.java b/security-admin/src/main/java/com/xasecure/common/AppConstants.java
index 86ba6da..c4e5991 100644
--- a/security-admin/src/main/java/com/xasecure/common/AppConstants.java
+++ b/security-admin/src/main/java/com/xasecure/common/AppConstants.java
@@ -351,6 +351,22 @@ public class AppConstants extends XACommonEnums {
 	 */
 	public static final int XAPermType_MAX = 31;
 
+	/***************************************************************
+	 * Enum values for DatabaseFavor
+	 **************************************************************/
+	/**
+	 * DB Favor Unknown
+	 */
+	public static final int DB_FLAVOR_UNKNOWN = 0;
+	/**
+	 * DB Favor MySql
+	 */
+	public static final int DB_FLAVOR_MYSQL = 1;
+	/**
+	 * DB Favor Oracle
+	 */
+	public static final int DB_FLAVOR_ORACLE = 2;
+
 
 	/***************************************************************
 	 * Enum values for ClassTypes
@@ -908,5 +924,31 @@ public class AppConstants extends XACommonEnums {
 		return 0;
 	}
 
+	static public int getEnumFor_DatabaseFlavor(String label) {
+		if (label == null) {
+			return DB_FLAVOR_UNKNOWN; // DB_FLAVOR_UNKNOWN
+		}
+		if ("MYSQL".equalsIgnoreCase(label)) {
+			return DB_FLAVOR_MYSQL; // DB_FLAVOR_MYSQL
+		}
+		if ("ORACLE".equalsIgnoreCase(label)) {
+			return DB_FLAVOR_ORACLE; // DB_FLAVOR_ORACLE
+		}
+		return DB_FLAVOR_UNKNOWN;
+	}
+
+	static public String getLabelFor_DatabaseFlavor(int elementValue) {
+		if (elementValue == DB_FLAVOR_UNKNOWN) {
+			return "UNKNOWN"; // Unknown
+		}
+		if (elementValue == DB_FLAVOR_MYSQL) {
+			return "MYSQL"; // MYSQL
+		}
+		if (elementValue == DB_FLAVOR_ORACLE) {
+			return "ORACLE"; // ORACLE
+		}
+		return null;
+	}
+
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/1d9ffb4f/security-admin/src/main/java/com/xasecure/common/SearchCriteria.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/common/SearchCriteria.java b/security-admin/src/main/java/com/xasecure/common/SearchCriteria.java
index bb85fe4..c1df00f 100644
--- a/security-admin/src/main/java/com/xasecure/common/SearchCriteria.java
+++ b/security-admin/src/main/java/com/xasecure/common/SearchCriteria.java
@@ -28,8 +28,13 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.log4j.Logger;
+
+import com.xasecure.biz.XABizUtil;
+
 
 public class SearchCriteria {
+	Logger logger = Logger.getLogger(SearchCriteria.class);
 
 	int startIndex = 0;
 	int maxRows = Integer.MAX_VALUE;
@@ -182,6 +187,13 @@ public class SearchCriteria {
 	 *            the isDistinct to set
 	 */
 	public void setDistinct(boolean isDistinct) {
+
+		int dbFlavor = XABizUtil.getDBFlavor();
+		if (isDistinct && dbFlavor == AppConstants.DB_FLAVOR_ORACLE) {
+			isDistinct = false;
+			logger.debug("Database flavor is `ORACLE` so ignoring DISTINCT "
+					+ "clause from select statement.");
+		}
 		this.isDistinct = isDistinct;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-argus/blob/1d9ffb4f/security-admin/src/main/java/com/xasecure/rest/AssetREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/com/xasecure/rest/AssetREST.java b/security-admin/src/main/java/com/xasecure/rest/AssetREST.java
index e187a78..2662409 100644
--- a/security-admin/src/main/java/com/xasecure/rest/AssetREST.java
+++ b/security-admin/src/main/java/com/xasecure/rest/AssetREST.java
@@ -334,7 +334,7 @@ public class AssetREST {
 		// searchUtil.addSearchGroup(searchCriteria, outerGroup);
 		//
 		// }
-		//searchCriteria.setDistinct(true);
+		searchCriteria.setDistinct(true);
 
 		return assetMgr.searchXResources(searchCriteria);
 	}