Also why don't you use the new annotation based component descriptor system ?
On Sat, Apr 4, 2009 at 11:56, Thomas Mortagne <[email protected]> wrote: > Shouldn't we have only one component which do the > serialize/unserialize to make sure the same rule is applied in the two > way ? It seems weird to me to be able to change the way to parse a > document reference and let the document reference creation to another > implementation. > > On Fri, Apr 3, 2009 at 22:48, vmassol <[email protected]> > wrote: >> Author: vmassol >> Date: 2009-04-03 22:48:34 +0200 (Fri, 03 Apr 2009) >> New Revision: 18236 >> >> Added: >> >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameFactory.java >> >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameSerializer.java >> >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameFactory.java >> >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializer.java >> >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameFactoryTest.java >> >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializerTest.java >> Modified: >> >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/resources/META-INF/plexus/components.xml >> Log: >> XWIKI-3501: Add Document Name factory and serializer >> >> Merged from trunk (rev 18235) >> >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameFactory.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameFactory.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameFactory.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,41 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package org.xwiki.bridge; >> + >> +/** >> + * Generate a Document Name from a raw string reference. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public interface DocumentNameFactory >> +{ >> + /** >> + * Role for looking up implementing components. >> + */ >> + String ROLE = DocumentNameFactory.class.getName(); >> + >> + /** >> + * @param reference the document's name as a string using a textual >> format (eg {...@code wiki:space.page}). >> + * The supported format is up to implementers of this method. >> + * @return the object representing a document reference >> + */ >> + DocumentName createDocumentName(String reference); >> +} >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameSerializer.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameSerializer.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-bridge/src/main/java/org/xwiki/bridge/DocumentNameSerializer.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,41 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package org.xwiki.bridge; >> + >> +/** >> + * Generate a fully qualified document reference string (ie of the form >> + * {...@code wiki:space.page}) out of a {...@link DocumentName}. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public interface DocumentNameSerializer >> +{ >> + /** >> + * Role for looking up implementing components. >> + */ >> + String ROLE = DocumentNameSerializer.class.getName(); >> + >> + /** >> + * @param documentName the document name to serialize >> + * @return the fully qualified document reference string (ie of the >> form {...@code wiki:space.page}) >> + */ >> + String serialize(DocumentName documentName); >> +} >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameFactory.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameFactory.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameFactory.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,163 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package com.xpn.xwiki.doc; >> + >> +import org.apache.commons.lang.StringUtils; >> +import org.xwiki.bridge.DocumentName; >> +import org.xwiki.bridge.DocumentNameFactory; >> +import org.xwiki.context.Execution; >> + >> +import com.xpn.xwiki.XWikiContext; >> + >> +/** >> + * Generate a Document Name from a raw string reference. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public class DefaultDocumentNameFactory implements DocumentNameFactory >> +{ >> + /** >> + * Default space to use when the user has not specified any space and >> there's no current space set in the context. >> + */ >> + private static final String DEFAULT_SPACE = "XWiki"; >> + >> + /** >> + * Default page name when the user has not specified the page name. >> + */ >> + private static final String DEFAULT_PAGE = "WebHome"; >> + >> + /** >> + * Default wiki to use when the user has not specified any wiki and >> there's no current wiki set in the context. >> + */ >> + private static final String DEFAULT_WIKI = "xwiki"; >> + >> + private static final String WIKI_SEPARATOR = ":"; >> + >> + private static final String SPACE_SEPARATOR = "."; >> + >> + /** >> + * Execution context handler, needed for accessing the XWikiContext. >> + */ >> + private Execution execution; >> + >> + public DocumentName createDocumentName(String reference) >> + { >> + String wiki; >> + String space; >> + String page; >> + >> + if (StringUtils.isBlank(reference)) { >> + wiki = getDefaultWikiName(); >> + space = getDefaultSpaceName(); >> + page = DEFAULT_PAGE; >> + } else { >> + >> + // Step 1: Extract the wiki name >> + >> + // We allow the wiki separator in wiki names and thus we look >> for the last wiki sep in the reference. >> + // TODO: Note that this was done to have the same behavior of >> XWikiDocument.setFullName() but it would >> + // seem better to me to allow the wiki sep in space names >> rather than in wiki names (since wiki >> + // names are constrained by database schema names). >> + int spaceSeparatorPosition; >> + int wikiSeparatorPosition = >> reference.lastIndexOf(WIKI_SEPARATOR); >> + if (wikiSeparatorPosition != -1) { >> + wiki = reference.substring(0, wikiSeparatorPosition); >> + if (wiki.length() == 0) { >> + wiki = getDefaultWikiName(); >> + } >> + >> + spaceSeparatorPosition = reference.indexOf(SPACE_SEPARATOR, >> wikiSeparatorPosition); >> + } else { >> + // No wiki separator, use default wiki. >> + wiki = getDefaultWikiName(); >> + >> + // We allow space sep in space names and thus we look for >> the last space sep in the reference. >> + // TODO: Note that this was done to have the same behavior >> of XWikiDocument.setFullName() but it would >> + // seem better to me to allow space sep in pages >> names rather than in space names (since users >> + // want more liberty in page names and usually create >> pages in existing spaces). >> + spaceSeparatorPosition = >> reference.lastIndexOf(SPACE_SEPARATOR); >> + } >> + >> + // Step 2: Extract the space and page names >> + >> + if (spaceSeparatorPosition != -1) { >> + space = reference.substring(wikiSeparatorPosition + >> WIKI_SEPARATOR.length(), >> + spaceSeparatorPosition); >> + if (space.length() == 0) { >> + space = getDefaultSpaceName(); >> + } >> + >> + // Make sure the space separator is not the last char of >> the reference >> + if (spaceSeparatorPosition + SPACE_SEPARATOR.length() < >> reference.length()) { >> + page = reference.substring(spaceSeparatorPosition + >> SPACE_SEPARATOR.length()); >> + } else { >> + page = DEFAULT_PAGE; >> + } >> + } else { >> + // No space separator the whole substring is thus the page. >> + space = getDefaultSpaceName(); >> + >> + // Make sure the wiki separator is not the last char of the >> reference >> + if (wikiSeparatorPosition == -1 >> + || wikiSeparatorPosition + WIKI_SEPARATOR.length() < >> reference.length()) >> + { >> + page = reference.substring(wikiSeparatorPosition + >> WIKI_SEPARATOR.length()); >> + } else { >> + page = DEFAULT_PAGE; >> + } >> + } >> + } >> + >> + return new DocumentName(wiki, space, page); >> + } >> + >> + private String getDefaultWikiName() >> + { >> + String wiki = getContext().getDatabase(); >> + if (wiki == null) { >> + wiki = DEFAULT_WIKI; >> + } >> + return wiki; >> + } >> + >> + private String getDefaultSpaceName() >> + { >> + String space; >> + XWikiDocument currentDocument = getContext().getDoc(); >> + if (currentDocument == null) { >> + space = DEFAULT_SPACE; >> + } else { >> + space = currentDocument.getSpace(); >> + if (space == null) { >> + space = DEFAULT_SPACE; >> + } >> + } >> + return space; >> + } >> + >> + /** >> + * @return the XWiki Context used to bridge with the old API >> + */ >> + private XWikiContext getContext() >> + { >> + return (XWikiContext) >> this.execution.getContext().getProperty("xwikicontext"); >> + } >> +} >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializer.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializer.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializer.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,51 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package com.xpn.xwiki.doc; >> + >> +import org.xwiki.bridge.DocumentName; >> +import org.xwiki.bridge.DocumentNameSerializer; >> + >> +/** >> + * Generate a fully qualified document reference string (ie of the form >> + * {...@code <wiki>:<space>.<page>} out of a {...@link DocumentName}. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public class DefaultDocumentNameSerializer implements DocumentNameSerializer >> +{ >> + /** >> + * {...@inheritdoc} >> + * @see DocumentNameSerializer#serialize(DocumentName) >> + */ >> + public String serialize(DocumentName documentName) >> + { >> + // A valid DocumentName must not have any null value and thus we >> don't need to check for nulls here. >> + // It's the responsibility of creators of DocumentName factories to >> ensure it's valid. >> + StringBuffer result = new StringBuffer(); >> + result.append(documentName.getWiki()); >> + result.append(':'); >> + result.append(documentName.getSpace()); >> + result.append('.'); >> + result.append(documentName.getPage()); >> + >> + return result.toString(); >> + } >> +} >> >> Modified: >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/resources/META-INF/plexus/components.xml >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/resources/META-INF/plexus/components.xml >> 2009-04-03 20:46:01 UTC (rev 18235) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/resources/META-INF/plexus/components.xml >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -51,7 +51,6 @@ >> <role-hint>default</role-hint> >> >> <implementation>com.xpn.xwiki.doc.DefaultDocumentAccessBridge</implementation> >> <instantiation-strategy>singleton</instantiation-strategy> >> - <lifecycle-handler>xwiki</lifecycle-handler> >> <requirements> >> <requirement> >> <role>org.xwiki.context.Execution</role> >> @@ -59,11 +58,27 @@ >> </requirements> >> </component> >> <component> >> + <role>org.xwiki.bridge.DocumentNameFactory</role> >> + <role-hint>default</role-hint> >> + >> <implementation>com.xpn.xwiki.doc.DefaultDocumentNameFactory</implementation> >> + <instantiation-strategy>singleton</instantiation-strategy> >> + <requirements> >> + <requirement> >> + <role>org.xwiki.context.Execution</role> >> + </requirement> >> + </requirements> >> + </component> >> + <component> >> + <role>org.xwiki.bridge.DocumentNameSerializer</role> >> + <role-hint>default</role-hint> >> + >> <implementation>com.xpn.xwiki.doc.DefaultDocumentNameSerializer</implementation> >> + <instantiation-strategy>singleton</instantiation-strategy> >> + </component> >> + <component> >> <role>org.xwiki.bridge.SkinAccessBridge</role> >> <role-hint>default</role-hint> >> <implementation>com.xpn.xwiki.DefaultSkinAccessBridge</implementation> >> <instantiation-strategy>singleton</instantiation-strategy> >> - <lifecycle-handler>xwiki</lifecycle-handler> >> <requirements> >> <requirement> >> <role>org.xwiki.context.Execution</role> >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameFactoryTest.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameFactoryTest.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameFactoryTest.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,119 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package com.xpn.xwiki.doc; >> + >> +import org.xwiki.bridge.DocumentName; >> +import org.xwiki.bridge.DocumentNameFactory; >> + >> +import com.xpn.xwiki.test.AbstractBridgedXWikiComponentTestCase; >> + >> +/** >> + * Unit tests for {...@link DocumentNameFactory}. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public class DefaultDocumentNameFactoryTest extends >> AbstractBridgedXWikiComponentTestCase >> +{ >> + private DocumentNameFactory factory; >> + >> + protected void setUp() throws Exception >> + { >> + super.setUp(); >> + this.factory = (DocumentNameFactory) >> getComponentManager().lookup(DocumentNameFactory.ROLE); >> + } >> + >> + public void testCreateDocumentNameWhenCurrentDocSet() throws Exception >> + { >> + getContext().setDatabase("testwiki"); >> + XWikiDocument document = new XWikiDocument(); >> + document.setSpace("testspace"); >> + getContext().setDoc(document); >> + verify("testwiki", "testspace"); >> + } >> + >> + public void testCreateDocumentNameWhenNoCurrentDoc() throws Exception >> + { >> + verify("xwiki", "XWiki"); >> + } >> + >> + private void verify(String expectedDefaultWiki, String >> expectedDefaultSpace) >> + { >> + DocumentName name = factory.createDocumentName("wiki:space.page"); >> + assertEquals("wiki", name.getWiki()); >> + assertEquals("space", name.getSpace()); >> + assertEquals("page", name.getPage()); >> + >> + name = factory.createDocumentName("wiki1:wiki2:page"); >> + assertEquals("wiki1:wiki2", name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("page", name.getPage()); >> + >> + name = factory.createDocumentName("wiki:"); >> + assertEquals("wiki", name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName("wiki1.wiki2:page"); >> + assertEquals("wiki1.wiki2", name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("page", name.getPage()); >> + >> + name = factory.createDocumentName("wiki:page"); >> + assertEquals("wiki", name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("page", name.getPage()); >> + >> + name = factory.createDocumentName("wiki:space."); >> + assertEquals("wiki", name.getWiki()); >> + assertEquals("space", name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName("space."); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals("space", name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName("page"); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("page", name.getPage()); >> + >> + name = factory.createDocumentName("."); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName(":"); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName(null); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + >> + name = factory.createDocumentName(""); >> + assertEquals(expectedDefaultWiki, name.getWiki()); >> + assertEquals(expectedDefaultSpace, name.getSpace()); >> + assertEquals("WebHome", name.getPage()); >> + } >> +} >> >> Added: >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializerTest.java >> =================================================================== >> --- >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializerTest.java >> (rev 0) >> +++ >> platform/core/branches/xwiki-core-1.8/xwiki-core/src/test/java/com/xpn/xwiki/doc/DefaultDocumentNameSerializerTest.java >> 2009-04-03 20:48:34 UTC (rev 18236) >> @@ -0,0 +1,41 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package com.xpn.xwiki.doc; >> + >> +import org.xwiki.bridge.DocumentName; >> +import org.xwiki.bridge.DocumentNameSerializer; >> +import org.xwiki.test.AbstractXWikiComponentTestCase; >> + >> +/** >> + * Unit tests for {...@link DocumentNameSerializer}. >> + * >> + * @version $Id: $ >> + * @since 1.8.1 >> + */ >> +public class DefaultDocumentNameSerializerTest extends >> AbstractXWikiComponentTestCase >> +{ >> + public void testSerialize() throws Exception >> + { >> + DocumentNameSerializer serializer = >> + (DocumentNameSerializer) >> getComponentManager().lookup(DocumentNameSerializer.ROLE); >> + DocumentName name = new DocumentName("wiki", "space", "page"); >> + assertEquals("wiki:space.page", serializer.serialize(name)); >> + } >> +} >> >> _______________________________________________ >> notifications mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/notifications >> > > > > -- > Thomas Mortagne > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

