2009-05-15 18:31:09 -07:00
|
|
|
// Copyright (C) 2009 The Android Open Source Project
|
2008-11-27 21:10:45 -08:00
|
|
|
//
|
|
|
|
// Licensed 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.
|
|
|
|
|
2009-11-07 12:55:26 -08:00
|
|
|
public final class Main {
|
2018-05-08 11:41:55 +02:00
|
|
|
private static final String FLOGGER_BACKEND_PROPERTY = "flogger.backend_factory";
|
2018-08-03 09:00:08 +02:00
|
|
|
private static final String FLOGGER_LOGGING_CONTEXT = "flogger.logging_context";
|
2018-05-08 11:41:55 +02:00
|
|
|
|
2009-11-07 12:55:26 -08:00
|
|
|
// We don't do any real work here because we need to import
|
|
|
|
// the archive lookup code and we cannot import a class in
|
2009-12-18 15:33:35 -08:00
|
|
|
// the default package. So this is just a tiny springboard
|
2009-11-07 12:55:26 -08:00
|
|
|
// to jump into the real main code.
|
|
|
|
//
|
2008-11-27 21:10:45 -08:00
|
|
|
|
2017-06-13 18:10:03 +02:00
|
|
|
public static void main(String[] argv) throws Exception {
|
2009-12-18 15:33:35 -08:00
|
|
|
if (onSupportedJavaVersion()) {
|
2018-05-08 11:41:55 +02:00
|
|
|
configureFloggerBackend();
|
2009-12-18 15:33:35 -08:00
|
|
|
com.google.gerrit.launcher.GerritLauncher.main(argv);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
System.exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private static boolean onSupportedJavaVersion() {
|
|
|
|
final String version = System.getProperty("java.specification.version");
|
2014-06-15 00:33:40 +02:00
|
|
|
if (1.8 <= parse(version)) {
|
2009-12-18 15:33:35 -08:00
|
|
|
return true;
|
|
|
|
}
|
2014-06-15 00:33:40 +02:00
|
|
|
System.err.println("fatal: Gerrit Code Review requires Java 8 or later");
|
2016-06-01 21:20:02 +09:00
|
|
|
System.err.println(" (trying to run on Java " + version + ")");
|
|
|
|
return false;
|
2009-12-18 15:33:35 -08:00
|
|
|
}
|
|
|
|
|
2018-05-08 11:41:55 +02:00
|
|
|
private static void configureFloggerBackend() {
|
2018-08-03 09:00:08 +02:00
|
|
|
System.setProperty(
|
|
|
|
FLOGGER_LOGGING_CONTEXT, "com.google.gerrit.server.logging.LoggingContext#getInstance");
|
|
|
|
|
2018-05-08 11:41:55 +02:00
|
|
|
if (System.getProperty(FLOGGER_BACKEND_PROPERTY) != null) {
|
|
|
|
// Flogger backend is already configured
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Configure log4j backend
|
|
|
|
System.setProperty(
|
|
|
|
FLOGGER_BACKEND_PROPERTY,
|
|
|
|
"com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance");
|
|
|
|
}
|
|
|
|
|
2009-12-18 15:33:35 -08:00
|
|
|
private static double parse(String version) {
|
|
|
|
if (version == null || version.length() == 0) {
|
|
|
|
return 0.0;
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
final int fd = version.indexOf('.');
|
|
|
|
final int sd = version.indexOf('.', fd + 1);
|
|
|
|
if (0 < sd) {
|
|
|
|
version = version.substring(0, sd);
|
|
|
|
}
|
|
|
|
return Double.parseDouble(version);
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
return 0.0;
|
|
|
|
}
|
2009-05-15 18:31:09 -07:00
|
|
|
}
|
|
|
|
|
2009-11-07 12:55:26 -08:00
|
|
|
private Main() {}
|
2008-11-27 21:10:45 -08:00
|
|
|
}
|