On Mon, Apr 12, 2010 at 16:58, Caleb James DeLisle
<[email protected]> wrote:
>
>
> Thomas Mortagne wrote:
>> On Mon, Apr 12, 2010 at 15:12, Caleb James DeLisle
>> <[email protected]> wrote:
>>> Currently, api.Document.getPreviousVersion() calls 
>>> doc.XWikiDocument.getPreviousVersion() which
>>> calls doc.XWikiDocument.getDocumentArchive() which will return null if the 
>>> document archive is not
>>> currently loaded.
>>>
>>> doc.XWikiDocument.getPreviousVersion() is inherently dangerous and should 
>>> be deprecated then removed.
>>> doc.XWikiDocument.getDocumentArchive() sometimes returns null and should be 
>>> deprecated then made private.
>>>
>>> everywhere doc.XWikiDocument.getDocumentArchive() is used it should be 
>>> replaced with
>>> doc.XWikiDocument.getDocumentArchive(XWikiContext) which calls 
>>> loadDocumentArchive first.
>>>
>>>
>>> What I propose we do now (for 2.3)
>>> #1
>>> Change api.Document.getPreviousVersion() to call 
>>> getDocumentArchive(getXWikiContext()) and move the logic
>>> from doc.XWikiDocument.getPreviousVersion() into 
>>> api.Document.getPreviousVersion()
>>>
>>> #2
>>> change doc.XWikiDocument.copyDocument(DocumentReference 
>>> newDocumentReference, XWikiContext context) to call
>>> getDocumentArchive(XWikiContext) instead of getDocumentArchive()
>>>
>>> #3
>>> Add warnings in javadoc for:
>>> clone(XWikiDocument document)
>>> cloneInternal(DocumentReference newDocumentReference, boolean keepsIdentity)
>>> to say that they may not copy the archive since they use 
>>> getDocumentArchive()
>>>
>>> #4
>>> mark doc.XWikiDocument.getPreviousVersion() and 
>>> doc.XWikiDocument.getDocumentArchive() as depricated and
>>> explain why in a comment.
>>
>> What would you have to use instead of XWikiDocument.getPreviousVersion() ?
>
> api.Document.getPreviousVersion()
> My rationale is that we should use public api in internal code as often as 
> possible because public api is
> supposed to always stay the same and internal code will thus become stronger. 
> Also it will mean that an
> accidental api break will be more likely to cause test failures.

Maybe but we are far from it. You don't always have the public api
when you are manipulating documents and having to create a Document
just for it would be a pain...

>
>>
>>>
>>> WDYT?
>>>
>>> Caleb
>>>
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>
>>
>>
>>
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to