> On Feb 17, 2010, at 11:42 AM, Vincent Massol
wrote:
>
>
>> On Feb 17, 2010, at 11:35 AM, Jerome Velociter wrote:
>>
>>
>>>> On Wed, Feb 17, 2010 at 10:45, Jerome Velociter<jerome(a)xwiki.com>
>>>> wrote:
>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I'd like to suggest the following strategy for now:
>>>>>>
>>>>>> * We modify all our vm files to use references (by using the
>>>>>> ModelScriptService, see below)
>>>>>> * We introduce APIs taking References in api.* (ex:
api.Document,
>>>>>> api.XWiki)
>>>>>> * We _don't_ deprecate existing APIs in api.*. This means we
allow
>>>>>> users
>>>>>> to use the older string APIs for ease of use
>>>>>>
>>>>> Hello Vincent,
>>>>>
>>>>> Before I can make up my mind, I would like to know:
>>>>>
>>>>> * What will be the strategy for velocity code in wiki pages (here
>>>>> you
>>>>> mention only .vm pages - will the strategy be voted again for wiki
>>>>> pages?)
>>>>>
>>>>> * Considering we use the same strategy for wiki pages, and since we
>>>>> do
>>>>> not
>>>>> deprecate the old APIs that manipulate strings, what will be the
>>>>> 'recommanded' way of say getting a document ? (the one we
would
>>>>> advertise
>>>>> on
xwiki.org code examples for example)
>>>>>
>>>> To summarize:
>>>> * String based methods: helper methods for users
>>>> * EntityReference based methods: what we are supposed to use or
>>>> anyone
>>>> that want to write proper code
>>>>
>>> OK, that's what I wanted to know :)
>>>
>>> I share this vision, and would be -1 to deprecate string based APIs
>>> (unless of course replaced with new string based helpers). I think
>>> it's
>>> important that we keep (velocity) simple scripting accessible to
>>> non-developers and that was my concern. You don't want to force users
>>> to
>>> know/understand what a reference resolver is for instance.
>>>
>> ... and you'll get lots of complaints on the list telling us our
>> software don't work because they'll have "forgotten" (or simply
don't
>> know about it) to escape special chars... ;)
>>
>>
>>> As for what we do for velocity code in our own wiki pages (not .vms),
>>> I
>>> would tend to think we should keep it simple to read for users (so
>>> with
>>> string based APIs) but I'm a bit undecided.
>>>
>> It's not a question of choice. There's simply no choice jerome.
>>
>> If you don't use the reference-based apis then you have to manually
>> perform parsing/serialization, i.e. manually recode the reference API.
>>
> Except of course for the cases where you know the full reference
> specifically and you can guarantee there's no special chars in it.
>
That's what I am talking about.
For example :
$xwiki.getDocument('XWiki.Ratings') or $xwiki.ssx.use('XWiki.Ratings')
vs
$xwiki.getDocument($services.model.createReference("XWiki",
"Ratings"))
Actually in this case I'd be for adding a new method instead:
$xwiki.getDocument("XWiki", "Ratings")