Log Message
Make JVM static only.
Modified Paths
- trunk/xstream/src/java/com/thoughtworks/xstream/XStream.java
- trunk/xstream/src/java/com/thoughtworks/xstream/core/JVM.java
- trunk/xstream/src/java/com/thoughtworks/xstream/core/util/DependencyInjectionFactory.java
- trunk/xstream/src/test/com/thoughtworks/acceptance/FinalFieldsTest.java
- trunk/xstream/src/test/com/thoughtworks/xstream/core/JVMTest.java
- trunk/xstream/src/test/com/thoughtworks/xstream/io/DriverEndToEndTestSuite.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/AliasedAttributeCache.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/Cache122.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/DefaultImplementationCache.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/RealClassCache.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/SerializedClassCache.java
- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/XStreamCache.java
Diff
Modified: trunk/xstream/src/java/com/thoughtworks/xstream/XStream.java (2094 => 2095)
--- trunk/xstream/src/java/com/thoughtworks/xstream/XStream.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/java/com/thoughtworks/xstream/XStream.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -311,8 +311,6 @@
private LocalConversionMapper localConversionMapper;
private AnnotationConfiguration annotationConfiguration;
- private transient JVM jvm = new JVM();
-
public static final int NO_REFERENCES = 1001;
public static final int ID_REFERENCES = 1002;
public static final int XPATH_RELATIVE_REFERENCES = 1003;
@@ -539,9 +537,8 @@
ReflectionProvider reflectionProvider, HierarchicalStreamDriver driver,
ClassLoaderReference classLoaderReference, Mapper mapper, ConverterLookup converterLookup,
ConverterRegistry converterRegistry) {
- jvm = new JVM();
if (reflectionProvider == null) {
- reflectionProvider = jvm.bestReflectionProvider();
+ reflectionProvider = JVM.newReflectionProvider();
}
this.reflectionProvider = reflectionProvider;
this.hierarchicalStreamDriver = driver;
@@ -688,19 +685,19 @@
alias("singleton-map", Collections.singletonMap(this, null).getClass());
alias("singleton-set", Collections.singleton(this).getClass());
- if (jvm.supportsAWT()) {
+ if (JVM.isAWTAvailable()) {
// Instantiating these two classes starts the AWT system, which is undesirable.
// Calling loadClass ensures a reference to the class is found but they are not
// instantiated.
- alias("awt-color", jvm.loadClass("java.awt.Color", false));
- alias("awt-font", jvm.loadClass("java.awt.Font", false));
- alias("awt-text-attribute", jvm.loadClass("java.awt.font.TextAttribute"));
+ alias("awt-color", JVM.loadClassForName("java.awt.Color", false));
+ alias("awt-font", JVM.loadClassForName("java.awt.Font", false));
+ alias("awt-text-attribute", JVM.loadClassForName("java.awt.font.TextAttribute"));
}
- if (jvm.supportsSQL()) {
- alias("sql-timestamp", jvm.loadClass("java.sql.Timestamp"));
- alias("sql-time", jvm.loadClass("java.sql.Time"));
- alias("sql-date", jvm.loadClass("java.sql.Date"));
+ if (JVM.isSQLAvailable()) {
+ alias("sql-timestamp", JVM.loadClassForName("java.sql.Timestamp"));
+ alias("sql-time", JVM.loadClassForName("java.sql.Time"));
+ alias("sql-date", JVM.loadClassForName("java.sql.Date"));
}
alias("file", File.class);
@@ -709,25 +706,25 @@
if (JVM.is14()) {
aliasDynamically("auth-subject", "javax.security.auth.Subject");
- alias("linked-hash-map", jvm.loadClass("java.util.LinkedHashMap"));
- alias("linked-hash-set", jvm.loadClass("java.util.LinkedHashSet"));
- alias("trace", jvm.loadClass("java.lang.StackTraceElement"));
- alias("currency", jvm.loadClass("java.util.Currency"));
- aliasType("charset", jvm.loadClass("java.nio.charset.Charset"));
+ alias("linked-hash-map", JVM.loadClassForName("java.util.LinkedHashMap"));
+ alias("linked-hash-set", JVM.loadClassForName("java.util.LinkedHashSet"));
+ alias("trace", JVM.loadClassForName("java.lang.StackTraceElement"));
+ alias("currency", JVM.loadClassForName("java.util.Currency"));
+ aliasType("charset", JVM.loadClassForName("java.nio.charset.Charset"));
}
if (JVM.is15()) {
aliasDynamically("duration", "javax.xml.datatype.Duration");
- alias("concurrent-hash-map", jvm.loadClass("java.util.concurrent.ConcurrentHashMap"));
- alias("enum-set", jvm.loadClass("java.util.EnumSet"));
- alias("enum-map", jvm.loadClass("java.util.EnumMap"));
- alias("string-builder", jvm.loadClass("java.lang.StringBuilder"));
- alias("uuid", jvm.loadClass("java.util.UUID"));
+ alias("concurrent-hash-map", JVM.loadClassForName("java.util.concurrent.ConcurrentHashMap"));
+ alias("enum-set", JVM.loadClassForName("java.util.EnumSet"));
+ alias("enum-map", JVM.loadClassForName("java.util.EnumMap"));
+ alias("string-builder", JVM.loadClassForName("java.lang.StringBuilder"));
+ alias("uuid", JVM.loadClassForName("java.util.UUID"));
}
}
private void aliasDynamically(String alias, String className) {
- Class type = jvm.loadClass(className);
+ Class type = JVM.loadClassForName(className);
if (type != null) {
alias(alias, type);
}
@@ -783,7 +780,7 @@
registerConverter((Converter)new EncodedByteArrayConverter(), PRIORITY_NORMAL);
registerConverter(new FileConverter(), PRIORITY_NORMAL);
- if (jvm.supportsSQL()) {
+ if (JVM.isSQLAvailable()) {
registerConverter(new SqlTimestampConverter(), PRIORITY_NORMAL);
registerConverter(new SqlTimeConverter(), PRIORITY_NORMAL);
registerConverter(new SqlDateConverter(), PRIORITY_NORMAL);
@@ -793,12 +790,12 @@
registerConverter(new JavaClassConverter(classLoaderReference), PRIORITY_NORMAL);
registerConverter(new JavaMethodConverter(classLoaderReference), PRIORITY_NORMAL);
registerConverter(new JavaFieldConverter(classLoaderReference), PRIORITY_NORMAL);
- if (jvm.supportsAWT()) {
+ if (JVM.isAWTAvailable()) {
registerConverter(new FontConverter(), PRIORITY_NORMAL);
registerConverter(new ColorConverter(), PRIORITY_NORMAL);
registerConverter(new TextAttributeConverter(), PRIORITY_NORMAL);
}
- if (jvm.supportsSwing()) {
+ if (JVM.isSwingAvailable()) {
registerConverter(
new LookAndFeelConverter(mapper, reflectionProvider), PRIORITY_NORMAL);
}
@@ -830,7 +827,7 @@
if (JVM.is15()) {
// late bound converters - allows XStream to be compiled on earlier JDKs
- if (jvm.loadClass("javax.xml.datatype.Duration") != null) {
+ if (JVM.loadClassForName("javax.xml.datatype.Duration") != null) {
registerConverterDynamically(
"com.thoughtworks.xstream.converters.extended.DurationConverter",
PRIORITY_NORMAL, null, null);
@@ -910,7 +907,7 @@
addImmutableType(Collections.EMPTY_SET.getClass());
addImmutableType(Collections.EMPTY_MAP.getClass());
- if (jvm.supportsAWT()) {
+ if (JVM.isAWTAvailable()) {
addImmutableTypeDynamically("java.awt.font.TextAttribute");
}
@@ -922,7 +919,7 @@
}
private void addImmutableTypeDynamically(String className) {
- Class type = jvm.loadClass(className);
+ Class type = JVM.loadClassForName(className);
if (type != null) {
addImmutableType(type);
}
@@ -1991,10 +1988,4 @@
super(message);
}
}
-
- private Object readResolve() {
- jvm = new JVM();
- return this;
- }
-
}
Modified: trunk/xstream/src/java/com/thoughtworks/xstream/core/JVM.java (2094 => 2095)
--- trunk/xstream/src/java/com/thoughtworks/xstream/core/JVM.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/java/com/thoughtworks/xstream/core/JVM.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -11,11 +11,13 @@
*/
package com.thoughtworks.xstream.core;
+import com.thoughtworks.xstream.converters.reflection.FieldDictionary;
+import com.thoughtworks.xstream.converters.reflection.ObjectAccessException;
import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider;
import com.thoughtworks.xstream.converters.reflection.ReflectionProvider;
+import com.thoughtworks.xstream.core.util.DependencyInjectionFactory;
import com.thoughtworks.xstream.core.util.PresortedMap;
import com.thoughtworks.xstream.core.util.PresortedSet;
-import com.thoughtworks.xstream.core.util.WeakCache;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -24,8 +26,6 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
@@ -34,13 +34,11 @@
public class JVM implements Caching {
private ReflectionProvider reflectionProvider;
- private transient Map loaderCache = new WeakCache(new HashMap());
- private final boolean supportsAWT = loadClass("java.awt.Color", false) != null;
- private final boolean supportsSwing = loadClass("javax.swing.LookAndFeel", false) != null;
- private final boolean supportsSQL = loadClass("java.sql.Date") != null;
- private final boolean supportsSunStAX = loadClass("com.sun.xml.internal.stream.XMLInputFactoryImpl") != null;
-
+ private static final boolean isAWTAvailable;
+ private static final boolean isSwingAvailable;
+ private static final boolean isSQLAvailable;
+ private static final boolean isSunStAXAvailable;
private static final boolean canAllocateWithUnsafe;
private static final boolean optimizedTreeSetAddAll;
private static final boolean optimizedTreeMapPutAll;
@@ -48,10 +46,10 @@
private static final String vendor = System.getProperty("java.vm.vendor");
private static final float majorJavaVersion = getMajorJavaVersion();
+ private static final float DEFAULT_JAVA_VERSION = 1.4f;
private static final boolean reverseFieldOrder = false;
+ private static final Class reflectionProviderType;
- private static final float DEFAULT_JAVA_VERSION = 1.4f;
-
static class Broken {
Broken() {
throw new UnsupportedOperationException();
@@ -104,9 +102,36 @@
test = false;
}
canParseUTCDateFormat = test;
+
+ isAWTAvailable = loadClassForName("java.awt.Color", false) != null;
+ isSwingAvailable = loadClassForName("javax.swing.LookAndFeel", false) != null;
+ isSQLAvailable = loadClassForName("java.sql.Date") != null;
+ isSunStAXAvailable = loadClassForName("com.sun.xml.internal.stream.XMLInputFactoryImpl") != null;
+
+ Class type = null;
+ if (canUseSun14ReflectionProvider()) {
+ type = loadClassForName("com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider");
+ if (type != null) {
+ try {
+ DependencyInjectionFactory.newInstance(type, null);
+ } catch (ObjectAccessException e) {
+ type = null;
+ }
+ }
+ }
+ if (type == null) {
+ type = PureJavaReflectionProvider.class;
+ }
+ reflectionProviderType = type;
}
/**
+ * @deprecated As of upcoming use the static methods of JVM.
+ */
+ public JVM() {
+ }
+
+ /**
* Parses the java version system property to determine the major java version,
* i.e. 1.x
*
@@ -167,21 +192,36 @@
return vendor.indexOf("Android") != -1;
}
+ /**
+ * Load a XStream class for the given name.
+ *
+ * <p>This method is not meant to use loading arbitrary classes. It is used by XStream bootstrap
+ * until it is able to use the user provided or the default {@link ClassLoader}.</p>
+ *
+ * @since upcoming
+ */
+ public static Class loadClassForName(String name) {
+ return loadClassForName(name, true);
+ }
+
+ /**
+ * @deprecated As of upcoming use {@link #loadClassForName(String)}
+ */
public Class loadClass(String name) {
- return loadClass(name, true);
+ return loadClassForName(name, true);
}
/**
- * @since 1.4.4
+ * Load a XStream class for the given name.
+ *
+ * <p>This method is not meant to use loading arbitrary classes. It is used by XStream bootstrap
+ * until it is able to use the user provided or the default {@link ClassLoader}.</p>
+ *
+ * @since upcoming
*/
- public Class loadClass(String name, boolean initialize) {
- Class cached = (Class) loaderCache.get(name);
- if (cached != null) {
- return cached;
- }
+ public static Class loadClassForName(String name, boolean initialize) {
try {
- Class clazz = Class.forName(name, initialize, getClass().getClassLoader());
- loaderCache.put(name, clazz);
+ Class clazz = Class.forName(name, initialize, JVM.class.getClassLoader());
return clazz;
} catch (LinkageError e) {
return null;
@@ -190,6 +230,38 @@
}
}
+ /**
+ * @since 1.4.4
+ * @deprecated As of upcoming use {@link #loadClassForName(String, boolean)}
+ */
+ public Class loadClass(String name, boolean initialize) {
+ return loadClassForName(name, initialize);
+ }
+
+ /**
+ * Create the best matching ReflectionProvider.
+ *
+ * @return a new instance
+ * @since upcoming
+ */
+ public static ReflectionProvider newReflectionProvider() {
+ return (ReflectionProvider)DependencyInjectionFactory.newInstance(reflectionProviderType, null);
+ }
+
+ /**
+ * Create the best matching ReflectionProvider.
+ *
+ * @param dictionary the FieldDictionary to use by the ReflectionProvider
+ * @return a new instance
+ * @since upcoming
+ */
+ public static ReflectionProvider newReflectionProvider(FieldDictionary dictionary) {
+ return (ReflectionProvider)DependencyInjectionFactory.newInstance(reflectionProviderType, new Object[]{ dictionary });
+ }
+
+ /**
+ * @deprecated As of upcoming use {@link #newReflectionProvider()}
+ */
public synchronized ReflectionProvider bestReflectionProvider() {
if (reflectionProvider == null) {
try {
@@ -198,7 +270,7 @@
className = "com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider";
}
if (className != null) {
- Class cls = loadClass(className);
+ Class cls = loadClassForName(className);
if (cls != null) {
reflectionProvider = (ReflectionProvider) cls.newInstance();
}
@@ -206,7 +278,7 @@
} catch (InstantiationException e) {
} catch (IllegalAccessException e) {
} catch (AccessControlException e) {
- // thrown when trying to access sun.misc package in Applet context.
+ // thrown when trying to access sun.misc package in Applet context
}
if (reflectionProvider == null) {
reflectionProvider = new PureJavaReflectionProvider();
@@ -215,33 +287,63 @@
return reflectionProvider;
}
- private boolean canUseSun14ReflectionProvider() {
+ private static boolean canUseSun14ReflectionProvider() {
return canAllocateWithUnsafe && is14();
}
+ /**
+ * @deprecated As of upcoming
+ */
public static boolean reverseFieldDefinition() {
return reverseFieldOrder;
}
/**
+ * Checks if AWT is available.
+ * @since upcoming
+ */
+ public static boolean isAWTAvailable() {
+ return isAWTAvailable;
+ }
+
+ /**
* Checks if the jvm supports awt.
+ * @deprecated As of upcoming use {@link #isAWTAvailable()}
*/
public boolean supportsAWT() {
- return this.supportsAWT;
+ return this.isAWTAvailable;
}
/**
+ * Checks if Swing is available.
+ * @since upcoming
+ */
+ public static boolean isSwingAvailable() {
+ return isSwingAvailable;
+ }
+
+ /**
* Checks if the jvm supports swing.
+ * @deprecated As of upcoming use {@link #isSwingAvailable()}
*/
public boolean supportsSwing() {
- return this.supportsSwing;
+ return this.isSwingAvailable;
}
/**
+ * Checks if SQL is available.
+ * @since upcoming
+ */
+ public static boolean isSQLAvailable() {
+ return isSQLAvailable;
+ }
+
+ /**
* Checks if the jvm supports sql.
+ * @deprecated As of upcoming use {@link #isSQLAvailable()}
*/
public boolean supportsSQL() {
- return this.supportsSQL;
+ return this.isSQLAvailable;
}
/**
@@ -249,8 +351,8 @@
*
* @since upcoming
*/
- public boolean supportsSunStAX() {
- return this.supportsSunStAX;
+ public static boolean isSunStAXAvilable() {
+ return isSunStAXAvailable;
}
/**
@@ -275,15 +377,12 @@
return canParseUTCDateFormat;
}
+ /**
+ * @deprecated As of upcoming no functionality
+ */
public void flushCache() {
- loaderCache.clear();
}
- private Object readResolve() {
- loaderCache = new WeakCache(new HashMap());
- return this;
- }
-
public static void main(String[] args) {
boolean reverse = false;
Field[] fields = AttributedString.class.getDeclaredFields();
@@ -303,7 +402,6 @@
}
}
- JVM jvm = new JVM();
System.out.println("XStream JVM diagnostics");
System.out.println("java.specification.version: " + System.getProperty("java.specification.version"));
System.out.println("java.specification.vendor: " + System.getProperty("java.specification.vendor"));
@@ -312,10 +410,10 @@
System.out.println("java.vendor: " + System.getProperty("java.vendor"));
System.out.println("java.vm.name: " + System.getProperty("java.vm.name"));
System.out.println("Version: " + majorJavaVersion);
- System.out.println("XStream support for enhanced Mode: " + jvm.canUseSun14ReflectionProvider());
- System.out.println("Supports AWT: " + jvm.supportsAWT());
- System.out.println("Supports Swing: " + jvm.supportsSwing());
- System.out.println("Supports SQL: " + jvm.supportsSunStAX());
+ System.out.println("XStream support for enhanced Mode: " + canUseSun14ReflectionProvider());
+ System.out.println("Supports AWT: " + isAWTAvailable());
+ System.out.println("Supports Swing: " + isSwingAvailable());
+ System.out.println("Supports SQL: " + isSunStAXAvilable());
System.out.println("Optimized TreeSet.addAll: " + hasOptimizedTreeSetAddAll());
System.out.println("Optimized TreeMap.putAll: " + hasOptimizedTreeMapPutAll());
System.out.println("Can parse UTC date format: " + canParseUTCDateFormat());
Modified: trunk/xstream/src/java/com/thoughtworks/xstream/core/util/DependencyInjectionFactory.java (2094 => 2095)
--- trunk/xstream/src/java/com/thoughtworks/xstream/core/util/DependencyInjectionFactory.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/java/com/thoughtworks/xstream/core/util/DependencyInjectionFactory.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -229,6 +229,10 @@
throw new ObjectAccessException("Cannot construct " + type.getName(), e);
} catch (final InvocationTargetException e) {
throw new ObjectAccessException("Cannot construct " + type.getName(), e);
+ } catch (final SecurityException e) {
+ throw new ObjectAccessException("Cannot construct " + type.getName(), e);
+ } catch (final ExceptionInInitializerError e) {
+ throw new ObjectAccessException("Cannot construct " + type.getName(), e);
}
}
Modified: trunk/xstream/src/test/com/thoughtworks/acceptance/FinalFieldsTest.java (2094 => 2095)
--- trunk/xstream/src/test/com/thoughtworks/acceptance/FinalFieldsTest.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/test/com/thoughtworks/acceptance/FinalFieldsTest.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2004, 2005 Joe Walnes.
- * Copyright (C) 2006, 2007, 2008 XStream Committers.
+ * Copyright (C) 2006, 2007, 2008, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -24,7 +24,7 @@
}
public void testSerializeFinalFieldsIfSupported() {
- xstream = new XStream(new JVM().bestReflectionProvider());
+ xstream = new XStream(JVM.newReflectionProvider());
xstream.alias("thing", ThingWithFinalField.class);
assertBothWays(new ThingWithFinalField(),
Modified: trunk/xstream/src/test/com/thoughtworks/xstream/core/JVMTest.java (2094 => 2095)
--- trunk/xstream/src/test/com/thoughtworks/xstream/core/JVMTest.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/test/com/thoughtworks/xstream/core/JVMTest.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2004, 2005 Joe Walnes.
- * Copyright (C) 2006, 2007, 2012 XStream Committers.
+ * Copyright (C) 2006, 2007, 2012, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -17,7 +17,7 @@
public void testDoesIgnoreLinkageErrors() {
try {
- assertNull(new JVM().loadClass("com.thoughtworks.xstream.core.EvilClass"));
+ assertNull(JVM.loadClassForName("com.thoughtworks.xstream.core.EvilClass"));
} catch (LinkageError error) {
fail("Error thrown");
}
Modified: trunk/xstream/src/test/com/thoughtworks/xstream/io/DriverEndToEndTestSuite.java (2094 => 2095)
--- trunk/xstream/src/test/com/thoughtworks/xstream/io/DriverEndToEndTestSuite.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream/src/test/com/thoughtworks/xstream/io/DriverEndToEndTestSuite.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -56,7 +56,7 @@
addDriverTest(new JDomDriver());
if (JVM.is15()) {
JVM jvm = new JVM();
- Class driverType = jvm.loadClass("com.thoughtworks.xstream.io.xml.JDom2Driver");
+ Class driverType = jvm.loadClassForName("com.thoughtworks.xstream.io.xml.JDom2Driver");
try {
addDriverTest((HierarchicalStreamDriver)driverType.newInstance());
} catch (InstantiationException e) {
@@ -69,9 +69,8 @@
addDriverTest(new KXml2Driver());
addDriverTest(new StaxDriver());
if (JVM.is16()) {
- JVM jvm = new JVM();
- if (jvm.supportsSunStAX()) {
- Class driverType = jvm.loadClass("com.thoughtworks.xstream.io.xml.SjsxpDriver");
+ if (JVM.isSunStAXAvilable()) {
+ Class driverType = JVM.loadClassForName("com.thoughtworks.xstream.io.xml.SjsxpDriver");
try {
addDriverTest((HierarchicalStreamDriver)driverType.newInstance());
} catch (InstantiationException e) {
@@ -88,8 +87,7 @@
addDriverTest(new XppDomDriver());
addDriverTest(new XppDriver());
if (JVM.is14()) {
- JVM jvm = new JVM();
- Class driverType = jvm.loadClass("com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver");
+ Class driverType = JVM.loadClassForName("com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver");
try {
addDriverTest((HierarchicalStreamDriver)driverType.newInstance());
} catch (InstantiationException e) {
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/AliasedAttributeCache.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/AliasedAttributeCache.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/AliasedAttributeCache.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 XStream Committers.
+ * Copyright (C) 2008, 2009, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -10,7 +10,6 @@
*/
package com.thoughtworks.xstream.tools.benchmark.cache.products;
-import com.thoughtworks.xstream.core.JVM;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.mapper.MapperWrapper;
@@ -27,8 +26,8 @@
*/
public class AliasedAttributeCache extends XStreamCache {
- protected List getMappers(JVM jvm) {
- List list = super.getMappers(jvm);
+ protected List getMappers() {
+ List list = super.getMappers();
list.add(CachingMapper.class);
return list;
}
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/Cache122.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/Cache122.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/Cache122.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 XStream Committers.
+ * Copyright (C) 2008, 2009, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -28,15 +28,15 @@
*/
public class Cache122 extends XStreamCache {
- protected List getMappers(JVM jvm) {
- List list = super.getMappers(jvm);
+ protected List getMappers() {
+ List list = super.getMappers();
Object cglibMapper = list.remove(1);
Object dynProxyMapper = null;
- if (jvm.loadClass("net.sf.cglib.proxy.Enhancer") != null) {
+ if (JVM.loadClassForName("net.sf.cglib.proxy.Enhancer") != null) {
dynProxyMapper = list.remove(1);
}
int idx = list.indexOf(ImplicitCollectionMapper.class);
- if (jvm.loadClass("net.sf.cglib.proxy.Enhancer") != null) {
+ if (JVM.loadClassForName("net.sf.cglib.proxy.Enhancer") != null) {
list.add(idx+1, dynProxyMapper);
}
list.add(idx+1, cglibMapper);
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/DefaultImplementationCache.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/DefaultImplementationCache.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/DefaultImplementationCache.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 XStream Committers.
+ * Copyright (C) 2008, 2009, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -10,7 +10,6 @@
*/
package com.thoughtworks.xstream.tools.benchmark.cache.products;
-import com.thoughtworks.xstream.core.JVM;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.mapper.MapperWrapper;
@@ -28,8 +27,8 @@
*/
public class DefaultImplementationCache extends XStreamCache {
- protected List getMappers(JVM jvm) {
- List list = super.getMappers(jvm);
+ protected List getMappers() {
+ List list = super.getMappers();
list.add(CachingMapper.class);
return list;
}
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/RealClassCache.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/RealClassCache.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/RealClassCache.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 XStream Committers.
+ * Copyright (C) 2008, 2009, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -10,7 +10,6 @@
*/
package com.thoughtworks.xstream.tools.benchmark.cache.products;
-import com.thoughtworks.xstream.core.JVM;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.mapper.MapperWrapper;
@@ -28,8 +27,8 @@
*/
public class RealClassCache extends XStreamCache {
- protected List getMappers(JVM jvm) {
- List list = super.getMappers(jvm);
+ protected List getMappers() {
+ List list = super.getMappers();
list.add(CachingMapper.class);
return list;
}
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/SerializedClassCache.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/SerializedClassCache.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/SerializedClassCache.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 XStream Committers.
+ * Copyright (C) 2008, 2009, 2013 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
@@ -10,7 +10,6 @@
*/
package com.thoughtworks.xstream.tools.benchmark.cache.products;
-import com.thoughtworks.xstream.core.JVM;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.mapper.MapperWrapper;
@@ -27,8 +26,8 @@
*/
public class SerializedClassCache extends XStreamCache {
- protected List getMappers(JVM jvm) {
- List list = super.getMappers(jvm);
+ protected List getMappers() {
+ List list = super.getMappers();
list.add(CachingMapper.class);
return list;
}
Modified: trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/XStreamCache.java (2094 => 2095)
--- trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/XStreamCache.java 2013-07-06 12:23:38 UTC (rev 2094)
+++ trunk/xstream-benchmark/src/test/com/thoughtworks/xstream/tools/benchmark/cache/products/XStreamCache.java 2013-07-08 22:35:46 UTC (rev 2095)
@@ -56,13 +56,12 @@
private final XStream xstream;
public XStreamCache() {
- JVM jvm = new JVM();
ClassLoaderReference classLoaderReference = new ClassLoaderReference(
new CompositeClassLoader());
DefaultConverterLookup converterLookup = new DefaultConverterLookup();
xstream = new XStream(
- jvm.bestReflectionProvider(), new XppDriver(), classLoaderReference, buildMapper(
- getMappers(jvm), jvm, classLoaderReference, converterLookup), converterLookup, converterLookup);
+ JVM.newReflectionProvider(), new XppDriver(), classLoaderReference, buildMapper(
+ getMappers(), classLoaderReference, converterLookup), converterLookup, converterLookup);
xstream.alias("one", One.class);
xstream.alias("five", Five.class);
xstream.alias("ser-one", SerializableOne.class);
@@ -77,11 +76,11 @@
return xstream.fromXML(input);
}
- protected List getMappers(JVM jvm) {
+ protected List getMappers() {
List mappers = new ArrayList();
mappers.add(DefaultMapper.class);
- if (jvm.loadClass("net.sf.cglib.proxy.Enhancer") != null) {
- mappers.add(jvm.loadClass("com.thoughtworks.xstream.mapper.CGLIBMapper"));
+ if (JVM.loadClassForName("net.sf.cglib.proxy.Enhancer") != null) {
+ mappers.add(JVM.loadClassForName("com.thoughtworks.xstream.mapper.CGLIBMapper"));
}
mappers.add(DynamicProxyMapper.class);
mappers.add(ClassAliasingMapper.class);
@@ -93,22 +92,22 @@
mappers.add(LocalConversionMapper.class);
mappers.add(DefaultImplementationsMapper.class);
if (JVM.is15()) {
- mappers.add(jvm.loadClass("com.thoughtworks.xstream.mapper.EnumMapper"));
+ mappers.add(JVM.loadClassForName("com.thoughtworks.xstream.mapper.EnumMapper"));
} else {
mappers.add(AttributeMapper.class);
}
mappers.add(ImmutableTypesMapper.class);
if (JVM.is15()) {
- mappers.add(jvm.loadClass("com.thoughtworks.xstream.mapper.AnnotationMapper"));
+ mappers.add(JVM.loadClassForName("com.thoughtworks.xstream.mapper.AnnotationMapper"));
}
return mappers;
}
- private Mapper buildMapper(List mappers, JVM jvm, ClassLoaderReference classLoaderReference,
+ private Mapper buildMapper(List mappers, ClassLoaderReference classLoaderReference,
ConverterLookup converterLookup) {
final Object[] arguments = new Object[]{
new TypedNull(Mapper.class), converterLookup, classLoaderReference,
- jvm.bestReflectionProvider(), jvm};
+ JVM.newReflectionProvider()};
for (final Iterator iter = mappers.iterator(); iter.hasNext();) {
final Class mapperType = (Class)iter.next();
try {
To unsubscribe from this list please visit:
