Repository: beam Updated Branches: refs/heads/master e053207f4 -> b80aac5e3
[BEAM-475] Build aggregate javadoc in the build. Having failed to make javadoc:aggregate work in a pom, this commit uses antrun to, well, run ant in order to create a Javadoc Monolith for publication to the website. Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/82df9b6b Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/82df9b6b Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/82df9b6b Branch: refs/heads/master Commit: 82df9b6b78863c1b7153eb7ff2a705c507dab05b Parents: e053207 Author: bimargulies-google <bimargul...@google.com> Authored: Fri Jan 13 15:24:30 2017 -0800 Committer: Davor Bonaci <da...@google.com> Committed: Tue Jan 31 12:19:07 2017 -0800 ---------------------------------------------------------------------- pom.xml | 111 ++++++++++++++-- sdks/java/javadoc/ant.xml | 91 +++++++++++++ sdks/java/javadoc/pom.xml | 291 +++++++++++++++++++++++++++++++++++++++++ sdks/java/pom.xml | 3 + 4 files changed, 486 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/82df9b6b/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 1c868a8..6776db1 100644 --- a/pom.xml +++ b/pom.xml @@ -130,6 +130,7 @@ <protobuf.version>3.1.0</protobuf.version> <pubsub.version>v1-rev10-1.22.0</pubsub.version> <slf4j.version>1.7.14</slf4j.version> + <spark.version>1.6.2</spark.version> <stax2.version>3.1.4</stax2.version> <storage.version>v1-rev71-1.22.0</storage.version> <woodstox.version>4.4.1</woodstox.version> @@ -148,6 +149,8 @@ <module>sdks</module> <module>runners</module> <module>examples</module> + <!-- sdks/java/javadoc builds project-wide Javadoc. It has to run last. --> + <module>sdks/java/javadoc</module> </modules> <profiles> @@ -162,9 +165,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> - <configuration> - <additionalparam>${beam.javadoc_opts}</additionalparam> - </configuration> <executions> <execution> <id>javadoc</id> @@ -322,11 +322,35 @@ <dependency> <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-flink_2.10-examples</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-java-core</artifactId> <version>${project.version}</version> </dependency> <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-extensions-join-library</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-extensions-sorter</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-harness</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId> <version>${project.version}</version> @@ -334,12 +358,54 @@ <dependency> <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-elasticsearch</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-hdfs</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-jdbc</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-jms</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-java-io-kafka</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-kinesis</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-mongodb</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-mqtt</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> <artifactId>beam-runners-core-java</artifactId> <version>${project.version}</version> </dependency> @@ -381,6 +447,12 @@ </dependency> <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-examples-java8</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-all</artifactId> <version>${grpc.version}</version> @@ -860,6 +932,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.8</version> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.17</version> <dependencies> @@ -974,9 +1052,22 @@ </plugin> <plugin> + <!-- Set up Javadoc configuration for javadoc run via in the Maven + build. Beam only uses the plugin to create the individual javadoc + attached artifacts used for IDEs. The combined javadoc for the + website is built in the sdks/java/javadoc directory. Rather than + duplicate a raft of configuration between the ant.xml there and + here, we leave things simple here. --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.3</version> + <configuration> + <additionalparam>${beam.javadoc_opts}</additionalparam> + <windowtitle>Apache Beam SDK for Java, version ${project.version} API</windowtitle> + <doctitle>Apache Beam SDK for Java, version ${project.version}</doctitle> + <use>false</use> + <quiet>true</quiet> + </configuration> </plugin> <plugin> @@ -1020,7 +1111,13 @@ <artifactId>versions-maven-plugin</artifactId> <version>2.1</version> </plugin> - + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.12</version> + </plugin> + <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> @@ -1160,12 +1257,6 @@ </plugin> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.10</version> - </plugin> - - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> http://git-wip-us.apache.org/repos/asf/beam/blob/82df9b6b/sdks/java/javadoc/ant.xml ---------------------------------------------------------------------- diff --git a/sdks/java/javadoc/ant.xml b/sdks/java/javadoc/ant.xml new file mode 100644 index 0000000..48b8913 --- /dev/null +++ b/sdks/java/javadoc/ant.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<!-- + Ant tasks used to create Javadoc across all of Beam. +--> +<project> + + <property name="collect.dir" location="target/collected"/> + <property name="output.dir" location="../target/site/javadoc"/> + + <!-- One target to do the work. It collects the sources and runs javadoc. --> + <target name="javadoc"> + <!-- suck up all the java code into one place. --> + <copy todir="${collect.dir}"> + <fileset dir=".."> + <include name="**/src/main/java/**/*.java"/> + <exclude name="**/maven-archetypes/**"/> + </fileset> + <!-- For each pathname, turn X/src/main/java/Y to Y. This + results in one Java source tree. --> + <mapper type="regexp" from="^.*/src/main/java/(.*)$$" to="\1"/> + </copy> + <!-- Run javadoc. --> + <javadoc sourcepath="${collect.dir}" + destdir="${output.dir}" + classpath="${compile_classpath}" + Overview="overview.html" + > + <!-- Get some Java8 options set up by Maven. --> + <arg line="${beam.javadoc_opts}"/> + <!-- Setup offline links for some packages. --> + <link href="http://avro.apache.org/docs/1.7.7/api/java/" + offline="true" packageListLoc="avro-docs"/> + <link + href="https://developers.google.com/api-client-library/java/google-api-java-client/reference/1.22.0/" + offline="true" packageListLoc="apiclient-docs"/> + <link + href="https://developers.google.com/api-client-library/java/google-oauth-java-client/reference/1.22.0/" + offline="true" packageListLoc="oauth-docs"/> + <link + href="https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/java/latest/" + offline="true" packageListLoc="bq-docs"/> + <link href="http://googlecloudplatform.github.io/google-cloud-java/0.8.0/apidocs/index.html" + offline="true" packageListLoc="datastore-docs"/> + <link href="http://google.github.io/guava/releases/20.0/api/docs/" + offline="true" packageListLoc="guava-docs"/> + <link href="http://fasterxml.github.io/jackson-annotations/javadoc/2.7/" + offline="true" packageListLoc="jackson-annotations-docs"/> + <link href="http://fasterxml.github.io/jackson-databind/javadoc/2.7/" + offline="true" packageListLoc="jackson-databind-docs"/> + <link href="http://hamcrest.org/JavaHamcrest/javadoc/1.3/" + offline="true" packageListLoc="hamcrest-docs"/> + <link href="http://www.joda.org/joda-time/apidocs" + offline="true" packageListLoc="joda-docs"/> + <link href="http://junit.sourceforge.net/javadoc/" + offline="true" packageListLoc="junit-docs"/> + + <excludepackage name="org.apache.beam.examples"/> + <excludepackage name="org.apache.beam.examples.common"/> + <excludepackage name="org.apache.beam.examples.cookbook"/> + <excludepackage name="org.apache.beam.examples.complete"/> + <excludepackage name="org.apache.beam.examples.complete.game"/> + <excludepackage name="org.apache.beam.examples.complete.game.injector"/> + <excludepackage name="org.apache.beam.examples.complete.game.utils"/> + <excludepackage name="org.apache.beam.runners.apex.translation"/> + <excludepackage name="org.apache.beam.runners.dataflow.internal"/> + <excludepackage name="org.apache.beam.runners.flink.examples"/> + <excludepackage name="org.apache.beam.runners.flink.translation"/> + <excludepackage name="org.apache.beam.runners.spark.examples"/> + <excludepackage name="org.apache.beam.runners.spark.translation"/> + <excludepackage name="org.openjdk.jmh.infra.generated"/> + </javadoc> + <!-- make a jar file to push to central --> + <jar destfile="${output.jar}" basedir="${output.dir}"/> + </target> +</project> http://git-wip-us.apache.org/repos/asf/beam/blob/82df9b6b/sdks/java/javadoc/pom.xml ---------------------------------------------------------------------- diff --git a/sdks/java/javadoc/pom.xml b/sdks/java/javadoc/pom.xml new file mode 100644 index 0000000..d9832b6 --- /dev/null +++ b/sdks/java/javadoc/pom.xml @@ -0,0 +1,291 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.beam</groupId> + <artifactId>beam-parent</artifactId> + <version>0.6.0-SNAPSHOT</version> + <relativePath>../../../pom.xml</relativePath> + </parent> + + <artifactId>beam-sdks-java-javadoc</artifactId> + + <name>Apache Beam :: SDKs :: Java :: Aggregated Javadoc</name> + <packaging>pom</packaging> + + <properties> + <output.jar>target/javadoc.jar</output.jar> + </properties> + <!-- + Javadoc needs all the dependencies of everything we are documenting. There are a few items + that are declared 'provided' or 'optional' in the components that uses them. Those are declared + as dependencies here, as well. + --> + <dependencies> + <!-- First list the project modules. --> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-apex</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-core-java</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-direct-java</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-flink_2.10</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-flink_2.10-examples</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-google-cloud-dataflow-java</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-spark</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-core</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-core</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-extensions-join-library</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-extensions-sorter</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-harness</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-elasticsearch</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-hdfs</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-jdbc</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-jms</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-kafka</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-kinesis</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-mongodb</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-sdks-java-io-mqtt</artifactId> + </dependency> + + <!-- provided and optional dependencies.--> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service</artifactId> + </dependency> + + <dependency> + <groupId>com.google.auto.value</groupId> + <artifactId>auto-value</artifactId> + </dependency> + + <dependency> + <groupId>com.google.cloud.datastore</groupId> + <artifactId>datastore-v1-protos</artifactId> + </dependency> + + <dependency> + <groupId>com.google.cloud.datastore</groupId> + <artifactId>datastore-v1-proto-client</artifactId> + </dependency> + + <dependency> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>stax2-api</artifactId> + <version>${stax2.version}</version> + </dependency> + + <!-- fix scope to be 'compile'.--> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-all</artifactId> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>compile</scope> + </dependency> + + <!-- optional --> + <dependency> + <groupId>org.apache.spark</groupId> + <artifactId>spark-core_2.10</artifactId> + <version>${spark.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.spark</groupId> + <artifactId>spark-streaming_2.10</artifactId> + <version>${spark.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <!-- Turn off the usual dependency analysis; it gets very unhappy when then entire + mixed bag of nuts is all dragged into the classpath together. --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <goals><goal>analyze-only</goal></goals> + <configuration> + <skip>true</skip> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Turn off the enforcer: it dislikes 'harness'. --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.3.1</version> + <executions> + <execution> + <id>enforce</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <skip>true</skip> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>document</id> + <phase>package</phase> + <configuration> + <target> + <property name="compile_classpath" refid="maven.compile.classpath"/> + <property name="runtime_classpath" refid="maven.runtime.classpath"/> + <property name="test_classpath" refid="maven.test.classpath"/> + <property name="plugin_classpath" refid="maven.plugin.classpath"/> + <ant antfile="${basedir}/ant.xml"> + <target name="javadoc"/> + </ant> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>attach-artifacts</id> + <phase>package</phase> + <goals> + <goal>attach-artifact</goal> + </goals> + <configuration> + <artifacts> + <artifact> + <file>${output.jar}</file> + </artifact> + </artifacts> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> http://git-wip-us.apache.org/repos/asf/beam/blob/82df9b6b/sdks/java/pom.xml ---------------------------------------------------------------------- diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml index a1a914b..a09a6be 100644 --- a/sdks/java/pom.xml +++ b/sdks/java/pom.xml @@ -40,6 +40,9 @@ <module>io</module> <module>maven-archetypes</module> <module>extensions</module> + <!-- javadoc runs directly from the root parent as the last module + in the build to be able to capture runner-specific javadoc. + <module>javadoc</module> --> </modules> <profiles>