On Fri, Dec 9, 2011 at 13:49, Vincent Massol <[email protected]> wrote:
> > On Dec 9, 2011, at 1:41 PM, Denis Gervalle wrote: > > > On Fri, Dec 9, 2011 at 10:17, Denis Gervalle <[email protected]> wrote: > > > >> Hi Devs, > >> > >> I am looking at now using the new Locale added in DocumentReference into > >> the implementation of XWikiDocument. > >> I have already deprecated language related stuff in XWikiDocument, and I > >> have introduce a XWikiDocument#getLocale and an > XWikiDocument#isTranslation > >> helper since the deprecation of defaultLanguage will increase the need > of > >> it. I have also added XWikiDocument#getTranslatedDocument() with Locale > in > >> place of language. All the changes are almost backward compatible, > which is > >> nice (there is some subtleties with default, "" and null that is now > more > >> equivalent, but should not have consequences). > > Make sure you move the deprecated sutff in -legacy if you can. > > >> The is however one change that is not backward compatible, which is the > >> change of the document reference. Therefore, > >> XWikiDocument#getDocumentReference does not return the same reference > than > >> it does before, because this reference now contains the Locale. This > cause > >> breakage in several places. > > Why? It should be the same since the new ref only adds the optional locale. > > >> I see some option to fix this: > >> > >> A. Fix all places broken. This may be too long for me, and not trivial. > > +1 if I understand correctly. > > >> B. Introduce a new XWikiDocument#getDocumentReferenceWithLocale() and > >> have XWikiDocument#getDocumentRefence() returns without Locale. Very > easy, > >> but not nice. > > Not nice -0 > > >> C. Introduce a new XWikiDocument#getDocumentReferenceWithoutLocale() and > >> change all existing calls to XWikiDocument#getDocumentRefence() in > platform > >> to use this one. Nicer, but this is not fully backward compatible. > > -0 till I understand the problem above. > > I don't understand the issue. > The issue is simple, the DocumentReference will now contains one more information, the Locale, and this could be unexpected in some place where a more generic reference (without locale) is required. Therefore, in some place, the comparison of a DocumentReference, with the one coming from a document may return false negative, because the comparison is done with a reference without Locale. I should have precise that I am applying C with a some review of each usage, to not replace massively where this seems not necessary, and keep as much as possible getDocumentReference in preference to getDocumentReferenceWithoutLocale. > > Thanks > -Vincent > > >> Since I am on it right now, I would appreciate your opinion quickly. > >> WDYT ? > >> > >> I am undecided between B and C > >> > > > > Well after more thinking, there is no simple rules and B is not fully > safe > > in some places. So I am more in favor of C, since it is the cleanest on > the > > long term. I am also thinking to implement a cache of the reference > without > > local for better efficiency. > > Please give me your comment asap, especially if you strongly disagree on > C > > since I will start coding this. > > > > > >> > >> -- > >> Denis Gervalle > >> SOFTEC sa - CEO > >> eGuilde sarl - CTO > >> > > > > > > > > -- > > Denis Gervalle > > SOFTEC sa - CEO > > eGuilde sarl - CTO > > _______________________________________________ > > devs mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/devs > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Denis Gervalle SOFTEC sa - CEO eGuilde sarl - CTO _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

