1# Copyright 2017 Google Inc. All Rights Reserved. 2# 3 4"""A convenience wrapper for starting dev_appserver for appengine for Java.""" 5 6from __future__ import absolute_import 7from __future__ import unicode_literals 8import os 9 10import bootstrapping 11from googlecloudsdk.command_lib.util import java 12from googlecloudsdk.core.updater import update_manager 13 14 15# Path to the jar's directory relative to the SDK root 16_JAR_DIR = os.path.join('platform', 'google_appengine', 'google', 'appengine', 17 'tools', 'java', 'lib') 18 19# Filename of the jar 20_JAR_NAME = 'appengine-tools-api.jar' 21 22# Flags, (enable assertions) 23_FLAGS = ['-ea'] 24 25# Name of the main class 26_CLASSNAME = 'com.google.appengine.tools.KickStart' 27 28# Additional arguments, comes before sys.argv. 29# The KickStart main class accepts this classname as its first arg 30_ARGS = [ 31 'com.google.appengine.tools.development.DevAppServerMain', 32 '--promote_yaml' 33] 34 35 36def main(): 37 """Launches the Java dev_appserver 1.""" 38 update_manager.UpdateManager.EnsureInstalledAndRestart( 39 ['app-engine-java'], 40 command=__file__) 41 java_bin = java.RequireJavaInstalled('Java local development server') 42 bootstrapping.ExecuteJarTool( 43 java_bin, _JAR_DIR, _JAR_NAME, _CLASSNAME, _FLAGS, *_ARGS) 44 45 46if __name__ == '__main__': 47 bootstrapping.DisallowPython3() 48 bootstrapping.CommandStart('dev_appserver_java', component_id='core') 49 bootstrapping.CheckUpdates('dev_appserver_java') 50 main() 51