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]>. >>>> >> 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. >>>> >> >>>> >> -- >>>> >> 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]. >>>> >> 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. >>>> >>>> -- >>>> 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 >>> -- >>> 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]. >> 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.
