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