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.