In fact Sonar CPD is independent from a way how code was divided on fragments, i.e. it supports not only statement-based detection, but also token-based. And at the same time it shows better memory consumption, same performance and predictable results without dependency on environment (OS, Java) in comparison with PMD CPD. Thus we can quickly benefit from it for existing plugins (open-source and closed-source : Groovy, PHP, C, C#, Cobol, PL/SQL, VisualBasic, Abap, Natural) - no need to wait releases of those plugins with a usage of new extension point, whereas SONAR-2843 remains for support of cross-project analysis. And this will also allow to verify improvements in algorithm (
SONAR-3060) for even wider range of projects.
This implies several internal refactorings. Including review of package "net.sourceforge.pmd.cpd" which was forked from PMD in order to apply specific patches for Sonar. Also note taht this package might cause problems, when it used together with PMD due to the fact that name wasn't changed.