summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ostrovsky <david@ostrovsky.org>2013-10-18 21:39:19 +0200
committerDavid Ostrovsky <david@ostrovsky.org>2013-10-18 22:14:06 +0200
commit30d0981942ef772d6fe77e684185f030ca3314b2 (patch)
tree2cef863de788847d9dd048cce3357501c186acd6
parent55583ac43e3afdfe32aac9a8d174cb451b41949c (diff)
Inject right plugin name @PluginName in init step
@PluginName is injected to the plugin environment. Since plugin can provide their own names, the right name is injected. During init step the wrong plugin name was bound, ignoring the plugin name that was defined in MANIFEST file. Change-Id: I5411c6d796cbb25457df357c173274b27ab909db
-rw-r--r--gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitPluginStepsLoader.java9
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java4
2 files changed, 8 insertions, 5 deletions
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitPluginStepsLoader.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitPluginStepsLoader.java
index 76587017c8..6b4cedf758 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitPluginStepsLoader.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitPluginStepsLoader.java
@@ -14,9 +14,11 @@
package com.google.gerrit.pgm.init;
+import com.google.common.base.Objects;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.pgm.util.ConsoleUI;
import com.google.gerrit.server.config.SitePaths;
+import com.google.gerrit.server.plugins.PluginLoader;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Injector;
@@ -24,6 +26,7 @@ import com.google.inject.Singleton;
import java.io.File;
import java.io.FileFilter;
+import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
@@ -90,10 +93,10 @@ public class InitPluginStepsLoader {
}
}
- private Injector getPluginInjector(File jarFile) {
- String jarFileName = jarFile.getName();
+ private Injector getPluginInjector(File jarFile) throws IOException {
final String pluginName =
- jarFileName.substring(0, jarFileName.lastIndexOf('.'));
+ Objects.firstNonNull(PluginLoader.getGerritPluginName(jarFile),
+ PluginLoader.nameOf(jarFile));
return initInjector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java
index bbd6eb9cd5..75697446bf 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginLoader.java
@@ -460,7 +460,7 @@ public class PluginLoader implements LifecycleListener {
}
}
- private static String nameOf(File jar) {
+ public static String nameOf(File jar) {
return nameOf(jar.getName());
}
@@ -653,7 +653,7 @@ public class PluginLoader implements LifecycleListener {
});
}
- private static String getGerritPluginName(File srcFile) throws IOException {
+ public static String getGerritPluginName(File srcFile) throws IOException {
JarFile jarFile = new JarFile(srcFile);
try {
return jarFile.getManifest().getMainAttributes()