Hi,
I declare I do not know a lot about JAVA or MAVEN. What I have discovered is
this:
The tests when building RANGER (and its plugins) only apply to the build.
However, it seems that whoever is developing this has a far different setup to
any folks who may have a requirement to use this software.
Starting with a vanilla system (no repository) the ranger-2.4.0 software fails
to build. I make some changes to some versions with some POM or other and it
continues up to a point but fails again. I then avoid the assembly:assembly
install phases and end up with a bunch of tar.gz files. GREAT! I think.
Ranger-admin installs and runs fine. I install usersync. Seems to run but does
nothing. Imagine my utter surprise when I look inside ranger-ugsync-site.xml
and see
<property>
<name>ranger.usersync.enabled</name>
<value>false</value>
</property>
Now, I ask myself are these people thinking clearly? What is going on?
If a person DOWNLOADS the software, BUILDS the software, INSTALLS the software
and RUNS the software, any sane individual would expect that the person
actually wanted to make use of it! So WHY WHY WHY is this option false?
I continue with other plugins. I extract the TAR and enable the plugin but, yet
again problems. It seems that my decision to not pursue the build past the
(failed) assembly phase may be the problem. So I spent more days trying to make
it semi-clear as to why I have to go further in the build. I see dozens of
phantomjs errors and it seems a fix is to set OPENSSL_CONF=/dev/null. I have no
idea why this is or why the build actually complains about a different thing
altogether.
I continue and all seems well. NO more build errors. WHOOO!
However, when I come to enable plugins I get
Unable to store password in non-plain text format. Error: [SLF4J: Failed to
load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/commons/logging/LogFactory
at org.apache.hadoop.fs.FileSystem.<clinit>(FileSystem.java:170)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)
at
org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89)
at
org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:85)
at
org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49)
at
org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41)
at
org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100)
at
org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:73)
at
org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:74)
at
org.apache.ranger.credentialapi.buildks.createCredential(buildks.java:87)
at org.apache.ranger.credentialapi.buildks.main(buildks.java:41)
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.logging.LogFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 11 more]
Exiting plugin installation
...and now I am having to troubleshoot this problem also.
So I guess my questions are these:
WHY is it that these build problems are NEVER found by the people developing
the software? It seems that they may not begin with a clean maven/system slate
and have artifacts sitting around which the rest of us do not seem to possess.
WHY is it that no one seems to actually INSTALL and try to run the software.
Because, surely if they had the same build problems as the rest of us, they
would encounter the same install problems as the rest of us.
I tried with 2.5.0 but gave up early when it seems that usersync is not logging
ANYTHING with this version.
Do you suppose that, if people had to pay for this, that the due diligence
would be undertaken and MOST EGREGIOUSLY, any documentation would not be so
incredibly out of date, completely useless at some points, and absolutely
non-existent for almost everything else.
Yours unhappily
Marc