Great, let us know when this will appear in a Jenkins release and I'll start using it :-)
----- Original Message ----- From: [email protected] To: [email protected] At: Oct 4 2013 14:16:01 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.
