Repository: incubator-ranger Updated Branches: refs/heads/master 7fc7c9f27 -> 351e26fa4
RANGER-197: Fixed the source code compilation issues related to SNAPSHOT library dependencies Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/351e26fa Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/351e26fa Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/351e26fa Branch: refs/heads/master Commit: 351e26fa45f12f31d6a73e26973dc31d3cf39e03 Parents: 7fc7c9f Author: sneethiraj <[email protected]> Authored: Tue Dec 9 18:47:19 2014 -0500 Committer: sneethiraj <[email protected]> Committed: Tue Dec 9 18:47:19 2014 -0500 ---------------------------------------------------------------------- .../security/access/XaAccessControlLists.java | 79 ++++++++++++++++++-- .../access/XaAccessControlListsTest.java | 43 +++++++++++ pom.xml | 10 +-- 3 files changed, 122 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/351e26fa/hbase-agent/src/main/java/org/apache/hadoop/hbase/security/access/XaAccessControlLists.java ---------------------------------------------------------------------- diff --git a/hbase-agent/src/main/java/org/apache/hadoop/hbase/security/access/XaAccessControlLists.java b/hbase-agent/src/main/java/org/apache/hadoop/hbase/security/access/XaAccessControlLists.java index 6dcb985..8313532 100644 --- a/hbase-agent/src/main/java/org/apache/hadoop/hbase/security/access/XaAccessControlLists.java +++ b/hbase-agent/src/main/java/org/apache/hadoop/hbase/security/access/XaAccessControlLists.java @@ -19,17 +19,86 @@ package org.apache.hadoop.hbase.security.access; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import org.apache.hadoop.hbase.TableExistsException; import org.apache.hadoop.hbase.master.MasterServices; -import org.apache.hadoop.hbase.security.access.AccessControlLists; +import org.apache.log4j.Logger; + public class XaAccessControlLists { + + private static final Logger LOG = Logger.getLogger(XaAccessControlLists.class) ; + public static void init(MasterServices master) throws IOException { - try { - AccessControlLists.init(master); - } catch(TableExistsException excp) { - // ignore + + Class<AccessControlLists> accessControlListsClass = AccessControlLists.class ; + String cName = accessControlListsClass.getName() ; + + Class<?>[] params = new Class[1] ; + params[0] = MasterServices.class ; + + for (String mname : new String[] { "init", "createACLTable" } ) { + try { + try { + Method m = accessControlListsClass.getDeclaredMethod(mname, params) ; + if (m != null) { + try { + + try { + m.invoke(null, master) ; + logInfo("Execute method name [" + mname + "] in Class [" + cName + "] is successful."); + } catch (InvocationTargetException e) { + Throwable cause = e ; + boolean tableExistsExceptionFound = false ; + if (e != null) { + Throwable ecause = e.getTargetException() ; + if (ecause != null) { + cause = ecause ; + if (ecause instanceof TableExistsException) { + tableExistsExceptionFound = true ; + } + } + } + if (! tableExistsExceptionFound) { + logError("Unable to execute the method [" + mname + "] on [" + cName + "] due to exception", cause) ; + throw new IOException(cause) ; + } + } + return ; + } catch (IllegalArgumentException e) { + logError("Unable to execute method name [" + mname + "] in Class [" + cName + "].", e); + throw new IOException(e) ; + } catch (IllegalAccessException e) { + logError("Unable to execute method name [" + mname + "] in Class [" + cName + "].", e); + throw new IOException(e) ; + } + } + } + catch(NoSuchMethodException nsme) { + logInfo("Unable to get method name [" + mname + "] in Class [" + cName + "]. Ignoring the exception"); + } + } catch (SecurityException e) { + logError("Unable to get method name [" + mname + "] in Class [" + cName + "].", e); + throw new IOException(e) ; + } } + throw new IOException("Unable to initialize() [" + cName + "]") ; + } + + + private static void logInfo(String msg) { + // System.out.println(msg) ; + LOG.info(msg) ; } + + private static void logError(String msg, Throwable t) { +// System.err.println(msg) ; +// if (t != null) { +// t.printStackTrace(System.err); +// } + LOG.error(msg, t); + } + } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/351e26fa/hbase-agent/src/test/java/org/apache/hadoop/hbase/security/access/XaAccessControlListsTest.java ---------------------------------------------------------------------- diff --git a/hbase-agent/src/test/java/org/apache/hadoop/hbase/security/access/XaAccessControlListsTest.java b/hbase-agent/src/test/java/org/apache/hadoop/hbase/security/access/XaAccessControlListsTest.java new file mode 100644 index 0000000..4035ab4 --- /dev/null +++ b/hbase-agent/src/test/java/org/apache/hadoop/hbase/security/access/XaAccessControlListsTest.java @@ -0,0 +1,43 @@ +package org.apache.hadoop.hbase.security.access; + +import java.io.IOException; + +import org.apache.hadoop.hbase.master.MasterServices; +import org.junit.After; +import org.junit.Assert; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class XaAccessControlListsTest { + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testInit() { + IOException exceptionFound = null ; + try { + MasterServices service = null ; + XaAccessControlLists.init(service) ; + } catch (IOException e) { + exceptionFound = e ; + } + Assert.assertFalse("Expected to get a NullPointerExecution after init method Execution - Found [" + exceptionFound + "]", (!(exceptionFound != null && exceptionFound.getCause() instanceof NullPointerException))) ; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/351e26fa/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b10db9d..38590d5 100644 --- a/pom.xml +++ b/pom.xml @@ -78,11 +78,11 @@ <google.guava.version>17.0</google.guava.version> <gson.version>2.2.4</gson.version> <guava.version>11.0.2</guava.version> - <hadoop-auth.version>3.0.0-SNAPSHOT</hadoop-auth.version> - <hadoop-common.version>3.0.0-SNAPSHOT</hadoop-common.version> - <hadoop.version>3.0.0-SNAPSHOT</hadoop.version> + <hadoop-auth.version>2.6.0</hadoop-auth.version> + <hadoop-common.version>2.6.0</hadoop-common.version> + <hadoop.version>2.6.0</hadoop.version> <hamcrest.all.version>1.3</hamcrest.all.version> - <hbase.version>0.99.2-SNAPSHOT</hbase.version> + <hbase.version>0.99.2</hbase.version> <hive.version>0.14.0-SNAPSHOT</hive.version> <javassist.version>3.12.1.GA</javassist.version> <javax.persistence.version>2.1.0</javax.persistence.version> @@ -92,7 +92,7 @@ <junit.version>4.11</junit.version> <mockito.version>1.8.4</mockito.version> <hamcrest-version>1.3</hamcrest-version> - <knox.gateway.version>0.5.0-SNAPSHOT</knox.gateway.version> + <knox.gateway.version>0.5.0</knox.gateway.version> <local.lib.dir>${project.basedir}/../lib/local</local.lib.dir> <log4j.version>1.2.17</log4j.version> <mysql-connector-java.version>5.1.31</mysql-connector-java.version>
