You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sh...@apache.org on 2014/03/17 21:26:28 UTC

git commit: SENTRY-134: Use BoneCP, add unique constraint to GROUP_NAME, and expose jdo/datanucleus properties (Brock Noland via Shreepadma Venugopalan)

Repository: incubator-sentry
Updated Branches:
  refs/heads/master 90cdbefd5 -> fbf042e66


SENTRY-134: Use BoneCP, add unique constraint to GROUP_NAME, and expose jdo/datanucleus properties (Brock Noland via Shreepadma Venugopalan)


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

Branch: refs/heads/master
Commit: fbf042e664aee35296a0280ba0223bf43749a1cf
Parents: 90cdbef
Author: Shreepadma Venugopalan <sh...@apache.org>
Authored: Mon Mar 17 13:26:06 2014 -0700
Committer: Shreepadma Venugopalan <sh...@apache.org>
Committed: Mon Mar 17 13:26:06 2014 -0700

----------------------------------------------------------------------
 pom.xml                                            |  6 ++++++
 sentry-provider/sentry-provider-db/pom.xml         |  4 ++++
 .../db/service/persistent/SentryStore.java         | 17 ++++++++++++++++-
 .../sentry/service/thrift/ServiceConstants.java    | 15 +++++++++++++--
 .../src/main/resources/sentry-mysql-1.4.0.sql      |  3 +++
 .../src/main/resources/sentry-oracle-1.4.0.sql     |  3 +++
 .../src/main/resources/sentry-postgres-1.4.0.sql   |  3 +++
 7 files changed, 48 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 9725102..ddf75f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,7 @@ limitations under the License.
     <maven.enforcer.plugin.version>1.3.1</maven.enforcer.plugin.version>
     <build.helper.maven.plugin.version>1.8</build.helper.maven.plugin.version>
     <commons.lang.version>2.6</commons.lang.version>
+    <bonecp.version>0.7.1.RELEASE</bonecp.version>
     <datanucleus.maven.plugin.version>3.3.0-release</datanucleus.maven.plugin.version>
     <datanucleus-api-jdo.version>3.2.1</datanucleus-api-jdo.version>
     <datanucleus-core.version>3.2.2</datanucleus-core.version>
@@ -100,6 +101,11 @@ limitations under the License.
         <version>${commons.lang.version}</version>
       </dependency>
       <dependency>
+        <groupId>com.jolbox</groupId>
+        <artifactId>bonecp</artifactId>
+        <version>${bonecp.version}</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.derby</groupId>
         <artifactId>derby</artifactId>
         <version>${derby.version}</version>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/pom.xml b/sentry-provider/sentry-provider-db/pom.xml
index d82a564..3fd5fc9 100644
--- a/sentry-provider/sentry-provider-db/pom.xml
+++ b/sentry-provider/sentry-provider-db/pom.xml
@@ -33,6 +33,10 @@ limitations under the License.
       <artifactId>commons-cli</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.jolbox</groupId>
+      <artifactId>bonecp</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
index 5c87d95..9c678d5 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
@@ -35,6 +35,7 @@ import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.Query;
 import javax.jdo.Transaction;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.sentry.core.model.db.DBModelAuthorizable.AuthorizableType;
 import org.apache.sentry.provider.common.ProviderConstants;
