INTERNAL

Hi,

I hope someone can help. I know that the ranger email groups are seriously 
underpopulated.

I am NOT a maven or java person.  I am just a regular admin trying to get a 
plugin built for use.

The build fails (for 2.6, 2.7) here:

[WARNING] [ENUNCIATE] [javac] [ERROR] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/credentialbuilder/2.7.0/credentialbuilder-2.7.0-sources.jar!/org/apache/ranger/credentialapi/CredentialReader.java]:30:8
 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/credentialbuilder/2.7.0/credentialbuilder-2.7.0-sources.jar!/org/apache/ranger/credentialapi/CredentialReader.java:30:
 error: duplicate class: org.apache.ranger.credentialapi.CredentialReader
[WARNING] [ENUNCIATE] [javac] 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/credentialbuilder/2.7.0/credentialbuilder-2.7.0-sources.jar!/org/apache/ranger/credentialapi/CredentialReader.java:30:
 error: duplicate class: org.apache.ranger.credentialapi.CredentialReader
[WARNING] [ENUNCIATE] [javac] public class CredentialReader {
[WARNING] [ENUNCIATE] [javac]        ^
[WARNING] [ENUNCIATE] [javac] [ERROR] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java]:22:37
 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java:22:
 error: package com.google.common.annotations does not exist
[WARNING] [ENUNCIATE] [javac] 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java:22:
 error: package com.google.common.annotations does not exist
[WARNING] [ENUNCIATE] [javac] import 
com.google.common.annotations.VisibleForTesting;
[WARNING] [ENUNCIATE] [javac]                                     ^
[WARNING] [ENUNCIATE] [javac] [ERROR] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java]:94:6
 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java:94:
 error: cannot find symbol
[WARNING] [ENUNCIATE] [javac] 
/home/marc.hoppins.ipa/.m2/repository/org/apache/ranger/ranger-metrics/2.7.0/ranger-metrics-2.7.0-sources.jar!/org/apache/ranger/metrics/source/RangerMetricsContainerSource.java:94:
 error: cannot find symbol
[WARNING] [ENUNCIATE] [javac]     @VisibleForTesting
[WARNING] [ENUNCIATE] [javac]      ^
[WARNING] [ENUNCIATE] [javac]   symbol:   class VisibleForTesting
[WARNING] [ENUNCIATE] [javac]   location: class 
org.apache.ranger.metrics.source.RangerMetricsContainerSource
[WARNING] [ENUNCIATE] [javac] [NOTE] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/apache-ranger-2.7.0/security-admin/src/main/java/org/apache/ranger/common/db/RangerTransactionSynchronizationAdapter.java]:-1:-1
 Note: Some input files use or override a deprecated API.
[WARNING] [ENUNCIATE] [javac] Note: Some input files use or override a 
deprecated API.
[WARNING] [ENUNCIATE] [javac] [NOTE] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/apache-ranger-2.7.0/security-admin/src/main/java/org/apache/ranger/common/db/RangerTransactionSynchronizationAdapter.java]:-1:-1
 Note: Recompile with -Xlint:deprecation for details.
[WARNING] [ENUNCIATE] [javac] Note: Recompile with -Xlint:deprecation for 
details.
[WARNING] [ENUNCIATE] [javac] [NOTE] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/apache-ranger-2.7.0/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java]:-1:-1
 Note: Some input files use unchecked or unsafe operations.
[WARNING] [ENUNCIATE] [javac] Note: Some input files use unchecked or unsafe 
operations.
[WARNING] [ENUNCIATE] [javac] [NOTE] 
com.webcohesion.enunciate.Enunciate$URLFileObject[file:/home/marc.hoppins.ipa/apache-ranger-2.7.0/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java]:-1:-1
 Note: Recompile with -Xlint:unchecked for details.
[WARNING] [ENUNCIATE] [javac] Note: Recompile with -Xlint:unchecked for details.

But I have no idea why/where com.google.commons.annotations appears from guava 
and I have no clue as to why a class would get classed as 'duplicated'.

What I DID see was this for CredentialReader.java:

package org.apache.ranger.credentialapi;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.alias.CredentialProvider;
import org.apache.hadoop.security.alias.CredentialProviderFactory;
import org.apache.hadoop.security.alias.JavaKeyStoreProvider;
public class CredentialReader {

        public static String getDecryptedString(String 
CrendentialProviderPath,String alias, String storeType) {
                  String credential=null;
                  try{
                          if(CrendentialProviderPath==null || 
alias==null||CrendentialProviderPath.trim().isEmpty()||alias.trim().isEmpty()){
                                  return null;
                          }
                          char[] pass = null;
                          Configuration conf = new Configuration();
                          String 
crendentialProviderPrefixJceks=JavaKeyStoreProvider.SCHEME_NAME + "://file";
                          String 
crendentialProviderPrefixLocalJceks="localjceks://file";
                          
crendentialProviderPrefixJceks=crendentialProviderPrefixJceks.toLowerCase();

                          String crendentialProviderPrefixBcfks= "bcfks" + 
"://file";
                          String crendentialProviderPrefixLocalBcfks= 
"localbcfks" + "://file";
                          
crendentialProviderPrefixBcfks=crendentialProviderPrefixBcfks.toLowerCase();
                          
crendentialProviderPrefixLocalBcfks=crendentialProviderPrefixLocalBcfks.toLowerCase();

                          
CrendentialProviderPath=CrendentialProviderPath.trim();
                          alias=alias.trim();
                          
if(CrendentialProviderPath.toLowerCase().startsWith(crendentialProviderPrefixJceks)
 ||
                                          
CrendentialProviderPath.toLowerCase().startsWith(crendentialProviderPrefixLocalJceks)
 ||
                                          
CrendentialProviderPath.toLowerCase().startsWith(crendentialProviderPrefixBcfks)
 ||
                                          
CrendentialProviderPath.toLowerCase().startsWith(crendentialProviderPrefixLocalBcfks)){
                                  
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
                                                  //UserProvider.SCHEME_NAME + 
":///," +
                                                  CrendentialProviderPath);
                          }else{
                                  if(CrendentialProviderPath.startsWith("/")){
                                          
if(StringUtils.equalsIgnoreCase(storeType, "bcfks")) {
                                                  
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, 
CrendentialProviderPath);
                                          } else {
                                                  
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
                                                                  
//UserProvider.SCHEME_NAME + ":///," +
                                                                  
JavaKeyStoreProvider.SCHEME_NAME + "://file" + CrendentialProviderPath);
                                          }

                                  }else{
                                          
conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
                                                          
//UserProvider.SCHEME_NAME + ":///," +
                                                          
JavaKeyStoreProvider.SCHEME_NAME + "://file/" + CrendentialProviderPath);
                                  }
                          }
                          List<CredentialProvider> providers = 
CredentialProviderFactory.getProviders(conf);
                          List<String> aliasesList=new ArrayList<String>();
                          CredentialProvider.CredentialEntry credEntry=null;
                          for(CredentialProvider provider: providers) {
                      //System.out.println("Credential Provider :" + provider);
                                  aliasesList=provider.getAliases();
                                  if(aliasesList!=null && 
aliasesList.contains(alias.toLowerCase())){
                                          credEntry=null;
                                          credEntry= 
provider.getCredentialEntry(alias.toLowerCase());
                                          pass = credEntry.getCredential();
                                          if(pass!=null && pass.length>0){
                                                  
credential=String.valueOf(pass);
                                                  break;
                                          }
                                  }
                          }
                  }catch(Exception ex){
                          ex.printStackTrace();
                          credential=null;
                  }
                  return credential;
          }
}

Is ANYONE aware that Crendential is not Credential?

If someone knows how to resolve the build errors, I'd appreciate the assist. I 
do not relay care to learn java, or more of maven other than build.use. I would 
prefer to see released binary tarballs but what the hey.

Marc

Reply via email to