You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2015/08/11 13:57:45 UTC

[jira] [Resolved] (KARAF-3908) shell:new does not work for most classes

     [ https://issues.apache.org/jira/browse/KARAF-3908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider resolved KARAF-3908.
----------------------------------------
    Resolution: Fixed

> shell:new does not work for most classes
> ----------------------------------------
>
>                 Key: KARAF-3908
>                 URL: https://issues.apache.org/jira/browse/KARAF-3908
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-shell
>    Affects Versions: 4.0.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 4.0.1
>
>
> If you do shell:new for a class that is not directly known to the shell.command bundle you get a ClassNotFoundException.
> The reason is that the DefaultConverter is used to convert from String to Class which uses the bundle classloader. The shell.commands bundle can not know all possible classes.
> A workaround is the do "dynamic-import org.apache.karaf.shell.commands" to make all packages available to the bundle. This opens a lot of possible problems though. 
> So I think a proper solution would be to use the capabilties to find the bundle that exports the package and use the classloader of this bundle to load the class.
> In case there are multiple versions of the package we could allow to specify a bundle to import the package from or allow to specify a version range for the package.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)