Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-1599

Investigate how to implement dynamic loading and un-loading of bundles to speed up development

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      Description

      IGB runs in an OSGi container implementation called "felix," a product of the Apache felix project. As such, IGB is a collection of bundles that can be dynamically loaded or un-loaded into the run-time on demand.

      Felix container has a "gogo" shell that provides command-line access to various control functions in the container. In theory, we should be able to access the felix shell within IGB and control loading and un-loading of bundles.

      If we could do this, our development cycle could be greatly sped up because we could re-compile a bundle and then use the felix shell to re-load it into the container, thus saving one or two minutes required to shut down IGB and restart it just to see the new code in action.

      As an example, see the IGB-fx project, which we are not actively developing right now, but which demonstrates how this can work. IGB-fx is also an OSGi-based application, but it uses a different OSGi run-time - karaf. Karaf is also an Apache project; it is a wrapper around felix and has a shell plus a set of commands you can use to manipulate the OSGi run-time in real time, while an application is running.

      For this task, investigate what it would require for developers to gain command-line access to the IGB run-time. Look at IGB-fx as an example.

      Note: We have not done anything with the IGB-fx code base in a while! If you run into problems building or running it, make a separate issue for that and mark it as a "blocker" for this issue. You would really need to see the IGB-fx karaf integration in action before proceeding with this task here.

      References:

        Attachments

          Issue Links

            Activity

            Hide
            Narendra Narendra Kumar Vankayala (Inactive) added a comment -

            Issues:

            While using start.sh, start_shell.sh or start_dev.sh to start the application as mentioned in the developer's guide, I ran into errors which can be found in the errorLog_IGB-fx.txt file attached.

            Foundings:
            IGB-fx uses karaf shell to dynamically load and unload the bundles while the IGBfx is running.
            E.g.: Using karaf shell, we can see the list of available bundles while the application is running using "bundle:list" command which will give information of all the bundles running in the system such as bundleId, state, name etc.
            After the changes are made use bundle:update <id> – id can be found from the above list against the bundle name to which the changes are made.

            IGB-classic also uses a similar approach, but we are not able to access the gogo shell where all the loading of bundles takes place in the runtime.

            Show
            Narendra Narendra Kumar Vankayala (Inactive) added a comment - Issues: While using start.sh, start_shell.sh or start_dev.sh to start the application as mentioned in the developer's guide, I ran into errors which can be found in the errorLog_IGB-fx.txt file attached. Foundings: IGB-fx uses karaf shell to dynamically load and unload the bundles while the IGBfx is running. E.g.: Using karaf shell, we can see the list of available bundles while the application is running using "bundle:list" command which will give information of all the bundles running in the system such as bundleId, state, name etc. After the changes are made use bundle:update <id> – id can be found from the above list against the bundle name to which the changes are made. IGB-classic also uses a similar approach, but we are not able to access the gogo shell where all the loading of bundles takes place in the runtime.
            Hide
            Narendra Narendra Kumar Vankayala (Inactive) added a comment - - edited

            Error log file while running IGBfx added

            Show
            Narendra Narendra Kumar Vankayala (Inactive) added a comment - - edited Error log file while running IGBfx added
            Hide
            ann.loraine Ann Loraine added a comment -

            Sai Charan Reddy Vallapureddy is working on this alternative solution that uses felix web console.

            Show
            ann.loraine Ann Loraine added a comment - Sai Charan Reddy Vallapureddy is working on this alternative solution that uses felix web console.
            Hide
            ann.loraine Ann Loraine added a comment -

            Sai Charan Reddy Vallapureddy - please review and consider closing IGBF-1599 once Web console IGBF-1819 is implemented.

            Show
            ann.loraine Ann Loraine added a comment - Sai Charan Reddy Vallapureddy - please review and consider closing IGBF-1599 once Web console IGBF-1819 is implemented.

              People

              • Assignee:
                Unassigned
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: