Sure,

so the old version was:

public class MySecurityRealm extends SecurityRealm {
    private String clientId;
    private Secret clientSecret;

    @DataBoundConstructor
    public MySecurityRealm(String clientId, String clientSecret) {
        this.clientId = Util.fixEmptyAndTrim(clientId);
        this.setClientSecret(Util.fixEmptyAndTrim(clientSecret));
    }
}

And the new is:


public class MySecurityRealm extends SecurityRealm {
    private MyConfiguration configuration;

    @DataBoundConstructor
    public MySecurityRealm(String clientId, String clientSecret) {
        this.configuration = new MyConfiguration(
          Util.fixEmptyAndTrim(clientId),
          Secret.fromString(Util.fixEmptyAndTrim(clientSecret))
        );
    }
}

Something along those lines.

Le mer. 8 juil. 2020 à 15:50, Ullrich Hafner <[email protected]> a
écrit :

>
> https://wiki.jenkins.io/display/JENKINS/Hint+on+retaining+backward+compatibility
>
> It would help if you could describe the exact changes in your class (old
> vs. new version).
>
> Am 08.07.2020 um 10:51 schrieb Goyot, Martin <[email protected]>:
>
> Thanks Ullrich!
>
> Do you have any pointer for me as to how to proceed?
>
> Le mer. 8 juil. 2020 à 10:34, Ullrich Hafner <[email protected]> a
> écrit :
>
>>
>>
>> Am 08.07.2020 um 10:16 schrieb Goyot, Martin <[email protected]>:
>>
>> Hi there,
>>
>> On the OAuth plugin I'm working on, I'd like to modify the
>> @DataboundConstructor for the Realm. Issue is, if I modify it, whether be
>> the signature or the inners of the function, the deserialization for
>> previous instances won't work anymore hence breaking any previous
>> installation of the plugin.
>>
>> How am I supposed to proceed in such particular cases, when I need to
>> update this constructor without breaking any config already set on Jenkins
>> instances?
>>
>>
>> The serialization does not use the constructor. You need to provide a
>> readResolve method that will map the old fields to the new fields.
>>
>> Here is some code for reference:
>>
>> public class MySecurityRealm extends SecurityRealm {
>>     private String clientId;
>>     private Secret clientSecret;
>>
>>     @DataBoundConstructor
>>     public MySecurityRealm(String clientId, String clientSecret) {
>>         this.clientId = Util.fixEmptyAndTrim(clientId);
>>         this.setClientSecret(Util.fixEmptyAndTrim(clientSecret));
>>     }
>> }
>>
>> Thanks in advance !
>> Martin
>>
>> --
>> 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].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-dev/CA%2Bb6JB-wx%3D%2BPRcXb057-9idgZkL7kYw%3DSvmSsaR-mxRJ9_g96A%40mail.gmail.com
>> <https://groups.google.com/d/msgid/jenkinsci-dev/CA%2Bb6JB-wx%3D%2BPRcXb057-9idgZkL7kYw%3DSvmSsaR-mxRJ9_g96A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>>
>> --
>> 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].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-dev/E316B1D7-CCBE-4BCE-A50C-E64A53A88E68%40gmail.com
>> <https://groups.google.com/d/msgid/jenkinsci-dev/E316B1D7-CCBE-4BCE-A50C-E64A53A88E68%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
> --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/CA%2Bb6JB8J4-AHbMyb%3DWDATiXGvtnuw6YcEcB-pV0SPc4Ju6xNkA%40mail.gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/CA%2Bb6JB8J4-AHbMyb%3DWDATiXGvtnuw6YcEcB-pV0SPc4Ju6xNkA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/1C9C0447-9863-4833-A03A-9EF3ADC9872A%40gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/1C9C0447-9863-4833-A03A-9EF3ADC9872A%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CA%2Bb6JB9Bz-YyMi9oC1mrRWZdDtteCszf7FmpCOxHEQLRmrKRQw%40mail.gmail.com.

Reply via email to