/** * 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 static org.glowroot.testing.JavaVersion.JAVA6; import static org.glowroot.testing.JavaVersion.JAVA7; import static org.glowroot.testing.JavaVersion.JAVA8; public class Play { private static final String MODULE_PATH = "agent/plugins/play-plugin"; public static void main(String[] args) throws Exception { play1x(); play2x(); } private static void play1x() throws Exception { runPlay1x("1.1", "play-1.x"); runPlay1x("1.1.1", "play-1.x"); runPlay1x("1.1.2", "play-1.x"); runPlay1x("1.2", "play-1.x"); runPlay1x("1.2.1", "play-1.x"); runPlay1x("1.2.1.1", "play-1.x"); runPlay1x("1.2.2", "play-1.x"); runPlay1x("1.2.3", "play-1.x"); runPlay1x("1.2.4", "play-1.x"); runPlay1x("1.2.5", "play-1.x"); runPlay1x("1.2.5.1", "play-1.x"); runPlay1x("1.2.5.2", "play-1.x"); runPlay1x("1.2.5.3", "play-1.x"); runPlay1x("1.2.5.5", "play-1.x"); runPlay1x("1.2.5.6", "play-1.x"); runPlay1x("1.2.6", "play-1.x"); runPlay1x("1.2.6.1", "play-1.x"); runPlay1x("1.2.6.2", "play-1.x"); runPlay1x("1.2.7", "play-1.x"); runPlay1x("1.2.7.2", "play-1.x"); runPlay1x("1.3.0", "play-1.x"); runPlay1x("1.3.1", "play-1.x"); runPlay1x("1.3.2", "play-1.x"); runPlay1x("1.3.3", "play-1.x"); runPlay1x("1.3.4", "play-1.x"); runPlay1x("1.4.0", "play-1.x"); runPlay1x("1.4.1", "play-1.x"); runPlay1x("1.4.2", "play-1.x"); } private static void play2x() throws Exception { runPlay2x("2.0", "2.9.3", "3.3.0.Final", "2.2.2"); runPlay2x("2.0.1", "2.9.3", "3.3.0.Final", "2.2.2"); runPlay2x("2.0.2", "2.9.3", "3.3.0.Final", "2.2.2"); runPlay2x("2.0.3", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.0.4", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.0.5", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.0.6", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.0.7", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.0.8", "2.9.3", "3.5.0.Final", "2.2.2"); runPlay2x("2.1.0", "2.10.3", "3.5.9.Final", "2.2.2"); runPlay2x("2.1.1", "2.10.3", "3.6.3.Final", "2.2.2"); runPlay2x("2.1.2", "2.10.3", "3.6.3.Final", "2.2.2"); runPlay2x("2.1.3", "2.10.3", "3.6.3.Final", "2.2.2"); runPlay2x("2.1.4", "2.10.3", "3.6.3.Final", "2.2.2"); runPlay2x("2.1.5", "2.10.3", "3.6.3.Final", "2.2.2"); runPlay2x("2.2.0", "2.10.3", "3.7.0.Final", "2.2.2"); runPlay2x("2.2.1", "2.10.3", "3.7.0.Final", "2.2.2"); runPlay2x("2.2.2", "2.10.3", "3.7.0.Final", "2.2.2"); runPlay2x("2.2.3", "2.10.3", "3.7.1.Final", "2.2.2"); runPlay2x("2.2.4", "2.10.3", "3.7.1.Final", "2.2.2"); runPlay2x("2.2.5", "2.10.3", "3.7.1.Final", "2.2.2"); runPlay2x("2.2.6", "2.10.3", "3.7.1.Final", "2.2.2"); runPlay2x("2.3.0", "2.11.8", "3.9.1.Final", "2.3.2"); runPlay2x("2.3.1", "2.11.8", "3.9.2.Final", "2.3.2"); runPlay2x("2.3.2", "2.11.8", "3.9.2.Final", "2.3.2"); runPlay2x("2.3.3", "2.11.8", "3.9.2.Final", "2.3.2"); runPlay2x("2.3.4", "2.11.8", "3.9.3.Final", "2.3.2"); runPlay2x("2.3.5", "2.11.8", "3.9.3.Final", "2.3.2"); runPlay2x("2.3.6", "2.11.8", "3.9.3.Final", "2.3.2"); runPlay2x("2.3.7", "2.11.8", "3.9.3.Final", "2.3.2"); runPlay2x("2.3.8", "2.11.8", "3.9.3.Final", "2.3.2"); runPlay2x("2.3.9", "2.11.8", "3.9.8.Final", "2.3.2"); runPlay2x("2.3.10", "2.11.8", "3.9.9.Final", "2.3.2"); runPlay2x("2.4.0", "2.11.8", "3.10.3.Final", "2.5.3"); runPlay2x("2.4.1", "2.11.8", "3.10.3.Final", "2.5.4"); runPlay2x("2.4.2", "2.11.8", "3.10.3.Final", "2.5.4"); runPlay2x("2.4.3", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.4.4", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.4.5", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.4.6", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.4.7", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.4.8", "2.11.8", "3.10.4.Final", "2.5.4"); runPlay2x("2.5.0", "2.11.8", "4.0.33.Final", "2.7.1"); runPlay2x("2.5.1", "2.11.8", "4.0.34.Final", "2.7.1"); runPlay2x("2.5.2", "2.11.8", "4.0.36.Final", "2.7.1"); runPlay2x("2.5.3", "2.11.8", "4.0.36.Final", "2.7.1"); runPlay2x("2.5.4", "2.11.8", "4.0.36.Final", "2.7.1"); runPlay2x("2.5.5", "2.11.8", "4.0.39.Final", "2.7.6"); runPlay2x("2.5.6", "2.11.8", "4.0.39.Final", "2.7.6"); runPlay2x("2.5.7", "2.11.8", "4.0.41.Final", "2.7.6"); runPlay2x("2.5.8", "2.11.8", "4.0.41.Final", "2.7.6"); runPlay2x("2.5.9", "2.11.8", "4.0.41.Final", "2.7.6"); runPlay2x("2.5.10", "2.11.8", "4.0.41.Final", "2.7.8"); } private static void runPlay2x(String playVersion, String scalaVersion, String nettyVersion, String jacksonVersion) throws Exception { String testAppVersion; if (playVersion.equals("2.0")) { testAppVersion = "2.0.x"; } else if (playVersion.equals("2.1.0")) { // there are some incompatibilities between 2.1.0 and other 2.1.x testAppVersion = "2.1.0"; } else { testAppVersion = playVersion.substring(0, playVersion.lastIndexOf('.')) + ".x"; } String scalaMajorVersion = scalaVersion.substring(0, scalaVersion.lastIndexOf('.')); String profile; JavaVersion[] javaVersions; if (playVersion.startsWith("2.0")) { profile = "play-2.0.x"; javaVersions = new JavaVersion[] {JAVA6, JAVA7}; // scala 2.9 doesn't support 1.8 } else if (playVersion.startsWith("2.1")) { profile = "play-2.1.x"; javaVersions = new JavaVersion[] {JAVA6, JAVA7, JAVA8}; } else if (playVersion.startsWith("2.2") || playVersion.startsWith("2.3")) { profile = "play-2.2.x"; javaVersions = new JavaVersion[] {JAVA6, JAVA7, JAVA8}; } else { // play version is 2.4+ profile = "play-2.4.x"; javaVersions = new JavaVersion[] {JAVA8}; } Util.updateLibVersion(MODULE_PATH, "play.version", playVersion); Util.updateLibVersion(MODULE_PATH, "scala.major.version", scalaMajorVersion); Util.updateLibVersion(MODULE_PATH, "scala.version", scalaVersion); Util.updateLibVersion(MODULE_PATH, "netty.version", nettyVersion); Util.updateLibVersion(MODULE_PATH, "jackson.version", jacksonVersion); Util.updateLibVersion(MODULE_PATH, "test.app.version", testAppVersion); Util.updateLibVersion(MODULE_PATH, "test.app.language", "scala"); Util.runTests(MODULE_PATH, new String[] {"play-2.x", profile}, javaVersions); Util.updateLibVersion(MODULE_PATH, "test.app.language", "java"); Util.runTests(MODULE_PATH, new String[] {"play-2.x", profile}, javaVersions); } private static void runPlay1x(String version, String profile) throws Exception { Util.updateLibVersion(MODULE_PATH, "play.version", version); Util.runTests(MODULE_PATH, profile, JAVA6, JAVA7, JAVA8); } }