From 436ab98b32c97351ec25197d5701a1198203f84d Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 29 May 2013 12:33:35 +0200 Subject: [PATCH] OO-611: exclude the metaDataElements list from RepositoryEntry (as backward compatibility) --- .../olat/core/id/context/HistoryManager.java | 2 + .../core/id/context/HistoryManagerTest.java | 14 ++++ .../olat/core/id/context/resume_ver83b.xml | 74 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 src/test/java/org/olat/core/id/context/resume_ver83b.xml diff --git a/src/main/java/org/olat/core/id/context/HistoryManager.java b/src/main/java/org/olat/core/id/context/HistoryManager.java index d855fd740d5..65269693bb3 100644 --- a/src/main/java/org/olat/core/id/context/HistoryManager.java +++ b/src/main/java/org/olat/core/id/context/HistoryManager.java @@ -32,6 +32,7 @@ import org.olat.core.util.resource.Resourceable; import org.olat.core.util.xml.XStreamHelper; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupImpl; +import org.olat.repository.RepositoryEntry; import com.thoughtworks.xstream.XStream; @@ -52,6 +53,7 @@ public class HistoryManager extends BasicManager { //xstream config historyReadStream.omitField(BusinessGroup.class, "groupContext"); historyReadStream.omitField(BusinessGroupImpl.class, "groupContext"); + historyReadStream.omitField(RepositoryEntry.class, "metaDataElements"); historyReadStream.alias("org.olat.core.util.resource.OresHelper$1", Resourceable.class); historyReadStream.alias("org.olat.core.util.resource.OresHelper$2", Resourceable.class); historyReadStream.alias("org.olat.core.util.resource.OresHelper$3", Resourceable.class); diff --git a/src/test/java/org/olat/core/id/context/HistoryManagerTest.java b/src/test/java/org/olat/core/id/context/HistoryManagerTest.java index ecbeb75987c..5d2d09e2233 100644 --- a/src/test/java/org/olat/core/id/context/HistoryManagerTest.java +++ b/src/test/java/org/olat/core/id/context/HistoryManagerTest.java @@ -98,4 +98,18 @@ public class HistoryManagerTest extends OlatTestCase { Assert.assertNotNull(history); } + /** + * Test the compatibility with version 8.3 + * @throws IOException + * @throws URISyntaxException + */ + @Test + public void testRead_v83_repoMetadaElements() throws IOException, URISyntaxException { + URL xmlUrl = HistoryManagerTest.class.getResource("resume_ver83b.xml"); + assertNotNull(xmlUrl); + File resumeXml = new File(xmlUrl.toURI()); + HistoryPoint history = historyManager.readHistory(resumeXml); + Assert.assertNotNull(history); + } + } diff --git a/src/test/java/org/olat/core/id/context/resume_ver83b.xml b/src/test/java/org/olat/core/id/context/resume_ver83b.xml new file mode 100644 index 00000000000..84f2ceab6c7 --- /dev/null +++ b/src/test/java/org/olat/core/id/context/resume_ver83b.xml @@ -0,0 +1,74 @@ +<org.olat.core.id.context.HistoryPointImpl> + <uuid>11</uuid> + <businessPath>[RepositorySite:0][search.my:0][RepositoryEntry:16547840]</businessPath> + <entries> + <org.olat.core.id.context.MyContextEntry> + <olatResourceable class="org.olat.core.util.resource.OresHelper$1"> + <val_-type>RepositorySite</val_-type> + <val_-key>0</val_-key> + </olatResourceable> + <state class="org.olat.core.id.context.StateSite"/> + </org.olat.core.id.context.MyContextEntry> + <org.olat.core.id.context.MyContextEntry> + <olatResourceable class="org.olat.core.util.resource.OresHelper$1"> + <val_-type>search.my</val_-type> + <val_-key>0</val_-key> + </olatResourceable> + </org.olat.core.id.context.MyContextEntry> + <org.olat.core.id.context.MyContextEntry> + <olatResourceable class="org.olat.repository.RepositoryEntry"> + <key>16547840</key> + <version defined-in="org.olat.core.commons.persistence.PersistentObject">0</version> + <creationDate class="sql-timestamp">2013-02-11 10:52:37.0</creationDate> + <softkey>sroo83_1_87076880944174</softkey> + <olatResource class="org.olat.resource.OLATResourceImpl"> + <key>16416768</key> + <version>0</version> + <creationDate class="sql-timestamp">2013-02-11 10:52:37.0</creationDate> + <resName>CourseModule</resName> + <resId>87076880944173</resId> + </olatResource> + <ownerGroup class="org.olat.basesecurity.SecurityGroupImpl"> + <key>16449536</key> + <version>0</version> + <creationDate class="sql-timestamp">2013-02-11 10:52:37.0</creationDate> + </ownerGroup> + <tutorGroup class="org.olat.basesecurity.SecurityGroupImpl"> + <key>16449537</key> + <version>0</version> + <creationDate class="sql-timestamp">2013-02-11 10:52:37.0</creationDate> + </tutorGroup> + <participantGroup class="org.olat.basesecurity.SecurityGroupImpl"> + <key>16449538</key> + <version>0</version> + <creationDate class="sql-timestamp">2013-02-11 10:52:37.0</creationDate> + </participantGroup> + <resourcename>-</resourcename> + <displayname>1 Person Kurs</displayname> + <description><p>1 Person Kurs</p></description> + <initialAuthor>kanu</initialAuthor> + <access>1</access> + <canCopy>false</canCopy> + <canReference>false</canReference> + <canLaunch>true</canLaunch> + <canDownload>false</canDownload> + <membersOnly>false</membersOnly> + <statusCode>0</statusCode> + <metaDataElements class="org.hibernate.collection.internal.PersistentList"> + <initialized>false</initialized> + <owner class="org.olat.repository.RepositoryEntry" reference="../.."/> + <cachedSize>-1</cachedSize> + <role>org.olat.repository.RepositoryEntry.metaDataElements</role> + <key class="long">16547840</key> + <dirty>false</dirty> + <specjLazyLoad>false</specjLazyLoad> + </metaDataElements> + <launchCounter>3</launchCounter> + <downloadCounter>0</downloadCounter> + <lastUsage>2013-05-29 10:20:36.347 UTC</lastUsage> + <version>5</version> + <lastModified class="sql-timestamp">2013-02-11 10:52:37.0</lastModified> + </olatResourceable> + </org.olat.core.id.context.MyContextEntry> + </entries> +</org.olat.core.id.context.HistoryPointImpl> \ No newline at end of file -- GitLab