Introducing Java Servlet Container beta.

This commit is contained in:
Max Romanov
2019-02-28 18:02:42 +03:00
parent ec7319d32c
commit 5bfdebb9e4
95 changed files with 13360 additions and 1 deletions

View File

@@ -600,6 +600,72 @@ class TestUnitApplicationNode(TestUnitApplicationProto):
}
})
class TestUnitApplicationJava(TestUnitApplicationProto):
def load(self, script, name='app'):
app_path = self.testdir + '/java'
web_inf_path = app_path + '/WEB-INF/'
classes_path = web_inf_path + 'classes/'
script_path = self.current_dir + '/java/' + script + '/'
if not os.path.isdir(app_path):
os.makedirs(app_path)
src = []
for f in os.listdir(script_path):
if f.endswith('.java'):
src.append(script_path + f)
continue
if f.startswith('.') or f == 'Makefile':
continue
if os.path.isdir(script_path + f):
if f == 'WEB-INF':
continue
shutil.copytree(script_path + f, app_path + '/' + f)
continue
if f == 'web.xml':
if not os.path.isdir(web_inf_path):
os.makedirs(web_inf_path)
shutil.copy2(script_path + f, web_inf_path)
else:
shutil.copy2(script_path + f, app_path)
if src:
if not os.path.isdir(classes_path):
os.makedirs(classes_path)
javac = ['javac', '-encoding', 'utf-8', '-d', classes_path,
'-classpath',
self.pardir + '/build/tomcat-servlet-api-9.0.13.jar']
javac.extend(src)
process = subprocess.Popen(javac)
process.communicate()
self.conf({
"listeners": {
"*:7080": {
"application": script
}
},
"applications": {
script: {
"unit_jars": self.pardir + '/build',
"type": "java",
"processes": { "spare": 0 },
"working_directory": script_path,
"webapp": app_path
}
}
})
class TestUnitApplicationPerl(TestUnitApplicationProto):
def load(self, script, name='psgi.pl'):
self.conf({