The problem still remains that the code in core needs to statically link to stapler, so it is just not technically possible to move stapler into a separate plugin.
2013/10/7 Domi <[email protected]> > Its not that I think it should not be shipped in the core, but it would > make it easter to backport/fix stuff in older versions too. > Regards Domi > > Am 07.10.2013 um 22:12 schrieb Kohsuke Kawaguchi <[email protected]>: > > Most of the things in core depends on it one way or another, so I don't > think it's feasible. > > > 2013/10/7 Domi <[email protected]> > >> This might be a dummy question, but would it make sense to extract >> stapler into a separate plugin - like we do with other libs already? Is >> this even possible? >> >> Am 07.10.2013 um 17:16 schrieb "Kevin Fleming (BLOOMBERG/ 731 LEXIN)" < >> [email protected]>: >> >> Great! I'll experiment with it in a few weeks after a long overdue >> vacation :-) >> >> ----- Original Message ----- >> From: [email protected] >> To: [email protected] >> At: Oct 7 2013 11:12:13 >> >> @PostConstruct, @DataBoundSetter on fiels, and Descriptor.newInstance() >> all fixed in 1.535. >> >> >> 2013/10/5 domi <[email protected]> >> >>> Kohsuke, >>> while you'r at it, there are more issues around this topic. e.g. >>> Plugins still using newInstance() are not usable everywhere: >>> https://issues.jenkins-ci.org/browse/JENKINS-15445 >>> Even worse, when a plugin provides newInstance() and @DBC: >>> https://issues.jenkins-ci.org/browse/JENKINS-18629 >>> /Domi >>> >>> >>> On 04.10.2013, at 20:15, Kohsuke Kawaguchi <[email protected]> >>> wrote: >>> >>> > 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. >>> >> >> >> >> -- >> 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. >> > > > > -- > 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. > -- 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.
