@@ -20,7 +20,6 @@ | |||
package org.sonar.ce.task.projectanalysis.component; | |||
import javax.annotation.Nullable; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
@FunctionalInterface | |||
public interface ComponentKeyGenerator { |
@@ -26,7 +26,6 @@ import org.sonar.ce.task.projectanalysis.analysis.Branch; | |||
import org.sonar.core.component.ComponentKeys; | |||
import org.sonar.db.component.BranchDto; | |||
import org.sonar.db.component.BranchType; | |||
import org.sonar.scanner.protocol.output.ScannerReport; | |||
import static java.lang.String.format; | |||
import static org.apache.commons.lang.StringUtils.isEmpty; |
@@ -79,7 +79,7 @@ public class TrackerBaseInputFactory extends BaseInputFactory { | |||
} | |||
private class EmptyTrackerBaseLazyInput extends BaseLazyInput { | |||
private static class EmptyTrackerBaseLazyInput extends BaseLazyInput { | |||
private EmptyTrackerBaseLazyInput(DbClient dbClient, Component component) { | |||
super(dbClient, component, null); |
@@ -31,11 +31,9 @@ import java.util.Map; | |||
import java.util.Objects; | |||
import java.util.Optional; | |||
import java.util.Set; | |||
import java.util.stream.Collectors; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.i18n.I18n; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.server.ws.Change; | |||
import org.sonar.api.server.ws.Response; | |||
@@ -69,8 +67,8 @@ import static org.sonar.server.component.ws.ComponentDtoToWsComponent.componentD | |||
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001; | |||
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001; | |||
import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001; | |||
import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter; | |||
import static org.sonar.server.ws.WsParameterBuilder.QualifierParameterContext.newQualifierParameterContext; | |||
import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter; | |||
import static org.sonar.server.ws.WsUtils.checkRequest; | |||
import static org.sonar.server.ws.WsUtils.writeProtobuf; | |||
import static org.sonarqube.ws.client.component.ComponentsWsParameters.ACTION_TREE; | |||
@@ -116,8 +114,8 @@ public class TreeAction implements ComponentsWsAction { | |||
public void define(WebService.NewController context) { | |||
WebService.NewAction action = context.createAction(ACTION_TREE) | |||
.setDescription(format("Navigate through components based on the chosen strategy. The %s or the %s parameter must be provided.<br>" + | |||
"Requires the following permission: 'Browse' on the specified project.<br>" + | |||
"When limiting search with the %s parameter, directories are not returned.", | |||
"Requires the following permission: 'Browse' on the specified project.<br>" + | |||
"When limiting search with the %s parameter, directories are not returned.", | |||
PARAM_COMPONENT_ID, PARAM_COMPONENT, Param.TEXT_QUERY)) | |||
.setSince("5.4") | |||
.setResponseExample(getClass().getResource("tree-example.json")) |
@@ -73,7 +73,6 @@ public final class ComponentKeys { | |||
* <li>At least one non-digit</li> | |||
* </ul> | |||
* | |||
* @param keyCandidate | |||
* @return <code>true</code> if <code>keyCandidate</code> can be used for a project | |||
*/ | |||
public static boolean isValidProjectKey(String keyCandidate) { | |||
@@ -110,7 +109,6 @@ public final class ComponentKeys { | |||
* </li> | |||
* </ul> | |||
* | |||
* @param branchCandidate | |||
* @return <code>true</code> if <code>branchCandidate</code> can be used for a project | |||
*/ | |||
public static boolean isValidBranch(String branchCandidate) { | |||
@@ -119,10 +117,6 @@ public final class ComponentKeys { | |||
/** | |||
* Return the project key with potential branch | |||
* | |||
* @param keyWithoutBranch | |||
* @param branch | |||
* @return | |||
*/ | |||
public static String createKey(String keyWithoutBranch, @Nullable String branch) { | |||
if (StringUtils.isNotBlank(branch)) { |
@@ -19,9 +19,11 @@ | |||
*/ | |||
package org.sonar.scanner.scan; | |||
import java.io.File; | |||
import java.io.IOException; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
import org.apache.commons.io.FileUtils; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.TemporaryFolder; | |||
@@ -75,4 +77,34 @@ public class DefaultInputModuleHierarchyTest { | |||
assertThat(moduleHierarchy.parent(root)).isNull(); | |||
assertThat(moduleHierarchy.root()).isEqualTo(root); | |||
} | |||
@Test | |||
public void testRelativePathToRoot() throws IOException { | |||
File rootBaseDir = temp.newFolder(); | |||
File mod1BaseDir = new File(rootBaseDir, "mod1"); | |||
File mod2BaseDir = new File(rootBaseDir, "mod2"); | |||
FileUtils.forceMkdir(mod1BaseDir); | |||
FileUtils.forceMkdir(mod2BaseDir); | |||
DefaultInputModule root = new DefaultInputModule(ProjectDefinition.create().setKey("root") | |||
.setBaseDir(rootBaseDir).setWorkDir(rootBaseDir)); | |||
DefaultInputModule mod1 = new DefaultInputModule(ProjectDefinition.create().setKey("mod1") | |||
.setBaseDir(mod1BaseDir).setWorkDir(temp.newFolder())); | |||
DefaultInputModule mod2 = new DefaultInputModule(ProjectDefinition.create().setKey("mod2") | |||
.setBaseDir(mod2BaseDir).setWorkDir(temp.newFolder())); | |||
DefaultInputModule mod3 = new DefaultInputModule(ProjectDefinition.create().setKey("mod2") | |||
.setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder())); | |||
Map<DefaultInputModule, DefaultInputModule> parents = new HashMap<>(); | |||
parents.put(mod1, root); | |||
parents.put(mod2, mod1); | |||
parents.put(mod3, mod1); | |||
moduleHierarchy = new DefaultInputModuleHierarchy(root, parents); | |||
assertThat(moduleHierarchy.relativePathToRoot(root)).isEqualTo(""); | |||
assertThat(moduleHierarchy.relativePathToRoot(mod1)).isEqualTo("mod1"); | |||
assertThat(moduleHierarchy.relativePathToRoot(mod2)).isEqualTo("mod2"); | |||
assertThat(moduleHierarchy.relativePathToRoot(mod3)).isNull(); | |||
} | |||
} |