Am Mittwoch, 22. Juni 2016 11:21:17 UTC+2 schrieb Robert Sandell: > > > > On Wed, Jun 22, 2016 at 11:01 AM, 'Björn Pedersen' via Jenkins Developers > <[email protected] <javascript:>> wrote: > >> At least gerrit-trigger-plugin up to 2.21.1 uses TreeWalk.release. >> > > Really? Where? I found usage of RevWalk but not TreeWalk. > You are right, it was RevWalk:
FATAL: org.eclipse.jgit.revwalk.RevWalk.release()Vjava.lang.NoSuchMethodError <http://stacktrace.jenkins-ci.org/search?query=java.lang.NoSuchMethodError>: org.eclipse.jgit.revwalk.RevWalk.release()V at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser$1.invoke(GerritTriggerBuildChooser.java:185) <http://stacktrace.jenkins-ci.org/search/?query=com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser$1.invoke&entity=method> at com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser$1.invoke(GerritTriggerBuildChooser.java:166) <http://stacktrace.jenkins-ci.org/search/?query=com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerBuildChooser$1.invoke&entity=method> at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.withRepository(AbstractGitAPIImpl.java:27) <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.withRepository&entity=method> > /B > >> >> Am Dienstag, 21. Juni 2016 23:56:08 UTC+2 schrieb Mark Waite: >>> >>> The git client plugin 2.0.0 and git plugin 3.0.0 releases will only >>> support JDK 7 and later. The change to JDK 7 allows code simplifications >>> (try with resources, etc.) and are a good opportunity to upgrade from >>> embedding JGit 3 to embedding JGit 4. >>> >>> JGit 4 only supports JDK 7 and later. The API's in JGit 4 have been >>> reworked to support JDK 7 try with resources. That API rework is what >>> allows the most significant code simplifications. However, that means >>> there are some JGit 3 API calls which no longer exist in JGit 4 (JGit 3 has >>> TreeWalk.release() >>> <http://download.eclipse.org/jgit/site/3.7.1.201504261725-r/apidocs/org/eclipse/jgit/treewalk/TreeWalk.html>, >>> >>> while JGit 4 TreeWalk does not have release() >>> <http://download.eclipse.org/jgit/site/4.3.1.201605051710-r/apidocs/org/eclipse/jgit/treewalk/TreeWalk.html> >>> ). >>> >>> Now the challenge. The git client plugin intentionally bundles JGit so >>> that other plugins can use JGit without bundling it themselves. However, a >>> switch of the JGit version from JGit 3 to JGit 4 means that the JGit usage >>> in plugins which depend on JGit as delivered by the git-client plugin may >>> be broken by the upgrade from git client plugin 1 to git client plugin 2. >>> >>> The scenarios I see can be illustrated with git client and git plugin >>> (since the git plugin has the same problem as other JGit consumers may): >>> >>> Git client plugin 1.19.6 with git plugin 2.4.4 -> allowed and works as >>> expected (current configuration) (available to Jenkins versions 1.609 and >>> later) >>> Git client plugin 1.19.6 with git plugin 3.0.0 -> not allowed because >>> git plugin 3 explicitly depends on git client plugin 2 >>> Git client plugin 2.0.0 with git plugin 2.4.4 -> allowed but will fail >>> because git plugin 2 depends on at least one JGit 3 API call (available to >>> Jenkins 1.625 and later) >>> Git client plugin 2.0.0 with git plugin 3.0.0 -> allowed and works as >>> expected (available to Jenkins 1.625 and later) >>> >>> I think I could remove the JGit TreeWalk dependency from the git plugin >>> pretty easily, but I suspect there are other plugins which also depend on >>> JGit and which may be harmed by the change from JGit 3 to JGit 4. >>> >>> Are there other, more effective techniques for managing this type of >>> dependency problem? I like very much the benefits of Java 7 and of JGit 4, >>> but would like to not break compatibility for other plugins. >>> >>> Alternately, I could search the plugin tree for JGit references to see >>> the actual scope of the problem. I haven't detected any other JGit 3 >>> specific dependencies in my integration testing (git plugin, github plugin, >>> GitHub Organization Folders, various workflow uses, etc.), but my failure >>> to detect those dependencies doesn't mean they don't exist... In my first >>> attempt <https://github.com/search?q=org%3Ajenkinsci+TreeWalk&type=Code> >>> (searching just for TreeWalk), I found that git plugin and >>> openshift-deployer-plugin both depend on JGit TreeWalk(). Two consumers >>> (one of which I maintain, the other which seems to include its own specific >>> JGit version) is not enough to spend much effort trying to retain >>> compatibility. >>> >>> Thanks, >>> Mark Waite >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-dev/ac10b570-bb2c-47d0-97b6-390602e464e6%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jenkinsci-dev/ac10b570-bb2c-47d0-97b6-390602e464e6%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Robert Sandell > *Software Engineer* > *CloudBees Inc.* > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/935df1f3-6489-4ff7-b4eb-93249fd9d27f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
