blob: 1e160d1da29906f060ee5955b93406b5449a79ca [file] [log] [blame]
Manuel L. Santillan168ab572006-09-12 16:38:16 +00001Mishell provides an interactive console
2that executes scripts in different scripting languages.
3Running mishell:
Manuel L. Santillan2045b0c2006-09-27 23:10:46 +00004JRE 6 is needed (because of javax.script). Mishell provides some built-in commands and interprets ruby, javascript or any other language that you
Manuel L. Santillan168ab572006-09-12 16:38:16 +00005configure. You can also load scripts with the load command. Type 'help' for available commands.
Manuel L. Santillan168ab572006-09-12 16:38:16 +00006You can see an example of configuring Felix for launching both Jmood and mishell in the same OSGi platform in the FelixLauncher
7class in the src/test/java dir. Remember to change the paths to match your installation.
8
9The initial object that is exported to the scripting engine is a JMoodProxyManager that extends
10the general-purpose MBeanProxyManager (from the jmxintrospector project) to simplify working with JMood.
11For example, when running on OSGi with JMood you can add the mbeans by typing:
Manuel L. Santillan2045b0c2006-09-27 23:10:46 +000012$manager.addLocalServer(nil) #Ruby NOTE: This has been fixed in latest versions and should be fixed
Manuel L. Santillan168ab572006-09-12 16:38:16 +000013or
14manager.addLocalServer(null) //Javascript
15And you issue commands like
16$manager.objects.each{|mbean| puts mbean.objectName} #this lists the objectnames for all mbeans known to the shell
17
18
19
20
21IMPORTANT:
22Dependencies that need to be manually installed:
231. It needs Java 6 to work (as it depends on javax.script API).
24Once that API is stable and released standalone, it should also work in Java 5.
Manuel L. Santillan2045b0c2006-09-27 23:10:46 +0000252. It needs JMX introspector.
Manuel L. Santillanc8ff15c2006-09-27 23:33:00 +000026By default, the only available engine is the javascript bundled with Java 6. To add new ones, you need to
27install the bundles. For example for ruby:
28- It needs classes from com.sun.jruby.* and from org.jruby. The easiest way is to bundle both together
Manuel L. Santillan2045b0c2006-09-27 23:10:46 +000029and export both packages in order to run ruby.
Manuel L. Santillan168ab572006-09-12 16:38:16 +000030 - The binding is available at https://scripting.dev.java.net/ and licensed
31 under the BSD license. Download the jsr223-engines.[zip|tar.gz]
32 and install the jruby-engine.jar
33 - JRuby is available at http://dist.codehaus.org/jruby/ under a tri-license: CPL/LGPL/GPL
34 located at engines/jruby/build/jruby-engine.jar. JRuby implementation
354. If you want to use any other language, you should:
Manuel L. Santillan2045b0c2006-09-27 23:10:46 +000036 - Create and install a bundle (or more) that contain the necessary classes and export the packages.
Manuel L. Santillan168ab572006-09-12 16:38:16 +000037
38