import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.apache.commons.dbcp2.BasicDataSource;
-import org.apache.commons.lang.StringUtils;
import org.picocontainer.containers.TransientPicoContainer;
import org.sonar.api.utils.System2;
import org.sonar.core.util.SequenceUuidFactory;
return this;
}
- public DbTester enableOrganizations() {
- properties().insertInternal("organization.enabled", "true");
- return this;
- }
-
@Override
protected void before() {
db.start();
}
}
- public boolean hasDefaultOrganization() {
- return defaultOrganization != null;
- }
-
public OrganizationDto getDefaultOrganization() {
checkState(defaultOrganization != null, "Default organization has not been created");
return defaultOrganization;
*/
package org.sonar.db;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
+import java.util.stream.Collectors;
import javax.annotation.Nullable;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
class TestDbImpl extends CoreTestDb {
private static TestDbImpl defaultSchemaBaseTestDb;
// instantiating MyBatis objects is costly => we cache them for default schema
- private static final Map<MyBatisConfExtension[], TestDbImpl> defaultSchemaTestDbsWithExtensions = new HashMap<>();
+ private static final Map<List<String>, TestDbImpl> defaultSchemaTestDbsWithExtensions = new HashMap<>();
private boolean isDefault;
private MyBatis myBatis;
}
static TestDbImpl create(@Nullable String schemaPath, MyBatisConfExtension... confExtensions) {
- MyBatisConfExtension[] extensionArray = confExtensions.length == 0 ? null : confExtensions;
if (schemaPath == null) {
if (defaultSchemaBaseTestDb == null) {
defaultSchemaBaseTestDb = new TestDbImpl(null);
}
- if (extensionArray != null) {
+ if (confExtensions.length > 0) {
+ List<String> key = Arrays.stream(confExtensions)
+ .flatMap(MyBatisConfExtension::getMapperClasses)
+ .map(Class::getName)
+ .sorted()
+ .collect(Collectors.toList());
return defaultSchemaTestDbsWithExtensions.computeIfAbsent(
- extensionArray,
- extensions -> new TestDbImpl(defaultSchemaBaseTestDb, newMyBatis(defaultSchemaBaseTestDb.getDatabase(), extensions)));
+ key,
+ k -> new TestDbImpl(defaultSchemaBaseTestDb, newMyBatis(defaultSchemaBaseTestDb.getDatabase(), confExtensions)));
}
return defaultSchemaBaseTestDb;
}