On 11/4/09 10:43 AM, Thomas Mortagne wrote:
> On Tue, Nov 3, 2009 at 23:13, Jerome Velociter<[email protected]>  wrote:
>> On a related note, I'm now trying to find a path to move (velocity)
>> tools in this new services object.
>>
>> A solution I see it to have a ToolService class implementing both
>> ScriptServiceManager and ScriptService and which get(String serviceName)
>
> I'm not sure what you mean here, $services.tools.sometool ?

Yes.
>
> Note that when you implements two different component interfaces you
> get two different instances each initialized. It's generally better to
> separate, i don't see why it should implements ScriptServiceManager
> anyway, from script POV you don't need ScriptServiceManager to provide
> a get(String toolname), just add the method in your implementation.

Well it would be in reality a script service manager of some sort, but 
if it creates two instances then better have it just implementing 
ScriptService
>
>> method returns if it exists the asked tool. It would have a default list
>> of tools (ListTool, NumberTool, etc. + retrieved from configuration -
>> like the current DefaultVelocityConfiguration#getTools implementation)
>> plus would request the CM implementation of a ScriptTool component role
>
> I don't see the point of providing component ScriptTool when we have
> ScriptService. If the goal is to have something for templating
> languages that can't access java class they want it should be named
> TemplateService maybe but i don't thing we really need that.

$services.templateServices.listtool.get($myList, 0) ?

Feels too much to me, I prefer $services.tools.list.get($myList, 0)

Now I agree, I'm not sure if we really need that versus mapping all the 
tools directory in $services :
$services.listtool
$services.regex
etc.

Jerome.
>
>> (that would be implemented by our own tools like the RegEx one and the
>> JSON one).
>>
>> Concerning backward compatibility, I think we can try to intercept
>> VelocityContext#get calls from the compatibility aspect and redirect
>> requests for tools to the new service.
>>
>> wdyt?
>>
>> Jerome.
>>
>> On 11/3/09 10:16 PM, Jerome Velociter wrote:
>>> Hello all,
>>>
>>> We need to be able to expose APIs to scripting languages. Following the
>>> idea initially expressed by Vincent in this thread
>>> http://lists.xwiki.org/pipermail/devs/2009-August/013934.html, I would
>>> like to propose the following :
>>>
>>> - We add a org.xwiki.script.ScriptService component role, which is an
>>> empty tag interface that services class implements
>>> - A org.xwiki.script.ScriptServiceManager implementation gets all
>>> services injected in a roleHint/service map
>>> - This script service manager gets injected where script bindings are
>>> initialized and is bound "as is" with under "services" name. Currently
>>> in two places : in the XWikiScriptContextInitializer and in the
>>> DefaultVelocityManager (since velocity is treated separetely from JSR223
>>> scripting languages for the moment).
>>>
>>> I've uploaded an initial patch on
>>> http://jira.xwiki.org/jira/browse/XWIKI-4551 if you want to give a look.
>>>
>>> My +1
>>>
>>> Jerome.
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>

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

Reply via email to