Bump to 2.12-SNAPSHOT and use of java.nio.Path Change-Id: Idf9e20625d72f2acaa6b2fcbb4ba891b19c7282b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginProvider.java b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginProvider.java index 97bd60e..915805e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginProvider.java +++ b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginProvider.java
@@ -15,6 +15,7 @@ package com.googlesource.gerrit.plugins.scripting.groovyprovider; import com.google.common.collect.Sets; +import com.google.common.io.Files; import com.google.gerrit.extensions.annotations.Listen; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.server.plugins.InvalidPluginException; @@ -25,7 +26,7 @@ import org.eclipse.jgit.internal.storage.file.FileSnapshot; -import java.io.File; +import java.nio.file.Path; import java.util.Set; /** @@ -64,7 +65,7 @@ } @Override - public ServerPlugin get(File srcFile, FileSnapshot snapshot, + public ServerPlugin get(Path srcFile, FileSnapshot snapshot, PluginDescription description) throws InvalidPluginException { GroovyPluginScriptEngine scriptEngine = scriptEngineProvider.get(); return new ServerPlugin(getPluginName(srcFile), description.canonicalUrl, @@ -74,16 +75,14 @@ } @Override - public boolean handles(File srcFile) { - String srcFileName = srcFile.getName(); - String scriptExtension = - srcFileName.substring(srcFileName.lastIndexOf('.') + 1).toLowerCase(); - return GROOVY_EXTENSIONS.contains(scriptExtension.toLowerCase()); + public boolean handles(Path srcFile) { + String scriptExtension = Files.getFileExtension(srcFile.toString()).toLowerCase(); + return GROOVY_EXTENSIONS.contains(scriptExtension); } @Override - public String getPluginName(File srcFile) { - String srcFileName = srcFile.getName(); + public String getPluginName(Path srcFile) { + String srcFileName = srcFile.getFileName().toString(); int dashPos = srcFileName.lastIndexOf('-'); int dotPos = srcFileName.lastIndexOf('.'); return srcFileName.substring(0, dashPos > 0 ? dashPos:dotPos);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScanner.java b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScanner.java index 1f5f017..77bfcfd 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScanner.java +++ b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScanner.java
@@ -27,12 +27,12 @@ import org.codehaus.groovy.runtime.InvokerHelper; -import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; @@ -40,13 +40,13 @@ public class GroovyPluginScanner extends AbstractPreloadedPluginScanner { - public GroovyPluginScanner(String pluginName, GroovyPluginScriptEngine scriptEngine, File srcFile) + public GroovyPluginScanner(String pluginName, GroovyPluginScriptEngine scriptEngine, Path srcFile) throws InvalidPluginException { super(pluginName, getPluginVersion(srcFile), load(scriptEngine, srcFile), ApiType.PLUGIN); } - private static String getPluginVersion(File srcFile) { - String srcFileName = srcFile.getName(); + private static String getPluginVersion(Path srcFile) { + String srcFileName = srcFile.getFileName().toString(); int dashPos = srcFileName.lastIndexOf('-'); int dotPos = srcFileName.lastIndexOf('.'); return dashPos > 0 ? srcFileName.substring(dashPos + 1, dotPos) : "0"; @@ -68,10 +68,9 @@ return Collections.emptyEnumeration(); } - public static Set<Class<?>> load(GroovyPluginScriptEngine scriptEngine, File srcFile) throws InvalidPluginException { + public static Set<Class<?>> load(GroovyPluginScriptEngine scriptEngine, Path srcFile) throws InvalidPluginException { try { - return scanGroovyScriptBindings(scriptEngine.loadScriptByName(srcFile - .getName())); + return scanGroovyScriptBindings(scriptEngine.loadScriptByName(srcFile.toString())); } catch (ResourceException | ScriptException e) { throw new InvalidPluginException( "Cannot compile and execute Groovy script " + srcFile, e); @@ -85,7 +84,7 @@ try { Method mainMethod = scriptClass.getMethod("main", String[].class); int modifiers = mainMethod.getModifiers(); - if (mainMethod != null && Modifier.isPublic(modifiers) + if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers)) { classes.addAll(getMainBindings(scriptClass)); } @@ -99,8 +98,7 @@ return classes; } - private static Set<Class<?>> getMainBindings(Class<?> scriptClass) - throws InvalidPluginException { + private static Set<Class<?>> getMainBindings(Class<?> scriptClass) { Set<Class<?>> classes = Sets.newHashSet(); Binding binding = new Binding(); Script script = InvokerHelper.createScript(scriptClass, binding); @@ -122,8 +120,7 @@ return classes; } - private static Set<Class<?>> scanArrayOfObjectOrClass(Object value) - throws InvalidPluginException { + private static Set<Class<?>> scanArrayOfObjectOrClass(Object value) { Set<Class<?>> classes = Sets.newHashSet(); ArrayList<?> list = (ArrayList<?>) value; for (Object element : list) { @@ -135,8 +132,7 @@ return classes; } - private static Class<?> scanObjectOrClass(Object element) - throws InvalidPluginException { + private static Class<?> scanObjectOrClass(Object element) { if (Class.class.isAssignableFrom(element.getClass())) { return (Class<?>) element; } else {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScriptEngine.java b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScriptEngine.java index e26ca86..1462bc4 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScriptEngine.java +++ b/src/main/java/com/googlesource/gerrit/plugins/scripting/groovyprovider/GroovyPluginScriptEngine.java
@@ -26,6 +26,6 @@ @Inject public GroovyPluginScriptEngine(SitePaths sitePaths) throws MalformedURLException { - super(new URL[] {sitePaths.plugins_dir.toURI().toURL()}); + super(new URL[] {sitePaths.plugins_dir.toUri().toURL()}); } }