From 120adee0839a6acd952bb2b0136a434ac90a337a Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Tue, 5 Feb 2013 15:56:15 +0100 Subject: [PATCH] SONARJAVA-51 Files not ending with '.java' or '.jav' should not be taken into account --- .../java/org/sonar/api/resources/Java.java | 7 +++- .../org/sonar/api/resources/Language.java | 4 +- .../org/sonar/api/resources/JavaTest.java | 38 +++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 sonar-plugin-api/src/test/java/org/sonar/api/resources/JavaTest.java diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Java.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Java.java index d9b2f99ebf8..16beba017d9 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Java.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Java.java @@ -40,14 +40,16 @@ public class Java extends AbstractLanguage { * Java name */ public static final String NAME = "Java"; + /** * Default package name for classes without package def */ public static final String DEFAULT_PACKAGE_NAME = "[default]"; + /** * Java files knows suffixes */ - public static final String[] SUFFIXES = {"java", "jav"}; + public static final String[] SUFFIXES = {".java", ".jav"}; /** * Default constructor @@ -66,7 +68,8 @@ public class Java extends AbstractLanguage { } public static boolean isJavaFile(java.io.File file) { - String suffix = StringUtils.substringAfterLast(file.getName(), "."); + String suffix = "." + StringUtils.substringAfterLast(file.getName(), "."); return ArrayUtils.contains(SUFFIXES, suffix); } + } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java index 6aee345fe1f..8a025a32108 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Language.java @@ -40,7 +40,9 @@ public interface Language extends BatchExtension, ServerExtension { String getName(); /** - * For example ["jav","java"]. If empty, then all files in source directories are considered as sources. + * Make sure that dot is a prefix for all values. + * For example [".jav", ".java"]. + * If empty, then all files in source directories are considered as sources. */ String[] getFileSuffixes(); diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/resources/JavaTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/resources/JavaTest.java new file mode 100644 index 00000000000..a9425b8562a --- /dev/null +++ b/sonar-plugin-api/src/test/java/org/sonar/api/resources/JavaTest.java @@ -0,0 +1,38 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2012 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * Sonar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.api.resources; + +import org.junit.Test; + +import static org.fest.assertions.Assertions.assertThat; + +public class JavaTest { + + @Test + public void test() { + Java language = new Java(); + assertThat(language.getFileSuffixes()).isEqualTo(new String[] {".java", ".jav"}); + + assertThat(Java.isJavaFile(new java.io.File("Example.java"))).isTrue(); + assertThat(Java.isJavaFile(new java.io.File("Example.jav"))).isTrue(); + assertThat(Java.isJavaFile(new java.io.File("Example.notjava"))).isFalse(); + } + +} -- 2.39.5