Fix plugin name for Maven-based builds
Change-Id: I830ff4c184c8bd579b5172e63a631a1d27899c43
diff --git a/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java b/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
index 36c7dd0..5214314 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
@@ -16,6 +16,7 @@
import com.google.common.base.Function;
import com.google.common.base.Optional;
+import com.google.common.base.Strings;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.inject.Inject;
@@ -27,6 +28,7 @@
import com.googlesource.gerrit.plugins.manager.gson.SmartGson;
import com.googlesource.gerrit.plugins.manager.gson.SmartJson;
+import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -144,7 +146,11 @@
String pluginPath = artifactJson.get().getString("relativePath");
String[] pluginPathParts = pluginPath.split("/");
- String pluginName = pluginPathParts[pluginPathParts.length-2];
+ String pluginName =
+ isMavenBuild(pluginPathParts)
+ ? fixPluginNameForMavenBuilds(pluginPathParts)
+ : pluginPathParts[pluginPathParts.length - 2];
+
String pluginUrl =
String.format("%s/artifact/%s", buildExecution.getString("url"),
pluginPath);
@@ -179,6 +185,19 @@
pluginUrl));
}
+ private String fixPluginNameForMavenBuilds(String[] pluginPathParts) {
+ String mavenPluginFilename =
+ StringUtils.substringBeforeLast(
+ pluginPathParts[pluginPathParts.length - 1], ".");
+ int versionDelim = mavenPluginFilename.indexOf('-');
+ return versionDelim > 0 ? mavenPluginFilename
+ .substring(0, versionDelim) : mavenPluginFilename;
+ }
+
+ private boolean isMavenBuild(String[] pluginPathParts) {
+ return pluginPathParts[pluginPathParts.length - 2].equals("target");
+ }
+
private Optional<SmartJson> findArtifact(JsonArray artifacts, String string) {
for (int i = 0; i < artifacts.size(); i++) {
SmartJson artifact = SmartJson.of(artifacts.get(i));