Repository: incubator-ratis Updated Branches: refs/heads/master e0a90d788 -> f04ac8590
RATIS-26 Flatten maven layout and compile shaded atifacts by default Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/f04ac859 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/f04ac859 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/f04ac859 Branch: refs/heads/master Commit: f04ac8590e8f5f9dcd479087282696b3e574c5ac Parents: e0a90d7 Author: Enis Soztutar <[email protected]> Authored: Fri Feb 24 10:49:32 2017 -0800 Committer: Enis Soztutar <[email protected]> Committed: Fri Feb 24 17:46:59 2017 -0800 ---------------------------------------------------------------------- BUILD.md | 11 - BUILDING.md | 66 +++++ pom.xml | 597 ++++++++++++++++++++++++++++++++++++-- ratis-assembly/pom.xml | 239 +++++++++++++++ ratis-client/pom.xml | 5 +- ratis-common/pom.xml | 19 +- ratis-examples/pom.xml | 11 +- ratis-grpc/pom.xml | 5 +- ratis-hadoop/pom.xml | 9 +- ratis-netty/pom.xml | 11 +- ratis-project-dist/pom.xml | 169 ----------- ratis-project/pom.xml | 409 -------------------------- ratis-proto-shaded/README.md | 23 -- ratis-proto-shaded/pom.xml | 77 ++--- ratis-server/pom.xml | 11 +- 15 files changed, 952 insertions(+), 710 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/BUILD.md ---------------------------------------------------------------------- diff --git a/BUILD.md b/BUILD.md deleted file mode 100644 index 708d4c5..0000000 --- a/BUILD.md +++ /dev/null @@ -1,11 +0,0 @@ -We shade protobuf and other libraries such as Netty, gRPC and Hadoop -so that applications using Raft may use protobuf and other libraries with versions different -from the versions used here. - -The library requires the shaded sources for compilation. To generate them, -run the following command under `raft-proto-shaded/` - -- `mvn package -Dcompile-protobuf -DskipTests` - -Then run your normal mvn commands to build the whole library. - http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/BUILDING.md ---------------------------------------------------------------------- diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 0000000..6fa19b7 --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,66 @@ +# Building +Ratis uses Apache Maven for the builds. A 3.0+ version of Maven is required as well as +at least Java-1.8. + +When Ratis is build for the first time, shaded protobuf files needs to be generated first +which happens only in the mvn package phase. That is why you should run: +`$ mvn install -DskipTests` +the first time the sources are checked out first. After doing that mvn compile or mvn test +can be used as normal. + +# Raft Proto Shaded + +We shade protos, protobuf and other libraries such as Netty, gRPC and Hadoop so that +applications using Raft may use protobuf and other libraries with versions different +from the versions used here. + +The library requires the shaded sources for compilation. The generated sources are stored in +`ratis-proto-shaded/src/main/java/`. They are not checked-in git though. + +If you want to force-compile the proto files (for example after changing them), you should +run with +$ mvn install -Dcompile-protobuf + +## What are shaded? + +| Original packages | Shaded packages | +| ----------------------------------|----------------------------------------------------------| +| `com.google.protobuf` | `org.apache.ratis.shaded.com.google.protobuf` | +| `io.grpc` | `org.apache.ratis.shaded.io.grpc` | +| `io.netty.handler.codec.protobuf` | `org.apache.ratis.shaded.io.netty.handler.codec.protobuf` | +| `org.apache.hadoop.ipc.protobuf` | `org.apache.ratis.shaded.org.apache.hadoop.ipc.protobuf` | + +The protos defined in this project are stored in the `org.apache.ratis.shaded.proto` package. + +# How to deploy + +To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml ) +``` +<settings> +<servers> + <server> + <id>apache.releases.https</id> + <username>ratis_committer</username> + <password>********</password> + </server> + + <server> + <id>apache.snapshots.https</id> + <username>ratis_committer</username> + <password>********</password> + </server> + +</servers> +</settings> +``` + +Then use +``` +$ mvn deploy +(or) +$ mvn -s /my/path/settings.xml deploy +``` +We also use release profile for building the release +``` +$ mvn install -Prelease -Papache-release +``` \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 57cb923..a62c384 100644 --- a/pom.xml +++ b/pom.xml @@ -17,11 +17,24 @@ 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> - <artifactId>ratis-main</artifactId> + <parent> + <groupId>org.apache</groupId> + <artifactId>apache</artifactId> + <version>18</version> + <relativePath/> + <!-- no parent resolution --> + </parent> + + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <name>Ratis Main</name> + <name>Ratis</name> <packaging>pom</packaging> + <description> + Apache Ratis is an open source java implementation for RAFT consensus protocol + </description> + <url>https://ratis.apache.org/</url> + <inceptionYear>2017</inceptionYear> <licenses> <license> @@ -30,10 +43,92 @@ </license> </licenses> + <modules> + <module>ratis-assembly</module> + <module>ratis-client</module> + <module>ratis-common</module> + <module>ratis-examples</module> + <module>ratis-grpc</module> + <module>ratis-hadoop</module> + <module>ratis-netty</module> + <module>ratis-proto-shaded</module> + <module>ratis-server</module> + </modules> + + <pluginRepositories> + <pluginRepository> + <id>apache.snapshots</id> + <url>http://repository.apache.org/snapshots/</url> + </pluginRepository> + </pluginRepositories> + + <scm> + <connection>scm:git:git://git.apache.org/incubator-ratis.git</connection> + <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-ratis.git</developerConnection> + <url>https://git-wip-us.apache.org/repos/asf?p=incubator-ratis.git</url> + </scm> + + <issueManagement> + <system>JIRA</system> + <url>http://issues.apache.org/jira/browse/RATIS</url> + </issueManagement> + + <!--<ciManagement> TODO + <system>Jenkins</system> + <url>http://builds.apache.org/job/Ratis-Master/</url> + </ciManagement>--> + + <mailingLists> + <mailingList> + <name>User List</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <post>[email protected]</post> + <archive>https://lists.apache.org/[email protected]</archive> + <otherArchives> + <otherArchive>http://mail-archives.apache.org/mod_mbox/ratis-user/</otherArchive> + </otherArchives> + </mailingList> + <mailingList> + <name>Developer List</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <post>[email protected]</post> + <archive>https://lists.apache.org/[email protected]</archive> + <otherArchives> + <otherArchive>http://mail-archives.apache.org/mod_mbox/ratis-dev/</otherArchive> + </otherArchives> + </mailingList> + <mailingList> + <name>Commits List</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <archive>https://lists.apache.org/[email protected]</archive> + <otherArchives> + <otherArchive>http://mail-archives.apache.org/mod_mbox/ratis-commits/</otherArchive> + </otherArchives> + </mailingList> + <mailingList> + <name>Issues List</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <archive>https://lists.apache.org/[email protected]</archive> + <otherArchives> + <otherArchive>http://mail-archives.apache.org/mod_mbox/ratis-issues/</otherArchive> + </otherArchives> + </mailingList> + </mailingLists> + + <developers> + <!-- TODO: Add developers --> + </developers> + + <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <!-- Maven plugin versions --> <maven-antrun-plugin.version>1.7</maven-antrun-plugin.version> <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version> <maven-bundle-plugin.version>2.5.3</maven-bundle-plugin.version> @@ -46,26 +141,194 @@ <maven-enforcer-plugin.version>1.3.1</maven-enforcer-plugin.version> <maven-install-plugin.version>2.5.1</maven-install-plugin.version> <maven-jar-plugin.version>3.0.2</maven-jar-plugin.version> - <maven-javadoc-plugin.version>2.9.1</maven-javadoc-plugin.version> + <maven-javadoc-plugin.version>2.10.3</maven-javadoc-plugin.version> <maven-resources-plugin.version>2.6</maven-resources-plugin.version> <maven-site-plugin.version>3.5</maven-site-plugin.version> <maven-source-plugin.version>2.3</maven-source-plugin.version> <maven-stylus-skin.version>1.5</maven-stylus-skin.version> <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version> <maven-xolstice-plugin.version>0.5.0</maven-xolstice-plugin.version> - + <maven-pdf-plugin.version>1.2</maven-pdf-plugin.version> + <build-helper-maven-plugin.version>1.9</build-helper-maven-plugin.version> + <exec-maven-plugin.version>1.3.1</exec-maven-plugin.version> + <make-maven-plugin.version>1.0-beta-1</make-maven-plugin.version> + <native-maven-plugin.version>1.0-alpha-8</native-maven-plugin.version> + <findbugs.version>3.0.0</findbugs.version> <apache-rat-plugin.version>0.10</apache-rat-plugin.version> <wagon-ssh.version>1.0</wagon-ssh.version> - <shell-executable>bash</shell-executable> + <!-- define the Java language version used by the compiler --> <javac.version>1.8</javac.version> + <java.min.version>${javac.version}</java.min.version> + <maven.min.version>3.0.4</maven.min.version> + + <!-- dependency versions --> + <commons-io.version>2.4</commons-io.version> + <commons-lang.version>2.6</commons-lang.version> + + <!-- Test properties --> + <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile> + <test.exclude.pattern>_</test.exclude.pattern> + <!-- number of threads/forks to use when running tests in parallel, see parallel-tests profile --> + <testsThreadCount>4</testsThreadCount> </properties> - <modules> - <module>ratis-proto-shaded</module> - <module>ratis-project</module> - </modules> + <dependencyManagement> + <dependencies> + <!-- Internal dependencies --> + <dependency> + <artifactId>ratis-client</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-client</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-common</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-common</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-examples</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-examples</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-grpc</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-grpc</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-hadoop</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-hadoop</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-netty</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-netty</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-proto-shaded</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-proto-shaded</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <artifactId>ratis-server</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + </dependency> + <dependency> + <artifactId>ratis-server</artifactId> + <groupId>org.apache.ratis</groupId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <!-- External dependencies --> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons-io.version}</version> + </dependency> + + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>${commons-lang.version}</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.7.10</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.7.10</version> + </dependency> + + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>20.0</version> + </dependency> + + <dependency> + <groupId>io.netty</groupId> + <artifactId>netty-all</artifactId> + <version>4.1.6.Final</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.8.5</version> + </dependency> + </dependencies> + </dependencyManagement> <build> <extensions> @@ -75,10 +338,69 @@ <version>1.5.0.Final</version> </extension> </extensions> - + <pluginManagement> <plugins> <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>${maven-clean-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>${build-helper-maven-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>${maven-install-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${maven-javadoc-plugin.version}</version> + <configuration> + <additionalparam>-Xmaxwarns 10000</additionalparam> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <version>${findbugs.version}</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>native-maven-plugin</artifactId> + <version>${native-maven-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>make-maven-plugin</artifactId> + <version>${make-maven-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>${maven-resources-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>${exec-maven-plugin.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pdf-plugin</artifactId> + <version>${maven-pdf-plugin.version}</version> + </plugin> + + <plugin> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-maven-plugins</artifactId> + <version>${hadoop.version}</version> + </plugin> + + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> @@ -102,6 +424,10 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${maven-assembly-plugin.version}</version> + <configuration> + <!--Defer to the ratis-assembly sub-module. It does all assembly--> + <skipAssembly>true</skipAssembly> + </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -132,6 +458,31 @@ </executions> </plugin> + <!-- General configuration for submodules who want to build a test jar --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>${maven-jar-plugin.version}</version> + <executions> + <execution> + <phase>prepare-package</phase> + <goals> + <!--This goal will install a -test.jar when we do install + See http://maven.apache.org/guides/mini/guide-attached-tests.html + --> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + <configuration> + <skipIfEmpty>true</skipIfEmpty> + <excludes> + <exclude>log4j.properties</exclude> + <exclude>*.jar</exclude> + </excludes> + </configuration> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> @@ -152,9 +503,27 @@ </includes> <excludes> <exclude>**/Test*$*.java</exclude> + <exclude>${test.exclude.pattern}</exclude> </excludes> </configuration> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <!--You need this profile. It'll sign your artifacts. + I'm not sure if this config. actually works though. + I've been specifying -Papache-release on the command-line + --> + <releaseProfiles>apache-release</releaseProfiles> + <!--This stops our running tests for each stage of maven release. + But it builds the test jar. From SUREFIRE-172. + --> + <arguments>-Dmaven.test.skip.exec ${arguments}</arguments> + <goals>${goals}</goals> + <pomFileName>pom.xml</pomFileName> + </configuration> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -165,6 +534,17 @@ <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <version>${apache-rat-plugin.version}</version> + <configuration> + <excludes> + <exclude>.gitattributes</exclude> + <exclude>.gitignore</exclude> + <exclude>.git/**</exclude> + <exclude>**/*.swp</exclude> + <exclude>**/*.iml</exclude> + <exclude>.idea/**</exclude> + <exclude>**/target/**</exclude> + </excludes> + </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -193,14 +573,15 @@ <artifactId>maven-bundle-plugin</artifactId> <version>${maven-bundle-plugin.version}</version> </plugin> - </plugins> - - </pluginManagement> <plugins> <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <inherited>false</inherited> @@ -218,25 +599,32 @@ <goal>enforce</goal> </goals> <phase>validate</phase> + <configuration> + <rules> + <!-- The earliest maven version we verify builds for via ASF Jenkins --> + <requireMavenVersion> + <version>[${maven.min.version},)</version> + <message>Maven is out of date. + Ratis requires at least version ${maven.min.version} of Maven to properly build from source. + You appear to be using an older version. You can use either "mvn -version" or + "mvn enforcer:display-info" to verify what version is active. + </message> + </requireMavenVersion> + <!-- The earliest JVM version we verify builds for via ASF Jenkins --> + <requireJavaVersion> + <version>[${java.min.version},)</version> + <message>Java is out of date. + Ratis requires at least version ${java.min.version} of the JDK to properly build from source. + You appear to be using an older version. You can use either "mvn -version" or + "mvn enforcer:display-info" to verify what version is active. + </message> + </requireJavaVersion> + </rules> + </configuration> </execution> </executions> </plugin> <plugin> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <configuration> - <excludes> - <exclude>.gitattributes</exclude> - <exclude>.gitignore</exclude> - <exclude>.git/**</exclude> - <exclude>**/*.swp</exclude> - <exclude>**/*.iml</exclude> - <exclude>.idea/**</exclude> - <exclude>**/target/**</exclude> - </excludes> - </configuration> - </plugin> - <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <inherited>true</inherited> @@ -247,6 +635,159 @@ <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pdf-plugin</artifactId> + <configuration> + <outputDirectory>${project.reporting.outputDirectory} + </outputDirectory> + <includeReports>false</includeReports> + </configuration> + </plugin> </plugins> </build> + + <profiles> + <profile> + <id>os.linux</id> + <activation> + <os> + <family>!Mac</family> + </os> + </activation> + <properties> + <build.platform>${os.name}-${os.arch}-${sun.arch.data.model} + </build.platform> + </properties> + </profile> + <profile> + <id>os.mac</id> + <activation> + <os> + <family>Mac</family> + </os> + </activation> + <properties> + <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform> + </properties> + </profile> + <profile> + <id>native-win</id> + <activation> + <os> + <family>Windows</family> + </os> + </activation> + <properties> + <!-- We must use this exact string for egd on Windows, because the --> + <!-- JVM will check for an exact string match on this. If found, it --> + <!-- will use a native entropy provider. This will not really --> + <!-- attempt to open a file at this path. --> + <java.security.egd>file:/dev/urandom</java.security.egd> + <bundle.snappy.in.bin>true</bundle.snappy.in.bin> + <bundle.openssl.in.bin>true</bundle.openssl.in.bin> + </properties> + </profile> + <profile> + <id>test-patch</id> + <activation> + <activeByDefault>false</activeByDefault> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <fork>true</fork> + <source>${javac.version}</source> + <target>${javac.version}</target> + <compilerArguments> + <Xlint/> + <Xmaxwarns>9999</Xmaxwarns> + </compilerArguments> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>release</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <!-- build javadoc jars per jar for publishing to maven --> + <id>module-javadocs</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + <configuration> + <destDir>${project.build.directory}</destDir> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <!-- builds source jars and attaches them to the project for publishing --> + <id>ratis-java-sources</id> + <phase>package</phase> + <goals> + <goal>jar-no-fork</goal> + <goal>test-jar-no-fork</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <executions> + <execution> + <id>dist-enforce</id> + <phase>package</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <enforceBytecodeVersion> + <maxJdkVersion>${java.min.version}</maxJdkVersion> + <message>Ratis has unsupported dependencies. + Ratis requires that all dependencies be compiled with version ${java.min.version} or earlier + of the JDK to properly build from source. You appear to be using a newer dependency. You can use + either "mvn -version" or "mvn enforcer:display-info" to verify what version is active. + Non-release builds can temporarily build with a newer JDK version by setting the + 'javac.source' property (eg. mvn -Djavac.source=1.8 clean package). + </message> + </enforceBytecodeVersion> + </rules> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-assembly/pom.xml b/ratis-assembly/pom.xml new file mode 100644 index 0000000..638b091 --- /dev/null +++ b/ratis-assembly/pom.xml @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. See accompanying LICENSE file. +--> +<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> + <artifactId>ratis</artifactId> + <groupId>org.apache.ratis</groupId> + <version>0.1-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>ratis-assembly</artifactId> + <groupId>org.apache.ratis</groupId> + <name>Ratis Project Assembly</name> + <version>0.1-SNAPSHOT</version> + + <packaging>pom</packaging> + + <properties> + <ratis.tmp.dir>${project.build.directory}/test</ratis.tmp.dir> + <test.build.data>${project.build.directory}/test/data</test.build.data> + <ratis.log.dir>${project.build.directory}/log</ratis.log.dir> + <test.build.webapps>${project.build.directory}/test-classes/webapps</test.build.webapps> + <test.cache.data>${project.build.directory}/test-classes</test.cache.data> + <test.build.classes>${project.build.directory}/test-classes</test.build.classes> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <id>default-jar</id> + <phase>never</phase> + </execution> + <execution> + <id>prepare-jar</id> + <phase>prepare-package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + <execution> + <id>prepare-test-jar</id> + <phase>prepare-package</phase> + <goals> + <goal>test-jar</goal> + </goals> + <configuration> + <includes> + <include>**/*.class</include> + <include>webapps/**</include> + </includes> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <version>${maven-source-plugin.version}</version> + <executions> + <execution> + <phase>prepare-package</phase> + <goals> + <goal>jar</goal> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + <configuration> + <attach>true</attach> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <configuration> + <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile> + <fork>true</fork> + <maxHeap>2048</maxHeap> + </configuration> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>${maven-assembly-plugin.version}</version> + <configuration> + <!--Else will use ratis-assembly as final name.--> + <finalName>ratis-${project.version}</finalName> + <skipAssembly>false</skipAssembly> + <appendAssemblyId>true</appendAssemblyId> + <tarLongFileMode>gnu</tarLongFileMode> + <!--<descriptors> TODO + <descriptor>${assembly.file}</descriptor> + </descriptors>--> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <!-- generates the file that will be used by the bin/ratis script in the dev env --> + <id>create-ratis-generated-classpath</id> + <phase>test</phase> + <goals> + <goal>build-classpath</goal> + </goals> + <configuration> + <outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <dependencies> + <!-- Intra-project dependencies --> + <dependency> + <artifactId>ratis-proto-shaded</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + + <dependency> + <artifactId>ratis-common</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-common</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + + <dependency> + <artifactId>ratis-client</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-client</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + + <dependency> + <artifactId>ratis-hadoop</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-hadoop</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + <dependency> + <artifactId>ratis-grpc</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-grpc</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + + <dependency> + <artifactId>ratis-netty</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-netty</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + + <dependency> + <artifactId>ratis-server</artifactId> + <groupId>org.apache.ratis</groupId> + </dependency> + <dependency> + <artifactId>ratis-server</artifactId> + <groupId>org.apache.ratis</groupId> + <type>test-jar</type> + </dependency> + </dependencies> + + <profiles> + <profile> + <id>release</id> + <build> + <plugins> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <!-- + Build an aggregation of our templated NOTICE file and the NOTICE files in our dependencies. + If MASSEMBLY-382 is fixed we could do this in the assembly + Currently relies on env, bash, find, and cat. + --> + <execution> + <!-- put all of the NOTICE files out of our dependencies --> + <id>unpack-dependency-notices</id> + <phase>prepare-package</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact> + <includes>**\/NOTICE,**\/NOTICE.txt</includes> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-client/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-client/pom.xml b/ratis-client/pom.xml index 16bb684..4c3dd58 100644 --- a/ratis-client/pom.xml +++ b/ratis-client/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-client</artifactId> <name>Ratis Client</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-common/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-common/pom.xml b/ratis-common/pom.xml index cc56073..0ffbb80 100644 --- a/ratis-common/pom.xml +++ b/ratis-common/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-common</artifactId> <name>Ratis Common</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> @@ -34,9 +35,23 @@ </dependency> <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> <dependency> <groupId>com.google.guava</groupId> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-examples/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-examples/pom.xml b/ratis-examples/pom.xml index 549d6ba..c5c3805 100644 --- a/ratis-examples/pom.xml +++ b/ratis-examples/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-examples</artifactId> <name>Ratis Examples</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> @@ -44,7 +45,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-client</artifactId> <groupId>org.apache.ratis</groupId> @@ -56,7 +57,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-server</artifactId> <groupId>org.apache.ratis</groupId> @@ -68,7 +69,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-hadoop</artifactId> <groupId>org.apache.ratis</groupId> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-grpc/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-grpc/pom.xml b/ratis-grpc/pom.xml index 69f40f5..6ffad7c 100644 --- a/ratis-grpc/pom.xml +++ b/ratis-grpc/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-grpc</artifactId> <name>Ratis gRPC Support</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-hadoop/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-hadoop/pom.xml b/ratis-hadoop/pom.xml index 7342bf0..f3be6a6 100644 --- a/ratis-hadoop/pom.xml +++ b/ratis-hadoop/pom.xml @@ -17,14 +17,19 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-hadoop</artifactId> <name>Ratis Hadoop Support</name> + <version>0.1-SNAPSHOT</version> + + <properties> + <hadoop.version>3.0.0-alpha1</hadoop.version> + </properties> <dependencies> <dependency> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-netty/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-netty/pom.xml b/ratis-netty/pom.xml index a6aed57..87dc7ef 100644 --- a/ratis-netty/pom.xml +++ b/ratis-netty/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-netty</artifactId> <name>Ratis Netty Support</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> @@ -44,7 +45,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-client</artifactId> <groupId>org.apache.ratis</groupId> @@ -56,7 +57,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-server</artifactId> <groupId>org.apache.ratis</groupId> @@ -68,7 +69,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-project-dist/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-project-dist/pom.xml b/ratis-project-dist/pom.xml deleted file mode 100644 index eb1fcc4..0000000 --- a/ratis-project-dist/pom.xml +++ /dev/null @@ -1,169 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. See accompanying LICENSE file. ---> -<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> - <artifactId>ratis-project</artifactId> - <groupId>org.apache.ratis</groupId> - <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project</relativePath> - </parent> - - <artifactId>ratis-project-dist</artifactId> - <groupId>org.apache.ratis</groupId> - <name>Ratis Project Dist POM</name> - <version>0.1-SNAPSHOT</version> - - <packaging>pom</packaging> - - <properties> - <ratis.tmp.dir>${project.build.directory}/test</ratis.tmp.dir> - <test.build.data>${project.build.directory}/test/data</test.build.data> - <ratis.log.dir>${project.build.directory}/log</ratis.log.dir> - <test.build.webapps>${project.build.directory}/test-classes/webapps</test.build.webapps> - <test.cache.data>${project.build.directory}/test-classes</test.cache.data> - <test.build.classes>${project.build.directory}/test-classes</test.build.classes> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <executions> - <execution> - <id>default-jar</id> - <phase>never</phase> - </execution> - <execution> - <id>prepare-jar</id> - <phase>prepare-package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - <execution> - <id>prepare-test-jar</id> - <phase>prepare-package</phase> - <goals> - <goal>test-jar</goal> - </goals> - <configuration> - <includes> - <include>**/*.class</include> - <include>webapps/**</include> - </includes> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <version>${maven-source-plugin.version}</version> - <executions> - <execution> - <phase>prepare-package</phase> - <goals> - <goal>jar</goal> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - <configuration> - <attach>true</attach> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <configuration> - <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile> - <fork>true</fork> - <maxHeap>2048</maxHeap> - </configuration> - </plugin> - </plugins> - </build> - - <profiles> - <profile> - <id>dist</id> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>tar</id> - <phase>package</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target if="tar"> - <!-- Using Unix script to preserve symlinks --> - <echo file="${project.build.directory}/dist-maketar.sh"> - cd "${project.build.directory}" - tar cf - ${project.artifactId}-${project.version} | gzip > ${project.artifactId}-${project.version}.tar.gz - </echo> - <exec executable="${shell-executable}" dir="${project.build.directory}" failonerror="true"> - <arg line="./dist-maketar.sh"/> - </exec> - </target> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <dependencies> - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-assemblies</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - <executions> - <execution> - <id>dist</id> - <phase>prepare-package</phase> - <goals> - <goal>single</goal> - </goals> - <configuration> - <appendAssemblyId>false</appendAssemblyId> - <attach>false</attach> - <finalName>${project.artifactId}-${project.version}</finalName> - <descriptorRefs> - <descriptorRef>hadoop-dist</descriptorRef> - </descriptorRefs> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-project/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-project/pom.xml b/ratis-project/pom.xml deleted file mode 100644 index dcd8384..0000000 --- a/ratis-project/pom.xml +++ /dev/null @@ -1,409 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. See accompanying LICENSE file. ---> -<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> - <artifactId>ratis-main</artifactId> - <groupId>org.apache.ratis</groupId> - <version>0.1-SNAPSHOT</version> - </parent> - - <artifactId>ratis-project</artifactId> - <groupId>org.apache.ratis</groupId> - <name>Ratis Project</name> - <packaging>pom</packaging> - - <modules> - <module>../ratis-project-dist</module> - <module>../ratis-common</module> - <module>../ratis-client</module> - <module>../ratis-server</module> - <module>../ratis-hadoop</module> - <module>../ratis-grpc</module> - <module>../ratis-netty</module> - <module>../ratis-examples</module> - </modules> - - <properties> - <!-- Set the Release year during release --> - <release-year>2016</release-year> - - <maven.test.redirectTestOutputToFile>true - </maven.test.redirectTestOutputToFile> - <test.exclude>_</test.exclude> - <test.exclude.pattern>_</test.exclude.pattern> - - <!-- number of threads/forks to use when running tests in parallel, see parallel-tests profile --> - <testsThreadCount>4</testsThreadCount> - - <test.build.dir>${project.build.directory}/test-dir</test.build.dir> - <test.build.data>${test.build.dir}</test.build.data> - - <findbugs.version>3.0.0</findbugs.version> - - <maven-pdf-plugin.version>1.2</maven-pdf-plugin.version> - <build-helper-maven-plugin.version>1.9</build-helper-maven-plugin.version> - <exec-maven-plugin.version>1.3.1</exec-maven-plugin.version> - <make-maven-plugin.version>1.0-beta-1</make-maven-plugin.version> - <native-maven-plugin.version>1.0-alpha-8</native-maven-plugin.version> - - <hadoop.version>3.0.0-alpha1</hadoop.version> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <artifactId>ratis-proto-shaded</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - - <dependency> - <artifactId>ratis-common</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-common</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <artifactId>ratis-client</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-client</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <artifactId>ratis-hadoop</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-hadoop</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <artifactId>ratis-grpc</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-grpc</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <artifactId>ratis-netty</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-netty</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <artifactId>ratis-server</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - </dependency> - <dependency> - <artifactId>ratis-server</artifactId> - <groupId>org.apache.ratis</groupId> - <version>${project.version}</version> - <type>test-jar</type> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>1.7.10</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.7.10</version> - </dependency> - - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>20.0</version> - </dependency> - - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-all</artifactId> - <version>4.1.6.Final</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - <version>1.8.5</version> - </dependency> - </dependencies> - </dependencyManagement> - - <build> - <pluginManagement> - <plugins> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <version>${maven-clean-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>${build-helper-maven-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-install-plugin</artifactId> - <version>${maven-install-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>${maven-jar-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${maven-javadoc-plugin.version}</version> - <configuration> - <additionalparam>-Xmaxwarns 10000</additionalparam> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <version>${findbugs.version}</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>native-maven-plugin</artifactId> - <version>${native-maven-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>make-maven-plugin</artifactId> - <version>${make-maven-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <version>${maven-resources-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>${exec-maven-plugin.version}</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-pdf-plugin</artifactId> - <version>${maven-pdf-plugin.version}</version> - </plugin> - - <plugin> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-maven-plugins</artifactId> - <version>${hadoop.version}</version> - </plugin> - </plugins> - </pluginManagement> - - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>create-testdirs</id> - <phase>validate</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target> - <mkdir dir="${test.build.dir}"/> - <mkdir dir="${test.build.data}"/> - </target> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-pdf-plugin</artifactId> - <configuration> - <outputDirectory>${project.reporting.outputDirectory} - </outputDirectory> - <includeReports>false</includeReports> - </configuration> - </plugin> - </plugins> - </build> - - - <profiles> - <profile> - <id>os.linux</id> - <activation> - <os> - <family>!Mac</family> - </os> - </activation> - <properties> - <build.platform>${os.name}-${os.arch}-${sun.arch.data.model} - </build.platform> - </properties> - </profile> - <profile> - <id>os.mac</id> - <activation> - <os> - <family>Mac</family> - </os> - </activation> - <properties> - <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform> - </properties> - </profile> - <profile> - <id>native-win</id> - <activation> - <os> - <family>Windows</family> - </os> - </activation> - <properties> - <!-- We must use this exact string for egd on Windows, because the --> - <!-- JVM will check for an exact string match on this. If found, it --> - <!-- will use a native entropy provider. This will not really --> - <!-- attempt to open a file at this path. --> - <java.security.egd>file:/dev/urandom</java.security.egd> - <bundle.snappy.in.bin>true</bundle.snappy.in.bin> - <bundle.openssl.in.bin>true</bundle.openssl.in.bin> - </properties> - </profile> - <profile> - <id>test-patch</id> - <activation> - <activeByDefault>false</activeByDefault> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <fork>true</fork> - <source>${javac.version}</source> - <target>${javac.version}</target> - <compilerArguments> - <Xlint/> - <Xmaxwarns>9999</Xmaxwarns> - </compilerArguments> - </configuration> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>dist</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <!-- build javadoc jars per jar for publishing to maven --> - <id>module-javadocs</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - <configuration> - <destDir>${project.build.directory}</destDir> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <!-- builds source jars and attaches them to the project for publishing --> - <id>ratis-java-sources</id> - <phase>package</phase> - <goals> - <goal>jar-no-fork</goal> - <goal>test-jar-no-fork</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <executions> - <execution> - <id>dist-enforce</id> - <phase>package</phase> - <goals> - <goal>enforce</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> - -</project> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-proto-shaded/README.md ---------------------------------------------------------------------- diff --git a/ratis-proto-shaded/README.md b/ratis-proto-shaded/README.md deleted file mode 100644 index f7a25d4..0000000 --- a/ratis-proto-shaded/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Raft Proto Shaded - -This module is to shade protos, protobuf and other libraries such as Netty, gRPC and Hadoop -so that applications using Raft may use protobuf and other libraries with versions different -from the versions used here. - -Other modules require the shaded sources for compilation. To generate them, -run the following command under `ratis-proto-shaded/` - -- `mvn package -Dcompile-protobuf -DskipTests` - -The generated sources are stored in `ratis-proto-shaded/src/main/java/`. - -## What are shaded? - -| Original packages | Shaded packages | -| ----------------------------------|----------------------------------------------------------| -| `com.google.protobuf` | `org.apache.ratis.shaded.com.google.protobuf` | -| `io.grpc` | `org.apache.ratis.shaded.io.grpc` | -| `io.netty.handler.codec.protobuf` | `org.apache.ratis.shaded.io.netty.handler.codec.protobuf` | -| `org.apache.hadoop.ipc.protobuf` | `org.apache.ratis.shaded.org.apache.hadoop.ipc.protobuf` | - -The protos defined in this project are stored in the `org.apache.ratis.shaded.proto` package. http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-proto-shaded/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-proto-shaded/pom.xml b/ratis-proto-shaded/pom.xml index 77e3fdc..ff5444e 100644 --- a/ratis-proto-shaded/pom.xml +++ b/ratis-proto-shaded/pom.xml @@ -17,7 +17,7 @@ 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> - <artifactId>ratis-main</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> <relativePath>..</relativePath> @@ -25,6 +25,8 @@ <artifactId>ratis-proto-shaded</artifactId> <name>Ratis Proto Shaded</name> + <version>0.1-SNAPSHOT</version> + <properties> <maven.javadoc.skip>true</maven.javadoc.skip> <!--The Default target dir--> @@ -60,23 +62,6 @@ <skipAssembly>true</skipAssembly> </configuration> </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <!-- Always skip the second part executions - since we only run simple unit tests in this module --> - <executions> - <execution> - <id>secondPartTestsExecution</id> - <phase>test</phase> - <goals> - <goal>test</goal> - </goals> - <configuration> - <skip>true</skip> - </configuration> - </execution> - </executions> - </plugin> </plugins> </build> @@ -86,6 +71,7 @@ <artifactId>protobuf-java</artifactId> <version>${shaded.protobuf.version}</version> </dependency> + <dependency> <groupId>com.google.protobuf.nano</groupId> <artifactId>protobuf-javanano</artifactId> @@ -97,11 +83,13 @@ <artifactId>grpc-netty</artifactId> <version>${shaded.grpc.version}</version> </dependency> + <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>${shaded.grpc.version}</version> </dependency> + <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> @@ -151,6 +139,14 @@ The result needs to be checked in. --> <activation> + <!-- Activate this if the generated source directory is missing. It will automatically + kick the protoc compilation if you are doing a mvn install for the first time. Otherwise + it will only compile the resources under src/main/java as usual. If you want to + force-compile the proto files (for example after changing them), you should run with + mvn install -Dcompile-protobuf --> + <file> + <missing>${sources.dir}</missing> + </file> <property> <name>compile-protobuf</name> </property> @@ -167,30 +163,12 @@ <build> <finalName>${jar.finalName}</finalName> <plugins> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <version>${maven-clean-plugin.version}</version> - <executions> - <execution> - <id>pre-compile-protoc</id> - <phase>generate-sources</phase> - <goals> - <goal>clean</goal> - </goals> - <configuration> - <filesets> - <fileset> - <directory> - ${basedir}/src/main/java/ - </directory> - <followSymlinks>false</followSymlinks> - </fileset> - </filesets> - </configuration> - </execution> - </executions> - </plugin> - + <!-- + We are not cleaning the generated files from src/main/java since we do not check-in the + generated files there. Shading only happens in the build phase package (which is after + compile), so for mvn test and mvn compile to work, you should run mvn package or mvn + install one time so that src/main/java will be populated. + --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> @@ -280,7 +258,7 @@ <exclude>com.google.code.findbugs</exclude> <exclude>com.google.code.gson:gson</exclude> <exclude>com.google.guava:guava</exclude> - com.google.re2j:re2j + com.google.re2j:re2j <exclude>com.jamesmurty.utils:java-xmlbuilder</exclude> <exclude>com.jcraft:jsch</exclude> @@ -290,7 +268,7 @@ <exclude>com.sun.jersey:jersey-server</exclude> <exclude>com.sun.jersey:jersey-servlet</exclude> <exclude>com.sun.xml.bind:jaxb-impl</exclude> - + <exclude>com.thoughtworks.paranamer:paranamer</exclude> <exclude>commons-beanutils:commons-beanutils-core</exclude> @@ -320,7 +298,7 @@ <exclude>javax.servlet:servlet-api</exclude> <exclude>javax.xml.bind:jaxb-api</exclude> <exclude>javax.xml.stream:stax-api</exclude> - <exclude>javax.servlet:javax.servlet-api</exclude> + <exclude>javax.servlet:javax.servlet-api</exclude> <exclude>javax.ws.rs:jsr311-api</exclude> <exclude>log4j:log4j</exclude> @@ -356,7 +334,7 @@ <exclude>org.eclipse.jetty:jetty-servlet</exclude> <exclude>org.eclipse.jetty:jetty-webapp</exclude> <exclude>org.eclipse.jetty:jetty-util-ajax</exclude> - <exclude>org.mortbay.jetty:jetty-sslengine</exclude> + <exclude>org.mortbay.jetty:jetty-sslengine</exclude> <exclude>org.slf4j:slf4j-api</exclude> <exclude>org.slf4j:slf4j-log4j12</exclude> @@ -419,6 +397,13 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> </plugins> </build> </profile> http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/f04ac859/ratis-server/pom.xml ---------------------------------------------------------------------- diff --git a/ratis-server/pom.xml b/ratis-server/pom.xml index a1ce655..78587d2 100644 --- a/ratis-server/pom.xml +++ b/ratis-server/pom.xml @@ -17,14 +17,15 @@ 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> - <artifactId>ratis-project-dist</artifactId> + <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> <version>0.1-SNAPSHOT</version> - <relativePath>../ratis-project-dist</relativePath> + <relativePath>..</relativePath> </parent> <artifactId>ratis-server</artifactId> <name>Ratis Server</name> + <version>0.1-SNAPSHOT</version> <dependencies> <dependency> @@ -35,7 +36,6 @@ <dependency> <artifactId>ratis-common</artifactId> <groupId>org.apache.ratis</groupId> - <scope>provided</scope> </dependency> <dependency> <artifactId>ratis-common</artifactId> @@ -43,11 +43,10 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <artifactId>ratis-client</artifactId> <groupId>org.apache.ratis</groupId> - <scope>provided</scope> </dependency> <dependency> <artifactId>ratis-client</artifactId> @@ -55,7 +54,7 @@ <scope>test</scope> <type>test-jar</type> </dependency> - + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>
