/** * Copyright 2016-2017 the original author or authors. * * 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. */ package org.glowroot.testing; import java.io.IOException; import static org.glowroot.testing.JavaVersion.JAVA6; import static org.glowroot.testing.JavaVersion.JAVA7; import static org.glowroot.testing.JavaVersion.JAVA8; public class Logger { private static final String MODULE_PATH = "agent/plugins/logger-plugin"; public static void main(String[] args) throws Exception { logback(); log4j(); log4j2x(); } private static void logback() throws Exception { final String test = "LogbackIT,LogbackMarkerIT"; updateLibVersion("logback.version", "0.9"); updateLibVersion("slf4j.version", "1.2"); run(test, "logback-old"); for (int i = 1; i <= 5; i++) { updateLibVersion("logback.version", "0.9." + i); updateLibVersion("slf4j.version", "1.3.0"); run(test, "logback-old"); } updateLibVersion("logback.version", "0.9.6"); updateLibVersion("slf4j.version", "1.4.0"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.7"); updateLibVersion("slf4j.version", "1.4.0"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.8"); updateLibVersion("slf4j.version", "1.4.3"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.9"); updateLibVersion("slf4j.version", "1.5.0"); run(test, "logback-old"); // logback 0.9.10 doesn't work period in multi-threaded environments due to // https://github.com/qos-ch/logback/commit/d699a4afd4cad728ab2aa57b04ef357e15d8c8cf updateLibVersion("logback.version", "0.9.11"); updateLibVersion("slf4j.version", "1.5.5"); run(test, "logback-old"); for (int i = 12; i <= 15; i++) { updateLibVersion("logback.version", "0.9." + i); updateLibVersion("slf4j.version", "1.5.6"); run(test, "logback-old"); } updateLibVersion("logback.version", "0.9.16"); updateLibVersion("slf4j.version", "1.5.8"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.17"); updateLibVersion("slf4j.version", "1.5.8"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.18"); updateLibVersion("slf4j.version", "1.5.10"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.19"); updateLibVersion("slf4j.version", "1.5.11"); run(test, "logback-old"); updateLibVersion("logback.version", "0.9.20"); updateLibVersion("slf4j.version", "1.5.11"); run(test, "logback-old"); for (int i = 21; i <= 25; i++) { updateLibVersion("logback.version", "0.9." + i); updateLibVersion("slf4j.version", "1.6.0"); run(test); } for (int i = 26; i <= 29; i++) { updateLibVersion("logback.version", "0.9." + i); updateLibVersion("slf4j.version", "1.6.1"); run(test); } updateLibVersion("logback.version", "0.9.30"); updateLibVersion("slf4j.version", "1.6.2"); run(test); for (int i = 0; i <= 13; i++) { updateLibVersion("slf4j.version", "1.7.19"); updateLibVersion("logback.version", "1.0." + i); run(test); } for (int i = 0; i <= 8; i++) { updateLibVersion("slf4j.version", "1.7.21"); updateLibVersion("logback.version", "1.1." + i); run(test); } for (int i = 9; i <= 10; i++) { updateLibVersion("slf4j.version", "1.7.22"); updateLibVersion("logback.version", "1.1." + i); run(test); } for (int i = 0; i <= 1; i++) { updateLibVersion("slf4j.version", "1.7.22"); updateLibVersion("logback.version", "1.2." + i); run(test); } for (int i = 2; i <= 3; i++) { updateLibVersion("slf4j.version", "1.7.25"); updateLibVersion("logback.version", "1.2.2"); run(test); } } private static void log4j() throws Exception { final String test = "Log4jIT"; for (int i = 4; i <= 17; i++) { if (i == 10) { // there is no 1.2.10 in maven central continue; } updateLibVersion("log4j.version", "1.2." + i); run(test); } } private static void log4j2x() throws Exception { final String test = "Log4j2xIT,Log4j2xMarkerIT"; updateLibVersion("log4j2x.version", "2.0"); run(test); updateLibVersion("log4j2x.version", "2.0.1"); run(test); updateLibVersion("log4j2x.version", "2.0.2"); run(test); updateLibVersion("log4j2x.version", "2.1"); run(test); updateLibVersion("log4j2x.version", "2.2"); run(test); updateLibVersion("log4j2x.version", "2.3"); run(test); updateLibVersion("log4j2x.version", "2.4"); runJava7(test); updateLibVersion("log4j2x.version", "2.4.1"); runJava7(test); updateLibVersion("log4j2x.version", "2.5"); runJava7(test); // tests fail with log4j 2.6 due to https://github.com/apache/logging-log4j2/pull/31 updateLibVersion("log4j2x.version", "2.6.1"); runJava7(test); updateLibVersion("log4j2x.version", "2.6.2"); runJava7(test); updateLibVersion("log4j2x.version", "2.7"); runJava7(test); updateLibVersion("log4j2x.version", "2.8"); runJava7(test); updateLibVersion("log4j2x.version", "2.8.1"); runJava7(test); updateLibVersion("log4j2x.version", "2.8.2"); runJava7(test); } private static void updateLibVersion(String property, String version) throws IOException { Util.updateLibVersion(MODULE_PATH, property, version); } private static void run(String test) throws Exception { Util.runTest(MODULE_PATH, test, JAVA6, JAVA7, JAVA8); } private static void run(String test, String profile) throws Exception { Util.runTest(MODULE_PATH, test, profile, JAVA6, JAVA7, JAVA8); } private static void runJava7(String test) throws Exception { Util.runTest(MODULE_PATH, test, JAVA7, JAVA8); } }