maybe using @PostConstruct ?

2013/10/4 Kevin Fleming (BLOOMBERG/ 731 LEXIN) <kpflem...@bloomberg.net>

> How will the object know that Stapler has completed calling
> DataBoundSetters (that all configuration data has been applied)?
>
>
> ----- Original Message -----
> From: jenkinsci-dev@googlegroups.com
> To: 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>
>
>> 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.
>> 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.
>
>  --
> 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