Closed sabaka closed 10 years ago
It's not correct (matrix not same with Sonar DSM for same code). Trying to find bug.
Please provide 3 pictures/links: sonar, dtangler and dsm plugin for the same case. i need to see diff.
Looks like it's dtangler fail..
(look at checks->filters; grammars->api, grammars->checkstyle; api->filters, api->checks)
is it due to generated sources, but in this case number have to be "3": checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaLexer.java checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaRecognizer.java checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaTokenTypes.java
or Dtangler treated ANTLR config checkstyle/src/checkstyle/com/puppycrawl/tools/checkstyle/grammars/java.g as Java source ? any way skip it?
can you test only other project ?
Please discuss with Daniil Yaroslavtsev the way to recheck correctness of Dtangler in Eclipse vs Sonar (to be able sort packages lines/colums in same way as Sonar to ease testing).
About grammars: Dtangler requires compiled sources and analyzes class files (therefore we have '4' in grammars package). Another project: I've done it with log4j and get differencies too
Now I counting it manually.
After counting learned, that we are more correct than sonar! More: Lets try analize checkstyle project (few screenshots on the begining of issue). Now we have a bit different results (project is growing up). Our plugin:
Sonar:
As we can see - our project has found cycle dependence between com.puppycrawl.tools.checkstyle.api and com.puppycrawl.tools.checkstyle.grammars, but sonar has't found it. Let me prove our correctness: grammars - generated sources, that let us to use java grammars (it located into checkstyle/target/generated-sources). $ pwd ~/git/checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars $ grep -iranH "import com.puppycrawl.tools.checkstyle.api" * GeneratedJavaLexer.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST; GeneratedJavaRecognizer.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST; GeneratedJavaTokenTypes.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST;
Ok, we have one package dependence to api, let try find cycle. $ pwd ~/git/checkstyle/src/checkstyle/com/puppycrawl/tools/checkstyle/api $ grep -iranlH "import com.puppycrawl.tools.checkstyle.grammars" * FileContents.java TokenTypes.java And we have it!
Sometimes (it might depend on weather on the Mars) sonar considers dependencies from test classes, but i'm sure they doesn't show useful information about project complexity.
This image is uploaded just be referenced in README.md file
Compare matrix with DSM from Sonar and check it correctness of dsm-maven.