Yes, it should. In the past, several times we have updated Stapler in LTS.


On 10/08/2013 09:59 AM, Dean Yu wrote:
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] <mailto:[email protected]>>
Reply-To: "[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
Date: Monday, October 7, 2013 9:01 PM
To: "[email protected] <mailto:[email protected]>"
<[email protected] <mailto:[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] <mailto:[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]
         <mailto:[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] <mailto:[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] <mailto:[email protected]>>:

            Great! I'll experiment with it in a few weeks after a long
            overdue vacation :-)

            ----- Original Message -----
            From: [email protected]
            <mailto:[email protected]>
            To: [email protected]
            <mailto:[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] <mailto:[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]
                    <mailto:[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]>
                    >> <mailto:[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]>
                    <mailto:[email protected]
                    <mailto:[email protected]>>
                    >>     To:[email protected]
                    <mailto:[email protected]>
                    <mailto:[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]>
                    <mailto:[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 
[email protected]
                    <mailto:jenkinsci-dev%[email protected]>
                    >>             
<mailto:jenkinsci-dev%[email protected]
                    <mailto:jenkinsci-dev%[email protected]>>.
                    >>             For more options, 
visithttps://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 
[email protected]
                    <mailto:jenkinsci-dev%[email protected]>
                    >>         
<mailto:jenkinsci-dev%[email protected]
                    <mailto:jenkinsci-dev%[email protected]>>.
                    >>         For more options, 
visithttps://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 [email protected]
                    <mailto:jenkinsci-dev%[email protected]>
                    >>     <mailto:jenkinsci-dev%[email protected]
                    <mailto:jenkinsci-dev%[email protected]>>.
                    >>     For more options, 
visithttps://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
                    >> [email protected]
                    <mailto:jenkinsci-dev%[email protected]>.
                    >> For more options, 
visithttps://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, 
visithttps://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]
                <mailto:[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:[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]
        <mailto:[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]
     <mailto:[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.

Reply via email to