Hi Jean-Baptiste

Don't worry about my name ;)

I'm using a fresh Karaf 3.0.1 installation because I'm in a Pax Exam test
using this option:

KarafDistributionOption.karafDistributionConfiguration().frameworkUrl(CoreOptions.maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.gz")).karafVersion("3.0.1").name("Apache
Karaf")

Then, I suppose I have default values in etc/* files.

Bundle:install commands work perfectly in standalone Karaf instance with
same bundles.

I will use this class as reference for my future tests if I need executing
commands in the shell. Now, as Achim Nierbeck told me, I will inject and
use BundleContext in order to install and uninstall bundles in my test.

Thank you very much.




<http://dana.i2cat.net>   <http://www.i2cat.net/en>
Julio C. Barrera Juez  [image: View my profile on
LinkedIn]<http://es.linkedin.com/in/jcbarrera/en>
Office phone: (+34) 93 357 99 27 (ext. 527)
Office mobile phone: (+34) 625 66 77 26
Distributed Applications and Networks Area (DANA)
i2CAT Foundation, Barcelona


On 28 May 2014 16:58, Jean-Baptiste Onofré <[email protected]> wrote:

> Hi Julio,
>
> first of all, sorry in my previous e-mail to not use your correct name ;)
>
> You get Insufficient credentials for all commands or only for bundle:*
> commands ? Could you check what you have in etc/*acl.cfg files ?
>
> The same action works fine in Karaf standalone, right ?
>
> Can you use the executeCommand() method provided by KarafTestSupport ?
>
> For instance, in the Karaf itest, we do:
>
>     @Test
>     public void installUninstallCommand() throws Exception {
>         executeCommand("bundle:install mvn:org.apache.servicemix.
> bundles/org.apache.servicemix.bundles.commons-lang/2.4_6");
>
> assertBundleInstalled("org.apache.servicemix.bundles.commons-lang");
>         executeCommand("bundle:uninstall org.apache.servicemix.bundles.
> commons-lang");
>
> assertBundleNotInstalled("org.apache.servicemix.bundles.commons-lang");
>     }
>
> If you can't (or don't want to) use the KarafTestSupport, you have to use
> Subject.doAs() to execute the command session in "privileged" mode
> (something like:
>
>             commandFuture = new FutureTask<String>(new Callable<String>() {
>                 @Override
>                 public String call() throws Exception {
>                     Subject subject = new Subject();
>
> subject.getPrincipals().addAll(Arrays.asList(principals));
>                     return Subject.doAs(subject, new
> PrivilegedExceptionAction<String>() {
>                         @Override
>                         public String run() throws Exception {
>                             return commandCallable.call();
>                         }
>                     });
>                 }
>             });
> )
>
> Honestly, the easiest way is to directly use the executeCommand() provided
> by KarafTestSupport.
>
> Regards
> JB
>
>
> On 05/28/2014 03:02 PM, Julio Carlos Barrera Juez wrote:
>
>> I'm using Karaf 3.0.1 and Pax Exam 3.5.0. I tried using these commands
>> in my test:
>>
>>     bundle:install -s -f mvn:<gId>/<aId>/<v> (two times with different
>>     bundles)
>>     bundle:uninstall -f <bundleId>
>>
>> I configured CommandSession without any option. I am still getting the
>> exception after calling the install command:
>>
>>     bundle:install -s -f mvn:<gId>/<aId>/<v>
>>     java.lang.SecurityException: Insufficient credentials.
>>     ...
>>
>> What is my mistake?
>>
>> Thank you.
>>
>> PD: I'm Julio, not Julian ;)
>>
>>
>> Julio C. Barrera Juez
>> Office phone: +34 93 357 99 27
>> Distributed Applications and Networks Area (DANA)
>> i2CAT Foundation, Barcelona
>> http://dana.i2cat.net <http://dana.i2cat.net/>
>>
>>
>>
>> On 28 May 2014 14:01, Jean-Baptiste Onofré <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>     Hi Julian,
>>
>>     I guess that you use Karaf 3.0.0, right ?
>>
>>     What's the command that you want to do (maybe bundle:* -f may help) ?
>>
>>     You don't have to provide any use as it uses the default one
>>     (karaf), like when you run karaf bin bin/karaf.
>>
>>     Regards
>>     JB
>>
>>
>>     On 05/28/2014 01:14 PM, Julio Carlos Barrera Juez wrote:
>>
>>         Hello.
>>
>>         I'm creating a Pax Exam test and I want to install a bundle in an
>>         specific moment of the test. I'm using a CommandSession to
>>         use bundle:install command. I get more or less all the stuff
>>         working,
>>         but I'm getting "java.lang.SecurityException: Insufficient
>>         credentials".
>>
>>         My CommandSession is obtained locally (without getting
>>         explicitly the
>>         OSGi service with:
>>
>>              final CommandSession commandSession =
>>              commandProcessor.__createSession(System.in, printStream,
>>
>>         System.err);
>>
>>
>>         as I saw in many examples. What I need to do to inject
>>         credentials in
>>         this session. I've found many non-working solutions like:
>>
>>              commandSession.put("__APPLICATION",
>>
>>         System.getProperty("karaf.name <http://karaf.name>
>>              <http://karaf.name>", "root"));
>>
>>
>>              commandSession.put("USER", "karaf");
>>
>>         Thank you!
>>
>>
>>         Julio C. Barrera Juez
>>         Office phone: +34 93 357 99 27 <tel:%2B34%2093%20357%2099%2027>
>>
>>         Distributed Applications and Networks Area (DANA)
>>         i2CAT Foundation, Barcelona, Spain
>>         http://dana.i2cat.net <http://dana.i2cat.net/>
>>
>>
>>     --
>>     Jean-Baptiste Onofré
>>     [email protected] <mailto:[email protected]>
>>
>>     http://blog.nanthrax.net
>>     Talend - http://www.talend.com
>>
>>
>>
> --
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Reply via email to