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()});
   }
 }