| #!/bin/bash -e |
| |
| VERSION=10 |
| WORKDIR=out |
| ALLOW_SNAPSHOT=0 |
| |
| # create work directory |
| if [ ! -d $WORKDIR ] ; then |
| mkdir -p $WORKDIR |
| fi |
| |
| # get bundle list |
| if [ -f $WORKDIR/slingfeature.txt ] ; then |
| echo "slingfeature.txt already present, not downloading"; |
| else |
| echo "Downloading bundle list for Sling $VERSION" |
| wget https://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.starter/$VERSION/org.apache.sling.starter-$VERSION-slingfeature.txt -O $WORKDIR/slingfeature.txt |
| fi |
| |
| # extract <artifactId>-<version> from slingfeature.txt |
| artifacts=$(awk -F '/' '/org.apache.sling\// { print $2 ":" $3 }' < $WORKDIR/slingfeature.txt) |
| |
| # add additional artifacts which are not part of the launchpad |
| # https://issues.apache.org/jira/browse/SLING-6766 |
| artifacts+="adapter-annotations:1.0.0" |
| |
| # checkout tags |
| for artifact in $artifacts; do |
| artifact_name=$(echo $artifact | sed 's/:.*//') |
| artifact_version=$(echo $artifact | sed 's/.*://') |
| branch_name="${artifact_name}-${artifact_version}" |
| artifact_dir="sling-${artifact_name}-${artifact_version}" |
| artifact_repo=$(echo $artifact_name | tr '.' '-') |
| artifact_repo="sling-${artifact_repo}" |
| |
| # - don't document Slingshot sample |
| # - threaddump was renamed and tag history is lost |
| # - validation core fails on Javadoc aggregation, but does not export anything |
| if [[ ${artifact_name} == *slingshot || ${artifact_name} = "org.apache.sling.extensions.threaddump" || ${artifact_name} == "org.apache.sling.validation.core" ]]; then |
| continue; |
| fi |
| |
| if [ -d $WORKDIR/$artifact_dir ] ; then |
| echo "Not checking out $artifact_dir, already present"; |
| else |
| if [[ "$artifact_version" == *-SNAPSHOT ]]; then |
| if [ $ALLOW_SNAPSHOT == 0 ] ; then |
| echo "Failing build due to SNAPSHOT artifact $artifact"; |
| exit 1; |
| else |
| continue |
| fi |
| fi |
| echo "Exporting $artifact from source control" |
| git clone https://github.com/apache/${artifact_repo} --branch ${branch_name} ${WORKDIR}/${artifact_dir} |
| if [ -f patches/$artifact ]; then |
| echo "Applying patch" |
| pushd $WORKDIR/$artifact_dir |
| patch -p0 < ../../patches/$artifact_dir |
| popd |
| fi |
| fi |
| done |
| |
| # generate dummy pom.xml |
| |
| echo "Generating pom.xml" |
| pushd $WORKDIR |
| |
| POM=pom.xml |
| echo "<project>" > $POM |
| echo " <modelVersion>4.0.0</modelVersion>" >> $POM |
| echo " <groupId>org.apache.sling</groupId>" >> $POM |
| echo " <artifactId>org.apache.sling.javadoc-builder</artifactId>" >> $POM |
| echo " <packaging>pom</packaging>" >> $POM |
| echo " <version>$VERSION</version>" >> $POM |
| echo >> $POM |
| echo " <parent>" >> $POM |
| echo " <groupId>org.apache</groupId>" >> $POM |
| echo " <artifactId>apache</artifactId>" >> $POM |
| echo " <version>8</version>" >> $POM |
| echo " </parent>" >> $POM |
| echo >> $POM |
| echo " <name>Apache Sling</name>" >> $POM |
| echo >> $POM |
| echo " <properties>" >> $POM |
| echo " <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>" >> $POM |
| echo " </properties>" >> $POM |
| echo >> $POM |
| echo " <modules> " >> $POM |
| |
| for artifact_dir in $(find . -type d -maxdepth 1 -name '*sling*'); do |
| echo " <module>$artifact_dir</module>" >> $POM |
| done |
| |
| echo " </modules>" >> $POM |
| echo "</project>" >> $POM |
| popd |
| |
| if [ ! -f $WORKDIR/src/main/javadoc/overview.html ] ; then |
| echo "Downloading javadoc overview file" |
| mkdir -p $WORKDIR/src/main/javadoc |
| wget https://svn.apache.org/repos/asf/sling/trunk/src/main/javadoc/overview.html -O $WORKDIR/src/main/javadoc/overview.html |
| fi |
| |
| # generate javadoc |
| |
| echo "Starting javadoc generation" |
| |
| pushd $WORKDIR |
| mvn -DexcludePackageNames="*.impl:*.internal:*.jsp:sun.misc:*.juli:*.testservices:*.integrationtest:*.maven:javax.*:org.osgi.*" \ |
| org.apache.maven.plugins:maven-javadoc-plugin:3.0.0:aggregate |
| popd |
| |
| echo "Generated Javadocs can be found in $WORKDIR/target/site/apidocs/" |