From 6d742165be4cf9d4408ee847754fbc0b0c8c7218 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 6 Dec 2011 15:48:28 +0100 Subject: [PATCH] FXOLAT-388: remove cycle in class dependency --- .../institution/InstitutionPortlet.java | 38 +++++++++++++- .../InstitutionPortletXStream.java | 52 ------------------- .../institution/InstitutionPortletTest.java | 2 +- 3 files changed, 38 insertions(+), 54 deletions(-) delete mode 100644 src/main/java/de/bps/olat/portal/institution/InstitutionPortletXStream.java diff --git a/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java b/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java index 68924fca311..a575aec6d2f 100644 --- a/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java +++ b/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java @@ -33,6 +33,8 @@ import org.olat.core.util.Util; import org.olat.core.util.WebappHelper; import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.naming.NoNameCoder; +import com.thoughtworks.xstream.io.xml.XppDriver; public class InstitutionPortlet extends AbstractPortlet { @@ -133,7 +135,7 @@ public class InstitutionPortlet extends AbstractPortlet { institutions = new FastHashMap(); File configurationFile = new File(WebappHelper.getContextRoot() + CONFIG_FILE); - XStream xstream = InstitutionPortletXStream.getXStream(); + XStream xstream = getInstitutionConfigXStream(); InstitutionConfiguration configuration = (InstitutionConfiguration)xstream.fromXML(configurationFile); for(InstitutionPortletEntry institution: configuration.getInstitution()) { @@ -156,6 +158,40 @@ public class InstitutionPortlet extends AbstractPortlet { public static InstitutionPortletEntry getInstitutionPortletEntry(String institution) { return (InstitutionPortletEntry) institutions.get(institution); } + + public static XStream getInstitutionConfigXStream() { + XStream xstream = new XStream(new XppDriver(new NoNameCoder())); + xstream.alias("configuration", InstitutionConfiguration.class); + xstream.addImplicitCollection(InstitutionConfiguration.class, "institution", "institution", InstitutionPortletEntry.class); + xstream.alias("institution", InstitutionPortletEntry.class); + xstream.addImplicitCollection(InstitutionPortletEntry.class, "polymorphlink", "polymorphlink", PolymorphLink.class); + xstream.aliasAttribute(InstitutionPortletEntry.class, "shortname", "shortname"); + xstream.alias("logo", Value.class); + xstream.alias("name", Value.class); + xstream.alias("url", Value.class); + + xstream.alias("supervisor", InstitutionPortletSupervisorEntry.class); + xstream.addImplicitCollection(InstitutionPortletEntry.class, "supervisor", "supervisor", InstitutionPortletSupervisorEntry.class); + xstream.alias("person", Value.class); + xstream.alias("phone", Value.class); + xstream.alias("email", Value.class); + xstream.alias("blog", Value.class); + //polymorph link + xstream.alias("polymorphlink", PolymorphLink.class); + xstream.aliasAttribute(PolymorphLink.class, "defaultId", "default_targetid"); + xstream.aliasAttribute(PolymorphLink.class, "linkType", "type"); + xstream.aliasAttribute(PolymorphLink.class, "linkText", "text"); + //polymorph link element + xstream.alias("element", PolymorphLinkElement.class); + xstream.addImplicitCollection(PolymorphLink.class, "element", "element", PolymorphLinkElement.class); + xstream.aliasAttribute(PolymorphLinkElement.class, "attribute", "attribute"); + xstream.aliasAttribute(PolymorphLinkElement.class, "value", "value"); + xstream.aliasAttribute(PolymorphLinkElement.class, "cond", "condition"); + xstream.aliasAttribute(PolymorphLinkElement.class, "id", "targetid"); + + xstream.aliasAttribute(Value.class, "value", "value"); + return xstream; + } } /** diff --git a/src/main/java/de/bps/olat/portal/institution/InstitutionPortletXStream.java b/src/main/java/de/bps/olat/portal/institution/InstitutionPortletXStream.java deleted file mode 100644 index 0ca55388025..00000000000 --- a/src/main/java/de/bps/olat/portal/institution/InstitutionPortletXStream.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.bps.olat.portal.institution; - -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.naming.NoNameCoder; -import com.thoughtworks.xstream.io.xml.XppDriver; - -/** - * - * Description:<br> - * - * <P> - * Initial Date: 2 déc. 2011 <br> - * - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - */ -public class InstitutionPortletXStream { - - public static XStream getXStream() { - XStream xstream = new XStream(new XppDriver(new NoNameCoder())); - xstream.alias("configuration", InstitutionConfiguration.class); - xstream.addImplicitCollection(InstitutionConfiguration.class, "institution", "institution", InstitutionPortletEntry.class); - xstream.alias("institution", InstitutionPortletEntry.class); - xstream.addImplicitCollection(InstitutionPortletEntry.class, "polymorphlink", "polymorphlink", PolymorphLink.class); - xstream.aliasAttribute(InstitutionPortletEntry.class, "shortname", "shortname"); - xstream.alias("logo", Value.class); - xstream.alias("name", Value.class); - xstream.alias("url", Value.class); - - xstream.alias("supervisor", InstitutionPortletSupervisorEntry.class); - xstream.addImplicitCollection(InstitutionPortletEntry.class, "supervisor", "supervisor", InstitutionPortletSupervisorEntry.class); - xstream.alias("person", Value.class); - xstream.alias("phone", Value.class); - xstream.alias("email", Value.class); - xstream.alias("blog", Value.class); - //polymorph link - xstream.alias("polymorphlink", PolymorphLink.class); - xstream.aliasAttribute(PolymorphLink.class, "defaultId", "default_targetid"); - xstream.aliasAttribute(PolymorphLink.class, "linkType", "type"); - xstream.aliasAttribute(PolymorphLink.class, "linkText", "text"); - //polymorph link element - xstream.alias("element", PolymorphLinkElement.class); - xstream.addImplicitCollection(PolymorphLink.class, "element", "element", PolymorphLinkElement.class); - xstream.aliasAttribute(PolymorphLinkElement.class, "attribute", "attribute"); - xstream.aliasAttribute(PolymorphLinkElement.class, "value", "value"); - xstream.aliasAttribute(PolymorphLinkElement.class, "cond", "condition"); - xstream.aliasAttribute(PolymorphLinkElement.class, "id", "targetid"); - - xstream.aliasAttribute(Value.class, "value", "value"); - return xstream; - } - -} diff --git a/src/test/java/de/bps/olat/portal/institution/InstitutionPortletTest.java b/src/test/java/de/bps/olat/portal/institution/InstitutionPortletTest.java index 2363896e920..bfbd4ef53da 100644 --- a/src/test/java/de/bps/olat/portal/institution/InstitutionPortletTest.java +++ b/src/test/java/de/bps/olat/portal/institution/InstitutionPortletTest.java @@ -25,7 +25,7 @@ public class InstitutionPortletTest { @Test public void readConfiguration() throws IOException, URISyntaxException { - XStream xstream = InstitutionPortletXStream.getXStream(); + XStream xstream = InstitutionPortlet.getInstitutionConfigXStream(); InputStream input = InstitutionPortletTest.class.getResourceAsStream("olat_portals_institution.xml"); InstitutionConfiguration obj = (InstitutionConfiguration)xstream.fromXML(input); -- GitLab