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.

Reply via email to