diff --git a/src/main/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGenerator.java b/src/main/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGenerator.java index 0f8a4e86..ee34779a 100644 --- a/src/main/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGenerator.java +++ b/src/main/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGenerator.java @@ -87,7 +87,7 @@ public void setSonarDetails(String sonarBuildLink) { this.sonarServer = url; } else { this.sonarServer = sonarBuildLink.substring(0, - sonarBuildLink.indexOf("/dashboard/index/" + this.sonarProjectName)); + sonarBuildLink.indexOf("/dashboard?id=" + this.sonarProjectName)); } this.SONAR_ISSUES_URL = sonarServer + SONAR_ISSUES_BASE_URL + sonarProjectName + "&resolved=false&severities="; this.SONAR_METRICS_URL = sonarServer + SONAR_METRICS_BASE_URL + sonarProjectName; @@ -184,7 +184,7 @@ private String getSonarProjectURLFromBuildLogs(Run build) throws IOExcepti protected String getSonarProjectName(String url) throws URISyntaxException { URI uri = new URI(url); - String[] projectUrl = uri.getRawPath().split("/"); + String[] projectUrl = uri.getRawQuery().split("id="); if (projectUrl.length > 1) { return projectUrl[projectUrl.length - 1]; } else diff --git a/src/test/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGeneratorTest.java b/src/test/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGeneratorTest.java index f6cbdd93..ab4c7ccf 100644 --- a/src/test/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGeneratorTest.java +++ b/src/test/java/jenkinsci/plugins/influxdb/generators/SonarQubePointGeneratorTest.java @@ -15,35 +15,35 @@ public class SonarQubePointGeneratorTest { - public static final String JOB_NAME = "master"; - public static final int BUILD_NUMBER = 11; - public static final String CUSTOM_PREFIX = "test_prefix"; - - private Run build; - private Job job; - - private MeasurementRenderer> measurementRenderer; - - private long currTime; - - @Before - public void before() { - build = Mockito.mock(Run.class); - job = Mockito.mock(Job.class); - measurementRenderer = new ProjectNameRenderer(CUSTOM_PREFIX, null); - - Mockito.when(build.getNumber()).thenReturn(BUILD_NUMBER); - Mockito.when(build.getParent()).thenReturn(job); - Mockito.when(job.getName()).thenReturn(JOB_NAME); - - currTime = System.currentTimeMillis(); - } - - @Test - public void getSonarProjectNameTest() throws URISyntaxException { - String name = "org.namespace:feature%2Fmy-sub-project"; - String url = "http://sonar.dashboard.com/dashboard/index/" + name; - SonarQubePointGenerator gen = new SonarQubePointGenerator(measurementRenderer, CUSTOM_PREFIX, build, currTime, null, true); - assertEquals(name, gen.getSonarProjectName(url)); - } + public static final String JOB_NAME = "master"; + public static final int BUILD_NUMBER = 11; + public static final String CUSTOM_PREFIX = "test_prefix"; + + private Run build; + private Job job; + + private MeasurementRenderer> measurementRenderer; + + private long currTime; + + @Before + public void before() { + build = Mockito.mock(Run.class); + job = Mockito.mock(Job.class); + measurementRenderer = new ProjectNameRenderer(CUSTOM_PREFIX, null); + + Mockito.when(build.getNumber()).thenReturn(BUILD_NUMBER); + Mockito.when(build.getParent()).thenReturn(job); + Mockito.when(job.getName()).thenReturn(JOB_NAME); + + currTime = System.currentTimeMillis(); + } + + @Test + public void getSonarProjectNameTest() throws URISyntaxException { + String name = "org.namespace:feature%2Fmy-sub-project"; + String url = "http://sonar.dashboard.com/dashboard?id=" + name; + SonarQubePointGenerator gen = new SonarQubePointGenerator(measurementRenderer, CUSTOM_PREFIX, build, currTime, null, true); + assertEquals(name, gen.getSonarProjectName(url)); + } }