From a0d30a237ff25e9f1897cc5ceafbee98c406a406 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 17 Jan 2018 10:56:29 +0100 Subject: [PATCH] OO-3234: use the xstream helper to create new instance of XStream (-2 very special cases) --- .../user/ChangeEMailExecuteController.java | 3 +- .../olat/core/util/xml/EnhancedXStream.java | 36 ++++++++++--------- .../org/olat/core/util/xml/XStreamHelper.java | 7 ++-- .../org/olat/group/manager/GroupXStream.java | 4 ++- .../webFeed/manager/FeedFileStorge.java | 2 +- .../registration/RegistrationManager.java | 3 +- .../org/olat/user/ProfileFormController.java | 2 +- 7 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java index 2922f57455a..e41582bda00 100644 --- a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java +++ b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java @@ -29,6 +29,7 @@ import org.olat.core.id.Identity; import org.olat.core.id.User; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; +import org.olat.core.util.xml.XStreamHelper; import org.olat.home.HomeMainController; import org.olat.login.SupportsAfterLoginInterceptor; import org.olat.user.ProfileAndHomePageEditController; @@ -101,7 +102,7 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen * @return */ public boolean changeEMail(WindowControl wControl) { - XStream xml = new XStream(); + XStream xml = XStreamHelper.createXStreamInstance(); @SuppressWarnings("unchecked") HashMap<String, String> mails = (HashMap<String, String>) xml.fromXML(tempKey.getEmailAddress()); diff --git a/src/main/java/org/olat/core/util/xml/EnhancedXStream.java b/src/main/java/org/olat/core/util/xml/EnhancedXStream.java index ed00931d701..9503dd22b2d 100644 --- a/src/main/java/org/olat/core/util/xml/EnhancedXStream.java +++ b/src/main/java/org/olat/core/util/xml/EnhancedXStream.java @@ -37,18 +37,18 @@ import com.thoughtworks.xstream.converters.collections.MapConverter; import com.thoughtworks.xstream.mapper.MapperWrapper; /** - * This implmentation of XStream automatically convert hibernat list, set and map - * to standard java collections and convert by import / deserialization - * the old hibernate 3 collection packages to the new one. + * This implmentation of XStream automatically convert hibernat list, set and + * map to standard java collections and convert by import / deserialization the + * old hibernate 3 collection packages to the new one. * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class EnhancedXStream extends XStream { - +public class EnhancedXStream extends XStream { + public EnhancedXStream(boolean export) { super(); - - if(export) { + + if (export) { addDefaultImplementation(PersistentList.class, List.class); addDefaultImplementation(PersistentBag.class, List.class); addDefaultImplementation(PersistentMap.class, Map.class); @@ -56,24 +56,26 @@ public class EnhancedXStream extends XStream { addDefaultImplementation(PersistentSet.class, Set.class); addDefaultImplementation(PersistentSortedSet.class, Set.class); addDefaultImplementation(ArrayList.class, List.class); - + registerConverter(new CollectionConverter(getMapper()) { - public boolean canConvert(@SuppressWarnings("rawtypes") Class type) { - return PersistentList.class == type || PersistentBag.class == type; - } + @Override + 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) { - return PersistentMap.class == type; - } + @Override + public boolean canConvert(@SuppressWarnings("rawtypes") Class type) { + return PersistentMap.class == type; + } }); } } - + @Override protected MapperWrapper wrapMapper(MapperWrapper next) { return new EnhancedMapper(next); } - + } diff --git a/src/main/java/org/olat/core/util/xml/XStreamHelper.java b/src/main/java/org/olat/core/util/xml/XStreamHelper.java index 1fdf31910b8..69e83ff9556 100644 --- a/src/main/java/org/olat/core/util/xml/XStreamHelper.java +++ b/src/main/java/org/olat/core/util/xml/XStreamHelper.java @@ -84,6 +84,7 @@ public class XStreamHelper { private static final String ENCODING = "UTF-8"; private static XStream unconfiguredXStream = new XStream(); + /** * Write a an object to an XML file. UTF-8 is used as encoding @@ -227,8 +228,7 @@ public class XStreamHelper { * writing to a configured XML mapping */ public static XStream createXStreamInstance() { - EnhancedXStream xstream = new EnhancedXStream(false); - return xstream; + return new EnhancedXStream(false); } /** @@ -238,8 +238,7 @@ public class XStreamHelper { * @return */ public static XStream createXStreamInstanceForDBObjects() { - EnhancedXStream xstream = new EnhancedXStream(true); - return xstream; + return new EnhancedXStream(true); } /** diff --git a/src/main/java/org/olat/group/manager/GroupXStream.java b/src/main/java/org/olat/group/manager/GroupXStream.java index 7a4e94d59fb..a5e19bbbf4f 100644 --- a/src/main/java/org/olat/group/manager/GroupXStream.java +++ b/src/main/java/org/olat/group/manager/GroupXStream.java @@ -25,6 +25,8 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; +import org.olat.core.util.xml.XStreamHelper; + import com.thoughtworks.xstream.XStream; /** @@ -42,7 +44,7 @@ public class GroupXStream { private final XStream xstream; public GroupXStream() { - xstream = new XStream(); + xstream = XStreamHelper.createXStreamInstance(); xstream.alias("OLATGroupExport", OLATGroupExport.class); xstream.alias("AreaCollection", AreaCollection.class); xstream.alias("GroupCollection", GroupCollection.class); diff --git a/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java b/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java index 03045a83fbc..aaaf8ef56c1 100644 --- a/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java +++ b/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java @@ -98,7 +98,7 @@ public class FeedFileStorge { public FeedFileStorge() { fileResourceManager = FileResourceManager.getInstance(); - xstream = new XStream(); + xstream = XStreamHelper.createXStreamInstance(); xstream.alias("feed", FeedImpl.class); xstream.aliasField("type", FeedImpl.class, "resourceableType"); xstream.omitField(FeedImpl.class, "id"); diff --git a/src/main/java/org/olat/registration/RegistrationManager.java b/src/main/java/org/olat/registration/RegistrationManager.java index 62c45b7d679..96de61bc063 100644 --- a/src/main/java/org/olat/registration/RegistrationManager.java +++ b/src/main/java/org/olat/registration/RegistrationManager.java @@ -55,6 +55,7 @@ import org.olat.core.util.WebappHelper; import org.olat.core.util.i18n.I18nModule; import org.olat.core.util.mail.MailManager; import org.olat.core.util.mail.MailerResult; +import org.olat.core.util.xml.XStreamHelper; import org.olat.properties.Property; import org.olat.properties.PropertyManager; import org.olat.user.UserManager; @@ -361,7 +362,7 @@ public class RegistrationManager { List<TemporaryKey> tk = rm.loadTemporaryKeyByAction(RegistrationManager.EMAIL_CHANGE); if (tk != null) { for (TemporaryKey temporaryKey : tk) { - XStream xml = new XStream(); + XStream xml = XStreamHelper.createXStreamInstance(); @SuppressWarnings("unchecked") Map<String, String> mails = (Map<String, String>) xml.fromXML(temporaryKey.getEmailAddress()); if (emailAddress.equalsIgnoreCase(mails.get("changedEMail"))) { diff --git a/src/main/java/org/olat/user/ProfileFormController.java b/src/main/java/org/olat/user/ProfileFormController.java index 53e47229898..c2b25d24ce4 100644 --- a/src/main/java/org/olat/user/ProfileFormController.java +++ b/src/main/java/org/olat/user/ProfileFormController.java @@ -545,7 +545,7 @@ public class ProfileFormController extends FormBasicController { mailMap.put("currentEMail", currentEmail); mailMap.put("changedEMail", changedEmail); - XStream xml = new XStream(); + XStream xml = XStreamHelper.createXStreamInstance(); String serMailMap = xml.toXML(mailMap); TemporaryKey tk = rm.createAndDeleteOldTemporaryKey(identityToModify.getKey(), serMailMap, ip, RegistrationManager.EMAIL_CHANGE); -- GitLab