TOTD #34: Using Felix Shell with GlassFish

how-to
Jun 20, 20083 mins

TOTD #33 explains how to create a GlassFish v3 distribution that uses Apache Felix (default) as the  OSGi R4 Service Platform runtime. This blog explains how to use Felix Shell TUI with that bundle to issue commands to the OSGi framework and obtain information from it.

To enable Felix Shell with GlassFish v3, add the lines …

 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.jar

 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.tui.jar

to “felix.auto.start.1” property in “felix/conf/config.properties” file of the expanded bundle. The updated property looks like:

felix.auto.start.1=

 ${com.sun.aas.installRootURI}/modules/tiger-types-osgi-0.3.2.jar

 ${com.sun.aas.installRootURI}/modules/auto-depends-0.3.2.jar

 ${com.sun.aas.installRootURI}/modules/config-0.3.2.jar

 ${com.sun.aas.installRootURI}/modules/hk2-core-0.3.2.jar

 ${com.sun.aas.installRootURI}/modules/osgi-adapter-0.3.2.jar

 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.jar

 ${com.sun.aas.installRootURI}/felix/bundle/org.apache.felix.shell.tui.jar

with the changes highlighted in bold.

The shell works only if GlassFish is started using “java -jar modules/glassfish-10.0-SNAPSHOT.jar” command.

The shell is available when the following prompt is shown:

INFO: Glassfish v3 started in 1624 ms

Jun 16, 2008 7:10:37 PM  

INFO: ->

Jun 16, 2008 7:10:37 PM com.sun.enterprise.glassfish.bootstrap.ASMainFelix launchOSGiFW

INFO: Framework successfully started

You can type “help” in the shell to see the complete list of commands that are available:

help

Jun 16, 2008 7:11:12 PM  

INFO: bundlelevel … | – set or get bundle start level.

Jun 16, 2008 7:11:12 PM  

INFO: cd []                     – change or display base URL.

Jun 16, 2008 7:11:12 PM  

INFO: headers [ …]                  – display bundle header properties.

Jun 16, 2008 7:11:12 PM  

INFO: help                                – display impl commands.

Jun 16, 2008 7:11:12 PM  

INFO: install [ …]           – install bundle(s).

Jun 16, 2008 7:11:12 PM  

INFO: packages [ …]                 – list exported packages.

Jun 16, 2008 7:11:12 PM  

INFO: ps [-l | -s | -u]                   – list installed bundles.

Jun 16, 2008 7:11:12 PM  

INFO: refresh [ …]                  – refresh packages.

Jun 16, 2008 7:11:12 PM  

INFO: resolve [ …]                  – attempt to resolve the specified bundles.

Jun 16, 2008 7:11:12 PM  

INFO: services [-u] [-a] [ …]       – list registered or used services.

Jun 16, 2008 7:11:12 PM  

INFO: shutdown                            – shutdown framework.

Jun 16, 2008 7:11:12 PM  

INFO: start [ …]         – start bundle(s).

Jun 16, 2008 7:11:12 PM  

INFO: startlevel []                – get or set framework start level.

Jun 16, 2008 7:11:12 PM  

INFO: stop [ …]                – stop bundle(s).

Jun 16, 2008 7:11:12 PM  

INFO: uninstall [ …]           – uninstall bundle(s).

Jun 16, 2008 7:11:12 PM  

INFO: update []                 – update bundle.

Jun 16, 2008 7:11:12 PM  

INFO: version                             – display version of framework.

Jun 16, 2008 7:11:12 PM  

INFO: -> 

This shows the list of available commands along with a brief description. For example “ps” shows the list of installed bundles as shown below:

ps

Jun 16, 2008 7:13:57 PM  

INFO: START LEVEL 1

Jun 16, 2008 7:13:57 PM  

INFO:    ID   State         Level  Name

Jun 16, 2008 7:13:57 PM  

INFO: [   0] [Active     ] [    0] System Bundle (1.0.4)

Jun 16, 2008 7:13:57 PM  

INFO: [   1] [Active     ] [    1] org.jvnet.tiger-types repackaged as module (0.3.2)

. . .

INFO: [ 137] [Installed  ] [    1] WebTier Security Integration (10.0.0.SNAPSHOT)

Jun 16, 2008 7:13:57 PM 

INFO: [ 138] [Installed  ] [    1] Web module command line interface (10.0.0.SNAPSHOT)

Jun 16, 2008 7:13:57 PM 

INFO: [ 139] [Installed  ] [    1] Admin GUI Web Container Plugin (10.0.0.SNAPSHOT)

Jun 16, 2008 7:13:57 PM 

INFO: ->

More details about the commands and options are available @ Felix Usage Docs.

The commands are described in “felix/conf/config.properties” (around line 38).

Please leave suggestions on other TOTD (Tip Of The Day) that you’d like to see. A complete archive is available here.

Technorati: totd glassfish v3 felix osgi