Reflection is also going to break when someone inevitably changes the library. As a rule we do not use such hacks in Blue Ocean.
On Tuesday, July 4, 2017 at 5:08:14 PM UTC+10, Oleg Nenashev wrote: > > Thanks James for catching another dependency! Added Sam To Cc. > > Anyway, both plugins use new versions of GitHub API, hence the should not > cause the reported issue with the missing class. So it comes from something > else, maybe from a transient library dependency. We definitely need a bug > in JIRA with a list of plugin and a support core bundle to diagnose it more. > > Regarding the reflection proposal, it looks a good approach though I do > not know why BlueOcean can't just depend on the GitHub API plugin. In > Github API lib there is direct class name references, so reflection should > work. Proper reflection with OkHttp & Co will require more efforts though. > > BR, Oleg > > > вторник, 4 июля 2017 г., 3:19:40 UTC+2 пользователь James Dumay написал: >> >> We depend on it directly because we use it directly to make the Pipeline >> Editor work. >> >> >> https://github.com/jenkinsci/blueocean-plugin/blob/404ac7275b4bac85b8ebaea3e7245abc94cb4769/pom.xml#L471 >> >> >> We just started to use that new API for handling rate limits and abuse >> limits so the UI doesn't freeze up. >> >> https://github.com/jenkinsci/blueocean-plugin/pull/1214 >> >> The other plugin that does not depend on the Github plugin but probably >> shouldn't (isn't SCM related) is the Github Oauth plugin. It also uses the >> limit handlers to prevent web threads from being eaten and locking up the >> UI. >> >> https://github.com/jenkinsci/github-oauth-plugin >> >> A few things here: >> * perhaps we need to shade in the Github library into each plugin that >> requires it. Avoid version hell altogether >> * start versioning the Github library so it's clear when there are major >> breaking changes between versions. Stephen C does an excellent job at this >> for all the branch and scm API changes. >> >> >> >> On Tue, Jul 4, 2017 at 2:49 AM Oleg Nenashev <[email protected]> wrote: >> >>> Likely it is a binary conflict with GitHub API version older than 1.64 >>> (commit: >>> https://github.com/kohsuke/github-api/commit/4093e53b5b7eb16e0b4de184a93262285ee6164b). >>> >>> >>> >>> The first step is to ensure that all plugins depend on GitHub API Plugin >>> instead of the direct library dependency. Added James Dumay to cc, because >>> here is something strange in BlueOcean: >>> https://github.com/jenkinsci/blueocean-plugin/blob/404ac7275b4bac85b8ebaea3e7245abc94cb4769/blueocean-github-pipeline/pom.xml#L32-L35 >>> >>> . I do not see other direct GitHub API usages within jenkinsci org plugins >>> from what I see >>> >>> понедельник, 3 июля 2017 г., 11:47:35 UTC+2 пользователь Ullrich Hafner >>> написал: >>>> >>>> Please use the issue tracker to report bugs. >>>> >>>> Am 03.07.2017 um 05:48 schrieb Luo <[email protected]>: >>>> >>>> Hi Expert >>>> I'm running Jenkins with gitlab, when I trigger a build, there are >>>> following error in console: >>>> >>>> FATAL: org/kohsuke/github/RateLimitHandlerjava.lang.NoClassDefFoundError >>>> <http://stacktrace.jenkins-ci.org/search?query=java.lang.NoClassDefFoundError>: >>>> org/kohsuke/github/RateLimitHandler >>>> at >>>> org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification.createBuildCommitStatus(GitHubBuildStatusNotification.java:139) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification.createBuildCommitStatus&entity=method> >>>> at >>>> org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification.access$500(GitHubBuildStatusNotification.java:69) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification.access$500&entity=method> >>>> at >>>> org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification$JobCheckOutListener.onCheckout(GitHubBuildStatusNotification.java:285) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.github_branch_source.GitHubBuildStatusNotification$JobCheckOutListener.onCheckout&entity=method> >>>> at >>>> hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout&entity=method> >>>> at >>>> jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) >>>> <http://stacktrace.jenkins-ci.org/search/?query=jenkins.scm.SCMCheckoutStrategy.checkout&entity=method> >>>> at >>>> hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.run&entity=method> >>>> at hudson.model.Run.execute(Run.java:1741) >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Run.execute&entity=method> >>>> at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.FreeStyleBuild.run&entity=method> >>>> at hudson.model.ResourceController.execute(ResourceController.java:98) >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.ResourceController.execute&entity=method> >>>> at hudson.model.Executor.run(Executor.java:410) >>>> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Executor.run&entity=method> >>>> Caused by: java.lang.ClassNotFoundException >>>> <http://stacktrace.jenkins-ci.org/search?query=java.lang.ClassNotFoundException>: >>>> org.kohsuke.github.RateLimitHandler >>>> at >>>> jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1376) >>>> >>>> <http://stacktrace.jenkins-ci.org/search/?query=jenkins.util.AntClassLoader.findClassInComponents&entity=method> >>>> at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326) >>>> <http://stacktrace.jenkins-ci.org/search/?query=jenkins.util.AntClassLoader.findClass&entity=method> >>>> at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079) >>>> <http://stacktrace.jenkins-ci.org/search/?query=jenkins.util.AntClassLoader.loadClass&entity=method> >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:358) >>>> <http://stacktrace.jenkins-ci.org/search/?query=java.lang.ClassLoader.loadClass&entity=method> >>>> ... 10 more >>>> >>>> >>>> How can I fix it? >>>> >>>> thanks! >>>> >>>> >>>> -- >>>> 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/12fa1b3a-5150-4750-93f0-3ae791306e4b%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/jenkinsci-dev/12fa1b3a-5150-4750-93f0-3ae791306e4b%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> -- >> James Dumay, >> Director of Product Management. >> CloudBees, Inc. >> >> Meet with me: https://calendly.com/jdumay >> Skype: jdumaycb Twitter: i386 >> > -- 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/26bbea3b-b07d-4685-a545-cccdf039eb1f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
