[ 
https://issues.apache.org/jira/browse/HBASE-17766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15937456#comment-15937456
 ] 

Yi Liang commented on HBASE-17766:
----------------------------------

 [~busbey] [~stack][~jerryhe] [[email protected]]
After spending quite some time doing research and experiment, I found there are 
some limitations for showing up javadoc for hbase-spark scala code.

>From http://hbase.apache.org,  We have 4 sets of javadoc for hbase
(1) User API: http://hbase.apache.org/apidocs/index.html
(2) User API(TEST): http://hbase.apache.org/testapidocs/index.html
(3) Developer API: http://hbase.apache.org/devapidocs/index.html
(4) Developer API(TEST): http://hbase.apache.org/testdevapidocs/index.html

And each website above is corresponding to a <reportSet> in root pom. I am 
trying to add hbase-spark javadoc into one reportSet above, but it seems does 
not work. As I introduced in above comments, I use a plugin to generate java 
code for scala code and output it in ../hbase-spark/target/genjavadoc, and then 
use the maven-javadoc-plugin to generted javadoc for the java code. 

The limitations are:
I can not add ../hbase-spark/target/genjavadoc as a extra source path for one 
of  the reportSets, for the following reasons: 
(1) there is no extra-sourcepath configuration parameter for javadoc; there is 
one parameter called sourcepath, if you do not specify it, Javadoc tool 
searches for classes and corresponding source file from the current directory. 
and if you specify it, you need to list all needed sourcepathes.  And in our 
hbase root pom, we do not  specify it, if I specify it, i need to specify all 
the paths and also exclude all the unnecessary source file, which are too many 
troubles. See one error below about not exclude some unnecessary source file
{noformat}
[ERROR] 
/root/git/os/new-hbase/./hbase-archetypes/hbase-shaded-client-project/target/build-archetype/target/generated-sources/archetype/target/classes/archetype-resources/src/test/java/TestHelloHBase.java:1:
 error: illegal character: '#'
[ERROR] #set( $symbol_pound = '#' )
{noformat}
(2) If I add ../hbase-spark/target/genjavadoc as source file for some 
<reportSet> above, the mvn site command will report errors about the 
hbase-annotation doclet in javadoc.  See error below
{noformat}
[ERROR] Exit code: 1 - 
/root/git/os/new-hbase/hbase-spark/target/genjavadoc/org/apache/spark/sql/datasources/hbase/Field.java:16:
 error: illegal combination of modifiers: abstract and static
{noformat}

Here I can only come up with one workaround
1. Create a new <reportSet> called HBase-Spark API: 
http://hbase.apache.org/hbase-spark-api/index.html
2. In the current User API Website, in the hbase-spark package, we can attach a 
link to http://hbase.apache.org/hbase-spark-api/index.html, see screenshot 
attached. 

I want to see if this is ok and also like to hear any other better idea or 
solution.



> Generate Javadoc for hbase-spark module 
> ----------------------------------------
>
>                 Key: HBASE-17766
>                 URL: https://issues.apache.org/jira/browse/HBASE-17766
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Yi Liang
>            Assignee: Yi Liang
>             Fix For: 2.0.0
>
>         Attachments: spark-api.jpg, user-api.jpg
>
>
>  Scala classes in hbase-spark module aren't showing up in our API docs nor 
> our internal API docs. see https://hbase.apache.org/apidocs/ 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to