You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ar...@apache.org on 2016/03/04 02:01:55 UTC
[16/50] [abbrv] hadoop git commit: HADOOP-12850. pull shell code out
of hadoop-dist
HADOOP-12850. pull shell code out of hadoop-dist
Signed-off-by: Steve Loughran <st...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1cb2f934
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1cb2f934
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1cb2f934
Branch: refs/heads/HDFS-1312
Commit: 1cb2f93451aa444fadd1b7ffa7825ba4a6ae74e3
Parents: c58a6d5
Author: Allen Wittenauer <aw...@apache.org>
Authored: Sun Feb 28 16:51:51 2016 -0800
Committer: Allen Wittenauer <aw...@apache.org>
Committed: Mon Feb 29 08:43:17 2016 -0800
----------------------------------------------------------------------
dev-support/bin/dist-layout-stitching | 140 +++++++++++++++++++++++++++
dev-support/bin/dist-tar-stitching | 44 +++++++++
hadoop-dist/pom.xml | 148 ++++-------------------------
3 files changed, 202 insertions(+), 130 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1cb2f934/dev-support/bin/dist-layout-stitching
----------------------------------------------------------------------
diff --git a/dev-support/bin/dist-layout-stitching b/dev-support/bin/dist-layout-stitching
new file mode 100755
index 0000000..78533f9
--- /dev/null
+++ b/dev-support/bin/dist-layout-stitching
@@ -0,0 +1,140 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# project.version
+VERSION=$1
+
+# project.build.directory
+BASEDIR=$2
+
+function run()
+{
+ declare res
+
+ echo "\$ ${*}"
+ "${@}"
+ res=$?
+ if [[ ${res} != 0 ]]; then
+ echo
+ echo "Failed!"
+ echo
+ exit "${res}"
+ fi
+}
+
+function findfileindir()
+{
+ declare file="$1"
+ declare dir="${2:-./share}"
+ declare count
+
+ count=$(find "${dir}" -iname "${file}" | wc -l)
+
+ #shellcheck disable=SC2086
+ echo ${count}
+}
+
+function copyifnotexists()
+{
+ declare src="$1"
+ declare dest="$2"
+
+ declare srcname
+ declare destdir
+
+ declare child
+ declare childpath
+
+ if [[ -f "${src}" ]]; then
+ srcname=${src##*/}
+ if [[ "${srcname}" != *.jar ||
+ $(findfileindir "${srcname}") -eq "0" ]]; then
+ destdir=$(dirname "${dest}")
+ mkdir -p "${destdir}"
+ cp -p "${src}" "${dest}"
+ fi
+ else
+ for childpath in "${src}"/*; do
+ child="${childpath##*/}"
+ if [[ "${child}" == "doc" ||
+ "${child}" == "webapps" ]]; then
+ mkdir -p "${dest}/${child}"
+ cp -r "${src}/${child}"/* "${dest}/${child}"
+ continue;
+ fi
+ copyifnotexists "${src}/${child}" "${dest}/${child}"
+ done
+ fi
+}
+
+#Copy all contents as is except the lib.
+#for libs check for existence in share directory, if not exist then only copy.
+function copy()
+{
+ declare src="$1"
+ declare dest="$2"
+
+ declare child
+ declare childpath
+
+ if [[ -d "${src}" ]]; then
+ for childpath in "${src}"/*; do
+ child="${childpath##*/}"
+
+ if [[ "${child}" == "share" ]]; then
+ copyifnotexists "${src}/${child}" "${dest}/${child}"
+ else
+ if [[ -d "${src}/${child}" ]]; then
+ mkdir -p "${dest}/${child}"
+ cp -pr "${src}/${child}"/* "${dest}/${child}"
+ else
+ cp -pr "${src}/${child}" "${dest}/${child}"
+ fi
+ fi
+ done
+ fi
+}
+
+# shellcheck disable=SC2164
+ROOT=$(cd "${BASEDIR}"/../..;pwd)
+echo
+echo "Current directory $(pwd)"
+echo
+run rm -rf "hadoop-${VERSION}"
+run mkdir "hadoop-${VERSION}"
+run cd "hadoop-${VERSION}"
+run cp -p "${ROOT}/LICENSE.txt" .
+run cp -p "${ROOT}/NOTICE.txt" .
+run cp -p "${ROOT}/README.txt" .
+
+# Copy hadoop-common first so that it have always have all dependencies.
+# Remaining projects will copy only libraries which are not present already in 'share' directory.
+run copy "${ROOT}/hadoop-common-project/hadoop-common/target/hadoop-common-${VERSION}" .
+run copy "${ROOT}/hadoop-common-project/hadoop-nfs/target/hadoop-nfs-${VERSION}" .
+run copy "${ROOT}/hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-${VERSION}" .
+run copy "${ROOT}/hadoop-hdfs-project/hadoop-hdfs-nfs/target/hadoop-hdfs-nfs-${VERSION}" .
+run copy "${ROOT}/hadoop-yarn-project/target/hadoop-yarn-project-${VERSION}" .
+run copy "${ROOT}/hadoop-mapreduce-project/target/hadoop-mapreduce-${VERSION}" .
+run copy "${ROOT}/hadoop-tools/hadoop-tools-dist/target/hadoop-tools-dist-${VERSION}" .
+
+#copy httpfs and kms as is
+run cp -pr "${ROOT}/hadoop-hdfs-project/hadoop-hdfs-httpfs/target/hadoop-hdfs-httpfs-${VERSION}"/* .
+run cp -pr "${ROOT}/hadoop-common-project/hadoop-kms/target/hadoop-kms-${VERSION}"/* .
+
+echo
+echo "Hadoop dist layout available at: ${BASEDIR}/hadoop-${VERSION}"
+echo
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1cb2f934/dev-support/bin/dist-tar-stitching
----------------------------------------------------------------------
diff --git a/dev-support/bin/dist-tar-stitching b/dev-support/bin/dist-tar-stitching
new file mode 100755
index 0000000..20028b4
--- /dev/null
+++ b/dev-support/bin/dist-tar-stitching
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# project.version
+VERSION=$1
+
+# project.build.directory
+BASEDIR=$2
+
+function run()
+{
+ declare res
+
+ echo "\$ ${*}"
+ "${@}"
+ res=$?
+ if [[ ${res} != 0 ]]; then
+ echo
+ echo "Failed!"
+ echo
+ exit "${res}"
+ fi
+}
+
+
+run tar cf "hadoop-${VERSION}.tar" "hadoop-${VERSION}"
+run gzip -f "hadoop-${VERSION}.tar"
+echo
+echo "Hadoop dist tar available at: ${BASEDIR}/hadoop-${VERSION}.tar.gz"
+echo
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1cb2f934/hadoop-dist/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-dist/pom.xml b/hadoop-dist/pom.xml
index 9d37599..ce1bd92 100644
--- a/hadoop-dist/pom.xml
+++ b/hadoop-dist/pom.xml
@@ -83,151 +83,39 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>dist</id>
<phase>prepare-package</phase>
<goals>
- <goal>run</goal>
+ <goal>exec</goal>
</goals>
<configuration>
- <target>
- <echo file="${project.build.directory}/dist-layout-stitching.sh">
- run() {
- echo "\$ ${@}"
- "${@}"
- res=$?
- if [ $res != 0 ]; then
- echo
- echo "Failed!"
- echo
- exit $res
- fi
- }
-
- findFileInDir(){
- local file="$1";
- local dir="${2:-./share}";
- local count=$(find "$dir" -iname "$file"|wc -l)
- echo "$count";
- }
-
- copyIfNotExists(){
- local src="$1"
- local srcName=$(basename "$src")
- local dest="$2";
- if [ -f "$src" ]; then
- if [[ "$srcName" != *.jar ]] || [ $(findFileInDir "$srcName") -eq "0" ]; then
- local destDir=$(dirname "$dest")
- mkdir -p "$destDir"
- cp "$src" "$dest"
- fi
- else
- for childPath in "$src"/* ;
- do
- child=$(basename "$childPath");
- if [ "$child" == "doc" ] || [ "$child" == "webapps" ]; then
- mkdir -p "$dest"/"$child"
- cp -r "$src"/"$child"/* "$dest"/"$child"
- continue;
- fi
- copyIfNotExists "$src"/"$child" "$dest"/"$child"
- done
- fi
- }
-
- #Copy all contents as is except the lib.
- #for libs check for existence in share directory, if not exist then only copy.
- copy(){
- local src="$1";
- local dest="$2";
- if [ -d "$src" ]; then
- for childPath in "$src"/* ;
- do
- child=$(basename "$childPath");
- if [ "$child" == "share" ]; then
- copyIfNotExists "$src"/"$child" "$dest"/"$child"
- else
- if [ -d "$src"/"$child" ]; then
- mkdir -p "$dest"/"$child"
- cp -r "$src"/"$child"/* "$dest"/"$child"
- else
- cp -r "$src"/"$child" "$dest"/"$child"
- fi
- fi
- done
- fi
- }
-
- # Shellcheck SC2086
- ROOT=$(cd "${project.build.directory}"/../..;pwd)
- echo
- echo "Current directory $(pwd)"
- echo
- run rm -rf hadoop-${project.version}
- run mkdir hadoop-${project.version}
- run cd hadoop-${project.version}
- run cp "$ROOT"/LICENSE.txt .
- run cp "$ROOT"/NOTICE.txt .
- run cp "$ROOT"/README.txt .
-
- # Copy hadoop-common first so that it have always have all dependencies.
- # Remaining projects will copy only libraries which are not present already in 'share' directory.
- run copy "$ROOT"/hadoop-common-project/hadoop-common/target/hadoop-common-${project.version} .
- run copy "$ROOT"/hadoop-common-project/hadoop-nfs/target/hadoop-nfs-${project.version} .
- run copy "$ROOT"/hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-${project.version} .
- run copy "$ROOT"/hadoop-hdfs-project/hadoop-hdfs-nfs/target/hadoop-hdfs-nfs-${project.version} .
- run copy "$ROOT"/hadoop-yarn-project/target/hadoop-yarn-project-${project.version} .
- run copy "$ROOT"/hadoop-mapreduce-project/target/hadoop-mapreduce-${project.version} .
- run copy "$ROOT"/hadoop-tools/hadoop-tools-dist/target/hadoop-tools-dist-${project.version} .
-
- #copy httpfs and kms as is
- run cp -r "$ROOT"/hadoop-hdfs-project/hadoop-hdfs-httpfs/target/hadoop-hdfs-httpfs-${project.version}/* .
- run cp -r "$ROOT"/hadoop-common-project/hadoop-kms/target/hadoop-kms-${project.version}/* .
-
- echo
- echo "Hadoop dist layout available at: ${project.build.directory}/hadoop-${project.version}"
- echo
- </echo>
- <exec executable="${shell-executable}" dir="${project.build.directory}" failonerror="true">
- <arg line="./dist-layout-stitching.sh"/>
- </exec>
- </target>
+ <executable>${basedir}/../dev-support/bin/dist-layout-stitching</executable>
+ <workingDirectory>${project.build.directory}</workingDirectory>
+ <requiresOnline>false</requiresOnline>
+ <arguments>
+ <argument>${project.version}</argument>
+ <argument>${project.build.directory}</argument>
+ </arguments>
</configuration>
</execution>
<execution>
<id>tar</id>
<phase>package</phase>
<goals>
- <goal>run</goal>
+ <goal>exec</goal>
</goals>
<configuration>
- <target if="tar">
- <echo file="${project.build.directory}/dist-tar-stitching.sh">
- run() {
- echo "\$ ${@}"
- "${@}"
- res=$?
- if [ $res != 0 ]; then
- echo
- echo "Failed!"
- echo
- exit $res
- fi
- }
-
- run tar cf hadoop-${project.version}.tar hadoop-${project.version}
- run gzip -f hadoop-${project.version}.tar
- echo
- echo "Hadoop dist tar available at: ${project.build.directory}/hadoop-${project.version}.tar.gz"
- echo
- </echo>
- <exec executable="${shell-executable}" dir="${project.build.directory}" failonerror="true">
- <arg line="./dist-tar-stitching.sh"/>
- </exec>
- </target>
+ <executable>${basedir}/../dev-support/bin/dist-tar-stitching</executable>
+ <workingDirectory>${project.build.directory}</workingDirectory>
+ <requiresOnline>false</requiresOnline>
+ <arguments>
+ <argument>${project.version}</argument>
+ <argument>${project.build.directory}</argument>
+ </arguments>
</configuration>
</execution>
</executions>