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.
