Great, let us know when this will appear in a Jenkins release and I'll start 
using it :-)

----- Original Message -----
From: jenkinsci-dev@googlegroups.com
To: jenkinsci-dev@googlegroups.com
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) <kpflem...@bloomberg.net
> <mailto:kpflem...@bloomberg.net>>
>
>      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: jenkinsci-dev@googlegroups.com 
> <mailto:jenkinsci-dev@googlegroups.com>
>      To: jenkinsci-dev@googlegroups.com 
> <mailto:jenkinsci-dev@googlegroups.com>
>      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 <k...@kohsuke.org 
> <mailto:k...@kohsuke.org>>
>
>              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 jenkinsci-dev+unsubscr...@googlegroups.com
>              <mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com>.
>              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 jenkinsci-dev+unsubscr...@googlegroups.com
>          <mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com>.
>          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 jenkinsci-dev+unsubscr...@googlegroups.com
>      <mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com>.
>      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 jenkinsci-dev+unsubscr...@googlegroups.com.
> 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 jenkinsci-dev+unsubscr...@googlegroups.com.
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 jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to