Yes, it should. In the past, several times we have updated Stapler in LTS.
On 10/08/2013 09:59 AM, Dean Yu wrote:
I'm guessing the desired value is to be able to drop a new version of stapler into an older version of Jenkins. Providing this value as a plugin is sort of an implementation detail. If I exploded an older jenkins.war, dropped in new stapler jars, and repackaged the war, would that work? -- Dean From: Kohsuke Kawaguchi <[email protected] <mailto:[email protected]>> Reply-To: "[email protected] <mailto:[email protected]>" <[email protected] <mailto:[email protected]>> Date: Monday, October 7, 2013 9:01 PM To: "[email protected] <mailto:[email protected]>" <[email protected] <mailto:[email protected]>> Subject: Re: @DataBoundSetter The problem still remains that the code in core needs to statically link to stapler, so it is just not technically possible to move stapler into a separate plugin. 2013/10/7 Domi <[email protected] <mailto:[email protected]>> Its not that I think it should not be shipped in the core, but it would make it easter to backport/fix stuff in older versions too. Regards Domi Am 07.10.2013 um 22:12 schrieb Kohsuke Kawaguchi <[email protected] <mailto:[email protected]>>:Most of the things in core depends on it one way or another, so I don't think it's feasible. 2013/10/7 Domi <[email protected] <mailto:[email protected]>> This might be a dummy question, but would it make sense to extract stapler into a separate plugin - like we do with other libs already? Is this even possible? Am 07.10.2013 um 17:16 schrieb "Kevin Fleming (BLOOMBERG/ 731 LEXIN)" <[email protected] <mailto:[email protected]>>:Great! I'll experiment with it in a few weeks after a long overdue vacation :-) ----- Original Message ----- From: [email protected] <mailto:[email protected]> To: [email protected] <mailto:[email protected]> At: Oct 7 2013 11:12:13 @PostConstruct, @DataBoundSetter on fiels, and Descriptor.newInstance() all fixed in 1.535. 2013/10/5 domi <[email protected] <mailto:[email protected]>> Kohsuke, while you'r at it, there are more issues around this topic. e.g. Plugins still using newInstance() are not usable everywhere: https://issues.jenkins-ci.org/browse/JENKINS-15445 Even worse, when a plugin provides newInstance() and @DBC: https://issues.jenkins-ci.org/browse/JENKINS-18629 /Domi On 04.10.2013, at 20:15, Kohsuke Kawaguchi <[email protected] <mailto:[email protected]>> wrote: > On 10/04/2013 07:00 AM, nicolas de loof wrote: >> maybe using @PostConstruct ? >> >> >> 2013/10/4 Kevin Fleming (BLOOMBERG/ 731 LEXIN) <[email protected] <mailto:[email protected]> >> <mailto:[email protected] <mailto:[email protected]>>> >> >> How will the object know that Stapler has completed calling DataBoundSetters >> (that all configuration data has been applied)? > > Another great idea. Will implement this. > > >> >> ----- Original Message ----- >> From:[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> >> To:[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> >> At: Oct 4 2013 00:38:55 >> >> great, >> >> so next step is to be able to directly annotate fields à la hibernate :) >> >> >> class Foo { >> >> @DataBound >> int a,b,c,d; >> >> } >> >> >> 2013/10/4 Kohsuke Kawaguchi <[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>>> >> >> Today, many complex plugins suffer from a massive constructor >> annotated with @DataBoundConstructor. >> >> This is because the form data-binding requires that all the >> parameters passed in through the constructor. See xcode plugin [1] >> for an example of this. The situation was worse with plugins that >> are used by other plugins, which needed to preserve ever-increasing >> list of constructors to remain backward compatible. >> >> Starting Jenkins 1.535, this problem is no more. Stapler can not >> only look for @DataBoundConstructor, but it'll also perform setter >> injection on methods annotated with @DataBoundSetter. >> >> So whereas you had to write: >> >> class Foo { >> int a,b,c,d; >> @DataBoundConstructor >> public Foo(int a, int b, int c, int d) { >> this.a = a; >> this.b = b; >> this.c = c; >> this.d = d; >> } >> } >> >> You can now write: >> >> class Foo { >> int a,b,c,d; >> @DataBoundConstructor >> public Foo(int a, int b) { >> this.a = a; >> this.b = b; >> } >> @DataBoundSetter >> public void setC(int c) { this.c = c; } >> @DataBoundSetter >> public void setD(int d) { this.d = d; } >> } >> >> Or even: >> >> class Foo { >> int a,b,c,d; >> @DataBoundConstructor >> public Foo() {} >> >> @DataBoundSetter >> public void setA(int a) { this.a = a; } >> @DataBoundSetter >> public void setC(int b) { this.b = b; } >> @DataBoundSetter >> public void setC(int c) { this.c = c; } >> @DataBoundSetter >> public void setD(int d) { this.d = d; } >> } >> >> This will make it easier to evolve plugins that have a large number >> of configuration options. >> >> >> [1] >>https://github.com/jenkinsci/xcode-plugin/blob/master/src/main/java/au/com/rayh/XCodeBuilder.java#L165 >> >> >> -- >> Kohsuke Kawaguchi >> -- >> 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 [email protected] <mailto:jenkinsci-dev%[email protected]> >> <mailto:jenkinsci-dev%[email protected] <mailto:jenkinsci-dev%[email protected]>>. >> For more options, visithttps://groups.google.com/groups/opt_out. >> >> >> -- >> 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 [email protected] <mailto:jenkinsci-dev%[email protected]> >> <mailto:jenkinsci-dev%[email protected] <mailto:jenkinsci-dev%[email protected]>>. >> For more options, visithttps://groups.google.com/groups/opt_out. >> >> -- >> 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 [email protected] <mailto:jenkinsci-dev%[email protected]> >> <mailto:jenkinsci-dev%[email protected] <mailto:jenkinsci-dev%[email protected]>>. >> For more options, visithttps://groups.google.com/groups/opt_out. >> >> >> -- >> 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 >> [email protected] <mailto:jenkinsci-dev%[email protected]>. >> For more options, visithttps://groups.google.com/groups/opt_out. >> > > > -- > Kohsuke Kawaguchi | CloudBees, Inc. |http://cloudbees.com/ > Try Jenkins Enterprise, our professional version of Jenkins > > -- > 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] <mailto:jenkinsci-dev%[email protected]>. > For more options, visithttps://groups.google.com/groups/opt_out. -- 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] <mailto:jenkinsci-dev%[email protected]>. For more options, visit https://groups.google.com/groups/opt_out. -- Kohsuke Kawaguchi -- 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] <mailto:[email protected]>. For more options, visit https://groups.google.com/groups/opt_out. -- 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] <mailto:[email protected]>. For more options, visit https://groups.google.com/groups/opt_out.-- 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] <mailto:jenkinsci-dev%[email protected]>. For more options, visit https://groups.google.com/groups/opt_out. -- Kohsuke Kawaguchi -- 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] <mailto:[email protected]>. For more options, visit https://groups.google.com/groups/opt_out.-- 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] <mailto:jenkinsci-dev%[email protected]>. For more options, visit https://groups.google.com/groups/opt_out. -- Kohsuke Kawaguchi -- 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] <mailto:[email protected]>. For more options, visit https://groups.google.com/groups/opt_out. -- 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]. For more options, visit https://groups.google.com/groups/opt_out.
-- Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/ Try Jenkins Enterprise, our professional version of Jenkins -- 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]. For more options, visit https://groups.google.com/groups/opt_out.
