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

Investigate using OSGi v6 declarative services for IGB

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      2
    • Sprint:
      Summer 1 2023 May 15, Summer 2 2023 May 29, Summer 3 2023 June 12, Summer 4 2023 June 26

      Description

      "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See link

      Moreover, in maven-bundle-plugin, versions lower than 3.0.1 does not support Java11. So upgrading to Java 11 would mean upgrading maven-bundle-plugin, which in turn means abandoning Felix SCR and using recommended OSGi SCR.

      Task: Remove Felix SCR and replace it with OSGi v6 SCR in the Java 11 branch and use officially recommended annotations.

        Attachments

        1. errorOne.png
          errorOne.png
          141 kB
        2. errorTwo.png
          errorTwo.png
          27 kB
        3. guiBuilderErrors.txt
          7 kB

          Issue Links

            Activity

            karthik Karthik Raveendran created issue -
            karthik Karthik Raveendran made changes -
            Field Original Value New Value
            Epic Link IGBF-3142 [ 21688 ]
            karthik Karthik Raveendran made changes -
            Link This issue clones IGBF-3337 [ IGBF-3337 ]
            karthik Karthik Raveendran made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            karthik Karthik Raveendran made changes -
            Description After removing Jidesoft from IGB project, find out if we can use other libraries that could replace it and create a new classes with the same name as Jidesoft components and extend classes from the new libraries . After removing Jidesoft from IGB project, we can use other libraries that could replace it and create a new classes with the same name as Jidesoft components and extend classes from the new libraries. In order to do that,however. IGB application should start in Java 11 and felix services may not work in Java 11. So using OSGI v6 declarative services is possibly the best option here.
            Hide
            karthik Karthik Raveendran added a comment -

            Note: Reference for migrating Felix annotations to OSGI v6 annotations https://medium.com/globant/declarative-services-from-felix-scr-to-osgi-4770509f1965

            Show
            karthik Karthik Raveendran added a comment - Note: Reference for migrating Felix annotations to OSGI v6 annotations https://medium.com/globant/declarative-services-from-felix-scr-to-osgi-4770509f1965
            Show
            karthik Karthik Raveendran added a comment - Reference links from 3142: https://jira.bioviz.org/browse/IGBF-3142?focusedCommentId=36582&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36582 https://jira.bioviz.org/browse/IGBF-3142?focusedCommentId=36589&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36589 https://jira.bioviz.org/browse/IGBF-3142?focusedCommentId=36593&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36593
            karthik Karthik Raveendran made changes -
            Description After removing Jidesoft from IGB project, we can use other libraries that could replace it and create a new classes with the same name as Jidesoft components and extend classes from the new libraries. In order to do that,however. IGB application should start in Java 11 and felix services may not work in Java 11. So using OSGI v6 declarative services is possibly the best option here. After removing Jidesoft from IGB project, we can use other libraries that could replace it and create new classes with the same name as Jidesoft components and extend classes from the new libraries. In order to do that,however, IGB application should start in Java 11 and Felix services may not work in Java 11. So using OSGI v6 declarative services is possibly the best option here.

            karthik Karthik Raveendran made changes -
            Description After removing Jidesoft from IGB project, we can use other libraries that could replace it and create new classes with the same name as Jidesoft components and extend classes from the new libraries. In order to do that,however, IGB application should start in Java 11 and Felix services may not work in Java 11. So using OSGI v6 declarative services is possibly the best option here.

            "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See [link | https://felix.apache.org/documentation/faqs/apache-felix-scr-plugin-faq.html]

            Task: Remove Felix SCR and replace it with OSGi v6 SCR in Java 11
            karthik Karthik Raveendran made changes -
            Description "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See [link | https://felix.apache.org/documentation/faqs/apache-felix-scr-plugin-faq.html]

            Task: Remove Felix SCR and replace it with OSGi v6 SCR in Java 11
            "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See [link | https://felix.apache.org/documentation/faqs/apache-felix-scr-plugin-faq.html]

            Moreover, in maven-bundle-plugin, versions lower than 3.0.1 does not support Java11. So upgrading to Java 11 would mean upgrading maven-bundle-plugin, which in turn means abandoning Felix SCR and using recommended OSGi SCR.

            Task: Remove Felix SCR and replace it with OSGi v6 SCR in Java 11 and use officially recommended annotations
            ann.loraine Ann Loraine made changes -
            Description "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See [link | https://felix.apache.org/documentation/faqs/apache-felix-scr-plugin-faq.html]

            Moreover, in maven-bundle-plugin, versions lower than 3.0.1 does not support Java11. So upgrading to Java 11 would mean upgrading maven-bundle-plugin, which in turn means abandoning Felix SCR and using recommended OSGi SCR.

            Task: Remove Felix SCR and replace it with OSGi v6 SCR in Java 11 and use officially recommended annotations
            "Starting with the R6 release of the OSGi Declarative Services and Metatype specification, the official annotations support the same features as the Apache Felix SCR annotations in a more elegant manner and even provide additional functionality. Therefore the Apache Felix SCR annotations are now in maintenance mode and therefore you should rather use the official annotations. The Apache Felix maven-bundle-plugin, version 3.0.1 or higher supports those directly and there is no need for an additional plugin anymore." See [link | https://felix.apache.org/documentation/faqs/apache-felix-scr-plugin-faq.html]

            Moreover, in maven-bundle-plugin, versions lower than 3.0.1 does not support Java11. So upgrading to Java 11 would mean upgrading maven-bundle-plugin, which in turn means abandoning Felix SCR and using recommended OSGi SCR.

            Task: Remove Felix SCR and replace it with OSGi v6 SCR in the Java 11 branch and use officially recommended annotations.
            Hide
            ann.loraine Ann Loraine added a comment -

            We are using OSGI core and compendium versions 1.0 the Java 11 branch. Not sure about the Java 1.8 branch (master).
            Today will look at if there is a later version we should use for the Java 11 branch.

            Show
            ann.loraine Ann Loraine added a comment - We are using OSGI core and compendium versions 1.0 the Java 11 branch. Not sure about the Java 1.8 branch (master). Today will look at if there is a later version we should use for the Java 11 branch.
            Hide
            karthik Karthik Raveendran added a comment -

            Below are one of the errors that I have come across while trying to run the IGB project in Java 11 in development mode.

            java: cannot find symbol
              symbol:   method <java.lang.String>newConcurrentHashSet()
              location: class com.google.common.collect.Sets
            

            The reason for this is instead of using guava 31.1 Sets class, the project points to google-collection-1.0 Sets.

            Show
            karthik Karthik Raveendran added a comment - Below are one of the errors that I have come across while trying to run the IGB project in Java 11 in development mode. java: cannot find symbol symbol: method <java.lang. String >newConcurrentHashSet() location: class com.google.common.collect.Sets The reason for this is instead of using guava 31.1 Sets class, the project points to google-collection-1.0 Sets.
            ann.loraine Ann Loraine made changes -
            Sprint Summer 1 2023 May 15, Summer 2 2023 May 29 [ 170, 171 ] Summer 1 2023 May 15, Summer 2 2023 May 29, Summer 3 2023 June 12 [ 170, 171, 172 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            karthik Karthik Raveendran made changes -
            Status In Progress [ 3 ] To-Do [ 10305 ]
            ann.loraine Ann Loraine made changes -
            Sprint Summer 1 2023 May 15, Summer 2 2023 May 29, Summer 3 2023 June 12 [ 170, 171, 172 ] Summer 1 2023 May 15, Summer 2 2023 May 29, Summer 3 2023 June 12, Summer 4 2023 June 26 [ 170, 171, 172, 173 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            Hide
            karthik Karthik Raveendran added a comment -

            Moving the issue to IGBF-3371

            Show
            karthik Karthik Raveendran added a comment - Moving the issue to IGBF-3371
            karthik Karthik Raveendran made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            karthik Karthik Raveendran made changes -
            Status In Progress [ 3 ] Needs 1st Level Review [ 10005 ]
            karthik Karthik Raveendran made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            karthik Karthik Raveendran made changes -
            Status First Level Review in Progress [ 10301 ] Needs 1st Level Review [ 10005 ]
            karthik Karthik Raveendran made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            karthik Karthik Raveendran made changes -
            Status First Level Review in Progress [ 10301 ] Ready for Pull Request [ 10304 ]
            karthik Karthik Raveendran made changes -
            Status Ready for Pull Request [ 10304 ] Pull Request Submitted [ 10101 ]
            karthik Karthik Raveendran made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            karthik Karthik Raveendran made changes -
            Status Reviewing Pull Request [ 10303 ] Pull Request Submitted [ 10101 ]
            karthik Karthik Raveendran made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            karthik Karthik Raveendran made changes -
            Status Reviewing Pull Request [ 10303 ] Merged Needs Testing [ 10002 ]
            karthik Karthik Raveendran made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            karthik Karthik Raveendran made changes -
            Resolution Done [ 10000 ]
            Status Post-merge Testing In Progress [ 10003 ] Closed [ 6 ]

              People

              • Assignee:
                karthik Karthik Raveendran
                Reporter:
                karthik Karthik Raveendran
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: