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]> Reply-To: "[email protected]" <[email protected]> Date: Monday, October 7, 2013 9:01 PM To: "[email protected]" <[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]> >> 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]>: >> >>> 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]> >>>> 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]>: >>>> >>>>> Great! I'll experiment with it in a few weeks after a long overdue >>>>> vacation :-) >>>>> >>>>> ----- Original Message ----- >>>>> From: [email protected] >>>>> To: [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]> >>>>>>> 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]> >>>>>>> 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]>> >>>>>>>>> >> >>>>>>>>> >> 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]> >>>>>>>>> >> To: [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]>> >>>>>>>>> >> >>>>>>>>> >> 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 to >>>>>>>>> [email protected] >>>>>>>>> <mailto:jenkinsci-dev%[email protected]> >>>>>>>>> >> <mailto:jenkinsci-dev%[email protected] >>>>>>>>> <mailto:jenkinsci-dev%[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]> >>>>>>>>> >> <mailto:jenkinsci-dev%[email protected] >>>>>>>>> <mailto:jenkinsci-dev%[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]> >>>>>>>>> >> <mailto:jenkinsci-dev%[email protected] >>>>>>>>> <mailto:jenkinsci-dev%[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 | 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, 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]. >>>>>> 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. >>>> -- >>>> 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]. >>> 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]. > 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.
