aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-protocol
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-scanner-protocol')
-rw-r--r--sonar-scanner-protocol/src/main/java/org/sonar/scanner/protocol/output/FileStructure.java28
-rw-r--r--sonar-scanner-protocol/src/test/java/org/sonar/scanner/protocol/output/FileStructureTest.java8
2 files changed, 5 insertions, 31 deletions
diff --git a/sonar-scanner-protocol/src/main/java/org/sonar/scanner/protocol/output/FileStructure.java b/sonar-scanner-protocol/src/main/java/org/sonar/scanner/protocol/output/FileStructure.java
index 551ed3ea4dc..c4d3197cb43 100644
--- a/sonar-scanner-protocol/src/main/java/org/sonar/scanner/protocol/output/FileStructure.java
+++ b/sonar-scanner-protocol/src/main/java/org/sonar/scanner/protocol/output/FileStructure.java
@@ -20,10 +20,6 @@
package org.sonar.scanner.protocol.output;
import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
/**
* Structure of files in the zipped report
@@ -75,30 +71,8 @@ public class FileStructure {
return new File(dir, "activerules.pb");
}
- /**
- * Too many files in the same folder is a problem. We need to partition the report
- * by putting component specific files in subdirectories.
- * The partitionning algorithm is very basic:
- * - Breadth-first to not generate deep folder for small projects
- * - easy to understand
- */
- public static Path getSubDirFor(int componentRef) {
- String componentRefAsStr = String.valueOf(componentRef);
- Path result = Paths.get("");
- for (char c : componentRefAsStr.toCharArray()) {
- result = result.resolve(String.valueOf(c));
- }
- return result;
- }
-
public File fileFor(Domain domain, int componentRef) {
- Path parent = dir.toPath().resolve(getSubDirFor(componentRef));
- try {
- Files.createDirectories(parent);
- } catch (IOException e) {
- throw new IllegalStateException("Unable to create subdirectory for component " + componentRef, e);
- }
- return parent.resolve(domain.filePrefix + componentRef + domain.fileSuffix).toFile();
+ return new File(dir, domain.filePrefix + componentRef + domain.fileSuffix);
}
}
diff --git a/sonar-scanner-protocol/src/test/java/org/sonar/scanner/protocol/output/FileStructureTest.java b/sonar-scanner-protocol/src/test/java/org/sonar/scanner/protocol/output/FileStructureTest.java
index 2a0890bace8..69d5266cf50 100644
--- a/sonar-scanner-protocol/src/test/java/org/sonar/scanner/protocol/output/FileStructureTest.java
+++ b/sonar-scanner-protocol/src/test/java/org/sonar/scanner/protocol/output/FileStructureTest.java
@@ -19,11 +19,12 @@
*/
package org.sonar.scanner.protocol.output;
-import java.io.File;
import org.apache.commons.io.FileUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import org.sonar.scanner.protocol.output.FileStructure;
+import java.io.File;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -61,8 +62,8 @@ public class FileStructureTest {
public void locate_files() throws Exception {
File dir = temp.newFolder();
FileUtils.write(new File(dir, "metadata.pb"), "metadata content");
- FileUtils.write(new File(dir, "3/issues-3.pb"), "issues of component 3");
- FileUtils.write(new File(dir, "4/2/component-42.pb"), "details of component 42");
+ FileUtils.write(new File(dir, "issues-3.pb"), "issues of component 3");
+ FileUtils.write(new File(dir, "component-42.pb"), "details of component 42");
FileStructure structure = new FileStructure(dir);
assertThat(structure.metadataFile()).exists().isFile();
@@ -70,5 +71,4 @@ public class FileStructureTest {
assertThat(structure.fileFor(FileStructure.Domain.ISSUES, 3)).exists().isFile();
assertThat(structure.fileFor(FileStructure.Domain.ISSUES, 42)).doesNotExist();
}
-
}