#!/bin/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. # # This script verifies that the Java pom.xml files use the # IMPALA_VERSION. This can fail if the IMPALA_VERSION changes # without the version in the pom.xml changing. To update the # pom.xml files, run: # cd $IMPALA_HOME/java # mvn versions:set -DnewVersion=NEW_MAVEN_VERSION set -euo pipefail MAVEN_VERSION_STRING="${IMPALA_VERSION}" # Detect if IMPALA_HOME is a git repository pushd ${IMPALA_HOME} > /dev/null 2>&1 IS_GIT_CHECKOUT=false if git ls-files --error-unmatch > /dev/null 2>&1 ; then IS_GIT_CHECKOUT=true fi; popd > /dev/null 2>&1 RETVAL=0 NO_MATCH_FILES=() for pom_file in $(find ${IMPALA_HOME} -name pom.xml); do # If this is a git checkout, then only do the check for pom.xml # files known to git. If this is not a git checkout, then it should # be building from a tarball, and there should not be extra # pom.xml files. if ${IS_GIT_CHECKOUT} && ! git ls-files --error-unmatch ${pom_file} > /dev/null 2>&1 ; then # This pom.xml file is not known to git. continue; fi if ! grep $MAVEN_VERSION_STRING "${pom_file}" > /dev/null; then NO_MATCH_FILES+=(${pom_file}) RETVAL=1 fi done if [[ $RETVAL != 0 ]]; then echo "Check for Java pom.xml versions FAILED" echo "Expected ${MAVEN_VERSION_STRING}" echo "Not found in:" for pom_file in ${NO_MATCH_FILES[@]}; do echo " ${pom_file}" done echo "The pom.xml files can be updated automatically via:" echo 'cd ${IMPALA_HOME}/java; mvn versions:set -DnewVersion=YOUR_NEW_VERSION' fi exit $RETVAL