@@ -27,6 +27,7 @@ import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
import javax.annotation.Nonnull; | |||
import org.sonar.api.CoreProperties; | |||
import org.sonar.api.config.Configuration; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
@@ -60,6 +61,9 @@ public class IntegrateCrossProjectDuplications { | |||
public IntegrateCrossProjectDuplications(Configuration config, DuplicationRepository duplicationRepository) { | |||
this.config = config; | |||
this.duplicationRepository = duplicationRepository; | |||
if (config.getBoolean(CoreProperties.CPD_CROSS_PROJECT).orElse(false)) { | |||
LOGGER.warn("This analysis uses the deprecated cross-project duplication feature."); | |||
} | |||
} | |||
public void computeCpd(Component component, Collection<Block> originBlocks, Collection<Block> duplicationBlocks) { |
@@ -332,6 +332,15 @@ public class IntegrateCrossProjectDuplicationsTest { | |||
assertThat(logTester.logs(LoggerLevel.WARN)).containsOnly("Too many duplication groups on file " + ORIGIN_FILE_KEY + ". Keeping only the first 100 groups."); | |||
} | |||
@Test | |||
public void log_warning_if_this_deprecated_feature_is_enabled() { | |||
settings.setProperty("sonar.cpd.cross_project", "true"); | |||
new IntegrateCrossProjectDuplications(settings.asConfig(), duplicationRepository); | |||
assertThat(logTester.logs()).containsExactly("This analysis uses the deprecated cross-project duplication feature."); | |||
} | |||
private static Duplication crossProjectDuplication(TextBlock original, String otherFileKey, TextBlock duplicate) { | |||
return new Duplication(original, Arrays.<Duplicate>asList(new CrossProjectDuplicate(otherFileKey, duplicate))); | |||
} |