@demobox Addressed the review comments.

I've also been able to fix the display issue, but I'm pretty sure it is not the 
best solution. The problem is that the 
[scriptEngine](https://github.com/jclouds/jclouds-karaf/blob/master/commands/src/main/java/org/jclouds/karaf/commands/table/internal/ScriptEngineShellTable.java#L40)
 is not loaded and is always `null` when running in the interactive shell, 
which results in silently printing [null 
values](https://github.com/jclouds/jclouds-karaf/blob/master/commands/src/main/java/org/jclouds/karaf/commands/table/internal/ScriptEngineShellTable.java#L49-L58)
 when a NPE occurs.

I've spent these days trying to figure out why the "groovy" engine (the 
[default 
one](https://github.com/jclouds/jclouds-karaf/blob/master/commands/src/main/java/org/jclouds/karaf/commands/table/BasicShellTableFactory.java#L42))
 can't be loaded in interactive mode, but with no success at all. I've tried 
changing it to "JavaScript", as it is bundled in the JRE since Java 6, but it 
failed to load it too. I've also copied the classes mentioned 
[here](https://devnotesblog.wordpress.com/2011/09/07/scripting-using-jsr-223-in-an-osgi-environment/)
 but that didn't worked. I don't really know how to properly fix this.

The workaround is to explicitly load the Groovy engine (have a look at the last 
commit) if no engine can be loaded. This way we keep our default engine and the 
only possible issue would be users manually configuring a different engine and 
working in interactive mode. If the expressions they use to render the columns 
in the command output are not compatible with Groovy, the output won't be 
rendeded. Anyway, I think it is a reasonable fallback. WDYT @demobox?

@ccustine @iocanel I would really appreciate your feedback on this! :)



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-karaf/pull/77#issuecomment-244901813

Reply via email to