Skip to content
Snippets Groups Projects
Commit f7760671 authored by srosse's avatar srosse
Browse files

OO-291: make different xstream factory methods, upgrade xstream

parent b9fa9529
No related branches found
No related tags found
No related merge requests found
...@@ -1461,7 +1461,7 @@ ...@@ -1461,7 +1461,7 @@
<dependency> <dependency>
<groupId>com.thoughtworks.xstream</groupId> <groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId> <artifactId>xstream</artifactId>
<version>1.4.1</version> <version>1.4.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cos</groupId> <groupId>cos</groupId>
......
...@@ -45,28 +45,30 @@ import com.thoughtworks.xstream.mapper.MapperWrapper; ...@@ -45,28 +45,30 @@ import com.thoughtworks.xstream.mapper.MapperWrapper;
*/ */
public class EnhancedXStream extends XStream { public class EnhancedXStream extends XStream {
public EnhancedXStream() { public EnhancedXStream(boolean export) {
super(); super();
addDefaultImplementation(PersistentList.class, List.class); if(export) {
addDefaultImplementation(PersistentBag.class, List.class); addDefaultImplementation(PersistentList.class, List.class);
addDefaultImplementation(PersistentMap.class, Map.class); addDefaultImplementation(PersistentBag.class, List.class);
addDefaultImplementation(PersistentSortedMap.class, Map.class); addDefaultImplementation(PersistentMap.class, Map.class);
addDefaultImplementation(PersistentSet.class, Set.class); addDefaultImplementation(PersistentSortedMap.class, Map.class);
addDefaultImplementation(PersistentSortedSet.class, Set.class); addDefaultImplementation(PersistentSet.class, Set.class);
addDefaultImplementation(ArrayList.class, List.class); addDefaultImplementation(PersistentSortedSet.class, Set.class);
addDefaultImplementation(ArrayList.class, List.class);
registerConverter(new CollectionConverter(getMapper()) {
public boolean canConvert(@SuppressWarnings("rawtypes") Class type) { registerConverter(new CollectionConverter(getMapper()) {
return PersistentList.class == type || PersistentBag.class == type; public boolean canConvert(@SuppressWarnings("rawtypes") Class type) {
} return PersistentList.class == type || PersistentBag.class == type;
}); }
});
registerConverter(new MapConverter(getMapper()) {
public boolean canConvert(@SuppressWarnings("rawtypes") Class type) { registerConverter(new MapConverter(getMapper()) {
return PersistentMap.class == type; public boolean canConvert(@SuppressWarnings("rawtypes") Class type) {
} return PersistentMap.class == type;
}); }
});
}
} }
@Override @Override
......
...@@ -224,7 +224,18 @@ public class XStreamHelper { ...@@ -224,7 +224,18 @@ public class XStreamHelper {
* writing to a configured XML mapping * writing to a configured XML mapping
*/ */
public static XStream createXStreamInstance() { public static XStream createXStreamInstance() {
EnhancedXStream xstream = new EnhancedXStream(); EnhancedXStream xstream = new EnhancedXStream(false);
return xstream;
}
/**
* Factory to create a fresh XStream instance. Use this when
* writing, it has more aliases to convert hibernate collections
* to java collections.
* @return
*/
public static XStream createXStreamInstanceForDBObjects() {
EnhancedXStream xstream = new EnhancedXStream(true);
return xstream; return xstream;
} }
......
...@@ -67,7 +67,7 @@ public class EPXStreamHandler { ...@@ -67,7 +67,7 @@ public class EPXStreamHandler {
private static final OLog log = Tracing.createLoggerFor(EPXStreamHandler.class); private static final OLog log = Tracing.createLoggerFor(EPXStreamHandler.class);
private static final XStream myStream = XStreamHelper.createXStreamInstance(); private static final XStream myStream = XStreamHelper.createXStreamInstanceForDBObjects();
private static Templates filterArtefactsTemplates; private static Templates filterArtefactsTemplates;
static { // initialize supported types static { // initialize supported types
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment