From 319372b88749b683649549ea52730dac2fc0a8aa Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 25 Feb 2013 19:20:33 -0800 Subject: [PATCH] [FIXED JENKINS-12542] upgraded to XStream 1.4.4 There are several incompatibilities in XStream 1.4 that resulted in our changing the core, but according to the text search on all the public plugins, none of these changes affect the 600+ plugins we have today. However, it is still possible that there are some parts of XStream 1.3 that plugins depend on but the core doesn't depend on --- we won't be able to tell those problems at this point. --- changelog.html | 3 ++ core/pom.xml | 2 +- .../util/RobustReflectionConverter.java | 4 +-- .../java/hudson/util/StringConverter2.java | 6 ++-- core/src/main/java/hudson/util/XStream2.java | 2 +- .../hudson/util/xstream/MapperDelegate.java | 28 ------------------- .../java/hudson/util/CopyOnWriteMapTest.java | 2 +- 7 files changed, 11 insertions(+), 36 deletions(-) diff --git a/changelog.html b/changelog.html index 53eec5c29a..12f572fd47 100644 --- a/changelog.html +++ b/changelog.html @@ -70,6 +70,9 @@ Upcoming changes
  • Maven2 builds with non-standard test plugins failed. (issue 16928) +
  • + Started bundling XStream 1.4.4 + (issue 12542)
  • Significant improvement in Traditional Chinese localizations. (pull 716) diff --git a/core/pom.xml b/core/pom.xml index 9b7401aa75..e174e46188 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -233,7 +233,7 @@ THE SOFTWARE. org.jvnet.hudson xstream - 1.3.1-jenkins-11 + 1.4.4-jenkins-1 jfree diff --git a/core/src/main/java/hudson/util/RobustReflectionConverter.java b/core/src/main/java/hudson/util/RobustReflectionConverter.java index 42269140f8..5a3a70d5d2 100755 --- a/core/src/main/java/hudson/util/RobustReflectionConverter.java +++ b/core/src/main/java/hudson/util/RobustReflectionConverter.java @@ -28,7 +28,7 @@ import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.SingleValueConverter; import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.converters.reflection.NonExistentFieldException; +import com.thoughtworks.xstream.converters.reflection.MissingFieldException; import com.thoughtworks.xstream.converters.reflection.ObjectAccessException; import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider; import com.thoughtworks.xstream.converters.reflection.ReflectionConverter; @@ -293,7 +293,7 @@ public class RobustReflectionConverter implements Converter { implicitCollectionsForCurrentObject = writeValueToImplicitCollection(context, value, implicitCollectionsForCurrentObject, result, fieldName); } } - } catch (NonExistentFieldException e) { + } catch (MissingFieldException e) { LOGGER.log(WARNING,"Skipping a non-existent field "+e.getFieldName(),e); addErrorInContext(context, e); } catch (CannotResolveClassException e) { diff --git a/core/src/main/java/hudson/util/StringConverter2.java b/core/src/main/java/hudson/util/StringConverter2.java index 250b74b1e7..e993adedc5 100644 --- a/core/src/main/java/hudson/util/StringConverter2.java +++ b/core/src/main/java/hudson/util/StringConverter2.java @@ -23,7 +23,7 @@ */ package hudson.util; -import com.thoughtworks.xstream.converters.basic.AbstractBasicConverter; +import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter; import com.thoughtworks.xstream.converters.basic.StringConverter; /** @@ -40,13 +40,13 @@ import com.thoughtworks.xstream.converters.basic.StringConverter; * Use {@link HeapSpaceStringConverter} instead. */ @Deprecated -public class StringConverter2 extends AbstractBasicConverter { +public class StringConverter2 extends AbstractSingleValueConverter { public boolean canConvert(Class type) { return type.equals(String.class); } - protected Object fromString(String str) { + public Object fromString(String str) { return str; } } diff --git a/core/src/main/java/hudson/util/XStream2.java b/core/src/main/java/hudson/util/XStream2.java index 35d49c7e42..c4543979b1 100644 --- a/core/src/main/java/hudson/util/XStream2.java +++ b/core/src/main/java/hudson/util/XStream2.java @@ -158,7 +158,7 @@ public class XStream2 extends XStream { return super.serializedClass(type); } }); - AnnotationMapper a = new AnnotationMapper(m, getConverterRegistry(), getClassLoader(), getReflectionProvider(), getJvm()); + AnnotationMapper a = new AnnotationMapper(m, getConverterRegistry(), getConverterLookup(), getClassLoader(), getReflectionProvider(), getJvm()); a.autodetectAnnotations(true); mapperInjectionPoint = new MapperInjectionPoint(a); diff --git a/core/src/main/java/hudson/util/xstream/MapperDelegate.java b/core/src/main/java/hudson/util/xstream/MapperDelegate.java index 47019280c1..1433687176 100644 --- a/core/src/main/java/hudson/util/xstream/MapperDelegate.java +++ b/core/src/main/java/hudson/util/xstream/MapperDelegate.java @@ -59,34 +59,6 @@ public class MapperDelegate extends MapperWrapper { return delegate.defaultImplementationOf(type); } - /** - * @deprecated since 1.2, use aliasForAttribute instead. - */ - public String attributeForClassDefiningField() { - return delegate.attributeForClassDefiningField(); - } - - /** - * @deprecated since 1.2, use aliasForAttribute instead. - */ - public String attributeForImplementationClass() { - return delegate.attributeForImplementationClass(); - } - - /** - * @deprecated since 1.2, use aliasForAttribute instead. - */ - public String attributeForReadResolveField() { - return delegate.attributeForReadResolveField(); - } - - /** - * @deprecated since 1.2, use aliasForAttribute instead. - */ - public String attributeForEnumType() { - return delegate.attributeForEnumType(); - } - public String aliasForAttribute(String attribute) { return delegate.aliasForAttribute(attribute); } diff --git a/core/src/test/java/hudson/util/CopyOnWriteMapTest.java b/core/src/test/java/hudson/util/CopyOnWriteMapTest.java index 10d1983467..9e4f0dbba3 100644 --- a/core/src/test/java/hudson/util/CopyOnWriteMapTest.java +++ b/core/src/test/java/hudson/util/CopyOnWriteMapTest.java @@ -88,7 +88,7 @@ public class CopyOnWriteMapTest extends TestCase { String out = xs.toXML(td); assertEquals("empty maps", "" - + "" + + "" + "", out.replaceAll("\\s+", "")); TreeData td2 = (TreeData)xs.fromXML(out); -- GitLab