Hello list, as described in earlier mail, I've moved the descriptor implementation of my plugin in an other class: org.jenkinsci.plugins.darcs.DarcsScm$DescriptorImpl -> org.jenkinsci.plugins.darcs.DarcsScmDescriptor.
Problem is the global configuration file in the HUDSON_HOME: org.jenkinsci.plugins.darcs.DarcsScm.xml. This file contains: <?xml version='1.0' encoding='UTF-8'?> <org.jenkinsci.plugins.darcs.DarcsScm_-DescriptorImpl> <generation>1</generation> <darcsExe>/usr/local/bin/darcs</darcsExe> </org.jenkinsci.plugins.darcs.DarcsScm_-DescriptorImpl> Which will cause error of course. After reading https://wiki.jenkins-ci.org/display/JENKINS/Architecture and talkin on IRC I came up with this solution: public class DarcsScm extends SCM implements Serializable { // ... @Initializer(before = InitMilestone.PLUGINS_STARTED) public static void addAliases() { Jenkins.XSTREAM2.addCompatibilityAlias( "org.jenkinsci.plugins.darcs.DarcsScm.DescriptorImpl", DarcsScmDescriptor.class); } } But does not work. Jenkins can not deserialize/load XML with the old class in the root tag. Always got this exception: Error injecting constructor, com.thoughtworks.xstream.mapper.CannotResolveClassException: org.jenkinsci.plugins.darcs.DarcsScm$DescriptorImpl : org.jenkinsci.plugins.darcs.DarcsScm$DescriptorImpl at org.jenkinsci.plugins.darcs.DarcsScmDescriptor.<init>(DarcsScmDescriptor.java:66) Full exception here: http://pastebin.com/xbq6BAWV I've also tried this: Jenkins.XSTREAM2.addCompatibilityAlias("org.jenkinsci.plugins.darcs.DarcsScm_-DescriptorImpl", DarcsScmDescriptor.class); Jenkins.XSTREAM2.addCompatibilityAlias("org.jenkinsci.plugins.darcs.DarcsScm$DescriptorImpl", DarcsScmDescriptor.class); I've also tried Items.XSTREAM2 and Run.XSTREAM2, albeit kohsuke said that I should use Jnekins.XSTREAM2. And I've tried @Initializer(before = InitMilestone.PLUGINS_LISTED) and @Initializer(before = InitMilestone.PLUGINS_PREPARED) I can circumvent the exception if I add the old descriptor extending the new one in DarcsScm: @Deprecated public static class DescriptorImpl extends DarcsScmDescriptor {} But the old config will not be loaded. Then in Jenkins configuration site always the default values are displayed. Can someone please point me out what I'm doing wrong? Full code available here: https://github.com/Weltraumschaf/darcs-plugin/blob/master/src/main/java/org/jenkinsci/plugins/darcs/DarcsScm.java Kind Regards -Sven -- About: https://www.weltraumschaf.de/
smime.p7s
Description: S/MIME Kryptografische Unterschrift
