It's redundant with global end-of-support of MySQLtags/8.0
@@ -46,7 +46,6 @@ import org.sonar.server.plugins.PluginFileSystem; | |||
import org.sonar.server.plugins.ServerPluginJarExploder; | |||
import org.sonar.server.plugins.ServerPluginRepository; | |||
import org.sonar.server.plugins.WebServerExtensionInstaller; | |||
import org.sonar.server.startup.ClusterConfigurationCheck; | |||
import static org.sonar.core.extension.CoreExtensionsInstaller.noAdditionalSideFilter; | |||
import static org.sonar.core.extension.PlatformLevelPredicates.hasPlatformLevel; | |||
@@ -93,9 +92,6 @@ public class PlatformLevel2 extends PlatformLevel { | |||
DatabaseMigrationStateImpl.class, | |||
DatabaseMigrationExecutorServiceImpl.class); | |||
addIfCluster( | |||
ClusterConfigurationCheck.class); | |||
addIfStartupLeader( | |||
DatabaseCharsetChecker.class, | |||
CheckDatabaseCharsetAtStartup.class); |
@@ -1,50 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2019 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.startup; | |||
import org.picocontainer.Startable; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.dialect.MySql; | |||
/** | |||
* This class will be check the configuration for a SonarQube cluster | |||
* | |||
* See SONAR-10420 | |||
*/ | |||
public class ClusterConfigurationCheck implements Startable { | |||
private final Database database; | |||
public ClusterConfigurationCheck(Database database) { | |||
this.database = database; | |||
} | |||
@Override | |||
public void start() { | |||
if (MySql.ID.equals(database.getDialect().getId())) { | |||
throw new IllegalStateException("MySQL is not supported for Data Center Edition. Please connect to a supported database: Oracle, PostgreSQL, Microsoft SQL Server."); | |||
} | |||
} | |||
@Override | |||
public void stop() { | |||
// Nothing to do | |||
} | |||
} |
@@ -29,7 +29,6 @@ import org.sonar.core.platform.PluginRepository; | |||
import org.sonar.server.platform.Platform; | |||
import org.sonar.server.platform.WebServer; | |||
import org.sonar.server.platform.db.migration.charset.DatabaseCharsetChecker; | |||
import org.sonar.server.startup.ClusterConfigurationCheck; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -88,29 +87,4 @@ public class PlatformLevel2Test { | |||
// level2 component that is injected only on "startup leaders" | |||
assertThat(underTest.getOptional(DatabaseCharsetChecker.class)).isNotPresent(); | |||
} | |||
@Test | |||
public void add_ClusterConfigurationCheck_when_cluster_mode_activated() { | |||
props.setProperty("sonar.cluster.enabled", "true"); | |||
PlatformLevel1 level1 = new PlatformLevel1(mock(Platform.class), props); | |||
level1.configure(); | |||
PlatformLevel2 underTest = new PlatformLevel2(level1); | |||
underTest.configure(); | |||
assertThat(underTest.getOptional(ClusterConfigurationCheck.class)).isPresent(); | |||
} | |||
@Test | |||
public void do_NOT_add_ClusterConfigurationCheck_when_cluster_mode_NOT_activated() { | |||
props.setProperty("sonar.cluster.enabled", "false"); | |||
PlatformLevel1 level1 = new PlatformLevel1(mock(Platform.class), props); | |||
level1.configure(); | |||
PlatformLevel2 underTest = new PlatformLevel2(level1); | |||
underTest.configure(); | |||
assertThat(underTest.getOptional(ClusterConfigurationCheck.class)).isNotPresent(); | |||
} | |||
} |
@@ -1,71 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2019 SonarSource SA | |||
* mailto:info AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.startup; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.dialect.MsSql; | |||
import org.sonar.db.dialect.MySql; | |||
import org.sonar.db.dialect.Oracle; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
public class ClusterConfigurationCheckTest { | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
private Database database = mock(Database.class); | |||
private ClusterConfigurationCheck underTest = new ClusterConfigurationCheck(database); | |||
@Test | |||
public void when_SQ_is_connected_to_MySql_an_ISE_should_be_thrown() { | |||
when(database.getDialect()).thenReturn(new MySql()); | |||
expectedException.expect(IllegalStateException.class); | |||
expectedException.expectMessage("MySQL is not supported for Data Center Edition. Please connect to a supported database: Oracle, PostgreSQL, Microsoft SQL Server."); | |||
underTest.start(); | |||
} | |||
@Test | |||
public void when_SQ_is_connected_to_MsSql_an_ISE_should_NOT_be_thrown() { | |||
when(database.getDialect()).thenReturn(new MsSql()); | |||
underTest.start(); | |||
} | |||
@Test | |||
public void when_SQ_is_connected_to_Oracle_an_ISE_should_NOT_be_thrown() { | |||
when(database.getDialect()).thenReturn(new Oracle()); | |||
underTest.start(); | |||
} | |||
@Test | |||
public void when_SQ_is_connected_to_Postgres_an_ISE_should_NOT_be_thrown() { | |||
when(database.getDialect()).thenReturn(new Oracle()); | |||
underTest.start(); | |||
} | |||
} |