Larry McCay created KNOX-713:
--------------------------------

             Summary: Knox Shell HDFS.get.Request is Package Private
                 Key: KNOX-713
                 URL: https://issues.apache.org/jira/browse/KNOX-713
             Project: Apache Knox
          Issue Type: Bug
          Components: ClientDSL
            Reporter: Larry McCay
            Assignee: Larry McCay
             Fix For: 0.9.1


As raised on the user@ list by Chris Snow, the Knox ClientDSL classes for the 
HDFS Request are package private. This causes compilation errors when 
developing a program that leverages them in a different package namespace.

Chris provided the following example:

{code}
package net.christophersnow;

import org.apache.hadoop.gateway.shell.Hadoop;
import org.apache.hadoop.gateway.shell.hdfs.Hdfs;

public class TestKnox {
    public static void main(String[] args) {
        Hadoop session = Hadoop.login( "test", "test", "test" );
        String text = Hdfs.get( session ).from( "test" ).now().getString();     
        session.shutdown();
    }
}
{code}

Which results in the following errors:

{code}
:compileJava/home/travis/build/snowch/knox-java-example/src/main/java/net/christophersnow/TestKnox.java:12:
 error: from(String) in Request is defined in an inaccessible class or interface
        String text = Hdfs.get( session ).from( "test" ).now().getString();
                                         ^
/home/travis/build/snowch/knox-java-example/src/main/java/net/christophersnow/TestKnox.java:12:
 error: now() in AbstractRequest is defined in an inaccessible class or 
interface
        String text = Hdfs.get( session ).from( "test" ).now().getString();
                                                        ^
  where T is a type-variable:
    T extends Object declared in class AbstractRequest
/home/travis/build/snowch/knox-java-example/src/main/java/net/christophersnow/TestKnox.java:12:
 error: getString() in BasicResponse is defined in an inaccessible class or 
interface
        String text = Hdfs.get( session ).from( "test" ).now().getString();
                                                              ^
3 errors
 FAILED
{code}

The Request inner classes need to be made public across all of the service 
clientDSL code.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to