[jboss-jira] [JBoss JIRA] (AS7-582) Create aggregated JBoss AS Javadoc.

Ondrej Zizka (JIRA) jira-events at lists.jboss.org
Mon Apr 16 11:36:18 EDT 2012


    [ https://issues.jboss.org/browse/AS7-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12684576#comment-12684576 ] 

Ondrej Zizka edited comment on AS7-582 at 4/16/12 11:34 AM:
------------------------------------------------------------

So in the end I've used the data from build/build.xml, i.e.

{code}
        <module-def name="org.jboss.xts">
            <maven-resource group="org.jboss.jbossts" artifact="jbossxts"/>
            <maven-resource group="org.jboss.jbossts" artifact="jbossxts-api"/>
            <maven-resource group="org.jboss.jbossts" artifact="jbosstxbridge"/>
        </module-def>
{code}


{code}
#####  With exported dependencies, converted from module names to groupIDs:

echo '' > packages.tmp.txt
for i in `find build/src/main/resources/modules/ -name module.xml` ;  do
  FILE=`grep 'value="private"' --files-without-match  $i`;
  if [ "$FILE" == "" ] ; then continue; fi;
  echo "  Public module: $i"

  ##  Extract module name.
  PKG=`grep '<module .* name="' $FILE | head -1 | sed 's#<module .* name="\([^"]*\).*"#\1#' | sed 's#/\?>##'`;
  echo "    == $PKG"
  echo $PKG >> packages.tmp.txt

  ##  Exported dependencies.
  #grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' | sed 's#.*#    Exported dep: \0#'
  #grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' >> packages.tmp.txt
  grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' | tee --append packages.tmp.txt | sed 's#.*#    Exported dep: \0#'
done
sort packages.tmp.txt | uniq > modules.tmp2.txt
#cat packages.tmp2.txt | sed 's#.*#<include>\0:*</include>#'



###  Now we have a list of public API modules, e.g. javax.management.j2ee.api
###  Let's convert it into a list of groupIDs.
echo > groupIDs.tmp.txt
while read -r MODULE ; do
  echo "Artefacts for module: $MODULE"
  GROUP_ID=`xsltproc --stringparam moduleName "$MODULE"  convertModuleNameToGroupID.xsl build/build.xml`
  echo "  GroupID: $GROUP_ID"
  echo $GROUP_ID >> groupIDs.tmp.txt
done < modules.tmp2.txt
cat groupIDs.tmp.txt | sort | uniq > groupIDs.tmp-sorted.txt

###  Wrap it as includes for pom.xml.
cat groupIDs.tmp-sorted.txt | sed 's#.*#<include>\0</include>#'
{code}

And the complete output is:

{code}
com.h2database:h2
commons-configuration:commons-configuration
dom4j:dom4j
javax.activation:activation
javax.enterprise:cdi-api
javax.faces:jsf-api
javax.inject:javax.inject
javax.jws:jsr181-api
javax.mail:mail
javax.validation:validation-api
joda-time:joda-time
org.apache.juddi:juddi-client
org.apache.juddi.scout:scout
org.apache.juddi:uddi-ws
org.hibernate.common:hibernate-commons-annotations
org.hibernate:hibernate-core
org.hibernate:hibernate-entitymanager
org.hibernate:hibernate-envers
org.hibernate:hibernate-infinispan
org.hibernate:hibernate-validator
org.hibernate.javax.persistence:hibernate-jpa-2.0-api
org.hornetq:hornetq-core
org.hornetq:hornetq-jms
org.infinispan:infinispan-core
org.jboss.as:jboss-as-controller-client
org.jboss.com.sun.httpserver:httpserver
org.jboss.invocation:jboss-invocation
org.jboss:jboss-dmr
org.jboss:jboss-ejb-client
org.jboss:jboss-remote-naming
org.jboss.jbossts:jbosstxbridge
org.jboss.jbossts:jbossxts
org.jboss.jbossts:jbossxts-api
org.jboss:jboss-vfs
org.jboss.logging:jboss-logging
org.jboss.logging:jul-to-slf4j-stub
org.jboss.logmanager:jboss-logmanager
org.jboss.marshalling:jboss-marshalling
org.jboss.msc:jboss-msc
org.jboss.remotingjmx:remoting-jmx
org.jboss.remoting3:jboss-remoting
org.jboss.sasl:jboss-sasl
org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec
org.jboss.spec.javax.ejb:jboss-ejb-api_3.1_spec
org.jboss.spec.javax.el:jboss-el-api_2.2_spec
org.jboss.spec.javax.enterprise.deploy:jboss-jad-api_1.2_spec
org.jboss.spec.javax.faces:jboss-jsf-api_2.1_spec
org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec
org.jboss.spec.javax.jms:jboss-jms-api_1.1_spec
org.jboss.spec.javax.management.j2ee:jboss-j2eemgmt-api_1.1_spec
org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec
org.jboss.spec.javax.rmi:jboss-rmi-api_1.0_spec
org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.0_spec
org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.4_spec
org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec
org.jboss.spec.javax.servlet.jsp:jboss-jsp-api_2.2_spec
org.jboss.spec.javax.servlet.jstl:jboss-jstl-api_1.2_spec
org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec
org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_1.1_spec
org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.2_spec
org.jboss.spec.javax.xml.registry:jboss-jaxr-api_1.0_spec
org.jboss.spec.javax.xml.rpc:jboss-jaxrpc-api_1.1_spec
org.jboss.spec.javax.xml.soap:jboss-saaj-api_1.3_spec
org.jboss.spec.javax.xml.ws:jboss-jaxws-api_2.2_spec
org.jboss.threads:jboss-threads
org.jboss.weld:weld-api
org.jboss.ws:jbossws-api
org.jboss.xnio:xnio-api
org.jdom:jdom
org.jgroups:jgroups
org.osgi:org.osgi.core
org.picketbox:picketbox
org.picketbox:picketbox-commons
org.picketbox:picketbox-infinispan
org.picketlink:picketlink-bindings
org.picketlink:picketlink-bindings-jboss
org.picketlink:picketlink-fed
org.slf4j:jcl-over-slf4j
org.slf4j:slf4j-api
org.slf4j:slf4j-ext
wsdl4j:wsdl4j
xalan:serializer
xalan:xalan
xerces:xercesImpl
{code}

Does that seem correct?
                
      was (Author: ozizka):
    So in the end I've used the data from build/build.xml, i.e.

{code}
        <module-def name="org.jboss.xts">
            <maven-resource group="org.jboss.jbossts" artifact="jbossxts"/>
            <maven-resource group="org.jboss.jbossts" artifact="jbossxts-api"/>
            <maven-resource group="org.jboss.jbossts" artifact="jbosstxbridge"/>
        </module-def>
{code}


{code}
#####  With exported dependencies, converted from module names to groupIDs:

echo '' > packages.tmp.txt
for i in `find build/src/main/resources/modules/ -name module.xml` ;  do
  FILE=`grep 'value="private"' --files-without-match  $i`;
  if [ "$FILE" == "" ] ; then continue; fi;
  echo "  Public module: $i"

  ##  Extract module name.
  PKG=`grep '<module .* name="' $FILE | head -1 | sed 's#<module .* name="\([^"]*\).*"#\1#' | sed 's#/\?>##'`;
  echo "    == $PKG"
  echo $PKG >> packages.tmp.txt

  ##  Exported dependencies.
  #grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' | sed 's#.*#    Exported dep: \0#'
  #grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' >> packages.tmp.txt
  grep '<module name="' $FILE | grep 'export="true"' | sed 's#<module name="\([^"]*\).*"#\1#' | sed 's#/\?>##' | sed 's#\s*\(.*\)\s*#\1#' | tee --append packages.tmp.txt | sed 's#.*#    Exported dep: \0#'
done
sort packages.tmp.txt | uniq > modules.tmp2.txt
#cat packages.tmp2.txt | sed 's#.*#<include>\0:*</include>#'



###  Now we have a list of public API modules, e.g. javax.management.j2ee.api
###  Let's convert it into a list of groupIDs.
echo > groupIDs.tmp.txt
while read -r MODULE ; do
  echo "Artefacts for module: $MODULE"
  GROUP_ID=`xsltproc --stringparam moduleName "$MODULE"  convertModuleNameToGroupID.xsl build/build.xml`
  echo "  GroupID: $GROUP_ID"
  echo $GROUP_ID >> groupIDs.tmp.txt
done < modules.tmp2.txt
cat groupIDs.tmp.txt | sort | uniq > groupIDs.tmp-sorted.txt

###  Wrap it as includes for pom.xml.
cat groupIDs.tmp-sorted.txt | sed 's#.*#<include>\0</include>#'
{code}

And the complete output is:

{code}
com.h2database:h2
commons-configuration:commons-configuration
dom4j:dom4j
javax.activation:activation
javax.enterprise:cdi-api
javax.inject:javax.inject
javax.jws:jsr181-api
javax.mail:mail
javax.validation:validation-api
joda-time:joda-time
org.apache.juddi:juddi-client
org.apache.juddi.scout:scout
org.apache.juddi:uddi-ws
org.hibernate:hibernate-core org.hibernate.common:hibernate-commons-annotations org.hibernate:hibernate-entitymanager org.hibernate:hibernate-infinispan
org.hibernate:hibernate-envers
org.hibernate:hibernate-validator
org.hibernate.javax.persistence:hibernate-jpa-2.0-api
org.hornetq:hornetq-core org.hornetq:hornetq-jms
org.infinispan:infinispan-core
org.jboss.as:jboss-as-controller-client
org.jboss.com.sun.httpserver:httpserver
org.jboss.invocation:jboss-invocation
org.jboss:jboss-dmr
org.jboss:jboss-ejb-client
org.jboss:jboss-remote-naming
org.jboss.jbossts:jbossxts org.jboss.jbossts:jbossxts-api org.jboss.jbossts:jbosstxbridge
org.jboss:jboss-vfs
org.jboss.logging:jboss-logging
org.jboss.logging:jul-to-slf4j-stub
org.jboss.logmanager:jboss-logmanager
org.jboss.marshalling:jboss-marshalling
org.jboss.msc:jboss-msc
org.jboss.remotingjmx:remoting-jmx
org.jboss.remoting3:jboss-remoting
org.jboss.sasl:jboss-sasl
org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec
org.jboss.spec.javax.ejb:jboss-ejb-api_3.1_spec
org.jboss.spec.javax.el:jboss-el-api_2.2_spec
org.jboss.spec.javax.enterprise.deploy:jboss-jad-api_1.2_spec
org.jboss.spec.javax.faces:jboss-jsf-api_2.1_spec javax.faces:jsf-api
org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec
org.jboss.spec.javax.jms:jboss-jms-api_1.1_spec
org.jboss.spec.javax.management.j2ee:jboss-j2eemgmt-api_1.1_spec
org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec
org.jboss.spec.javax.rmi:jboss-rmi-api_1.0_spec
org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.0_spec
org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.4_spec
org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec
org.jboss.spec.javax.servlet.jsp:jboss-jsp-api_2.2_spec
org.jboss.spec.javax.servlet.jstl:jboss-jstl-api_1.2_spec
org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec
org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_1.1_spec
org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.2_spec
org.jboss.spec.javax.xml.registry:jboss-jaxr-api_1.0_spec
org.jboss.spec.javax.xml.rpc:jboss-jaxrpc-api_1.1_spec
org.jboss.spec.javax.xml.soap:jboss-saaj-api_1.3_spec
org.jboss.spec.javax.xml.ws:jboss-jaxws-api_2.2_spec
org.jboss.threads:jboss-threads
org.jboss.weld:weld-api
org.jboss.ws:jbossws-api
org.jboss.xnio:xnio-api
org.jdom:jdom
org.jgroups:jgroups
org.osgi:org.osgi.core
org.picketbox:picketbox org.picketbox:picketbox-infinispan org.picketbox:picketbox-commons
org.picketlink:picketlink-fed org.picketlink:picketlink-bindings org.picketlink:picketlink-bindings-jboss
org.slf4j:jcl-over-slf4j
org.slf4j:slf4j-api
org.slf4j:slf4j-ext
wsdl4j:wsdl4j
xalan:serializer xalan:xalan
xerces:xercesImpl
{code}

Does that seem correct?
                  
> Create aggregated JBoss AS Javadoc.
> -----------------------------------
>
>                 Key: AS7-582
>                 URL: https://issues.jboss.org/browse/AS7-582
>             Project: Application Server 7
>          Issue Type: Sub-task
>          Components: Build System
>            Reporter: David Lloyd
>            Assignee: Ondrej Zizka
>             Fix For: 7.1.2.Final-redhat1
>
>         Attachments: packages.tmp2.txt
>
>
> Identify artifacts corresponding to "supported" API modules.  Generate aggregated JavaDoc by fetching the source JAR for each API artifact.
> Enable APIViz if possible; use JBoss.org theme if possible.
> Javadoc'd packages should be grouped by API.
> It is also important that JDK classes are properly linked.  This might mean linking to oracle's doc site for JavaSE like many projects do, or perhaps using locally-generated javadoc from OpenJDK perhaps.
> Just to keep info on how to:
> {code:xml}
>                     <plugin>
>                         <groupId>org.apache.maven.plugins</groupId>
>                         <artifactId>maven-javadoc-plugin</artifactId>
>                         <version>2.8.1-SNAPSHOT</version>
>                         <executions>
>                             <execution>
>                                 <id>javadocs-dist</id>
>                                 <goals><goal>aggregate-jar</goal></goals>
>                                 <phase>validate</phase>
>                                 <configuration>
>                                    <includeDependencySources>true</includeDependencySources>
>                                    <dependencySourceIncludes>
>                                        <include>org.jboss.spec.javax.servlet:*</include>
>                                        <include>org.jboss.spec.javax.ejb:*</include>
>                                        ...
>                                    </dependencySourceIncludes>
>                                 </configuration>
>                             </execution>
>                         </executions>
>                     </plugin>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list