You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by el...@apache.org on 2018/09/20 14:51:48 UTC
[incubator-ratis-thirdparty] 01/01: RATIS-316 Create
ratis-thirdparty
This is an automated email from the ASF dual-hosted git repository.
elserj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis-thirdparty.git
commit d965b8da3189093864255c2af3e3fb2ac89e5229
Author: Josh Elser <el...@apache.org>
AuthorDate: Wed Sep 19 16:41:06 2018 -0400
RATIS-316 Create ratis-thirdparty
This bundles and relocates all thirdparty (non-Ratis-owned)
code that Ratis uses to ensure that Ratis can effectively work
in any environment that may provide its own versions of the
same dependencies.
---
.gitignore | 6 +
pom.xml | 526 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 532 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a0c3657
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+target
+.settings
+.project
+.classpath
+.iml
+.idea
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b432f42
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,526 @@
+<?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>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>18</version>
+ <relativePath /> <!-- resolve from repository -->
+ </parent>
+ <artifactId>ratis-thirdparty</artifactId>
+ <groupId>org.apache.ratis</groupId>
+ <version>0.1.0-SNAPSHOT</version>
+ <name>Apache Ratis Thirdparty</name>
+ <packaging>jar</packaging>
+ <description>Thirdparty dependencies for Apache Ratis</description>
+ <url>https://ratis.apache.org/</url>
+ <inceptionYear>2017</inceptionYear>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+ <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>
+ <tag>HEAD</tag>
+ </scm>
+ <issueManagement>
+ <system>JIRA</system>
+ <url>http://issues.apache.org/jira/browse/RATIS</url>
+ </issueManagement>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <!-- Maven plugin versions -->
+ <maven-bundle-plugin.version>2.5.3</maven-bundle-plugin.version>
+ <maven-checkstyle-plugin.version>2.15</maven-checkstyle-plugin.version>
+ <maven-clean-plugin.version>3.0.0</maven-clean-plugin.version>
+ <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
+ <maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
+ <maven-install-plugin.version>2.5.1</maven-install-plugin.version>
+ <maven-javadoc-plugin.version>2.10.3</maven-javadoc-plugin.version>
+ <maven-resources-plugin.version>2.6</maven-resources-plugin.version>
+ <maven-shade-plugin.version>3.1.1</maven-shade-plugin.version>
+ <maven-site-plugin.version>3.5</maven-site-plugin.version>
+ <maven-source-plugin.version>2.3</maven-source-plugin.version>
+
+ <!--
+ ! Can be removed if changing to ASF parent version 19
+ -->
+ <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
+ <exec-maven-plugin.version>1.3.1</exec-maven-plugin.version>
+ <findbugs.version>3.0.0</findbugs.version>
+ <native-maven-plugin.version>1.0-alpha-8</native-maven-plugin.version>
+
+ <!-- define the Java language version used by the compiler -->
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+ <java.min.version>${maven.compiler.source}</java.min.version>
+ <maven.min.version>3.3.9</maven.min.version>
+
+ <!--Version of protobuf to be shaded -->
+ <shaded.protobuf.version>3.5.0</shaded.protobuf.version>
+ <shaded.protobuf-javanano.version>3.1.0</shaded.protobuf-javanano.version>
+ <!--Version of grpc to be shaded -->
+ <shaded.grpc.version>1.14.0</shaded.grpc.version>
+ <!--Version of Netty to be shaded -->
+ <shaded.netty.version>4.1.27.Final</shaded.netty.version>
+
+ <io.opencensus.version>0.12.2</io.opencensus.version>
+ <ratis.thirdparty.shaded.prefix>org.apache.ratis.thirdparty</ratis.thirdparty.shaded.prefix>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${shaded.protobuf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf.nano</groupId>
+ <artifactId>protobuf-javanano</artifactId>
+ <version>${shaded.protobuf-javanano.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <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>
+ <version>${shaded.grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-context</artifactId>
+ <version>${shaded.grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>24.1-jre</version>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ <version>${shaded.netty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.8.2</version>
+ </dependency>
+ <dependency>
+ <groupId>io.opencensus</groupId>
+ <artifactId>opencensus-api</artifactId>
+ <version>${io.opencensus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.opencensus</groupId>
+ <artifactId>opencensus-contrib-grpc-metrics</artifactId>
+ <version>${io.opencensus.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>kr.motd.maven</groupId>
+ <artifactId>os-maven-plugin</artifactId>
+ <version>1.5.0.Final</version>
+ </extension>
+ </extensions>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>${maven-shade-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>
+ <additionalJOptions>
+ <additionalJOption>-Xmaxwarns</additionalJOption>
+ <additionalJOption>10000</additionalJOption>
+ <additionalJOption>-Xdoclint:-missing</additionalJOption>
+ </additionalJOptions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>native-maven-plugin</artifactId>
+ <version>${native-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-dependency-plugin</artifactId>
+ <version>${maven-dependency-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <configuration>
+ <rules>
+ <requireMavenVersion>
+ <version>[${maven.min.version},)</version>
+ </requireMavenVersion>
+ <requireJavaVersion>
+ <version>[${java.min.version},)</version>
+ </requireJavaVersion>
+ </rules>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <!--Defer to the ratis-assembly sub-module. It does all assembly-->
+ <skipAssembly>true</skipAssembly>
+ </configuration>
+ </plugin>
+ <!-- Make a jar and put the sources in the jar.
+ In the parent pom, so submodules will do the right thing. -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ </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>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>${maven-deploy-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>${apache-rat-plugin.version}</version>
+ <!-- target/ should get picked up from Apache parent pom.. -->
+ <configuration>
+ <!-- Lets us define more exclusions in child-modules without overriding these -->
+ <excludes combine.children="append">
+ <exclude>target/*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${maven-bundle-plugin.version}</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <inherited>false</inherited>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <phase>pre-clean</phase>
+ </execution>
+ <execution>
+ <id>default</id>
+ <goals>
+ <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.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <inherited>true</inherited>
+ <extensions>true</extensions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${maven-checkstyle-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <shadeSourcesContent>true</shadeSourcesContent>
+ <createSourcesJar>true</createSourcesJar>
+ <!-- Replace the original artifact which is no good on its own -->
+ <shadedArtifactAttached>false</shadedArtifactAttached>
+ <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <relocations>
+ <relocation>
+ <pattern>com.google.api</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.api</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.cloud.audit</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.cloud.audit</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.common</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.common</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.logging.type</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.logging.type</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.longrunning</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.longrunning</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.protobuf</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.protobuf</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.rpc</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.rpc</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.thirdparty.publicsuffix</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.thirdparty.publicsuffix</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.type</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.type</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>io.grpc</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.io.grpc</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>io.netty</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.io.netty</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>io.opencensus</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.io.opencensus</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.gson</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.com.google.gson</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>afu.plume</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.afu.plume</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>afu.org.checkerframework</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.afu.org.checkerframework</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>org.checkerframework</pattern>
+ <shadedPattern>${ratis.thirdparty.shaded.prefix}.org.checkerframework</shadedPattern>
+ </relocation>
+ </relocations>
+ <artifactSet>
+ <includes>
+ <!-- Package all listed dependencies -->
+ <include>*:*</include>
+ </includes>
+ <excludes>
+ <!-- Remove ransitive stuff we don't need coming from google deps -->
+ <exclude>com.google.code.findbugs:jsr305</exclude>
+ <exclude>com.google.errorprone:error_prone_annotations</exclude>
+ <exclude>com.google.j2objc:j2objc-annotations</exclude>
+ <!-- Specifying netty-all gets all of these -->
+ <exclude>io.netty:netty-buffer</exclude>
+ <exclude>io.netty:netty-codec-http2</exclude>
+ <exclude>io.netty:netty-codec-http</exclude>
+ <exclude>io.netty:netty-codec-socks</exclude>
+ <exclude>io.netty:netty-codec</exclude>
+ <exclude>io.netty:netty-common</exclude>
+ <exclude>io.netty:netty-handler-proxy</exclude>
+ <exclude>io.netty:netty-handler</exclude>
+ <exclude>io.netty:netty-resolver</exclude>
+ <exclude>io.netty:netty-transport</exclude>
+ <!-- Transitive stuff we don't need coming from google deps -->
+ <exclude>org.codehaus.mojo:animal-sniffer-annotations</exclude>
+ </excludes>
+ </artifactSet>
+ <!-- Pick up any LICENSE/NOTICE files from our dependencies -->
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
+ <addHeader>false</addHeader>
+ </transformer>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+ </transformers>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <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>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>extra-enforcer-rules</artifactId>
+ <version>1.0-beta-6</version>
+ </dependency>
+ </dependencies>
+ <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>
+ <!-- Execution at the validate lifecycle is good -->
+ <id>check-licenses</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>