#!/usr/bin/env python ############################################################################ # # 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 os import subprocess import sys import phoenix_utils phoenix_utils.setPath() base_dir = os.path.join(phoenix_utils.current_dir, '..') phoenix_target_dir = os.path.join(base_dir, 'phoenix-core', 'target') cp_file_path = os.path.join(phoenix_target_dir, 'cached_classpath.txt') if not os.path.exists(cp_file_path): sys.stderr.write("cached_classpath.txt is not present under " + "phoenix-core/target, please rebuild the project first\n") sys.exit(1) logging_config = os.path.join(base_dir, 'bin', 'sandbox-log4j.properties') cp_components = [phoenix_target_dir + "/*"] with open(cp_file_path, 'rb') as cp_file: cp_components.append(cp_file.read()) java_cmd = ("java $PHOENIX_OPTS -Dlog4j.configuration=file:%s " + "-cp %s org.apache.phoenix.Sandbox") % ( logging_config, ":".join(cp_components)) proc = subprocess.Popen(java_cmd, shell=True) try: proc.wait() except KeyboardInterrupt: print "Shutting down sandbox..." proc.terminate() proc.wait() print "Sandbox is stopped" returncode = proc.returncode if returncode is not None: sys.exit(returncode)