maybe using @PostConstruct ?

2013/10/4 Kevin Fleming (BLOOMBERG/ 731 LEXIN) <[email protected]>

> How will the object know that Stapler has completed calling
> DataBoundSetters (that all configuration data has been applied)?
>
>
> ----- Original Message -----
> From: [email protected]
> To: [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]>
>
>> 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].
>> 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.
>

-- 
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