jenkinsci/git-client-plugin — pull request #127 by dbroady1 (2014-04-03 17:31:40+00:00)
Title: Make SubmoduleUpdateCommand an interface

Apparently, updating to git-plugin 2.1.1 from 2.0.4 causes the SubmoduleUpdate command stuff to not work with the following:

Resetting working tree
FATAL: org.jenkinsci.plugins.gitclient.SubmoduleUpdateCommand is not an interface
java.lang.IllegalArgumentException: org.jenkinsci.plugins.gitclient.SubmoduleUpdateCommand is not an interface
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:362)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl.command(RemoteGitImpl.java:112)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl.submoduleUpdate(RemoteGitImpl.java:442)
at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:95)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580)
at hudson.model.Run.execute(Run.java:1670)
at hudson.matrix.MatrixBuild.run(MatrixBuild.java:304)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
at hudson.model.OneOffExecutor.run(OneOffExecutor.java:43)

This commit makes the SubmoduleUpdateCommand an interface instead of an abstract class so that it will work correctly in the RemoteGitImpl mode. NOTE -- Because of this change, a rebuild of git-plugin is necessary.