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
