http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-client-modules/hadoop-client/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-client-modules/hadoop-client/pom.xml b/hadoop-client-modules/hadoop-client/pom.xml new file mode 100644 index 0000000..0394cae --- /dev/null +++ b/hadoop-client-modules/hadoop-client/pom.xml @@ -0,0 +1,338 @@ +<?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.hadoop</groupId> + <artifactId>hadoop-project-dist</artifactId> + <version>3.0.0-alpha2-SNAPSHOT</version> + <relativePath>../../hadoop-project-dist</relativePath> +</parent> + <artifactId>hadoop-client</artifactId> + <version>3.0.0-alpha2-SNAPSHOT</version> + <packaging>pom</packaging> + + <description>Apache Hadoop Client aggregation pom with dependencies exposed</description> + <name>Apache Hadoop Client Aggregator</name> + +<properties> + <hadoop.component>client</hadoop.component> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-common</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging-api</artifactId> + </exclusion> + <exclusion> + <groupId>jetty</groupId> + <artifactId>org.eclipse.jetty</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jetty</groupId> + <artifactId>servlet-api-2.5</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-core</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-json</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-server</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jdt</groupId> + <artifactId>core</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro-ipc</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.kosmosfs</groupId> + <artifactId>kfs</artifactId> + </exclusion> + <exclusion> + <groupId>net.java.dev.jets3t</groupId> + <artifactId>jets3t</artifactId> + </exclusion> + <exclusion> + <groupId>com.jcraft</groupId> + <artifactId>jsch</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.zookeeper</groupId> + <artifactId>zookeeper</artifactId> + </exclusion> + <!-- No slf4j backends for downstream clients --> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-hdfs-client</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-core</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-server</artifactId> + </exclusion> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-mapreduce-client-app</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-yarn-server-nodemanager</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-yarn-server-web-proxy</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-servlet</artifactId> + </exclusion> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro</artifactId> + </exclusion> + <exclusion> + <groupId>jline</groupId> + <artifactId>jline</artifactId> + </exclusion> + <exclusion> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + </exclusion> + <!-- No slf4j backends for downstream clients --> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.zookeeper</groupId> + <artifactId>zookeeper</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-yarn-api</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject</groupId> + <artifactId>guice</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey.jersey-test-framework</groupId> + <artifactId>jersey-test-framework-grizzly2</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-server</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey.contribs</groupId> + <artifactId>jersey-guice</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-servlet</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-core</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-json</artifactId> + </exclusion> + <exclusion> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-mapreduce-client-core</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject</groupId> + <artifactId>guice</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey.jersey-test-framework</groupId> + <artifactId>jersey-test-framework-grizzly2</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-server</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey.contribs</groupId> + <artifactId>jersey-guice</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-servlet</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-json</artifactId> + </exclusion> + <exclusion> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + </exclusion> + <!-- No slf4j backends for downstream clients --> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-mapreduce-client-jobclient</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.avro</groupId> + <artifactId>avro</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-servlet</artifactId> + </exclusion> + <exclusion> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + </exclusion> + <!-- No slf4j backends for downstream clients --> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-annotations</artifactId> + <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>jdk.tools</groupId> + <artifactId>jdk.tools</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + +</project> +
http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-client-modules/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-client-modules/pom.xml b/hadoop-client-modules/pom.xml new file mode 100644 index 0000000..eea4c8f --- /dev/null +++ b/hadoop-client-modules/pom.xml @@ -0,0 +1,45 @@ +<?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.hadoop</groupId> + <artifactId>hadoop-project</artifactId> + <version>3.0.0-alpha2-SNAPSHOT</version> + <relativePath>../hadoop-project</relativePath> + </parent> + <artifactId>hadoop-client-modules</artifactId> + <packaging>pom</packaging> + <description>multi-module for Apache Hadoop client artifacts</description> + <name>Apache Hadoop Client Modules</name> + + <modules> + <!-- Left as an empty artifact w/dep for compat --> + <module>hadoop-client</module> + <!-- Should be used at compile scope for access to IA.Public classes --> + <module>hadoop-client-api</module> + <!-- Should be used at runtime scope for remaining classes necessary for hadoop-client-api to function --> + <module>hadoop-client-runtime</module> + <!-- Should be used at test scope for those that need access to mini cluster that works with above api and runtime --> + <module>hadoop-client-minicluster</module> + <!-- Checks invariants above --> + <module>hadoop-client-check-invariants</module> + <module>hadoop-client-check-test-invariants</module> + <!-- Attempt to use the created libraries --> + <module>hadoop-client-integration-tests</module> + </modules> + +</project> http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-client/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-client/pom.xml b/hadoop-client/pom.xml deleted file mode 100644 index dbd4fac..0000000 --- a/hadoop-client/pom.xml +++ /dev/null @@ -1,319 +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> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-project-dist</artifactId> - <version>3.0.0-alpha2-SNAPSHOT</version> - <relativePath>../hadoop-project-dist</relativePath> - </parent> - <artifactId>hadoop-client</artifactId> - <version>3.0.0-alpha2-SNAPSHOT</version> - <packaging>jar</packaging> - - <description>Apache Hadoop Client</description> - <name>Apache Hadoop Client</name> - -<properties> - <hadoop.component>client</hadoop.component> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-common</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - </exclusion> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging-api</artifactId> - </exclusion> - <exclusion> - <groupId>jetty</groupId> - <artifactId>org.eclipse.jetty</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-util</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>servlet-api-2.5</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-core</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-json</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-server</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jdt</groupId> - <artifactId>core</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro-ipc</artifactId> - </exclusion> - <exclusion> - <groupId>net.sf.kosmosfs</groupId> - <artifactId>kfs</artifactId> - </exclusion> - <exclusion> - <groupId>net.java.dev.jets3t</groupId> - <artifactId>jets3t</artifactId> - </exclusion> - <exclusion> - <groupId>com.jcraft</groupId> - <artifactId>jsch</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.zookeeper</groupId> - <artifactId>zookeeper</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-hdfs-client</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-core</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-server</artifactId> - </exclusion> - <exclusion> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-mapreduce-client-app</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-yarn-server-nodemanager</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-yarn-server-web-proxy</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-annotations</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </exclusion> - <exclusion> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro</artifactId> - </exclusion> - <exclusion> - <groupId>jline</groupId> - <artifactId>jline</artifactId> - </exclusion> - <exclusion> - <groupId>io.netty</groupId> - <artifactId>netty</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.zookeeper</groupId> - <artifactId>zookeeper</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-yarn-api</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-annotations</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey.jersey-test-framework</groupId> - <artifactId>jersey-test-framework-grizzly2</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-server</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey.contribs</groupId> - <artifactId>jersey-guice</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-core</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-json</artifactId> - </exclusion> - <exclusion> - <groupId>io.netty</groupId> - <artifactId>netty</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-mapreduce-client-core</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey.jersey-test-framework</groupId> - <artifactId>jersey-test-framework-grizzly2</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-server</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey.contribs</groupId> - <artifactId>jersey-guice</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-annotations</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-json</artifactId> - </exclusion> - <exclusion> - <groupId>io.netty</groupId> - <artifactId>netty</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-mapreduce-client-jobclient</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.avro</groupId> - <artifactId>avro</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-annotations</artifactId> - </exclusion> - <exclusion> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </exclusion> - <exclusion> - <groupId>io.netty</groupId> - <artifactId>netty</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-annotations</artifactId> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>jdk.tools</groupId> - <artifactId>jdk.tools</artifactId> - </exclusion> - </exclusions> - </dependency> - - </dependencies> - -</project> - http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-dist/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-dist/pom.xml b/hadoop-dist/pom.xml index 30e6472..ae8c4ce 100644 --- a/hadoop-dist/pom.xml +++ b/hadoop-dist/pom.xml @@ -51,6 +51,23 @@ <artifactId>hadoop-yarn-api</artifactId> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-check-invariants</artifactId> + <type>pom</type> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-check-test-invariants</artifactId> + <type>pom</type> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-integration-tests</artifactId> + <scope>provided</scope> + </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-maven-plugins/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-maven-plugins/pom.xml b/hadoop-maven-plugins/pom.xml index eae03a1..6a2bd73 100644 --- a/hadoop-maven-plugins/pom.xml +++ b/hadoop-maven-plugins/pom.xml @@ -54,6 +54,28 @@ <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> + <dependency> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>${maven-shade-plugin.version}</version> + <scope>provided</scope> + <exclusions> + <!-- shade conflicts with itself and our other maven internals + by including a combination of 3.x and 2.x + --> + <exclusion> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-dependency-tree</artifactId> + </exclusion> + <!-- again, shade conflicts with itself on the transitives of this + dependency + --> + <exclusion> + <groupId>org.vafer</groupId> + <artifactId>jdependency</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <build> <plugins> http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/ServicesResourceTransformer.java ---------------------------------------------------------------------- diff --git a/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/ServicesResourceTransformer.java b/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/ServicesResourceTransformer.java new file mode 100644 index 0000000..a54b5ba --- /dev/null +++ b/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/ServicesResourceTransformer.java @@ -0,0 +1,164 @@ +package org.apache.hadoop.maven.plugin.shade.resource; +/* + * 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. + * + */ +import java.io.BufferedReader; +import org.apache.maven.plugins.shade.relocation.Relocator; +import org.apache.maven.plugins.shade.resource.ResourceTransformer; +import org.codehaus.plexus.util.IOUtil; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.jar.JarEntry; +import java.util.jar.JarOutputStream; + +/** + * Resources transformer that appends entries in META-INF/services resources + * into a single resource. For example, if there are several + * META-INF/services/org.apache.maven.project.ProjectBuilder resources spread + * across many JARs the individual entries will all be concatenated into a + * single META-INF/services/org.apache.maven.project.ProjectBuilder resource + * packaged into the resultant JAR produced by the shading process. + * + * From following sources, only needed until MSHADE-182 gets released + * * https://s.apache.org/vwjl (source in maven-shade-plugin repo) + * * https://issues.apache.org/jira/secure/attachment/12718938/MSHADE-182.patch + * + * Has been reformatted according to Hadoop checkstyle rules and modified + * to meet Hadoop's threshold for Findbugs problems. + */ +public class ServicesResourceTransformer + implements ResourceTransformer { + + private static final String SERVICES_PATH = "META-INF/services"; + + private Map<String, ServiceStream> serviceEntries = new HashMap<>(); + + private List<Relocator> relocators; + + public boolean canTransformResource(String resource) { + if (resource.startsWith(SERVICES_PATH)) { + return true; + } + + return false; + } + + public void processResource(String resource, InputStream is, + List<Relocator> relocatorz) throws IOException { + ServiceStream out = serviceEntries.get(resource); + if (out == null) { + out = new ServiceStream(); + serviceEntries.put(resource, out); + } + + out.append(is); + is.close(); + + if (this.relocators == null) { + this.relocators = relocatorz; + } + } + + public boolean hasTransformedResource() { + return serviceEntries.size() > 0; + } + + public void modifyOutputStream(JarOutputStream jos) + throws IOException { + for (Map.Entry<String, ServiceStream> entry : serviceEntries.entrySet()) { + String key = entry.getKey(); + ServiceStream data = entry.getValue(); + + if (relocators != null) { + key = key.substring(SERVICES_PATH.length() + 1); + for (Relocator relocator : relocators) { + if (relocator.canRelocateClass(key)) { + key = relocator.relocateClass(key); + break; + } + } + + key = SERVICES_PATH + '/' + key; + } + + jos.putNextEntry(new JarEntry(key)); + + //read the content of service file for candidate classes for relocation + //presume everything is UTF8, because Findbugs barfs on default + //charset and this seems no worse a choice ¯\_(ã)_/¯ + PrintWriter writer = new PrintWriter(new OutputStreamWriter(jos, + StandardCharsets.UTF_8)); + InputStreamReader streamReader = + new InputStreamReader(data.toInputStream(), StandardCharsets.UTF_8); + BufferedReader reader = new BufferedReader(streamReader); + String className; + + while ((className = reader.readLine()) != null) { + + if (relocators != null) { + for (Relocator relocator : relocators) { + //if the class can be relocated then relocate it + if (relocator.canRelocateClass(className)) { + className = relocator.applyToSourceContent(className); + break; + } + } + } + + writer.println(className); + writer.flush(); + } + + reader.close(); + data.reset(); + } + } + + static class ServiceStream extends ByteArrayOutputStream { + + public ServiceStream() { + super(1024); + } + + public void append(InputStream is) + throws IOException { + if (count > 0 && buf[count - 1] != '\n' && buf[count - 1] != '\r') { + write('\n'); + } + + IOUtil.copy(is, this); + } + + public InputStream toInputStream() { + return new ByteArrayInputStream(buf, 0, count); + } + + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/package-info.java ---------------------------------------------------------------------- diff --git a/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/package-info.java b/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/package-info.java new file mode 100644 index 0000000..571491c --- /dev/null +++ b/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/shade/resource/package-info.java @@ -0,0 +1,23 @@ +/* + * 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. + */ + +/** + * Resource handling plugins used internal to the Hadoop build. + * IA.Private (build structure encourages not using the actual annotations) + */ +package org.apache.hadoop.maven.plugin.shade.resource; http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/hadoop-project/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index 9ec24ea..36172f2 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -27,6 +27,7 @@ <description>Apache Hadoop Project POM</description> <name>Apache Hadoop Project POM</name> <packaging>pom</packaging> + <inceptionYear>2008</inceptionYear> <properties> <!-- Set the Release year during release --> @@ -114,6 +115,7 @@ <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version> <maven-install-plugin.version>2.5.1</maven-install-plugin.version> <maven-resources-plugin.version>2.6</maven-resources-plugin.version> + <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version> <maven-jar-plugin.version>2.5</maven-jar-plugin.version> <maven-war-plugin.version>2.4</maven-war-plugin.version> <maven-source-plugin.version>2.3</maven-source-plugin.version> @@ -150,6 +152,44 @@ </dependency> <dependency> <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-modules</artifactId> + <version>${project.version}</version> + <type>pom</type> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-check-invariants</artifactId> + <version>${project.version}</version> + <type>pom</type> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-check-test-invariants</artifactId> + <version>${project.version}</version> + <type>pom</type> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-integration-tests</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-runtime</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-client-minicluster</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${project.version}</version> </dependency> @@ -1245,6 +1285,40 @@ <pluginManagement> <plugins> <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>${build-helper-maven-plugin.version}</version> + </plugin> + <!-- We include the configuration for license-maven-plugin to correct + maven-shade-plugin generated poms because it's always the same. We + can't simply configure the plugin because we must ensure execution + happens in the package phase after the shade plugin runs. + --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>license-maven-plugin</artifactId> + <version>1.10</version> + <configuration> + <canUpdateCopyright>false</canUpdateCopyright> + <roots><root>${project.basedir}</root></roots> + </configuration> + <executions> + <execution> + <id>update-pom-license</id> + <goals> + <goal>update-file-header</goal> + </goals> + <phase>package</phase> + <configuration> + <licenseName>apache_v2</licenseName> + <includes> + <include>dependency-reduced-pom.xml</include> + </includes> + </configuration> + </execution> + </executions> + </plugin> + <plugin> <artifactId>maven-clean-plugin</artifactId> <version>${maven-clean-plugin.version}</version> </plugin> @@ -1260,13 +1334,8 @@ </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>2.2</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>${build-helper-maven-plugin.version}</version> + <artifactId>maven-shade-plugin</artifactId> + <version>${maven-shade-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -1356,6 +1425,19 @@ <plugins> <plugin> + <artifactId>maven-clean-plugin</artifactId> + <configuration> + <filesets> + <fileset> + <directory>${project.basedir}</directory> + <includes> + <include>dependency-reduced-pom.xml</include> + </includes> + </fileset> + </filesets> + </configuration> + </plugin> + <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> </plugin> http://git-wip-us.apache.org/repos/asf/hadoop/blob/70ca1f1e/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 8776534..9de7b36 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <maven-stylus-skin.version>1.5</maven-stylus-skin.version> <maven-antrun-plugin.version>1.7</maven-antrun-plugin.version> <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version> - <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version> + <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version> <maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version> <maven-javadoc-plugin.version>2.9.1</maven-javadoc-plugin.version> <maven-gpg-plugin.version>1.5</maven-gpg-plugin.version> @@ -125,8 +125,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <module>hadoop-mapreduce-project</module> <module>hadoop-tools</module> <module>hadoop-dist</module> - <module>hadoop-client</module> <module>hadoop-minicluster</module> + <module>hadoop-client-modules</module> <module>hadoop-build-tools</module> </modules> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
