blob: 4cedc82ebf1393a40372dca821ece31a250c1716 [file] [log] [blame]
#! /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.
lib_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
maven_prefix=https://repo1.maven.org/maven2
function download {
IFS=':' read -ra DEP <<< "$1"
dir=$lib_dir/
if [ -n "$2" ]; then
dir=$lib_dir/$2
if [ ! -d $dir ]; then
mkdir $dir
fi
fi
group=${DEP[0]}
artifact=${DEP[1]}
ftype=${DEP[2]}
version=${DEP[3]}
fn=$artifact-$version.$ftype
path="${group//.//}/$artifact/$version/$fn"
download_url=$maven_prefix/$path
if [ -f $dir/$fn ]; then
echo "SUCCESS: Dependency exists - $dir/$fn"
else
wget -q $download_url -P $dir
if [ $? == 0 ]; then
echo "SUCCESS: Dependency downloaded from $download_url"
else
echo "ERROR: Dependency download failed - $download_url"
fi
fi
}
case "$1" in
ahz)
echo "Fetching Hadoop, Accumulo, & Zookeeper dependencies"
cd $lib_dir/ahz
rm -f *.jar
mvn clean package ${*:2}
;;
extra)
echo "Fetching extra Fluo dependencies"
download aopalliance:aopalliance:jar:1.0
download com.beust:jcommander:jar:1.78
download com.google.code.gson:gson:jar:2.8.5
download com.google.guava:guava:jar:27.0-jre
download com.google.inject:guice:jar:4.2.2
download org.apache.commons:commons-collections4:jar:4.2
download org.apache.commons:commons-configuration2:jar:2.5
download commons-io:commons-io:jar:2.6
download io.dropwizard.metrics:metrics-core:jar:3.1.1
download io.dropwizard.metrics:metrics-graphite:jar:3.1.1
download javax.inject:javax.inject:jar:1
download org.apache.curator:curator-client:jar:4.0.1
download org.apache.curator:curator-framework:jar:4.0.1
download org.apache.curator:curator-recipes:jar:4.0.1
download org.hdrhistogram:HdrHistogram:jar:2.1.10
download org.mpierce.metrics.reservoir:hdrhistogram-metrics-reservoir:jar:1.1.0
download org.slf4j:jcl-over-slf4j:jar:1.7.2
download org.slf4j:slf4j-api:jar:1.7.12
download log4j:log4j:jar:1.2.17 ./log4j
download org.slf4j:slf4j-log4j12:jar:1.7.12 ./log4j
echo -e "Done!\n"
echo "NOTE - The dependencies downloaded have been tested with some versions of Hadoop, Zookeeper, and Accumulo."
echo "There is no guarantee they will work with all versions. Fluo chose to defer dependency resolution to as"
echo "late as possible in order to make it easier to resolve dependency conflicts. If you run into a dependency"
echo "conflict in your environment, please consider bringing it up on the Fluo dev list."
;;
*)
echo -e "Usage: fetch.sh <DEPENDENCIES>\n"
echo -e "where <DEPENDENCIES> can be the following:\n"
echo " ahz Download Accumulo, Hadoop, Zookeeper dependencies"
echo -e " extra Download extra Fluo dependencies\n"
echo "For 'ahz', the versions of Hadoop, Accumulo, & Zookeeper are specifed in ahz/pom.xml."
echo -e "However, you can override them using the command below:\n"
echo "./fetch.sh ahz -Daccumulo.version=2.0.0 -Dhadoop.version=3.1.1 -Dzookeeper.version=3.4.14"
esac