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.

Reply via email to