import org.sonar.api.BatchComponent;
import org.sonar.core.persistence.DaoComponent;
import org.sonar.api.ServerComponent;
+import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
public class LoadedTemplateDao implements DaoComponent, BatchComponent, ServerComponent {
session.getMapper(LoadedTemplateMapper.class).insert(loadedTemplateDto);
}
+ public void delete(DbSession session, String type, String key) {
+ session.getMapper(LoadedTemplateMapper.class).delete(type, key);
+ }
}
package org.sonar.server.qualityprofile;
import org.junit.After;
+import org.junit.Ignore;
import org.junit.Test;
import org.sonar.api.profiles.ProfileDefinition;
import org.sonar.api.profiles.RulesProfile;
import org.sonar.core.qualityprofile.db.ActiveRuleParamDto;
import org.sonar.core.qualityprofile.db.QualityProfileDao;
import org.sonar.core.qualityprofile.db.QualityProfileKey;
+import org.sonar.core.template.LoadedTemplateDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.platform.Platform;
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao;
verifyProperty("sonar.profile.xoo", "two");
}
+ /**
+ * Probably for db migration
+ */
+ @Test
+ @Ignore
+ public void clean_up_profiles_if_missing_loaded_template() throws Exception {
+ tester = new ServerTester().addComponents(XooRulesDefinition.class, XooProfileDefinition.class);
+ tester.start();
+
+ dbSession = dbClient().openSession(false);
+ String templateKey = RegisterQualityProfiles.templateKey(QualityProfileKey.of("Basic", "xoo"));
+ dbClient().loadedTemplateDao().delete(dbSession, LoadedTemplateDto.QUALITY_PROFILE_TYPE, templateKey);
+ dbSession.commit();
+ assertThat(dbClient().loadedTemplateDao().countByTypeAndKey(LoadedTemplateDto.QUALITY_PROFILE_TYPE, templateKey, dbSession)).isEqualTo(0);
+ dbSession.close();
+
+ tester.get(Platform.class).restart();
+
+ // do not fail
+ }
+
private void verifyProperty(String key, String value) {
PropertyDto prop = dbClient().propertiesDao().selectGlobalProperty(key);
assertThat(prop).isNotNull();