From dd1792a8a4c6b32b467baae4a649c8beaadffab3 Mon Sep 17 00:00:00 2001
From: Julien Lancelot
Date: Fri, 7 Mar 2014 13:56:18 +0100
Subject: [PATCH] Renamed package to org.sonar.core.technicaldebt to debt And
removed technical word from some classes
---
.../org/sonar/batch/debt/DebtModelLoader.java | 6 +-
.../sonar/batch/debt/DebtModelLoaderTest.java | 6 +-
...CharacteristicsDebtModelSynchronizer.java} | 18 +++---
.../CharacteristicsDebtModelXMLImporter.java} | 6 +-
.../DebtModelPluginRepository.java} | 10 ++--
.../DefaultTechnicalDebtManager.java | 6 +-
.../DefaultTechnicalDebtModel.java | 2 +-
.../RulesDebtModelXMLImporter.java} | 10 ++--
.../TechnicalDebtModelSynchronizer.java | 14 ++---
.../TechnicalDebtRuleCache.java | 2 +-
.../TechnicalDebtXMLImporter.java | 4 +-
.../db/CharacteristicDao.java | 2 +-
.../db/CharacteristicDto.java | 2 +-
.../db/CharacteristicMapper.java | 2 +-
.../db}/package-info.java | 3 +-
.../db => debt}/package-info.java | 3 +-
.../org/sonar/core/persistence/DaoUtils.java | 2 +-
.../org/sonar/core/persistence/MyBatis.java | 4 +-
.../db/CharacteristicMapper.xml | 2 +-
...acteristicsDebtModelSynchronizerTest.java} | 22 +++----
...racteristicsDebtModelXMLImporterTest.java} | 10 ++--
.../DebtModelPluginRepositoryTest.java} | 14 ++---
.../DefaultTechnicalDebtManagerTest.java | 6 +-
.../DefaultTechnicalDebtModelTest.java | 2 +-
.../RulesDebtModelXMLImporterTest.java} | 44 +++++++-------
.../TechnicalDebtModelSynchronizerTest.java | 26 ++++-----
.../TechnicalDebtRuleCacheTest.java | 2 +-
.../TechnicalDebtXMLImporterTest.java | 2 +-
.../db/CharacteristicDaoTest.java | 2 +-
.../db/CharacteristicDtoTest.java | 2 +-
.../import_badly_formatted_xml.xml | 0
.../import_characteristics.xml | 0
...threshold_function_by_linear_function.xml} | 0
...deprecated_constant_per_file_function.xml} | 0
.../ignore_invalid_value.xml} | 0
.../ignore_rule_on_root_characteristics.xml} | 0
.../import_badly_formatted_xml.xml} | 0
.../import_constant_issue.xml | 29 ++++++++++
.../import_linear.xml} | 0
.../import_linear_with_offset.xml | 54 +++++++++++++++++
.../import_rules.xml | 58 +++++++++++++++++++
.../replace_mn_by_min.xml | 49 ++++++++++++++++
.../use_default_unit_when_no_unit.xml | 32 ++++++++++
.../csharp-model.xml | 0
.../java-model.xml | 0
...re_requirement_on_root_characteristics.xml | 19 ++++++
.../import_characteristics.xml | 0
.../shouldImportXML_badly-formatted.xml | 43 ++++++++++++++
...tXML_with_deprecated_constant_per_file.xml | 25 ++++++++
..._with_deprecated_linear_with_threshold.xml | 36 ++++++++++++
.../shouldImportXML_with_linear.xml | 29 ++++++++++
...houldImportXML_with_linear_with_offset.xml | 0
.../shouldLogWarningIfRuleNotFound.xml | 0
.../shouldRejectXML_with_invalid_value.xml | 28 +++++++++
.../use_default_unit_when_no_unit.xml | 0
.../CharacteristicDaoTest/disable-result.xml | 0
.../db/CharacteristicDaoTest/disable.xml | 0
.../insert_characteristic-result.xml | 0
.../insert_requirement-result.xml | 0
.../select_enabled_root_characteristics.xml | 0
...eristics_order_by_characteristic_order.xml | 0
.../db/CharacteristicDaoTest/shared.xml | 0
.../update_characteristic-result.xml | 0
.../update_characteristic.xml | 0
.../update_requirement-result.xml | 0
.../update_requirement.xml | 0
.../server/issue/ws/IssueShowWsHandler.java | 2 +-
.../org/sonar/server/platform/Platform.java | 10 ++--
.../rule/DeprecatedRuleDefinitions.java | 32 +++++-----
.../sonar/server/rule/RuleRegistration.java | 4 +-
.../RegisterDebtCharacteristicModel.java | 6 +-
.../startup/RegisterTechnicalDebtModel.java | 4 +-
.../server/technicaldebt/DebtService.java | 2 +-
.../issue/ws/IssueShowWsHandlerTest.java | 2 +-
.../rule/DeprecatedRuleDefinitionsTest.java | 12 ++--
.../server/rule/RuleRegistrationTest.java | 2 +-
.../RegisterDebtCharacteristicModelTest.java | 4 +-
.../RegisterTechnicalDebtModelTest.java | 4 +-
.../server/technicaldebt/DebtServiceTest.java | 2 +-
79 files changed, 563 insertions(+), 161 deletions(-)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt/DebtCharacteristicsSynchronizer.java => debt/CharacteristicsDebtModelSynchronizer.java} (83%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt/CharacteristicsXMLImporter.java => debt/CharacteristicsDebtModelXMLImporter.java} (96%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt/TechnicalDebtModelRepository.java => debt/DebtModelPluginRepository.java} (91%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/DefaultTechnicalDebtManager.java (96%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/DefaultTechnicalDebtModel.java (99%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt/RuleDebtXMLImporter.java => debt/RulesDebtModelXMLImporter.java} (97%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtModelSynchronizer.java (93%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtRuleCache.java (98%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporter.java (99%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDao.java (99%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDto.java (99%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt}/db/CharacteristicMapper.java (97%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt => debt/db}/package-info.java (96%)
rename sonar-core/src/main/java/org/sonar/core/{technicaldebt/db => debt}/package-info.java (95%)
rename sonar-core/src/main/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicMapper.xml (97%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt/DebtCharacteristicsSynchronizerTest.java => debt/CharacteristicsDebtModelSynchronizerTest.java} (83%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt/CharacteristicsXMLImporterTest.java => debt/CharacteristicsDebtModelXMLImporterTest.java} (89%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt/TechnicalDebtModelRepositoryTest.java => debt/DebtModelPluginRepositoryTest.java} (91%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/DefaultTechnicalDebtManagerTest.java (97%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/DefaultTechnicalDebtModelTest.java (99%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt/RuleDebtXMLImporterTest.java => debt/RulesDebtModelXMLImporterTest.java} (75%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtModelSynchronizerTest.java (91%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtRuleCacheTest.java (98%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporterTest.java (99%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest.java (99%)
rename sonar-core/src/test/java/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDtoTest.java (98%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/CharacteristicsXMLImporterTest => debt/CharacteristicsDebtModelXMLImporterTest}/import_badly_formatted_xml.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/CharacteristicsXMLImporterTest => debt/CharacteristicsDebtModelXMLImporterTest}/import_characteristics.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml => debt/RulesDebtModelXMLImporterTest/convert_deprecated_linear_with_threshold_function_by_linear_function.xml} (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml => debt/RulesDebtModelXMLImporterTest/ignore_deprecated_constant_per_file_function.xml} (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml => debt/RulesDebtModelXMLImporterTest/ignore_invalid_value.xml} (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml => debt/RulesDebtModelXMLImporterTest/ignore_rule_on_root_characteristics.xml} (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml => debt/RulesDebtModelXMLImporterTest/import_badly_formatted_xml.xml} (100%)
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_constant_issue.xml
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml => debt/RulesDebtModelXMLImporterTest/import_linear.xml} (100%)
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear_with_offset.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_rules.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/replace_mn_by_min.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/use_default_unit_when_no_unit.xml
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtModelRepositoryTest/csharp-model.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtModelRepositoryTest/java-model.xml (100%)
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporterTest/import_characteristics.xml (100%)
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear_with_offset.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporterTest/shouldLogWarningIfRuleNotFound.xml (100%)
create mode 100644 sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/TechnicalDebtXMLImporterTest/use_default_unit_when_no_unit.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/disable-result.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/disable.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/insert_characteristic-result.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/insert_requirement-result.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/select_enabled_root_characteristics.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/select_enabled_root_characteristics_order_by_characteristic_order.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/shared.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/update_characteristic-result.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/update_characteristic.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/update_requirement-result.xml (100%)
rename sonar-core/src/test/resources/org/sonar/core/{technicaldebt => debt}/db/CharacteristicDaoTest/update_requirement.xml (100%)
diff --git a/sonar-batch/src/main/java/org/sonar/batch/debt/DebtModelLoader.java b/sonar-batch/src/main/java/org/sonar/batch/debt/DebtModelLoader.java
index 1cbf38d6835..9d770500e3c 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/debt/DebtModelLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/debt/DebtModelLoader.java
@@ -27,9 +27,9 @@ import org.sonar.api.rules.RuleFinder;
import org.sonar.api.rules.RuleQuery;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtModel;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
+import org.sonar.core.debt.DefaultTechnicalDebtModel;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import java.util.Collection;
import java.util.List;
diff --git a/sonar-batch/src/test/java/org/sonar/batch/debt/DebtModelLoaderTest.java b/sonar-batch/src/test/java/org/sonar/batch/debt/DebtModelLoaderTest.java
index 2de08c8f77a..1d2ce77018f 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/debt/DebtModelLoaderTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/debt/DebtModelLoaderTest.java
@@ -32,9 +32,9 @@ import org.sonar.api.rules.RuleQuery;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.internal.WorkDuration;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtModel;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
+import org.sonar.core.debt.DefaultTechnicalDebtModel;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizer.java b/sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizer.java
similarity index 83%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizer.java
rename to sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizer.java
index 8e8d95a1c55..6a702d68d23 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizer.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizer.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import org.apache.commons.io.IOUtils;
import org.apache.ibatis.session.SqlSession;
@@ -27,25 +27,25 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.ServerExtension;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
import java.io.Reader;
import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
-public class DebtCharacteristicsSynchronizer implements ServerExtension {
+public class CharacteristicsDebtModelSynchronizer implements ServerExtension {
- private static final Logger LOG = LoggerFactory.getLogger(DebtCharacteristicsSynchronizer.class);
+ private static final Logger LOG = LoggerFactory.getLogger(CharacteristicsDebtModelSynchronizer.class);
private final MyBatis mybatis;
private final CharacteristicDao dao;
- private final TechnicalDebtModelRepository languageModelFinder;
- private final CharacteristicsXMLImporter importer;
+ private final DebtModelPluginRepository languageModelFinder;
+ private final CharacteristicsDebtModelXMLImporter importer;
- public DebtCharacteristicsSynchronizer(MyBatis mybatis, CharacteristicDao dao, TechnicalDebtModelRepository modelRepository, CharacteristicsXMLImporter importer) {
+ public CharacteristicsDebtModelSynchronizer(MyBatis mybatis, CharacteristicDao dao, DebtModelPluginRepository modelRepository, CharacteristicsDebtModelXMLImporter importer) {
this.mybatis = mybatis;
this.dao = dao;
this.languageModelFinder = modelRepository;
@@ -66,7 +66,7 @@ public class DebtCharacteristicsSynchronizer implements ServerExtension {
}
public List synchronize(ValidationMessages messages, SqlSession session) {
- DefaultTechnicalDebtModel defaultModel = loadModelFromXml(TechnicalDebtModelRepository.DEFAULT_MODEL, messages);
+ DefaultTechnicalDebtModel defaultModel = loadModelFromXml(DebtModelPluginRepository.DEFAULT_MODEL, messages);
List model = loadOrCreateModelFromDb(defaultModel, session);
messages.log(LOG);
return model;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporter.java b/sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporter.java
similarity index 96%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporter.java
rename to sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporter.java
index b04c9b715cc..343714038ff 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporter.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporter.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import org.apache.commons.lang.StringUtils;
import org.codehaus.stax2.XMLInputFactory2;
@@ -37,9 +37,9 @@ import javax.xml.stream.XMLStreamException;
import java.io.Reader;
import java.io.StringReader;
-public class CharacteristicsXMLImporter implements ServerExtension {
+public class CharacteristicsDebtModelXMLImporter implements ServerExtension {
- private static final Logger LOG = LoggerFactory.getLogger(CharacteristicsXMLImporter.class);
+ private static final Logger LOG = LoggerFactory.getLogger(CharacteristicsDebtModelXMLImporter.class);
public static final String CHARACTERISTIC = "chc";
public static final String CHARACTERISTIC_KEY = "key";
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepository.java b/sonar-core/src/main/java/org/sonar/core/debt/DebtModelPluginRepository.java
similarity index 91%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepository.java
rename to sonar-core/src/main/java/org/sonar/core/debt/DebtModelPluginRepository.java
index d103004a595..ca4de29cabe 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepository.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/DebtModelPluginRepository.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Maps;
@@ -43,7 +43,7 @@ import static com.google.common.collect.Lists.newArrayList;
* they must be named "-model.xml".
*
*/
-public class TechnicalDebtModelRepository implements ServerExtension, Startable {
+public class DebtModelPluginRepository implements ServerExtension, Startable {
public static final String DEFAULT_MODEL = "technical-debt";
@@ -55,19 +55,19 @@ public class TechnicalDebtModelRepository implements ServerExtension, Startable
private PluginRepository pluginRepository;
private Map contributingPluginKeyToClassLoader;
- public TechnicalDebtModelRepository(PluginRepository pluginRepository) {
+ public DebtModelPluginRepository(PluginRepository pluginRepository) {
this.pluginRepository = pluginRepository;
this.xmlFilePrefix = XML_FILE_PREFIX;
}
@VisibleForTesting
- TechnicalDebtModelRepository(PluginRepository pluginRepository, String xmlFilePrefix) {
+ DebtModelPluginRepository(PluginRepository pluginRepository, String xmlFilePrefix) {
this.pluginRepository = pluginRepository;
this.xmlFilePrefix = xmlFilePrefix;
}
@VisibleForTesting
- TechnicalDebtModelRepository(Map contributingPluginKeyToClassLoader, String xmlFilePrefix) {
+ DebtModelPluginRepository(Map contributingPluginKeyToClassLoader, String xmlFilePrefix) {
this.contributingPluginKeyToClassLoader = contributingPluginKeyToClassLoader;
this.xmlFilePrefix = xmlFilePrefix;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java b/sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtManager.java
similarity index 96%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
rename to sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtManager.java
index 823064f6204..eb9fe925ef2 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtManager.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import org.sonar.api.rule.RuleKey;
@@ -27,8 +27,8 @@ import org.sonar.api.rules.RuleFinder;
import org.sonar.api.technicaldebt.server.Characteristic;
import org.sonar.api.technicaldebt.server.TechnicalDebtManager;
import org.sonar.api.technicaldebt.server.internal.DefaultCharacteristic;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java b/sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtModel.java
similarity index 99%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java
rename to sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtModel.java
index 6c9c50d55e4..4cb950dc926 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/DefaultTechnicalDebtModel.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/RuleDebtXMLImporter.java b/sonar-core/src/main/java/org/sonar/core/debt/RulesDebtModelXMLImporter.java
similarity index 97%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/RuleDebtXMLImporter.java
rename to sonar-core/src/main/java/org/sonar/core/debt/RulesDebtModelXMLImporter.java
index 86085581c9d..927e3753ff1 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/RuleDebtXMLImporter.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/RulesDebtModelXMLImporter.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Predicate;
import com.google.common.base.Strings;
@@ -47,9 +47,9 @@ import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
-public class RuleDebtXMLImporter implements ServerExtension {
+public class RulesDebtModelXMLImporter implements ServerExtension {
- private static final Logger LOG = LoggerFactory.getLogger(RuleDebtXMLImporter.class);
+ private static final Logger LOG = LoggerFactory.getLogger(RulesDebtModelXMLImporter.class);
public static final String CHARACTERISTIC = "chc";
public static final String CHARACTERISTIC_KEY = "key";
@@ -110,7 +110,7 @@ public class RuleDebtXMLImporter implements ServerExtension {
} else if (StringUtils.equals(node, CHARACTERISTIC)) {
processCharacteristic(ruleDebts, parentKey, currentCharacteristicKey, cursor);
} else if (StringUtils.equals(node, REPOSITORY_KEY)) {
- RuleDebt ruleDebt = processRequirement(cursor);
+ RuleDebt ruleDebt = processRule(cursor);
if (ruleDebt != null) {
if (rootKey != null) {
ruleDebt.characteristicKey = parentKey;
@@ -123,7 +123,7 @@ public class RuleDebtXMLImporter implements ServerExtension {
}
}
- private RuleDebt processRequirement(SMInputCursor cursor)
+ private RuleDebt processRule(SMInputCursor cursor)
throws XMLStreamException {
RuleDebt ruleDebt = new RuleDebt();
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtModelSynchronizer.java
similarity index 93%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java
rename to sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtModelSynchronizer.java
index d553c22888b..a58032fc366 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtModelSynchronizer.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
@@ -31,9 +31,9 @@ import org.sonar.api.rules.Rule;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
import java.io.Reader;
import java.util.Collection;
@@ -47,11 +47,11 @@ public class TechnicalDebtModelSynchronizer implements ServerExtension {
private final MyBatis mybatis;
private final CharacteristicDao dao;
- private final TechnicalDebtModelRepository languageModelFinder;
+ private final DebtModelPluginRepository languageModelFinder;
private final TechnicalDebtXMLImporter importer;
public TechnicalDebtModelSynchronizer(MyBatis mybatis, CharacteristicDao dao,
- TechnicalDebtModelRepository modelRepository, TechnicalDebtXMLImporter importer) {
+ DebtModelPluginRepository modelRepository, TechnicalDebtXMLImporter importer) {
this.mybatis = mybatis;
this.dao = dao;
this.languageModelFinder = modelRepository;
@@ -72,7 +72,7 @@ public class TechnicalDebtModelSynchronizer implements ServerExtension {
}
public List synchronize(ValidationMessages messages, TechnicalDebtRuleCache rulesCache, SqlSession session) {
- DefaultTechnicalDebtModel defaultModel = loadModelFromXml(TechnicalDebtModelRepository.DEFAULT_MODEL, messages, rulesCache);
+ DefaultTechnicalDebtModel defaultModel = loadModelFromXml(DebtModelPluginRepository.DEFAULT_MODEL, messages, rulesCache);
List model = loadOrCreateModelFromDb(defaultModel, session);
disableRequirementsOnRemovedRules(model, rulesCache, session);
mergePlugins(model, defaultModel, messages, rulesCache, session);
@@ -165,7 +165,7 @@ public class TechnicalDebtModelSynchronizer implements ServerExtension {
private Collection getContributingPluginListWithoutSqale() {
Collection pluginList = newArrayList(languageModelFinder.getContributingPluginList());
- pluginList.remove(TechnicalDebtModelRepository.DEFAULT_MODEL);
+ pluginList.remove(DebtModelPluginRepository.DEFAULT_MODEL);
return pluginList;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCache.java b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtRuleCache.java
similarity index 98%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCache.java
rename to sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtRuleCache.java
index d5a098a2e45..92b1f07a6f4 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCache.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtRuleCache.java
@@ -17,7 +17,7 @@
* 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.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.collect.Maps;
import org.sonar.api.rule.RuleKey;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtXMLImporter.java
similarity index 99%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java
rename to sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtXMLImporter.java
index 12c307dd004..6c46bf9fda0 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/TechnicalDebtXMLImporter.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Predicate;
import com.google.common.base.Strings;
@@ -38,7 +38,7 @@ import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
import org.sonar.api.utils.internal.WorkDuration;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
+import org.sonar.core.debt.db.CharacteristicDto;
import javax.annotation.CheckForNull;
import javax.xml.stream.XMLInputFactory;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDao.java
similarity index 99%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java
rename to sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDao.java
index 6e6ff49879a..923287699cc 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDao.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt.db;
import org.apache.ibatis.session.SqlSession;
import org.sonar.api.BatchComponent;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDto.java
similarity index 99%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java
rename to sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDto.java
index 18a1bb9034d..23eb8a252fd 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicDto.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt.db;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicMapper.java
similarity index 97%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java
rename to sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicMapper.java
index 7ab1b291874..1e5243b4be0 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/db/CharacteristicMapper.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt.db;
import java.util.List;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/package-info.java b/sonar-core/src/main/java/org/sonar/core/debt/db/package-info.java
similarity index 96%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/package-info.java
rename to sonar-core/src/main/java/org/sonar/core/debt/db/package-info.java
index 268f4dbbc54..b003c97e676 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/package-info.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/db/package-info.java
@@ -17,7 +17,8 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+
@ParametersAreNonnullByDefault
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt.db;
import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/package-info.java b/sonar-core/src/main/java/org/sonar/core/debt/package-info.java
similarity index 95%
rename from sonar-core/src/main/java/org/sonar/core/technicaldebt/db/package-info.java
rename to sonar-core/src/main/java/org/sonar/core/debt/package-info.java
index 815db165b0b..46a651d70ec 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/package-info.java
+++ b/sonar-core/src/main/java/org/sonar/core/debt/package-info.java
@@ -17,8 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-
@ParametersAreNonnullByDefault
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt;
import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java b/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
index 05628a72ed0..5beafe71e24 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
@@ -22,6 +22,7 @@ package org.sonar.core.persistence;
import com.google.common.collect.ImmutableList;
import org.sonar.core.dashboard.ActiveDashboardDao;
import org.sonar.core.dashboard.DashboardDao;
+import org.sonar.core.debt.db.CharacteristicDao;
import org.sonar.core.duplication.DuplicationDao;
import org.sonar.core.graph.jdbc.GraphDao;
import org.sonar.core.issue.db.*;
@@ -41,7 +42,6 @@ import org.sonar.core.rule.RuleDao;
import org.sonar.core.rule.RuleTagDao;
import org.sonar.core.source.db.SnapshotDataDao;
import org.sonar.core.source.db.SnapshotSourceDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.template.LoadedTemplateDao;
import org.sonar.core.user.*;
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java
index 8325bd831cd..f1fd87442c5 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java
@@ -36,6 +36,8 @@ import org.sonar.core.component.ComponentDto;
import org.sonar.core.component.db.ComponentMapper;
import org.sonar.core.config.Logback;
import org.sonar.core.dashboard.*;
+import org.sonar.core.debt.db.CharacteristicDto;
+import org.sonar.core.debt.db.CharacteristicMapper;
import org.sonar.core.dependency.DependencyDto;
import org.sonar.core.dependency.DependencyMapper;
import org.sonar.core.dependency.ResourceSnapshotDto;
@@ -63,8 +65,6 @@ import org.sonar.core.rule.*;
import org.sonar.core.source.db.SnapshotDataDto;
import org.sonar.core.source.db.SnapshotDataMapper;
import org.sonar.core.source.db.SnapshotSourceMapper;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
-import org.sonar.core.technicaldebt.db.CharacteristicMapper;
import org.sonar.core.template.LoadedTemplateDto;
import org.sonar.core.template.LoadedTemplateMapper;
import org.sonar.core.user.*;
diff --git a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml b/sonar-core/src/main/resources/org/sonar/core/debt/db/CharacteristicMapper.xml
similarity index 97%
rename from sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml
rename to sonar-core/src/main/resources/org/sonar/core/debt/db/CharacteristicMapper.xml
index 2988115ae16..ff16da14c8b 100644
--- a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/debt/db/CharacteristicMapper.xml
@@ -2,7 +2,7 @@
-
+
c.id,
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizerTest.java b/sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizerTest.java
similarity index 83%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizerTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizerTest.java
index 657758bd413..4030cc8c3c5 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DebtCharacteristicsSynchronizerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelSynchronizerTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.collect.Lists;
import org.apache.ibatis.session.SqlSession;
@@ -32,9 +32,9 @@ import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
import java.io.Reader;
import java.util.Collections;
@@ -46,7 +46,7 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
-public class DebtCharacteristicsSynchronizerTest {
+public class CharacteristicsDebtModelSynchronizerTest {
@Mock
MyBatis myBatis;
@@ -55,19 +55,19 @@ public class DebtCharacteristicsSynchronizerTest {
SqlSession session;
@Mock
- TechnicalDebtModelRepository technicalDebtModelRepository;
+ DebtModelPluginRepository debtModelPluginRepository;
@Mock
CharacteristicDao dao;
@Mock
- CharacteristicsXMLImporter xmlImporter;
+ CharacteristicsDebtModelXMLImporter xmlImporter;
Integer currentId = 1;
private DefaultTechnicalDebtModel defaultModel;
- private DebtCharacteristicsSynchronizer manager;
+ private CharacteristicsDebtModelSynchronizer manager;
@Before
public void initAndMerge() throws Exception {
@@ -75,7 +75,7 @@ public class DebtCharacteristicsSynchronizerTest {
defaultModel = new DefaultTechnicalDebtModel();
Reader defaultModelReader = mock(Reader.class);
- when(technicalDebtModelRepository.createReaderForXMLFile("technical-debt")).thenReturn(defaultModelReader);
+ when(debtModelPluginRepository.createReaderForXMLFile("technical-debt")).thenReturn(defaultModelReader);
when(xmlImporter.importXML(eq(defaultModelReader), any(ValidationMessages.class))).thenReturn(defaultModel);
doAnswer(new Answer() {
@@ -88,7 +88,7 @@ public class DebtCharacteristicsSynchronizerTest {
}).when(dao).insert(any(CharacteristicDto.class), any(SqlSession.class));
- manager = new DebtCharacteristicsSynchronizer(myBatis, dao, technicalDebtModelRepository, xmlImporter);
+ manager = new CharacteristicsDebtModelSynchronizer(myBatis, dao, debtModelPluginRepository, xmlImporter);
}
@Test
@@ -97,7 +97,7 @@ public class DebtCharacteristicsSynchronizerTest {
new DefaultCharacteristic().setKey("COMPILER_RELATED_PORTABILITY").setParent(rootCharacteristic);
defaultModel.addRootCharacteristic(rootCharacteristic);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
when(dao.selectEnabledCharacteristics()).thenReturn(Lists.newArrayList());
manager.synchronize(ValidationMessages.create());
@@ -118,7 +118,7 @@ public class DebtCharacteristicsSynchronizerTest {
new DefaultCharacteristic().setKey("COMPILER_RELATED_PORTABILITY").setParent(rootCharacteristic);
defaultModel.addRootCharacteristic(rootCharacteristic);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
when(dao.selectEnabledCharacteristics()).thenReturn(Lists.newArrayList(new CharacteristicDto()));
manager.synchronize(ValidationMessages.create());
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest.java b/sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest.java
similarity index 89%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest.java
index 6c5e26e15a4..c68f4ace3d5 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
@@ -30,14 +30,14 @@ import java.io.IOException;
import static org.fest.assertions.Assertions.assertThat;
-public class CharacteristicsXMLImporterTest {
+public class CharacteristicsDebtModelXMLImporterTest {
@Test
public void import_characteristics() {
String xml = getFileContent("import_characteristics.xml");
ValidationMessages messages = ValidationMessages.create();
- DefaultTechnicalDebtModel debtModel = new CharacteristicsXMLImporter().importXML(xml, messages);
+ DefaultTechnicalDebtModel debtModel = new CharacteristicsDebtModelXMLImporter().importXML(xml, messages);
assertThat(debtModel.rootCharacteristics()).hasSize(2);
assertThat(debtModel.rootCharacteristics().get(0).key()).isEqualTo("PORTABILITY");
@@ -63,7 +63,7 @@ public class CharacteristicsXMLImporterTest {
String xml = getFileContent("import_badly_formatted_xml.xml");
ValidationMessages messages = ValidationMessages.create();
- DefaultTechnicalDebtModel debtModel = new CharacteristicsXMLImporter().importXML(xml, messages);
+ DefaultTechnicalDebtModel debtModel = new CharacteristicsDebtModelXMLImporter().importXML(xml, messages);
checkXmlCorrectlyImported(debtModel, messages);
}
@@ -84,7 +84,7 @@ public class CharacteristicsXMLImporterTest {
private String getFileContent(String file) {
try {
- return Resources.toString(Resources.getResource(CharacteristicsXMLImporterTest.class, "CharacteristicsXMLImporterTest/" + file), Charsets.UTF_8);
+ return Resources.toString(Resources.getResource(CharacteristicsDebtModelXMLImporterTest.class, "CharacteristicsDebtModelXMLImporterTest/" + file), Charsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest.java b/sonar-core/src/test/java/org/sonar/core/debt/DebtModelPluginRepositoryTest.java
similarity index 91%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/DebtModelPluginRepositoryTest.java
index 0b69fa82b0f..9e8d7c953c4 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/DebtModelPluginRepositoryTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -46,11 +46,11 @@ import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public class TechnicalDebtModelRepositoryTest {
+public class DebtModelPluginRepositoryTest {
- private static final String TEST_XML_PREFIX_PATH = "org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest/";
+ private static final String TEST_XML_PREFIX_PATH = "org/sonar/core/debt/TechnicalDebtModelRepositoryTest/";
- private TechnicalDebtModelRepository modelFinder;
+ private DebtModelPluginRepository modelFinder;
@Test
public void test_component_initialization() throws Exception {
@@ -66,7 +66,7 @@ public class TechnicalDebtModelRepositoryTest {
when(repository.getMetadata()).thenReturn(Lists.newArrayList(csharpPluginMetadata, phpPluginMetadata));
FakePlugin fakePlugin = new FakePlugin();
when(repository.getPlugin(anyString())).thenReturn(fakePlugin);
- modelFinder = new TechnicalDebtModelRepository(repository, TEST_XML_PREFIX_PATH);
+ modelFinder = new DebtModelPluginRepository(repository, TEST_XML_PREFIX_PATH);
// when
modelFinder.start();
@@ -110,7 +110,7 @@ public class TechnicalDebtModelRepositoryTest {
@Test
public void contain_default_model() throws Exception {
- modelFinder = new TechnicalDebtModelRepository(mock(PluginRepository.class));
+ modelFinder = new DebtModelPluginRepository(mock(PluginRepository.class));
modelFinder.start();
assertThat(modelFinder.getContributingPluginKeyToClassLoader().keySet()).containsOnly("technical-debt");
}
@@ -119,7 +119,7 @@ public class TechnicalDebtModelRepositoryTest {
Map contributingPluginKeyToClassLoader = Maps.newHashMap();
contributingPluginKeyToClassLoader.put("csharp", newClassLoader());
contributingPluginKeyToClassLoader.put("java", newClassLoader());
- modelFinder = new TechnicalDebtModelRepository(contributingPluginKeyToClassLoader, TEST_XML_PREFIX_PATH);
+ modelFinder = new DebtModelPluginRepository(contributingPluginKeyToClassLoader, TEST_XML_PREFIX_PATH);
}
private ClassLoader newClassLoader() throws MalformedURLException {
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java b/sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtManagerTest.java
similarity index 97%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtManagerTest.java
index 9095488504c..ef7001eadf5 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtManagerTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import org.junit.Before;
import org.junit.Test;
@@ -30,8 +30,8 @@ import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.technicaldebt.server.Characteristic;
import org.sonar.api.utils.internal.WorkDuration;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import java.util.List;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java b/sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtModelTest.java
similarity index 99%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtModelTest.java
index ef857e167d1..a3c9dd745b8 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/DefaultTechnicalDebtModelTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import org.junit.Before;
import org.junit.Test;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/RuleDebtXMLImporterTest.java b/sonar-core/src/test/java/org/sonar/core/debt/RulesDebtModelXMLImporterTest.java
similarity index 75%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/RuleDebtXMLImporterTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/RulesDebtModelXMLImporterTest.java
index f0400461761..8caa1a4c127 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/RuleDebtXMLImporterTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/RulesDebtModelXMLImporterTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
@@ -31,15 +31,15 @@ import java.util.List;
import static org.fest.assertions.Assertions.assertThat;
-public class RuleDebtXMLImporterTest {
+public class RulesDebtModelXMLImporterTest {
- RuleDebtXMLImporter importer = new RuleDebtXMLImporter();
+ RulesDebtModelXMLImporter importer = new RulesDebtModelXMLImporter();
@Test
public void import_rules() {
String xml = getFileContent("import_rules.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(2);
}
@@ -47,10 +47,10 @@ public class RuleDebtXMLImporterTest {
public void import_linear() {
String xml = getFileContent("import_linear.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.ruleKey()).isEqualTo(RuleKey.of("checkstyle", "Regexp"));
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR);
@@ -62,10 +62,10 @@ public class RuleDebtXMLImporterTest {
public void import_linear_with_offset() {
String xml = getFileContent("import_linear_with_offset.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR_OFFSET);
assertThat(ruleDebt.factor()).isEqualTo("3h");
@@ -76,10 +76,10 @@ public class RuleDebtXMLImporterTest {
public void import_constant_issue() {
String xml = getFileContent("import_constant_issue.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.CONSTANT_ISSUE);
assertThat(ruleDebt.factor()).isEqualTo("0d");
@@ -90,10 +90,10 @@ public class RuleDebtXMLImporterTest {
public void use_default_unit_when_no_unit() {
String xml = getFileContent("use_default_unit_when_no_unit.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR);
assertThat(ruleDebt.factor()).isEqualTo("3d");
@@ -104,10 +104,10 @@ public class RuleDebtXMLImporterTest {
public void replace_mn_by_min() {
String xml = getFileContent("replace_mn_by_min.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR);
assertThat(ruleDebt.factor()).isEqualTo("3min");
@@ -118,10 +118,10 @@ public class RuleDebtXMLImporterTest {
public void convert_deprecated_linear_with_threshold_function_by_linear_function() {
String xml = getFileContent("convert_deprecated_linear_with_threshold_function_by_linear_function.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR);
assertThat(ruleDebt.factor()).isEqualTo("3h");
@@ -132,7 +132,7 @@ public class RuleDebtXMLImporterTest {
public void ignore_deprecated_constant_per_file_function() {
String xml = getFileContent("ignore_deprecated_constant_per_file_function.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).isEmpty();
}
@@ -140,7 +140,7 @@ public class RuleDebtXMLImporterTest {
public void ignore_rule_on_root_characteristics() {
String xml = getFileContent("ignore_rule_on_root_characteristics.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).isEmpty();
}
@@ -148,10 +148,10 @@ public class RuleDebtXMLImporterTest {
public void import_badly_formatted_xml() {
String xml = getFileContent("import_badly_formatted_xml.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).hasSize(1);
- RuleDebtXMLImporter.RuleDebt ruleDebt = results.get(0);
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = results.get(0);
assertThat(ruleDebt.characteristicKey()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(ruleDebt.ruleKey()).isEqualTo(RuleKey.of("checkstyle", "Regexp"));
assertThat(ruleDebt.function()).isEqualTo(RemediationFunction.LINEAR);
@@ -162,13 +162,13 @@ public class RuleDebtXMLImporterTest {
@Test
public void ignore_invalid_value() throws Exception {
String xml = getFileContent("ignore_invalid_value.xml");
- List results = importer.importXML(xml);
+ List results = importer.importXML(xml);
assertThat(results).isEmpty();
}
private String getFileContent(String file) {
try {
- return Resources.toString(Resources.getResource(RuleDebtXMLImporterTest.class, "RuleDebtXMLImporterTest/" + file), Charsets.UTF_8);
+ return Resources.toString(Resources.getResource(RulesDebtModelXMLImporterTest.class, "RulesDebtModelXMLImporterTest/" + file), Charsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtModelSynchronizerTest.java
similarity index 91%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtModelSynchronizerTest.java
index 5419bb96978..0244c420646 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtModelSynchronizerTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.collect.Lists;
import org.apache.ibatis.session.SqlSession;
@@ -36,9 +36,9 @@ import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
import org.sonar.api.utils.internal.WorkDuration;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
import java.io.Reader;
import java.util.Collections;
@@ -61,7 +61,7 @@ public class TechnicalDebtModelSynchronizerTest {
SqlSession session;
@Mock
- TechnicalDebtModelRepository technicalDebtModelRepository;
+ DebtModelPluginRepository debtModelPluginRepository;
@Mock
TechnicalDebtRuleCache ruleCache;
@@ -84,7 +84,7 @@ public class TechnicalDebtModelSynchronizerTest {
defaultModel = new DefaultTechnicalDebtModel();
Reader defaultModelReader = mock(Reader.class);
- when(technicalDebtModelRepository.createReaderForXMLFile("technical-debt")).thenReturn(defaultModelReader);
+ when(debtModelPluginRepository.createReaderForXMLFile("technical-debt")).thenReturn(defaultModelReader);
when(xmlImporter.importXML(eq(defaultModelReader), any(ValidationMessages.class), eq(ruleCache))).thenReturn(defaultModel);
doAnswer(new Answer() {
@@ -97,7 +97,7 @@ public class TechnicalDebtModelSynchronizerTest {
}).when(dao).insert(any(CharacteristicDto.class), any(SqlSession.class));
- manager = new TechnicalDebtModelSynchronizer(myBatis, dao, technicalDebtModelRepository, xmlImporter);
+ manager = new TechnicalDebtModelSynchronizer(myBatis, dao, debtModelPluginRepository, xmlImporter);
}
@Test
@@ -106,7 +106,7 @@ public class TechnicalDebtModelSynchronizerTest {
new DefaultCharacteristic().setKey("COMPILER_RELATED_PORTABILITY").setParent(rootCharacteristic);
defaultModel.addRootCharacteristic(rootCharacteristic);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(Collections.emptyList());
when(dao.selectEnabledCharacteristics()).thenReturn(Lists.newArrayList());
manager.synchronize(ValidationMessages.create(), ruleCache);
@@ -150,8 +150,8 @@ public class TechnicalDebtModelSynchronizerTest {
Reader javaModelReader = mock(Reader.class);
when(xmlImporter.importXML(eq(javaModelReader), any(ValidationMessages.class), eq(ruleCache))).thenReturn(javaModel);
- when(technicalDebtModelRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
+ when(debtModelPluginRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
manager.synchronize(ValidationMessages.create(), ruleCache);
@@ -206,9 +206,9 @@ public class TechnicalDebtModelSynchronizerTest {
.setRootCharacteristic(javaRootCharacteristic);
Reader javaModelReader = mock(Reader.class);
- when(technicalDebtModelRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
+ when(debtModelPluginRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
when(xmlImporter.importXML(eq(javaModelReader), any(ValidationMessages.class), eq(ruleCache))).thenReturn(javaModel);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
manager.synchronize(ValidationMessages.create(), ruleCache);
@@ -264,9 +264,9 @@ public class TechnicalDebtModelSynchronizerTest {
javaModel.addRootCharacteristic(javaRootCharacteristic);
Reader javaModelReader = mock(Reader.class);
- when(technicalDebtModelRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
+ when(debtModelPluginRepository.createReaderForXMLFile("java")).thenReturn(javaModelReader);
when(xmlImporter.importXML(eq(javaModelReader), any(ValidationMessages.class), eq(ruleCache))).thenReturn(javaModel);
- when(technicalDebtModelRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
+ when(debtModelPluginRepository.getContributingPluginList()).thenReturn(newArrayList("java"));
manager.synchronize(ValidationMessages.create(), ruleCache);
fail();
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCacheTest.java b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtRuleCacheTest.java
similarity index 98%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCacheTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtRuleCacheTest.java
index 7185f7910c1..0cb884e894d 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtRuleCacheTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtRuleCacheTest.java
@@ -17,7 +17,7 @@
* 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.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.collect.Lists;
import org.fest.assertions.Assertions;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtXMLImporterTest.java
similarity index 99%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtXMLImporterTest.java
index 64c5dea9492..ad7f8d0b808 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/TechnicalDebtXMLImporterTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt;
+package org.sonar.core.debt;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java b/sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDaoTest.java
similarity index 99%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDaoTest.java
index 0e4341ab81c..928f8de3c55 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDaoTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt.db;
import org.junit.Before;
import org.junit.Test;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDtoTest.java b/sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDtoTest.java
similarity index 98%
rename from sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDtoTest.java
rename to sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDtoTest.java
index f6730185360..7867f132795 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDtoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/debt/db/CharacteristicDtoTest.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.core.technicaldebt.db;
+package org.sonar.core.debt.db;
import org.junit.Test;
import org.sonar.api.rule.RuleKey;
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest/import_badly_formatted_xml.xml b/sonar-core/src/test/resources/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest/import_badly_formatted_xml.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest/import_badly_formatted_xml.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest/import_badly_formatted_xml.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest/import_characteristics.xml b/sonar-core/src/test/resources/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest/import_characteristics.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/CharacteristicsXMLImporterTest/import_characteristics.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/CharacteristicsDebtModelXMLImporterTest/import_characteristics.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/convert_deprecated_linear_with_threshold_function_by_linear_function.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/convert_deprecated_linear_with_threshold_function_by_linear_function.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_deprecated_constant_per_file_function.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_deprecated_constant_per_file_function.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_invalid_value.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_invalid_value.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_rule_on_root_characteristics.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/ignore_rule_on_root_characteristics.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_badly_formatted_xml.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_badly_formatted_xml.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_constant_issue.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_constant_issue.xml
new file mode 100644
index 00000000000..86b1f551fbe
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_constant_issue.xml
@@ -0,0 +1,29 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ offset
+ 3.0
+ d
+
+
+ remediationFunction
+ constant_issue
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear_with_offset.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear_with_offset.xml
new file mode 100644
index 00000000000..d1af28f5a4c
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_linear_with_offset.xml
@@ -0,0 +1,54 @@
+
+
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ linear_offset
+
+
+ offset
+ 1.0
+ min
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_rules.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_rules.xml
new file mode 100644
index 00000000000..d035d7bde00
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/import_rules.xml
@@ -0,0 +1,58 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ linear
+
+
+
+
+
+ PORTABILITY
+ Portability
+
+ COMPILER_RELATED_PORTABILITY
+ Compiler related portability
+
+
+ HARDWARE_RELATED_PORTABILITY
+ Hardware related portability
+
+ checkstyle
+ Regexp2
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ linear
+
+
+ offset
+ 1.0
+ h
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/replace_mn_by_min.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/replace_mn_by_min.xml
new file mode 100644
index 00000000000..3254fef60ce
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/replace_mn_by_min.xml
@@ -0,0 +1,49 @@
+
+
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ mn
+
+
+ remediationFunction
+ linear
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/use_default_unit_when_no_unit.xml b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/use_default_unit_when_no_unit.xml
new file mode 100644
index 00000000000..f05e51228b3
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/RulesDebtModelXMLImporterTest/use_default_unit_when_no_unit.xml
@@ -0,0 +1,32 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+
+
+ remediationFunction
+ linear
+
+
+ offset
+ 1.0
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest/csharp-model.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtModelRepositoryTest/csharp-model.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest/csharp-model.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtModelRepositoryTest/csharp-model.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest/java-model.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtModelRepositoryTest/java-model.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtModelRepositoryTest/java-model.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtModelRepositoryTest/java-model.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml
new file mode 100644
index 00000000000..bcf3ed867d3
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/ignore_requirement_on_root_characteristics.xml
@@ -0,0 +1,19 @@
+
+
+ EFFICIENCY
+ Efficiency
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ linear
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/import_characteristics.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/import_characteristics.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/import_characteristics.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/import_characteristics.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml
new file mode 100644
index 00000000000..6c7d153992c
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_badly-formatted.xml
@@ -0,0 +1,43 @@
+
+
+ USABILITY
+
+ Usability
+
+ Estimate usability
+
+
+
+ EFFICIENCY
+
+ Efficiency
+
+
+ MEMORY_EFFICIENCY
+
+ Memory use
+
+
+ checkstyle
+
+ Regexp
+
+
+ remediationFactor
+
+ 3.0
+
+ h
+
+
+
+ remediationFunction
+
+ linear
+
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml
new file mode 100644
index 00000000000..4b8ae3f6475
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_constant_per_file.xml
@@ -0,0 +1,25 @@
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ constant_resource
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml
new file mode 100644
index 00000000000..9ebc69b94a6
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_deprecated_linear_with_threshold.xml
@@ -0,0 +1,36 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFunction
+
+ linear_threshold
+
+
+ remediationFactor
+ 3.0
+ h
+
+
+
+ offset
+ 1.0
+ h
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml
new file mode 100644
index 00000000000..f641a5185ec
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear.xml
@@ -0,0 +1,29 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ remediationFactor
+ 3.0
+ h
+
+
+ remediationFunction
+ linear
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear_with_offset.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear_with_offset.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear_with_offset.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldImportXML_with_linear_with_offset.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldLogWarningIfRuleNotFound.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldLogWarningIfRuleNotFound.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/shouldLogWarningIfRuleNotFound.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldLogWarningIfRuleNotFound.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml
new file mode 100644
index 00000000000..bb6bdbb4afb
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/shouldRejectXML_with_invalid_value.xml
@@ -0,0 +1,28 @@
+
+
+ USABILITY
+ Usability
+ Estimate usability
+
+
+ EFFICIENCY
+ Efficiency
+
+ MEMORY_EFFICIENCY
+ Memory use
+
+ checkstyle
+ Regexp
+
+ factor
+ abc
+
+
+ function
+ linear
+
+
+
+
+
+
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/use_default_unit_when_no_unit.xml b/sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/use_default_unit_when_no_unit.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest/use_default_unit_when_no_unit.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/TechnicalDebtXMLImporterTest/use_default_unit_when_no_unit.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/disable-result.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/disable-result.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/disable-result.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/disable-result.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/disable.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/disable.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/disable.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/disable.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/insert_characteristic-result.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/insert_characteristic-result.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/insert_characteristic-result.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/insert_characteristic-result.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/insert_requirement-result.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/insert_requirement-result.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/insert_requirement-result.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/insert_requirement-result.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_enabled_root_characteristics.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/select_enabled_root_characteristics.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_enabled_root_characteristics.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/select_enabled_root_characteristics.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_enabled_root_characteristics_order_by_characteristic_order.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/select_enabled_root_characteristics_order_by_characteristic_order.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_enabled_root_characteristics_order_by_characteristic_order.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/select_enabled_root_characteristics_order_by_characteristic_order.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/shared.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/shared.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_characteristic-result.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_characteristic-result.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_characteristic-result.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_characteristic-result.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_characteristic.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_characteristic.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_characteristic.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_characteristic.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_requirement-result.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_requirement-result.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_requirement-result.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_requirement-result.xml
diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_requirement.xml b/sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_requirement.xml
similarity index 100%
rename from sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/update_requirement.xml
rename to sonar-core/src/test/resources/org/sonar/core/debt/db/CharacteristicDaoTest/update_requirement.xml
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
index 3a78d88179f..60b571fe4b3 100644
--- a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
+++ b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
@@ -38,8 +38,8 @@ import org.sonar.api.utils.Durations;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.api.web.UserRole;
import org.sonar.core.component.ComponentDto;
+import org.sonar.core.debt.DefaultTechnicalDebtManager;
import org.sonar.core.issue.workflow.Transition;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
import org.sonar.markdown.Markdown;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.issue.ActionService;
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index d08ff9f9a66..ba01ebe9653 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -40,6 +40,7 @@ import org.sonar.api.utils.internal.TempFolderCleaner;
import org.sonar.core.component.SnapshotPerspectives;
import org.sonar.core.component.db.ComponentDao;
import org.sonar.core.config.Logback;
+import org.sonar.core.debt.*;
import org.sonar.core.i18n.DefaultI18n;
import org.sonar.core.i18n.GwtI18n;
import org.sonar.core.i18n.RuleI18nManager;
@@ -63,7 +64,6 @@ import org.sonar.core.qualitygate.db.QualityGateConditionDao;
import org.sonar.core.qualitygate.db.QualityGateDao;
import org.sonar.core.resource.DefaultResourcePermissions;
import org.sonar.core.rule.DefaultRuleFinder;
-import org.sonar.core.technicaldebt.*;
import org.sonar.core.test.TestPlanPerspectiveLoader;
import org.sonar.core.test.TestablePerspectiveLoader;
import org.sonar.core.timemachine.Periods;
@@ -384,11 +384,11 @@ public final class Platform {
// technical debt
servicesContainer.addSingleton(DebtService.class);
servicesContainer.addSingleton(TechnicalDebtModelSynchronizer.class);
- servicesContainer.addSingleton(DebtCharacteristicsSynchronizer.class);
- servicesContainer.addSingleton(TechnicalDebtModelRepository.class);
+ servicesContainer.addSingleton(CharacteristicsDebtModelSynchronizer.class);
+ servicesContainer.addSingleton(DebtModelPluginRepository.class);
servicesContainer.addSingleton(TechnicalDebtXMLImporter.class);
- servicesContainer.addSingleton(RuleDebtXMLImporter.class);
- servicesContainer.addSingleton(CharacteristicsXMLImporter.class);
+ servicesContainer.addSingleton(RulesDebtModelXMLImporter.class);
+ servicesContainer.addSingleton(CharacteristicsDebtModelXMLImporter.class);
servicesContainer.addSingleton(DefaultTechnicalDebtManager.class);
// source
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRuleDefinitions.java b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRuleDefinitions.java
index f96f117a034..6dd2f58a861 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRuleDefinitions.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRuleDefinitions.java
@@ -30,9 +30,9 @@ import org.sonar.api.rules.RuleRepository;
import org.sonar.api.server.rule.RuleDefinitions;
import org.sonar.api.server.rule.RuleParamType;
import org.sonar.check.Cardinality;
+import org.sonar.core.debt.DebtModelPluginRepository;
+import org.sonar.core.debt.RulesDebtModelXMLImporter;
import org.sonar.core.i18n.RuleI18nManager;
-import org.sonar.core.technicaldebt.RuleDebtXMLImporter;
-import org.sonar.core.technicaldebt.TechnicalDebtModelRepository;
import javax.annotation.CheckForNull;
@@ -52,24 +52,24 @@ public class DeprecatedRuleDefinitions implements RuleDefinitions {
private final RuleI18nManager i18n;
private final RuleRepository[] repositories;
- private final TechnicalDebtModelRepository languageModelFinder;
- private final RuleDebtXMLImporter importer;
+ private final DebtModelPluginRepository languageModelFinder;
+ private final RulesDebtModelXMLImporter importer;
- public DeprecatedRuleDefinitions(RuleI18nManager i18n, RuleRepository[] repositories, TechnicalDebtModelRepository languageModelFinder, RuleDebtXMLImporter importer) {
+ public DeprecatedRuleDefinitions(RuleI18nManager i18n, RuleRepository[] repositories, DebtModelPluginRepository languageModelFinder, RulesDebtModelXMLImporter importer) {
this.i18n = i18n;
this.repositories = repositories;
this.languageModelFinder = languageModelFinder;
this.importer = importer;
}
- public DeprecatedRuleDefinitions(RuleI18nManager i18n, TechnicalDebtModelRepository languageModelFinder, RuleDebtXMLImporter importer) {
+ public DeprecatedRuleDefinitions(RuleI18nManager i18n, DebtModelPluginRepository languageModelFinder, RulesDebtModelXMLImporter importer) {
this(i18n, new RuleRepository[0], languageModelFinder, importer);
}
@Override
public void define(Context context) {
// Load rule debt definitions from xml files provided by plugin
- List ruleDebts = loadRuleDebtList();
+ List ruleDebts = loadRuleDebtList();
for (RuleRepository repository : repositories) {
// RuleRepository API does not handle difference between new and extended repositories,
@@ -101,8 +101,8 @@ public class DeprecatedRuleDefinitions implements RuleDefinitions {
}
}
- private void updateRuleDebtDefinitions(NewRule newRule, String repoKey, String ruleKey, List ruleDebts){
- RuleDebtXMLImporter.RuleDebt ruleDebt = findRequirement(ruleDebts, repoKey, ruleKey);
+ private void updateRuleDebtDefinitions(NewRule newRule, String repoKey, String ruleKey, List ruleDebts){
+ RulesDebtModelXMLImporter.RuleDebt ruleDebt = findRequirement(ruleDebts, repoKey, ruleKey);
if (ruleDebt != null) {
newRule.setCharacteristicKey(ruleDebt.characteristicKey());
newRule.setRemediationFunction(ruleDebt.function());
@@ -138,15 +138,15 @@ public class DeprecatedRuleDefinitions implements RuleDefinitions {
return StringUtils.defaultIfBlank(desc, null);
}
- public List loadRuleDebtList() {
- List ruleDebtList = newArrayList();
+ public List loadRuleDebtList() {
+ List ruleDebtList = newArrayList();
for (String pluginKey : getContributingPluginListWithoutSqale()) {
ruleDebtList.addAll(loadRuleDebtsFromXml(pluginKey));
}
return ruleDebtList;
}
- public List loadRuleDebtsFromXml(String pluginKey) {
+ public List loadRuleDebtsFromXml(String pluginKey) {
Reader xmlFileReader = null;
try {
xmlFileReader = languageModelFinder.createReaderForXMLFile(pluginKey);
@@ -158,15 +158,15 @@ public class DeprecatedRuleDefinitions implements RuleDefinitions {
private Collection getContributingPluginListWithoutSqale() {
Collection pluginList = newArrayList(languageModelFinder.getContributingPluginList());
- pluginList.remove(TechnicalDebtModelRepository.DEFAULT_MODEL);
+ pluginList.remove(DebtModelPluginRepository.DEFAULT_MODEL);
return pluginList;
}
@CheckForNull
- private RuleDebtXMLImporter.RuleDebt findRequirement(List requirements, final String repoKey, final String ruleKey) {
- return Iterables.find(requirements, new Predicate() {
+ private RulesDebtModelXMLImporter.RuleDebt findRequirement(List requirements, final String repoKey, final String ruleKey) {
+ return Iterables.find(requirements, new Predicate() {
@Override
- public boolean apply(RuleDebtXMLImporter.RuleDebt input) {
+ public boolean apply(RulesDebtModelXMLImporter.RuleDebt input) {
return input.ruleKey().equals(RuleKey.of(repoKey, ruleKey));
}
}, null);
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
index 24fd9f7448c..11831d56338 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
@@ -35,11 +35,11 @@ import org.sonar.api.server.rule.RuleDefinitions;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.TimeProfiler;
import org.sonar.check.Cardinality;
+import org.sonar.core.debt.db.CharacteristicDao;
+import org.sonar.core.debt.db.CharacteristicDto;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.qualityprofile.db.ActiveRuleDao;
import org.sonar.core.rule.*;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDto;
import org.sonar.server.qualityprofile.ProfilesManager;
import org.sonar.server.startup.RegisterDebtCharacteristicModel;
diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterDebtCharacteristicModel.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterDebtCharacteristicModel.java
index 5395740c127..b11a2690ece 100644
--- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterDebtCharacteristicModel.java
+++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterDebtCharacteristicModel.java
@@ -24,15 +24,15 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.utils.TimeProfiler;
import org.sonar.api.utils.ValidationMessages;
-import org.sonar.core.technicaldebt.DebtCharacteristicsSynchronizer;
+import org.sonar.core.debt.CharacteristicsDebtModelSynchronizer;
public class RegisterDebtCharacteristicModel {
private static final Logger LOGGER = LoggerFactory.getLogger(RegisterDebtCharacteristicModel.class);
- private final DebtCharacteristicsSynchronizer manager;
+ private final CharacteristicsDebtModelSynchronizer manager;
- public RegisterDebtCharacteristicModel(DebtCharacteristicsSynchronizer manager) {
+ public RegisterDebtCharacteristicModel(CharacteristicsDebtModelSynchronizer manager) {
this.manager = manager;
}
diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterTechnicalDebtModel.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterTechnicalDebtModel.java
index 4d84d6e446a..47fa4048d92 100644
--- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterTechnicalDebtModel.java
+++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterTechnicalDebtModel.java
@@ -24,8 +24,8 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.utils.TimeProfiler;
import org.sonar.api.utils.ValidationMessages;
-import org.sonar.core.technicaldebt.TechnicalDebtModelSynchronizer;
-import org.sonar.core.technicaldebt.TechnicalDebtRuleCache;
+import org.sonar.core.debt.TechnicalDebtModelSynchronizer;
+import org.sonar.core.debt.TechnicalDebtRuleCache;
import org.sonar.server.rule.RuleRegistration;
public final class RegisterTechnicalDebtModel {
diff --git a/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java b/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
index 55b2cb52a4f..9ea942bbd36 100644
--- a/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
+++ b/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
@@ -22,7 +22,7 @@ package org.sonar.server.technicaldebt;
import org.sonar.api.ServerComponent;
import org.sonar.api.technicaldebt.server.Characteristic;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
+import org.sonar.core.debt.DefaultTechnicalDebtManager;
import javax.annotation.CheckForNull;
diff --git a/sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowWsHandlerTest.java b/sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowWsHandlerTest.java
index 5d9c8edeb54..345ffaef458 100644
--- a/sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowWsHandlerTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowWsHandlerTest.java
@@ -46,10 +46,10 @@ import org.sonar.api.utils.Duration;
import org.sonar.api.utils.Durations;
import org.sonar.api.web.UserRole;
import org.sonar.core.component.ComponentDto;
+import org.sonar.core.debt.DefaultTechnicalDebtManager;
import org.sonar.core.issue.DefaultActionPlan;
import org.sonar.core.issue.DefaultIssueQueryResult;
import org.sonar.core.issue.workflow.Transition;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
import org.sonar.core.user.DefaultUser;
import org.sonar.server.issue.ActionService;
import org.sonar.server.issue.IssueChangelog;
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRuleDefinitionsTest.java b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRuleDefinitionsTest.java
index 00fd9e91ece..72637b17c75 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRuleDefinitionsTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRuleDefinitionsTest.java
@@ -31,9 +31,9 @@ import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RulePriority;
import org.sonar.api.rules.RuleRepository;
import org.sonar.api.server.rule.RuleDefinitions;
+import org.sonar.core.debt.DebtModelPluginRepository;
+import org.sonar.core.debt.RulesDebtModelXMLImporter;
import org.sonar.core.i18n.RuleI18nManager;
-import org.sonar.core.technicaldebt.RuleDebtXMLImporter;
-import org.sonar.core.technicaldebt.TechnicalDebtModelRepository;
import java.io.Reader;
import java.util.Arrays;
@@ -52,10 +52,10 @@ public class DeprecatedRuleDefinitionsTest {
RuleI18nManager i18n;
@Mock
- TechnicalDebtModelRepository debtModelRepository;
+ DebtModelPluginRepository debtModelRepository;
@Mock
- RuleDebtXMLImporter importer;
+ RulesDebtModelXMLImporter importer;
static class CheckstyleRules extends RuleRepository {
public CheckstyleRules() {
@@ -154,8 +154,8 @@ public class DeprecatedRuleDefinitionsTest {
public void define_rule_debt() throws Exception {
RuleDefinitions.Context context = new RuleDefinitions.Context();
- List ruleDebts = newArrayList(
- new RuleDebtXMLImporter.RuleDebt()
+ List ruleDebts = newArrayList(
+ new RulesDebtModelXMLImporter.RuleDebt()
.setCharacteristicKey("MEMORY_EFFICIENCY")
.setRuleKey(RuleKey.of("checkstyle", "ConstantName"))
.setFunction(RemediationFunction.LINEAR_OFFSET)
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
index f3e9b413fa9..386cfd35aa1 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
@@ -26,12 +26,12 @@ import org.sonar.api.rule.RemediationFunction;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.server.rule.RuleDefinitions;
+import org.sonar.core.debt.db.CharacteristicDao;
import org.sonar.core.persistence.AbstractDaoTestCase;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.qualityprofile.db.ActiveRuleDao;
import org.sonar.core.rule.RuleDao;
import org.sonar.core.rule.RuleTagDao;
-import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.server.qualityprofile.ProfilesManager;
import org.sonar.server.startup.RegisterDebtCharacteristicModel;
diff --git a/sonar-server/src/test/java/org/sonar/server/startup/RegisterDebtCharacteristicModelTest.java b/sonar-server/src/test/java/org/sonar/server/startup/RegisterDebtCharacteristicModelTest.java
index 0dcd74a24c6..d01a6470d00 100644
--- a/sonar-server/src/test/java/org/sonar/server/startup/RegisterDebtCharacteristicModelTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/startup/RegisterDebtCharacteristicModelTest.java
@@ -22,7 +22,7 @@ package org.sonar.server.startup;
import org.junit.Test;
import org.sonar.api.utils.ValidationMessages;
-import org.sonar.core.technicaldebt.DebtCharacteristicsSynchronizer;
+import org.sonar.core.debt.CharacteristicsDebtModelSynchronizer;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
@@ -31,7 +31,7 @@ public class RegisterDebtCharacteristicModelTest {
@Test
public void create_model() throws Exception {
- DebtCharacteristicsSynchronizer synchronizer = mock(DebtCharacteristicsSynchronizer.class);
+ CharacteristicsDebtModelSynchronizer synchronizer = mock(CharacteristicsDebtModelSynchronizer.class);
RegisterDebtCharacteristicModel sqaleDefinition = new RegisterDebtCharacteristicModel(synchronizer);
sqaleDefinition.start();
diff --git a/sonar-server/src/test/java/org/sonar/server/startup/RegisterTechnicalDebtModelTest.java b/sonar-server/src/test/java/org/sonar/server/startup/RegisterTechnicalDebtModelTest.java
index 1e3fcf55f91..017e7d5d1df 100644
--- a/sonar-server/src/test/java/org/sonar/server/startup/RegisterTechnicalDebtModelTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/startup/RegisterTechnicalDebtModelTest.java
@@ -22,8 +22,8 @@ package org.sonar.server.startup;
import org.junit.Test;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.utils.ValidationMessages;
-import org.sonar.core.technicaldebt.TechnicalDebtModelSynchronizer;
-import org.sonar.core.technicaldebt.TechnicalDebtRuleCache;
+import org.sonar.core.debt.TechnicalDebtModelSynchronizer;
+import org.sonar.core.debt.TechnicalDebtRuleCache;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
diff --git a/sonar-server/src/test/java/org/sonar/server/technicaldebt/DebtServiceTest.java b/sonar-server/src/test/java/org/sonar/server/technicaldebt/DebtServiceTest.java
index b66fc6c26f5..bbddd8ed334 100644
--- a/sonar-server/src/test/java/org/sonar/server/technicaldebt/DebtServiceTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/technicaldebt/DebtServiceTest.java
@@ -23,7 +23,7 @@ import org.junit.Before;
import org.junit.Test;
import org.sonar.api.technicaldebt.server.Characteristic;
import org.sonar.api.technicaldebt.server.internal.DefaultCharacteristic;
-import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
+import org.sonar.core.debt.DefaultTechnicalDebtManager;
import java.util.List;
--
2.39.5