diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStream.java b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStream.java index aa8fbe8f5e14e7fdedba9bf01e362103e29a40ad..de9e248eae588a927093940bc6ef1d1ddb7d1762 100644 --- a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStream.java +++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStream.java @@ -56,14 +56,14 @@ public class DocumentInstanceOutputFilterStream extends AbstractBeanOutputFilterStream<DocumentInstanceOutputProperties> implements WikiDocumentFilter { - private static final TranslationMarker LOG_DOCUMENT_CREATED = new TranslationMarker( - "filter.instance.log.document.created", WikiDocumentFilter.LOG_DOCUMENT_CREATED); + private static final TranslationMarker LOG_DOCUMENT_CREATED = + new TranslationMarker("filter.instance.log.document.created", WikiDocumentFilter.LOG_DOCUMENT_CREATED); - private static final TranslationMarker LOG_DOCUMENT_UPDATED = new TranslationMarker( - "filter.instance.log.document.updated", WikiDocumentFilter.LOG_DOCUMENT_UPDATED); + private static final TranslationMarker LOG_DOCUMENT_UPDATED = + new TranslationMarker("filter.instance.log.document.updated", WikiDocumentFilter.LOG_DOCUMENT_UPDATED); - private static final TranslationMarker LOG_DOCUMENT_FAILSAVE = new TranslationMarker( - "filter.instance.log.document.failsave", WikiDocumentFilter.LOG_DOCUMENT_ERROR); + private static final TranslationMarker LOG_DOCUMENT_FAILSAVE = + new TranslationMarker("filter.instance.log.document.failsave", WikiDocumentFilter.LOG_DOCUMENT_ERROR); @Inject private FilterDescriptorManager filterManager; @@ -93,6 +93,8 @@ public class DocumentInstanceOutputFilterStream extends AbstractBeanOutputFilter private FilterEventParameters currentLocaleParameters; + private FilterEventParameters currentRevisionParameters; + @Override protected Object createFilter() throws FilterException { @@ -119,37 +121,61 @@ public void setProperties(DocumentInstanceOutputProperties properties) throws Fi public void beginWikiDocument(String name, FilterEventParameters parameters) throws FilterException { this.documentDeleted = false; + + this.currentLocaleParameters = parameters; + this.currentRevisionParameters = parameters; } @Override public void endWikiDocument(String name, FilterEventParameters parameters) throws FilterException { - // Nothing to do + maybeSaveDocument(); + + // Reset + this.currentRevisionParameters = null; + this.currentLocaleParameters = null; } @Override public void beginWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException { this.currentLocaleParameters = parameters; + this.currentRevisionParameters = parameters; } @Override public void endWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException { + maybeSaveDocument(); + + // Reset + this.currentRevisionParameters = null; this.currentLocaleParameters = null; } @Override public void beginWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException { - // Nothing to do + this.currentRevisionParameters = parameters; } @Override public void endWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException + { + maybeSaveDocument(); + + // Reset + this.currentRevisionParameters = null; + } + + private void maybeSaveDocument() throws FilterException { XWikiDocument inputDocument = this.documentListener.getDocument(); + if (this.currentRevisionParameters == null) { + return; + } + XWikiContext xcontext = this.xcontextProvider.get(); try { @@ -164,8 +190,8 @@ public void endWikiDocumentRevision(String version, FilterEventParameters parame if (this.properties.isPreviousDeleted() && !this.documentDeleted) { // Put previous version in recycle bin if (xcontext.getWiki().hasRecycleBin(xcontext)) { - xcontext.getWiki().getRecycleBinStore() - .saveToRecycleBin(document, xcontext.getUser(), new Date(), xcontext, true); + xcontext.getWiki().getRecycleBinStore().saveToRecycleBin(document, xcontext.getUser(), + new Date(), xcontext, true); } // Make sure to not generate DocumentDeletedEvent since from listener point of view it's not @@ -187,7 +213,7 @@ public void endWikiDocumentRevision(String version, FilterEventParameters parame // Author if (this.properties.isAuthorPreserved() - && parameters.containsKey(WikiDocumentFilter.PARAMETER_REVISION_AUTHOR)) { + && this.currentRevisionParameters.containsKey(WikiDocumentFilter.PARAMETER_REVISION_AUTHOR)) { document.setAuthorReference(inputDocument.getAuthorReference()); } else if (this.properties.isAuthorSet()) { document.setAuthorReference(this.properties.getAuthor()); @@ -198,7 +224,7 @@ public void endWikiDocumentRevision(String version, FilterEventParameters parame // Content author if (this.properties.isAuthorPreserved() - && parameters.containsKey(WikiDocumentFilter.PARAMETER_CONTENT_AUTHOR)) { + && this.currentRevisionParameters.containsKey(WikiDocumentFilter.PARAMETER_CONTENT_AUTHOR)) { document.setContentAuthorReference(inputDocument.getContentAuthorReference()); } else { document.setContentAuthorReference(document.getAuthorReference()); @@ -215,8 +241,8 @@ public void endWikiDocumentRevision(String version, FilterEventParameters parame if (document.isNew() && document.getDocumentArchive() != null) { // we need to force the saving the document archive if (document.getDocumentArchive() != null) { - xcontext.getWiki().getVersioningStore() - .saveXWikiDocArchive(document.getDocumentArchive(xcontext), true, xcontext); + xcontext.getWiki().getVersioningStore().saveXWikiDocArchive(document.getDocumentArchive(xcontext), + true, xcontext); } } diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/XWikiDocumentOutputFilterStream.java b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/XWikiDocumentOutputFilterStream.java index 107fbad4aceb20f6da3f7af95606e2355d630e22..b82f8b03dfdeefa0a8e7c88586273cd9a744ceb2 100644 --- a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/XWikiDocumentOutputFilterStream.java +++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/main/java/org/xwiki/filter/instance/internal/output/XWikiDocumentOutputFilterStream.java @@ -125,6 +125,8 @@ public class XWikiDocumentOutputFilterStream implements XWikiDocumentFilter private Locale currentLocale; + private String currentVersion; + private FilterEventParameters currentLocaleParameters; private Locale currentDefaultLocale; @@ -253,44 +255,14 @@ public void endWikiSpace(String name, FilterEventParameters parameters) throws F this.currentEntityReference = this.currentEntityReference.getParent(); } - @Override - public void beginWikiDocument(String name, FilterEventParameters parameters) throws FilterException - { - this.currentEntityReference = new EntityReference(name, EntityType.DOCUMENT, this.currentEntityReference); - - this.currentDefaultLocale = get(Locale.class, WikiDocumentFilter.PARAMETER_LOCALE, parameters, null); - } - - @Override - public void endWikiDocument(String name, FilterEventParameters parameters) throws FilterException - { - this.currentEntityReference = this.currentEntityReference.getParent(); - - this.currentDefaultLocale = null; - } - - @Override - public void beginWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException - { - this.currentLocale = locale; - this.currentLocaleParameters = parameters; - } - - @Override - public void endWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException - { - this.currentLocale = null; - this.currentLocaleParameters = null; - } - - @Override - public void beginWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException + private void begin(FilterEventParameters parameters) throws FilterException { this.document = new XWikiDocument(this.entityResolver.resolve(this.currentEntityReference, this.properties != null ? this.properties.getDefaultReference() : null), this.currentLocale); this.document .setCreationDate(getDate(WikiDocumentFilter.PARAMETER_CREATION_DATE, this.currentLocaleParameters, null)); + if (this.currentLocaleParameters.containsKey(WikiDocumentFilter.PARAMETER_CREATION_AUTHOR)) { this.document.setCreator( getString(WikiDocumentFilter.PARAMETER_CREATION_AUTHOR, this.currentLocaleParameters, null)); @@ -322,11 +294,11 @@ public void beginWikiDocumentRevision(String version, FilterEventParameters para } } - if (version != null && this.properties.isVersionPreserved()) { - if (VALID_VERSION.matcher(version).matches()) { - this.document.setVersion(version); - } else if (NumberUtils.isDigits(version)) { - this.document.setVersion(version + ".1"); + if (this.currentVersion != null && this.properties.isVersionPreserved()) { + if (VALID_VERSION.matcher(this.currentVersion).matches()) { + this.document.setVersion(this.currentVersion); + } else if (NumberUtils.isDigits(this.currentVersion)) { + this.document.setVersion(this.currentVersion + ".1"); } else { // TODO: log something, probably a warning } @@ -339,8 +311,15 @@ public void beginWikiDocumentRevision(String version, FilterEventParameters para // Content + // Remember the current rendering context target syntax + this.previousTargetSyntax = this.renderingContext.getTargetSyntax(); + if (parameters.containsKey(WikiDocumentFilter.PARAMETER_CONTENT)) { this.document.setContent(getString(WikiDocumentFilter.PARAMETER_CONTENT, parameters, null)); + + // Cancel any existing content listener + this.currentWikiPrinter = null; + this.contentListener.setWrappedListener(null); } else { if (this.properties != null && this.properties.getDefaultSyntax() != null) { this.document.setSyntax(this.properties.getDefaultSyntax()); @@ -363,25 +342,85 @@ public void beginWikiDocumentRevision(String version, FilterEventParameters para } this.currentWikiPrinter = new DefaultWikiPrinter(); - this.previousTargetSyntax = this.renderingContext.getTargetSyntax(); ((MutableRenderingContext) this.renderingContext).setTargetSyntax(rendererFactory.getSyntax()); this.contentListener.setWrappedListener(rendererFactory.createRenderer(this.currentWikiPrinter)); } } } - @Override - public void endWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException + private void end(FilterEventParameters parameters) { // Set content if (this.currentWikiPrinter != null) { this.document.setContent(this.currentWikiPrinter.getBuffer().toString()); this.contentListener.setWrappedListener(null); - ((MutableRenderingContext) this.renderingContext).setTargetSyntax(this.previousTargetSyntax); this.currentWikiPrinter = null; } + // Reset + ((MutableRenderingContext) this.renderingContext).setTargetSyntax(this.previousTargetSyntax); + } + + @Override + public void beginWikiDocument(String name, FilterEventParameters parameters) throws FilterException + { + this.currentEntityReference = new EntityReference(name, EntityType.DOCUMENT, this.currentEntityReference); + + this.currentDefaultLocale = get(Locale.class, WikiDocumentFilter.PARAMETER_LOCALE, parameters, null); + this.currentLocale = Locale.ROOT; + this.currentLocaleParameters = parameters; + + begin(parameters); + } + + @Override + public void endWikiDocument(String name, FilterEventParameters parameters) throws FilterException + { + end(parameters); + + this.currentEntityReference = this.currentEntityReference.getParent(); + + // Reset + this.currentLocaleParameters = null; + this.currentLocale = null; + this.currentDefaultLocale = null; + } + + @Override + public void beginWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException + { + this.currentLocale = locale; + this.currentLocaleParameters = parameters; + + begin(parameters); + } + + @Override + public void endWikiDocumentLocale(Locale locale, FilterEventParameters parameters) throws FilterException + { + end(parameters); + + // Reset + this.currentLocale = null; + this.currentLocaleParameters = null; + } + + @Override + public void beginWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException + { + this.currentVersion = version; + + begin(parameters); + } + + @Override + public void endWikiDocumentRevision(String version, FilterEventParameters parameters) throws FilterException + { + end(parameters); + + // Reset + this.currentVersion = null; } @Override diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStreamTest.java b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStreamTest.java index 53fd776dab7133b71ad56661db722330d41236aa..9c798f4f1ecc05d0a288ea974ef1d948ce71594d 100644 --- a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStreamTest.java +++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/java/org/xwiki/filter/instance/internal/output/DocumentInstanceOutputFilterStreamTest.java @@ -155,6 +155,109 @@ public void testImportDocumentsPreserveVersion() throws FilterException, XWikiEx Assert.assertEquals(2, otherObject.getIntValue("prop2")); } + @Test + public void testImportDocumentsWithoutLocaleAndRevision() throws FilterException, XWikiException, ParseException + { + DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties(); + + outputProperties.setVersionPreserved(true); + outputProperties.setVerbose(false); + + importFromXML("document1-2", outputProperties); + + XWikiDocument document = + this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"), + this.oldcore.getXWikiContext()); + + Assert.assertFalse(document.isNew()); + + Assert.assertEquals(Locale.ROOT, document.getDefaultLocale()); + Assert.assertEquals(new DocumentReference("wiki", "space", "parent"), document.getParentReference()); + Assert.assertEquals("customclass", document.getCustomClass()); + Assert.assertEquals("title", document.getTitle()); + Assert.assertEquals("defaultTemplate", document.getDefaultTemplate()); + Assert.assertEquals("validationScript", document.getValidationScript()); + Assert.assertEquals(new Syntax(new SyntaxType("syntax", "syntax"), "1.0"), document.getSyntax()); + Assert.assertEquals(true, document.isHidden()); + Assert.assertEquals("content", document.getContent()); + + Assert.assertEquals(new DocumentReference("wiki", "XWiki", "creator"), document.getCreatorReference()); + Assert.assertEquals(toDate("2000-01-01 00:00:00.0 UTC"), document.getCreationDate()); + Assert.assertEquals(new DocumentReference("wiki", "XWiki", "author"), document.getAuthorReference()); + Assert.assertEquals(toDate("2000-01-02 00:00:00.0 UTC"), document.getDate()); + Assert.assertEquals(toDate("2000-01-03 00:00:00.0 UTC"), document.getContentUpdateDate()); + Assert.assertEquals(new DocumentReference("wiki", "XWiki", "contentAuthor"), + document.getContentAuthorReference()); + Assert.assertEquals(true, document.isMinorEdit()); + Assert.assertEquals("comment", document.getComment()); + Assert.assertEquals("1.1", document.getVersion()); + + // Attachment + + Assert.assertEquals(1, document.getAttachmentList().size()); + XWikiAttachment attachment = document.getAttachment("attachment.txt"); + Assert.assertEquals("attachment.txt", attachment.getFilename()); + Assert.assertEquals(10, attachment.getFilesize()); + Assert.assertTrue(Arrays.equals(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, + attachment.getContent(this.oldcore.getXWikiContext()))); + + Assert.assertEquals("XWiki.attachmentAuthor", attachment.getAuthor()); + Assert.assertEquals(toDate("2000-01-05 00:00:00.0 UTC"), attachment.getDate()); + Assert.assertEquals("1.1", attachment.getVersion()); + Assert.assertEquals("attachment comment", attachment.getComment()); + + // XClass + + BaseClass xclass = document.getXClass(); + Assert.assertEquals(1, xclass.getFieldList().size()); + Assert.assertEquals("customClass", xclass.getCustomClass()); + Assert.assertEquals("customMapping", xclass.getCustomMapping()); + Assert.assertEquals("defaultViewSheet", xclass.getDefaultViewSheet()); + Assert.assertEquals("defaultEditSheet", xclass.getDefaultEditSheet()); + Assert.assertEquals("defaultWeb", xclass.getDefaultWeb()); + Assert.assertEquals("nameField", xclass.getNameField()); + Assert.assertEquals("validationScript", xclass.getValidationScript()); + + NumberClass numberFiled = (NumberClass) xclass.getField("prop1"); + Assert.assertEquals("prop1", numberFiled.getName()); + Assert.assertEquals(false, numberFiled.isDisabled()); + Assert.assertEquals(1, numberFiled.getNumber()); + Assert.assertEquals("long", numberFiled.getNumberType()); + Assert.assertEquals("Prop1", numberFiled.getPrettyName()); + Assert.assertEquals(30, numberFiled.getSize()); + Assert.assertEquals(false, numberFiled.isUnmodifiable()); + + // Objects + + Map<DocumentReference, List<BaseObject>> objects = document.getXObjects(); + Assert.assertEquals(2, objects.size()); + + // Object 1 + + List<BaseObject> documentObjects = objects.get(new DocumentReference("wiki", "space", "page")); + Assert.assertEquals(1, documentObjects.size()); + BaseObject documentObject = documentObjects.get(0); + Assert.assertEquals(0, documentObject.getNumber()); + Assert.assertEquals(new DocumentReference("wiki", "space", "page"), documentObject.getXClassReference()); + Assert.assertEquals("e2167721-2a64-430c-9520-bac1c0ee68cb", documentObject.getGuid()); + + Assert.assertEquals(1, documentObject.getFieldList().size()); + Assert.assertEquals(1, documentObject.getIntValue("prop1")); + + // Object 2 + + List<BaseObject> otherObjects = objects.get(new DocumentReference("wiki", "otherspace", "otherclass")); + Assert.assertEquals(1, otherObjects.size()); + BaseObject otherObject = otherObjects.get(0); + Assert.assertEquals(0, otherObject.getNumber()); + Assert + .assertEquals(new DocumentReference("wiki", "otherspace", "otherclass"), otherObject.getXClassReference()); + Assert.assertEquals("8eaeac52-e2f2-47b2-87e1-bc6909597b39", otherObject.getGuid()); + + Assert.assertEquals(1, otherObject.getFieldList().size()); + Assert.assertEquals(2, otherObject.getIntValue("prop2")); + } + @Test public void testDocumentwithunexistingobjectproperty() throws FilterException, XWikiException, ParseException { diff --git a/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/resources/document1-2.xml b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/resources/document1-2.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae4372bde6d812e70d8dfb69320f27aef19641b9 --- /dev/null +++ b/xwiki-platform-core/xwiki-platform-filter/xwiki-platform-filter-instance/xwiki-platform-filter-instance-oldcore/src/test/resources/document1-2.xml @@ -0,0 +1,424 @@ +<wikiFarm> + <wiki name="wiki"> + <wikiSpace name="otherspace"> + <wikiDocument name="otherclass"> + <p> + <parameters> + <entry> + <string>creation_author</string> + <string>XWiki.author</string> + </entry> + <entry> + <string>creation_date</string> + <date>2000-01-01 00:00:00.0 UTC</date> + </entry> + <entry> + <string>lastrevision</string> + <string>1.1</string> + </entry> + <entry> + <string>title</string> + <string></string> + </entry> + <entry> + <string>syntax</string> + <org.xwiki.rendering.syntax.Syntax> + <type> + <name>syntax</name> + <id>syntax</id> + </type> + <version>1.0</version> + </org.xwiki.rendering.syntax.Syntax> + </entry> + <entry> + <string>hidden</string> + <boolean>false</boolean> + </entry> + <entry> + <string>revision_author</string> + <string>XWiki.author</string> + </entry> + <entry> + <string>revision_comment</string> + <string></string> + </entry> + <entry> + <string>revision_date</string> + <date>2000-01-01 00:00:00.0 UTC</date> + </entry> + <entry> + <string>revision_minor</string> + <boolean>false</boolean> + </entry> + <entry> + <string>content_author</string> + <string>XWiki.XWikiGuest</string> + </entry> + <entry> + <string>content_date</string> + <date>2013-11-04 16:40:05.0 UTC</date> + </entry> + <entry> + <string>content</string> + <string></string> + </entry> + </parameters> + </p> + <wikiClass> + <p> + <parameters> + <entry> + <string>customclass</string> + <string>customClass2</string> + </entry> + <entry> + <string>custommapping</string> + <string>customMapping2</string> + </entry> + <entry> + <string>defaultspace</string> + <string>defaultWeb2</string> + </entry> + <entry> + <string>namefield</string> + <string>nameField2</string> + </entry> + <entry> + <string>sheet_defaultedit</string> + <string>defaultEditSheet2</string> + </entry> + <entry> + <string>sheet_defaultview</string> + <string>defaultViewSheet2</string> + </entry> + <entry> + <string>validationscript</string> + <string>validationScript2</string> + </entry> + </parameters> + </p> + <wikiClassProperty name="prop2" + type="com.xpn.xwiki.objects.classes.NumberClass"> + <wikiClassPropertyField name="disabled" + value="0"></wikiClassPropertyField> + <wikiClassPropertyField name="name" + value="prop2"></wikiClassPropertyField> + <wikiClassPropertyField name="number" + value="1"></wikiClassPropertyField> + <wikiClassPropertyField name="numberType" + value="long"></wikiClassPropertyField> + <wikiClassPropertyField name="prettyName" + value="Prop2"></wikiClassPropertyField> + <wikiClassPropertyField name="size" + value="30"></wikiClassPropertyField> + <wikiClassPropertyField name="unmodifiable" + value="0"></wikiClassPropertyField> + </wikiClassProperty> + </wikiClass> + </wikiDocument> + </wikiSpace> + <wikiSpace name="space"> + <wikiDocument name="page"> + <p> + <parameters> + <entry> + <string>creation_author</string> + <string>XWiki.creator</string> + </entry> + <entry> + <string>creation_date</string> + <date>2000-01-01 00:00:00.0 UTC</date> + </entry> + <entry> + <string>parent_reference</string> + <org.xwiki.model.reference.EntityReference> + <name>parent</name> + <type>DOCUMENT</type> + </org.xwiki.model.reference.EntityReference> + </entry> + <entry> + <string>title</string> + <string>title</string> + </entry> + <entry> + <string>customclass</string> + <string>customclass</string> + </entry> + <entry> + <string>defaulttemplate</string> + <string>defaultTemplate</string> + </entry> + <entry> + <string>validationscript</string> + <string>validationScript</string> + </entry> + <entry> + <string>syntax</string> + <org.xwiki.rendering.syntax.Syntax> + <type> + <name>syntax</name> + <id>syntax</id> + </type> + <version>1.0</version> + </org.xwiki.rendering.syntax.Syntax> + </entry> + <entry> + <string>hidden</string> + <boolean>true</boolean> + </entry> + <entry> + <string>revision_author</string> + <string>XWiki.author</string> + </entry> + <entry> + <string>revision_comment</string> + <string>comment</string> + </entry> + <entry> + <string>revision_date</string> + <date>2000-01-02 00:00:00.0 UTC</date> + </entry> + <entry> + <string>revision_minor</string> + <boolean>true</boolean> + </entry> + <entry> + <string>content_author</string> + <string>XWiki.contentAuthor</string> + </entry> + <entry> + <string>content_date</string> + <date>2000-01-03 00:00:00.0 UTC</date> + </entry> + <entry> + <string>content</string> + <string>content</string> + </entry> + </parameters> + </p> + <wikiAttachment name="attachment.txt" size="10"> + <p> + <content>AAECAwQFBgcICQ==</content> + <parameters> + <entry> + <string>revision_author</string> + <string>XWiki.attachmentAuthor</string> + </entry> + <entry> + <string>revision_comment</string> + <string>attachment comment</string> + </entry> + <entry> + <string>revision_date</string> + <date>2000-01-05 00:00:00.0 UTC</date> + </entry> + <entry> + <string>revision</string> + <string>1.1</string> + </entry> + </parameters> + </p> + </wikiAttachment> + <wikiClass> + <p> + <parameters> + <entry> + <string>customclass</string> + <string>customClass</string> + </entry> + <entry> + <string>custommapping</string> + <string>customMapping</string> + </entry> + <entry> + <string>defaultspace</string> + <string>defaultWeb</string> + </entry> + <entry> + <string>namefield</string> + <string>nameField</string> + </entry> + <entry> + <string>sheet_defaultedit</string> + <string>defaultEditSheet</string> + </entry> + <entry> + <string>sheet_defaultview</string> + <string>defaultViewSheet</string> + </entry> + <entry> + <string>validationscript</string> + <string>validationScript</string> + </entry> + </parameters> + </p> + <wikiClassProperty name="prop1" + type="com.xpn.xwiki.objects.classes.NumberClass"> + <wikiClassPropertyField name="disabled" + value="0"></wikiClassPropertyField> + <wikiClassPropertyField name="name" + value="prop1"></wikiClassPropertyField> + <wikiClassPropertyField name="number" + value="1"></wikiClassPropertyField> + <wikiClassPropertyField name="numberType" + value="long"></wikiClassPropertyField> + <wikiClassPropertyField name="prettyName" + value="Prop1"></wikiClassPropertyField> + <wikiClassPropertyField name="size" + value="30"></wikiClassPropertyField> + <wikiClassPropertyField name="unmodifiable" + value="0"></wikiClassPropertyField> + </wikiClassProperty> + </wikiClass> + <wikiObject name="wiki:otherspace.otherclass[0]"> + <p> + <parameters> + <entry> + <string>class_reference</string> + <string>otherspace.otherclass</string> + </entry> + <entry> + <string>guid</string> + <string>8eaeac52-e2f2-47b2-87e1-bc6909597b39</string> + </entry> + <entry> + <string>number</string> + <int>0</int> + </entry> + </parameters> + </p> + <wikiClass> + <p> + <parameters> + <entry> + <string>customclass</string> + <string>customClass2</string> + </entry> + <entry> + <string>custommapping</string> + <string>customMapping2</string> + </entry> + <entry> + <string>defaultspace</string> + <string>defaultWeb2</string> + </entry> + <entry> + <string>namefield</string> + <string>nameField2</string> + </entry> + <entry> + <string>sheet_defaultedit</string> + <string>defaultEditSheet2</string> + </entry> + <entry> + <string>sheet_defaultview</string> + <string>defaultViewSheet2</string> + </entry> + <entry> + <string>validationscript</string> + <string>validationScript2</string> + </entry> + </parameters> + </p> + <wikiClassProperty name="prop2" + type="com.xpn.xwiki.objects.classes.NumberClass"> + <wikiClassPropertyField name="disabled" + value="0"></wikiClassPropertyField> + <wikiClassPropertyField name="name" + value="prop2"></wikiClassPropertyField> + <wikiClassPropertyField name="number" + value="1"></wikiClassPropertyField> + <wikiClassPropertyField name="numberType" + value="long"></wikiClassPropertyField> + <wikiClassPropertyField name="prettyName" + value="Prop2"></wikiClassPropertyField> + <wikiClassPropertyField name="size" + value="30"></wikiClassPropertyField> + <wikiClassPropertyField name="unmodifiable" + value="0"></wikiClassPropertyField> + </wikiClassProperty> + </wikiClass> + <wikiObjectProperty name="prop2"> + <p> + <value t="java.lang.Long">2</value> + </p> + </wikiObjectProperty> + </wikiObject> + <wikiObject name="wiki:space.page[0]"> + <p> + <parameters> + <entry> + <string>class_reference</string> + <string>space.page</string> + </entry> + <entry> + <string>guid</string> + <string>e2167721-2a64-430c-9520-bac1c0ee68cb</string> + </entry> + <entry> + <string>number</string> + <int>0</int> + </entry> + </parameters> + </p> + <wikiClass> + <p> + <parameters> + <entry> + <string>customclass</string> + <string>customClass</string> + </entry> + <entry> + <string>custommapping</string> + <string>customMapping</string> + </entry> + <entry> + <string>defaultspace</string> + <string>defaultWeb</string> + </entry> + <entry> + <string>namefield</string> + <string>nameField</string> + </entry> + <entry> + <string>sheet_defaultedit</string> + <string>defaultEditSheet</string> + </entry> + <entry> + <string>sheet_defaultview</string> + <string>defaultViewSheet</string> + </entry> + <entry> + <string>validationscript</string> + <string>validationScript</string> + </entry> + </parameters> + </p> + <wikiClassProperty name="prop1" + type="com.xpn.xwiki.objects.classes.NumberClass"> + <wikiClassPropertyField name="disabled" + value="0"></wikiClassPropertyField> + <wikiClassPropertyField name="name" + value="prop1"></wikiClassPropertyField> + <wikiClassPropertyField name="number" + value="1"></wikiClassPropertyField> + <wikiClassPropertyField name="numberType" + value="long"></wikiClassPropertyField> + <wikiClassPropertyField name="prettyName" + value="Prop1"></wikiClassPropertyField> + <wikiClassPropertyField name="size" + value="30"></wikiClassPropertyField> + <wikiClassPropertyField name="unmodifiable" + value="0"></wikiClassPropertyField> + </wikiClassProperty> + </wikiClass> + <wikiObjectProperty name="prop1"> + <p> + <value t="java.lang.Long">1</value> + </p> + </wikiObjectProperty> + </wikiObject> + </wikiDocument> + </wikiSpace> + </wiki> +</wikiFarm> \ No newline at end of file