Index: ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/flexmetrics/FlexMetricsParser.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/flexmetrics/FlexMetricsParser.java (revision 4800) +++ ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/flexmetrics/FlexMetricsParser.java (revision ) @@ -97,7 +97,7 @@ Map values = processChildren(objectsCursor); String fileName = values.get("name"); - Resource flexFile = new FlexFile(fileName); + Resource flexFile = FlexFile.fromFullClassName(fileName,false); double lines = parseDouble(values.get("javadocs")) + parseDouble(values.get("single_comment_lines")) @@ -127,16 +127,16 @@ for (Map.Entry entry : ccnCountPerClass.entrySet()) { String fullname = entry.getKey(); Integer ccnForClass = entry.getValue(); - context.saveMeasure(new FlexFile(fullname), CoreMetrics.COMPLEXITY, ccnForClass.doubleValue()); + context.saveMeasure(FlexFile.fromFullClassName(fullname,false), CoreMetrics.COMPLEXITY, ccnForClass.doubleValue()); RangeDistributionBuilder ccnDistribution = new RangeDistributionBuilder(CoreMetrics.CLASS_COMPLEXITY_DISTRIBUTION, CLASSES_DISTRIB_BOTTOM_LIMITS); ccnDistribution.add(ccnForClass.doubleValue()); - context.saveMeasure(new FlexFile(fullname), ccnDistribution.build().setPersistenceMode(PersistenceMode.MEMORY)); + context.saveMeasure(FlexFile.fromFullClassName(fullname,false), ccnDistribution.build().setPersistenceMode(PersistenceMode.MEMORY)); } for (Map.Entry entry : ccnDistributionPerClass.entrySet()) { String fullname = entry.getKey(); RangeDistributionBuilder ccnDistributionForClass = entry.getValue(); - context.saveMeasure(new FlexFile(fullname), ccnDistributionForClass.build().setPersistenceMode(PersistenceMode.MEMORY)); + context.saveMeasure(FlexFile.fromFullClassName(fullname,false), ccnDistributionForClass.build().setPersistenceMode(PersistenceMode.MEMORY)); } } Index: ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/Flex.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/Flex.java (revision 4800) +++ ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/Flex.java (revision ) @@ -21,6 +21,7 @@ package org.sonar.plugins.flex; import org.apache.commons.configuration.Configuration; +import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.sonar.api.resources.AbstractLanguage; @@ -45,6 +46,14 @@ suffixes = StringUtils.split(FlexPlugin.FILE_SUFFIXES_DEFVALUE, ","); } return suffixes; + } + + public static String getExtension(String file) { + String suffix = StringUtils.substringAfterLast(file, "."); + if(ArrayUtils.contains(INSTANCE.getFileSuffixes(), suffix)){ + return suffix; + } + return null; - } + } } Index: ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/surefire/FlexSurefireSensor.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/surefire/FlexSurefireSensor.java (revision 4800) +++ ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/surefire/FlexSurefireSensor.java (revision ) @@ -66,7 +66,7 @@ new AbstractSurefireParser() { @Override protected Resource getUnitTestResource(String classKey) { - return new FlexFile(classKey, true); + return FlexFile.fromFullClassName(classKey, true); } }.collect(project, context, reportsDir); } Index: ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/cobertura/FlexCoberturaSensor.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/cobertura/FlexCoberturaSensor.java (revision 4800) +++ ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/cobertura/FlexCoberturaSensor.java (revision ) @@ -51,7 +51,7 @@ new AbstractCoberturaParser() { @Override protected Resource getResource(String fileName) { - return new FlexFile(fileName); + return FlexFile.fromFullClassName(fileName,false); } }.parseReport(xmlFile, context); } Index: ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/FlexFile.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/FlexFile.java (revision 4800) +++ ../sonar-flex-plugin-0.4/src/main/java/org/sonar/plugins/flex/FlexFile.java (revision ) @@ -167,6 +167,26 @@ return null; } + public static FlexFile fromFullClassName(String fullClassName, boolean unitTest) { + if (fullClassName != null) { + String packname = null; + String classname = fullClassName; + String ext = Flex.getExtension(fullClassName); + if (fullClassName.indexOf('.') >= 0 && ext == null) { + packname = StringUtils.substringBeforeLast(fullClassName, "."); + classname = StringUtils.substringAfterLast(fullClassName, "."); + } else if (fullClassName.indexOf('.') >= 0 && ext != null) { + classname = StringUtils.substringBeforeLast(fullClassName, "."); + if (classname.indexOf('.') >= 0) { + packname = StringUtils.substringBeforeLast(classname, "."); + classname = StringUtils.substringAfterLast(classname, "."); + } + } + return new FlexFile(packname, classname, unitTest); + } + return null; + } + /** * Shortcut to {@link #fromIOFile(File, List, boolean)} with an absolute path. */