Simply by installing those extensions, see
http://extensions.xwiki.org/xwiki/bin/view/Extension/Extension+Manager+Application

On Mon, Jul 14, 2014 at 9:43 AM, Summer, Roman <[email protected]> wrote:
> Do you know the best way to access the extensions classloaders for adding 
> jars to it?
>
> -----Ursprüngliche Nachricht-----
> Von: users [mailto:[email protected]] Im Auftrag von Thomas Mortagne
> Gesendet: Mittwoch, 9. Juli 2014 18:34
> An: XWiki Users
> Betreff: Re: [xwiki-users] exchanging the ScriptMacro ClassLoader
>
> I was not talking about WEB-INF\lib but installing them as extensions, 
> putting those jar in the extensions classloaders is not much different from 
> putting them in the script macro classloaded except that it's not temporary 
> but it's much easier and a lot better for performances.
>
> On Wed, Jul 9, 2014 at 6:26 PM, Summer, Roman <[email protected]> 
> wrote:
>> No, it isn't. Putting them into the WEB-INF\lib folder could produce version 
>> conflicts by using newer versions of existing jar. Additionally I want to 
>> load the jars from an external maven repository without installing them 
>> locally.
>>
>> -----Ursprüngliche Nachricht-----
>> Von: users [mailto:[email protected]] Im Auftrag von Thomas
>> Mortagne
>> Gesendet: Mittwoch, 9. Juli 2014 15:02
>> An: XWiki Users
>> Betreff: Re: [xwiki-users] exchanging the ScriptMacro ClassLoader
>>
>> Installing those extensions instead of passing them in the macro is not an 
>> option ?
>>
>> On Wed, Jul 9, 2014 at 2:39 PM, Summer, Roman <[email protected]> 
>> wrote:
>>> Hi,
>>>
>>> the exact goal is to load a list of maven artifacts and their dependencies 
>>> inside of a the groovy macro, to have access to the classes of the 
>>> belonging jar files.
>>> Using an URLStreamHandler means, I can only load one jar URL per artifact 
>>> but I want to load multiple jar URLs per maven artifact (the dependencies 
>>> of the artifact).
>>> Currently I created an delegating class loader (inside of an extended 
>>> groovy macro) which loads these maven artifacts.  This works, but it 
>>> produces a memory leak, because the creaded AttachmentClassLoader is stored 
>>> inside of the execution context. So the classes are loaded each time the 
>>> macro is loaded. Therefore I look for an alternative way to load these URLs.
>>>
>>> I hope you can help me?
>>>
>>> Roman
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: users [mailto:[email protected]] Im Auftrag von Thomas
>>> Mortagne
>>> Gesendet: Dienstag, 8. Juli 2014 16:02
>>> An: XWiki Users
>>> Betreff: Re: [xwiki-users] exchanging the ScriptMacro ClassLoader
>>>
>>> On Tue, Jul 8, 2014 at 1:35 PM, Summer, Roman <[email protected]> 
>>> wrote:
>>>> Hi,
>>>> while I tried to implement the 
>>>> org.xwiki.classloader.ExtendedURLStreamHandler in the described way I 
>>>> recognized some problems:
>>>>
>>>>
>>>> -      First, the class 
>>>> org.xwiki.rendering.internal.macro.script.ScriptClassLoaderHandlerListener 
>>>> uses the 
>>>> org.xwiki.rendering.internal.macro.script.AttachmentClassLoaderFactory 
>>>> which only constructs AttachmentClassLoaders which uses 
>>>> org.xwiki.classloader.internal.protocol.attachmentjar.AttachmentURLStreamHandler.
>>>>  Last one cannot be exchanged.
>>>>
>>>> In the current implementation this is no problem because the ScriptMacro 
>>>> only supports the protocol “attach” and the URL Format itself. The 
>>>> AttachmentURLStreamHandler can handle this.
>>>>
>>>>
>>>>
>>>> I think the Used ClassLoaderFactory should automatically get the right 
>>>> Class Loader depending on the used protocol.
>>>>
>>>>
>>>>
>>>> -      Second, I also have to resolve the dependencies of the given maven 
>>>> artifact in the URL. So I have to put more than one jar-URL in the URL 
>>>> Connection. Otherwise I have to declare all the dependencies in the URL 
>>>> String.
>>>>
>>>> Do you know a solution for my problems?
>>>
>>> What is the goal exactly ? From what I understood (and how I see
>>> http://jira.xwiki.org/browse/XWIKI-6211) the feature is to support an url 
>>> that just contains the extension id (and optionally maybe the version, need 
>>> to define a syntax for that) which is then requested with extension manager 
>>> in the registered repositories. Extension Manager API gives you the 
>>> dependencies of the extension. The simplest here is probably to generate an 
>>> install plan and load all the extension listed in the plan.
>>>
>>>>
>>>> Thanks
>>>>
>>>> Roman
>>>>
>>>>
>>>>
>>>> Von: Vincent Massol [mailto:[email protected]] Im Auftrag von
>>>> [email protected]
>>>> Gesendet: Freitag, 4. Juli 2014 14:30
>>>> An: Summer, Roman; XWiki Users
>>>> Betreff: Re: [xwiki-users] exchanging the ScriptMacro ClassLoader
>>>>
>>>> Hi Roman,
>>>>
>>>> On 4 Jul 2014 at 13:11:23, Summer, Roman 
>>>> ([email protected](mailto:[email protected]))<mailto:[email protected](mailto:[email protected]))>
>>>>  wrote:
>>>>
>>>>> Hello
>>>>>
>>>>> I want to write a java script macro
>>>>
>>>> I had to read this 3 times to understand it ;) (I kept thinking about 
>>>> "javascript macro”).
>>>>
>>>>> which is able to load jars from an external currently not supported 
>>>>> source (e.g. from a maven repository). Therefore I want to exchange the 
>>>>> used class loader. Overriding the ScriptMacroParameters#getJars() method 
>>>>> is not possible for me, because I only want to load the classes in view 
>>>>> and not in edit mode.
>>>>>
>>>>> My question: How is it possible to exchange the currently injected
>>>>> implementation of the interface
>>>>> org.xwiki.rendering.internal.macro.script.AttachmentClassLoaderFact
>>>>> o r y for my macro to exchange the used class loader or is there
>>>>> another recommended official way to ream my aim.
>>>>
>>>> See
>>>> http://extensions.xwiki.org/xwiki/bin/view/Extension/ClassLoader+API
>>>> #
>>>> H
>>>> AddinganewURLStreamHandler
>>>>
>>>> Thanks
>>>> -Vincent
>>>>
>>>> PS1: You should checkout OPS4J Pax URL:
>>>> https://ops4j1.jira.com/wiki/display/paxurl/Mvn+Protocol
>>>>
>>>> PS2: I think we would be interested by such a contribution. Actually a 
>>>> great contribution would be to bridge our code to use PAX URL (not even 
>>>> sure anything is needed for that!). We probably just need a tutorial 
>>>> explaining how to use PAX URL in XWiki.
>>>> _______________________________________________
>>>> users mailing list
>>>> [email protected]
>>>> http://lists.xwiki.org/mailman/listinfo/users
>>>
>>>
>>>
>>> --
>>> Thomas Mortagne
>>> _______________________________________________
>>> users mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/users
>>> _______________________________________________
>>> users mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/users
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/users
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/users
>
>
>
> --
> Thomas Mortagne
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users



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

Reply via email to