[ 
https://issues.apache.org/jira/browse/SLING-1700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12904022#action_12904022
 ] 

Felix Meschberger commented on SLING-1700:
------------------------------------------

I think, in the context of Velocity, using the bundle class loader is probably 
appropriate because classes are probably not expected to be loaded from the 
repository.

On the other hand using the DynamicClassLoader prevents OSGi wires from being 
constructed while handling scripts and thus keep the wired dependencies to 
other bundles low and thus prevents too often bundle restarts. 

> contrib/scripting/velocity embeds velocity, causing classloading issue at 
> runtime
> ---------------------------------------------------------------------------------
>
>                 Key: SLING-1700
>                 URL: https://issues.apache.org/jira/browse/SLING-1700
>             Project: Sling
>          Issue Type: Bug
>          Components: Scripting
>         Environment: Felix 1.4, Sling 2.0.7, Apache Velocity 1.6.2
>            Reporter: Olaf Otto
>            Assignee: Mike Müller
>         Attachments: SLING-1700-mykee.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Affects: Rev. 989119 of 
> https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/velocity 
> (2.0.0-SNAPSHOT)
> The maven-bundle-configuration in the pom of the velocity support module 
> (https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/velocity/pom.xml)
>  embeds a couple of dependencies:
> ...
>                         <Embed-Dependency>
>                             velocity;oro;commons-lang;inline=true
>                         </Embed-Dependency>
> ...
> However, these libraries are available as bundles and should not be embedded. 
> In the case of velocity, this causes an issue when a apache velocity bundle 
> is also deployed in felix, as the org.apache.velocity.runtime.log.LogChute 
> interface is loaded from both the velocity scripting support bundle and the 
> deployed apache velocity bundle:
> Suggested resolution: Remove the embedding. It is bad practice anyway. I've 
> successfully tested this with the following maven-bundle-configuration 
> configuration:
>                 <configuration>
>                     <instructions>
>                         <Private-Package>
>                             org.apache.sling.scripting.velocity
>                         </Private-Package>
>                         <Import-Package>
>                               org.apache.velocity.runtime.log,
>                             com.werken.xpath; javax.sql;
>                             org.apache.commons.*; org.apache.log.*;
>                             org.apache.log4j; org.apache.tools.ant.*;
>                             org.jdom.*;resolution:=optional, *
>                         </Import-Package>
>                         
>                         <ScriptEngine-Name>${pom.name}</ScriptEngine-Name>
>                         
> <ScriptEngine-Version>${pom.version}</ScriptEngine-Version>
>                     </instructions>
>                 </configuration>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to