@@ -82,7 +83,21 @@ public class SentryStore {
     String jdbcUrl = conf.get(ServerConfig.SENTRY_STORE_JDBC_URL, "").trim();
     Preconditions.checkArgument(!jdbcUrl.isEmpty(), "Required parameter " +
         ServerConfig.SENTRY_STORE_JDBC_URL + " missing");
-    prop.setProperty("javax.jdo.option.ConnectionURL", jdbcUrl);
+    String user = conf.get(ServerConfig.SENTRY_STORE_JDBC_USER, ServerConfig.
+        SENTRY_STORE_JDBC_USER_DEFAULT).trim();
+    String pass = conf.get(ServerConfig.SENTRY_STORE_JDBC_PASS, ServerConfig.
+        SENTRY_STORE_JDBC_PASS_DEFAULT).trim();
+    prop.setProperty(ServerConfig.JAVAX_JDO_URL, jdbcUrl);
+    prop.setProperty(ServerConfig.JAVAX_JDO_USER, user);
+    prop.setProperty(ServerConfig.JAVAX_JDO_PASS, pass);
+    for (Map.Entry<String, String> entry : conf) {
+      String key = entry.getKey();
+      if (key.startsWith(ServerConfig.SENTRY_JAVAX_JDO_PROPERTY_PREFIX) ||
+          key.startsWith(ServerConfig.SENTRY_DATANUCLEUS_PROPERTY_PREFIX)) {
+        key = StringUtils.removeStart(key, ServerConfig.SENTRY_DB_PROPERTY_PREFIX);
+        prop.setProperty(key, entry.getValue());
+      }
+    }
     pmf = JDOHelper.getPersistenceManagerFactory(prop);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/ServiceConstants.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/ServiceConstants.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/ServiceConstants.java
index 29df4c4..59cb456 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/ServiceConstants.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/ServiceConstants.java
@@ -60,9 +60,22 @@ public class ServiceConstants {
     public static final String PROCESSOR_FACTORIES_DEFAULT =
         "org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory";
     public static final String SENTRY_STORE_JDBC_URL = "sentry.store.jdbc.url";
+    public static final String SENTRY_STORE_JDBC_USER = "sentry.store.jdbc.user";
+    public static final String SENTRY_STORE_JDBC_USER_DEFAULT = "Sentry";
+    public static final String SENTRY_STORE_JDBC_PASS = "sentry.store.jdbc.password";
+    public static final String SENTRY_STORE_JDBC_PASS_DEFAULT = "Sentry";
+
+    public static final String JAVAX_JDO_URL = "javax.jdo.option.ConnectionURL";
+    public static final String JAVAX_JDO_USER = "javax.jdo.option.ConnectionUserName";
+    public static final String JAVAX_JDO_PASS = "javax.jdo.option.ConnectionPassword";
+
+    public static final String SENTRY_DB_PROPERTY_PREFIX = "sentry.";
+    public static final String SENTRY_JAVAX_JDO_PROPERTY_PREFIX = SENTRY_DB_PROPERTY_PREFIX + "javax.jdo";
+    public static final String SENTRY_DATANUCLEUS_PROPERTY_PREFIX = SENTRY_DB_PROPERTY_PREFIX + "datanucleus";
 
     public static final ImmutableMap<String, String> SENTRY_STORE_DEFAULTS =
         ImmutableMap.<String, String>builder()
+    .put("datanucleus.connectionPoolingType", "BoneCP")
     .put("datanucleus.validateTables", "false")
     .put("datanucleus.validateColumns", "false")
     .put("datanucleus.validateConstraints", "false")
@@ -83,8 +96,6 @@ public class ServiceConstants {
     .put("javax.jdo.option.DetachAllOnCommit", "true")
     .put("javax.jdo.option.NonTransactionalRead", "false")
     .put("javax.jdo.option.NonTransactionalWrite", "false")
-    .put("javax.jdo.option.ConnectionUserName", "Sentry")
-    .put("javax.jdo.option.ConnectionPassword", "Sentry")
     .put("javax.jdo.option.Multithreaded", "true")
     .build();
 

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/src/main/resources/sentry-mysql-1.4.0.sql
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/resources/sentry-mysql-1.4.0.sql b/sentry-provider/sentry-provider-db/src/main/resources/sentry-mysql-1.4.0.sql
index 85d5085..2d843bc 100644
--- a/sentry-provider/sentry-provider-db/src/main/resources/sentry-mysql-1.4.0.sql
+++ b/sentry-provider/sentry-provider-db/src/main/resources/sentry-mysql-1.4.0.sql
@@ -94,6 +94,9 @@ ALTER TABLE `SENTRY_DB_PRIVILEGE`
 ALTER TABLE `SENTRY_ROLE`
   ADD CONSTRAINT `SENTRY_ROLE_ROLE_NAME_UNIQUE` UNIQUE (`ROLE_NAME`);
 
+ALTER TABLE `SENTRY_GROUP`
+  ADD CONSTRAINT `SENTRY_GRP_GRP_NAME_UNIQUE` UNIQUE (`GROUP_NAME`);
+
 ALTER TABLE `SENTRY_ROLE_DB_PRIVILEGE_MAP`
   ADD CONSTRAINT `SEN_RLE_DB_PRV_MAP_SN_RLE_FK`
   FOREIGN KEY (`ROLE_ID`) REFERENCES `SENTRY_ROLE`(`ROLE_ID`);

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/src/main/resources/sentry-oracle-1.4.0.sql
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/resources/sentry-oracle-1.4.0.sql b/sentry-provider/sentry-provider-db/src/main/resources/sentry-oracle-1.4.0.sql
index 0508d45..83d972b 100644
--- a/sentry-provider/sentry-provider-db/src/main/resources/sentry-oracle-1.4.0.sql
+++ b/sentry-provider/sentry-provider-db/src/main/resources/sentry-oracle-1.4.0.sql
@@ -81,6 +81,9 @@ ALTER TABLE "SENTRY_DB_PRIVILEGE"
 ALTER TABLE "SENTRY_ROLE"
   ADD CONSTRAINT "SENTRY_ROLE_ROLE_NAME_UNIQUE" UNIQUE ("ROLE_NAME");
 
+ALTER TABLE "SENTRY_GROUP"
+  ADD CONSTRAINT "SENTRY_GRP_GRP_NAME_UNIQUE" UNIQUE ("GROUP_NAME");
+
 ALTER TABLE "SENTRY_ROLE_DB_PRIVILEGE_MAP"
   ADD CONSTRAINT "SEN_RLE_DB_PRV_MAP_SN_RLE_FK"
   FOREIGN KEY ("ROLE_ID") REFERENCES "SENTRY_ROLE"("ROLE_ID") INITIALLY DEFERRED;

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fbf042e6/sentry-provider/sentry-provider-db/src/main/resources/sentry-postgres-1.4.0.sql
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/resources/sentry-postgres-1.4.0.sql b/sentry-provider/sentry-provider-db/src/main/resources/sentry-postgres-1.4.0.sql
index 7298923..5bf0471 100644
--- a/sentry-provider/sentry-provider-db/src/main/resources/sentry-postgres-1.4.0.sql
+++ b/sentry-provider/sentry-provider-db/src/main/resources/sentry-postgres-1.4.0.sql
@@ -94,6 +94,9 @@ ALTER TABLE ONLY "SENTRY_DB_PRIVILEGE"
 ALTER TABLE ONLY "SENTRY_ROLE"
   ADD CONSTRAINT "SENTRY_ROLE_ROLE_NAME_UNIQUE" UNIQUE ("ROLE_NAME");
 
+ALTER TABLE ONLY "SENTRY_GROUP"
+  ADD CONSTRAINT "SENTRY_GRP_GRP_NAME_UNIQUE" UNIQUE ("GROUP_NAME");
+
 ALTER TABLE ONLY "SENTRY_ROLE_DB_PRIVILEGE_MAP"
   ADD CONSTRAINT "SEN_RLE_DB_PRV_MAP_SN_RLE_FK"
   FOREIGN KEY ("ROLE_ID") REFERENCES "SENTRY_ROLE"("ROLE_ID") DEFERRABLE;