Logo

An easy-to-use desktop application to manage OSGi frameworks remotely

OSGi.fx is an easy-to-use application to remotely manage OSGi frameworks. Similar to Felix web console, this is an endeavour for desktop application users to provide all the necessary functionalities to remotely manage OSGi runtimes.

Application Screenshots

Click here for more screenshots


Implemented Features

   
List all installed bundles and fragments done
List all exported and imported packages done
List all registered services done
List all registered DS components done
List all available system and framework properties done
List all daemon and non-daemon threads done
Send synchronous or asynchronous events on demand done
Receive events on demand (option to start and stop receiving events) done
Receive logs on demand (option to start and stop receiving logs) done
Manage R7 Logger Configurations done
Execute Gogo command done
Execute CLI command done
Auto-completion of all available remote Gogo commands during command execution done
Install or update bundles done
Drag and drop support of bundles (on Install Bundle Dialog) while installing or updating done
List available configurations from ConfigurationAdmin done
List Metatype property descriptors done
Start/stop/uninstall bundle or fragment done
Enable/disable DS component done
Update/delete existing configuration done
Create new configuration using metatype descriptor done
Overview of the remote OSGi framework (memory consumption, uptime, framework information, number of bundles, number of threads, number of services and number of DS components) done
Generate dependency graph for bundles done
Generate dependency graph for DS components done
Find all cycles between available DS components done
Export generated dependency graph to DOT (GraphViz) format (Right click on generated graph) done
Open Diagnostics (Show application log file) done
Show suspicious classloader leaks done
Show HTTP runtime components (Servlets, Listeners, Filters, Resources and Error Pages) done
Shows heap usage over time and the count of garbage collections done
Install extension (plugin) done
List and uninstall already installed feature(s) done
Generate OBR XML done
Device Management Tree (DMT) Traversal and Update done
Manage User Admin Roles done
Execute Felix Healthchecks done

Tools and Technologies

   
Java (Application) 17
Java (Agent) 1.8
Rich Client Platform JavaFX 17
Runtime Frameworks OSGi R8 (Equinox), Eclipse 4 (e4), e(fx)clipse
UI Libraries ControlsFX, TilesFX, FormsFX
Tools Bndtools 6.3.1

Important Notes for Download and Update


Minimum Requirements for Runtime Agent

  1. Java 1.8
  2. OSGi R6

To use the agent in the OSGi environment, you need to install com.osgifx.console.agent.jar and set osgi.fx.agent.port system property in the runtime. Note that, you can either set the property to any port e.g. 2000 or 0.0.0.0:2000. The latter one will allow remote connections whereas the former one will only allow connections from localhost.


Batch Install

You can also install multiple bundles and create multiple configurations in one go. For that, you need to create fxartifacts directory in your home folder and keep all bundles and configuration JSON files in it. Then you can choose Batch Install from the Actions menu and it will list only the JARs and JSON files from the directory. You can then choose from the list which JARs to install and which configurations to create.

Note that, the configuration JSON files need to comply with OSGi Configurator Specification


Extension Development

External plugins or extensions can easily be developed for OSGi.fx. Please have a look at how the bundles with com.osgifx.console.ui.* project name pattern are developed. As a starting point, please have a look at the sample Tic-Tac-Toe. Since OSGi.fx has itself been developed using OSGi and Eclipse e4, you can easily leverage their modular capabilities to build your own extensions.

Once the extension is developed, you can test it by installing it from the Help -> Install Extension menu option.

Note that, to develop an extension, you need to provide OSGi Deployment Package archive. Have a look at OSGi Deployment Admin Specification on how to prepare such deployment packages.

For ease of development, you can use the OSGi.fx workspace to further develop your own extensions as the workspace comprises a new bnd plugin which will enable you to automatically generate a deployment package from a bndrun file. As an example, please refer to the sample Tic-Tac-Toe extension.


Project Import for Development

  1. Install Bndtools from Eclipse Marketplace
  2. Import all the projects (File -> Import -> General -> Existing Projects into Workspace and select Search for nested projects)

Building from Source

Run ./gradlew clean build in the project root directory


Developer

Amit Kumar Mondal (admin@amitinside.com)


Contribution

contributions welcome


License

License