I'm guessing the desired value is to be able to drop a new version of
stapler into an older version of Jenkins. Providing this value as a plugin
is sort of an implementation detail. If I exploded an older jenkins.war,
dropped in new stapler jars, and repackaged the war, would that work?

  -- Dean

From:  Kohsuke Kawaguchi <[email protected]>
Reply-To:  "[email protected]" <[email protected]>
Date:  Monday, October 7, 2013 9:01 PM
To:  "[email protected]" <[email protected]>
Subject:  Re: @DataBoundSetter

> 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]>
>>>>>>>>> >>             <mailto:jenkinsci-dev%[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]>
>>>>>>>>> >>         <mailto:jenkinsci-dev%[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]>
>>>>>>>>> >>     <mailto:jenkinsci-dev%[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.
>>>>>>>>> >>
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > --
>>>>>>>> > 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]
>>>>>>>> <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.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> 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]
>>>> <mailto:jenkinsci-dev%[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]
>> <mailto:jenkinsci-dev%[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.

Reply via email to