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 <o.v.ne...@gmail.com> 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 <abj...@gmail.com>:
>>>>
>>>> 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 jenkinsci-de...@googlegroups.com.
>>>> 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 jenkinsci-dev+unsubscr...@googlegroups.com.
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.

Reply via email to