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 <roman.sum...@de-gmbh.com> 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:users-boun...@xwiki.org] 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 <roman.sum...@de-gmbh.com> 
> 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:users-boun...@xwiki.org] 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 <roman.sum...@de-gmbh.com> 
>> 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:vmas...@gmail.com] Im Auftrag von
>>> vinc...@massol.net
>>> 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 
>>> (roman.sum...@de-gmbh.com(mailto:roman.sum...@de-gmbh.com))<mailto:roman.sum...@de-gmbh.com(mailto:roman.sum...@de-gmbh.com))>
>>>  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.AttachmentClassLoaderFacto
>>>> 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
>>> users@xwiki.org
>>> http://lists.xwiki.org/mailman/listinfo/users
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> users mailing list
>> users@xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/users
>> _______________________________________________
>> users mailing list
>> users@xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/users
>
>
>
> --
> Thomas Mortagne
> _______________________________________________
> users mailing list
> users@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> users@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users



-- 
Thomas Mortagne
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to