blob: 1e160d1da29906f060ee5955b93406b5449a79ca [file] [log] [blame]
Mishell provides an interactive console
that executes scripts in different scripting languages.
Running mishell:
JRE 6 is needed (because of javax.script). Mishell provides some built-in commands and interprets ruby, javascript or any other language that you
configure. You can also load scripts with the load command. Type 'help' for available commands.
You can see an example of configuring Felix for launching both Jmood and mishell in the same OSGi platform in the FelixLauncher
class in the src/test/java dir. Remember to change the paths to match your installation.
The initial object that is exported to the scripting engine is a JMoodProxyManager that extends
the general-purpose MBeanProxyManager (from the jmxintrospector project) to simplify working with JMood.
For example, when running on OSGi with JMood you can add the mbeans by typing:
$manager.addLocalServer(nil) #Ruby NOTE: This has been fixed in latest versions and should be fixed
manager.addLocalServer(null) //Javascript
And you issue commands like
$manager.objects.each{|mbean| puts mbean.objectName} #this lists the objectnames for all mbeans known to the shell
Dependencies that need to be manually installed:
1. It needs Java 6 to work (as it depends on javax.script API).
Once that API is stable and released standalone, it should also work in Java 5.
2. It needs JMX introspector.
By default, the only available engine is the javascript bundled with Java 6. To add new ones, you need to
install the bundles. For example for ruby:
- It needs classes from com.sun.jruby.* and from org.jruby. The easiest way is to bundle both together
and export both packages in order to run ruby.
- The binding is available at and licensed
under the BSD license. Download the jsr223-engines.[zip|tar.gz]
and install the jruby-engine.jar
- JRuby is available at under a tri-license: CPL/LGPL/GPL
located at engines/jruby/build/jruby-engine.jar. JRuby implementation
4. If you want to use any other language, you should:
- Create and install a bundle (or more) that contain the necessary classes and export the packages.