#!/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 explicitly sets the CLASSPATH for embedded JVMs (e.g. in # Impalad or in runquery) Because embedded JVMs do not honour # CLASSPATH wildcard expansion, we have to add every dependency jar # explicitly to the CLASSPATH. if [ "$0" = "$BASH_SOURCE" ]; then >&2 echo "error: $BASH_SOURCE should be sourced, not executed. e.g:" >&2 echo " source $BASH_SOURCE" exit 1 fi # IMPALA-10057: The fe/target/classes and fe/target/test-classes # directory can get cleaned out / rebuilt as part of running the # frontend tests. This uses jars to avoid issues related to that # inconsistency. CLASSPATH=\ "$IMPALA_HOME"/fe/src/test/resources: PACKAGE_CP_FILE="$IMPALA_HOME/java/impala-package/target/package-classpath.txt" if [ ! -s "$PACKAGE_CP_FILE" ]; then >&2 echo impala-package classpath file "$PACKAGE_CP_FILE" missing. >&2 echo Build the impala-package first. return 1 fi CLASSPATH=$(cat "$PACKAGE_CP_FILE"):"$CLASSPATH" if [[ "${1:-notest}" = "test" ]]; then FE_TEST_CP_FILE="$IMPALA_HOME/fe/target/test-classpath.txt" CLASSPATH=$(cat "$FE_TEST_CP_FILE"):\ "$IMPALA_HOME"/fe/target/impala-frontend-${IMPALA_VERSION}-tests.jar:"$CLASSPATH" fi : ${CUSTOM_CLASSPATH=} CLASSPATH="$CUSTOM_CLASSPATH:$CLASSPATH" export CLASSPATH