Does there exist an overview of OSGi terminology, frameworks and their relations?












6















I'm trying to get comfortable in the vast ecosystem of enterprise OSGi programming, but I find it very difficult to get an overview of how this technology stack is put together, which technologies build upon one another, which technologies solve what task, and how they all fit in the limited terminology I have managed to understand so far.



For example: What is the relation between Apache Felix, Equinox, Karaf, Jira OSGi, Spring DM, Aries Blueprint, Gemini Blueprint, iPOJO, Camel etc. etc...



I know Equinox is based on Felix, and that the Blueprint variants and iPOJO are somewhat related to component management, but what about Declarative Services? Is DS an alternative to Blueprint, or is Blueprint an implementation of Declarative Services?



In general, I am heavily confused, and I really need a simple overview of how common OSGi technologies in general are related.



Does anyone know of there exists such an overview - perhaps graphical - of the OSGi ecosystem?



Best regards.










share|improve this question





























    6















    I'm trying to get comfortable in the vast ecosystem of enterprise OSGi programming, but I find it very difficult to get an overview of how this technology stack is put together, which technologies build upon one another, which technologies solve what task, and how they all fit in the limited terminology I have managed to understand so far.



    For example: What is the relation between Apache Felix, Equinox, Karaf, Jira OSGi, Spring DM, Aries Blueprint, Gemini Blueprint, iPOJO, Camel etc. etc...



    I know Equinox is based on Felix, and that the Blueprint variants and iPOJO are somewhat related to component management, but what about Declarative Services? Is DS an alternative to Blueprint, or is Blueprint an implementation of Declarative Services?



    In general, I am heavily confused, and I really need a simple overview of how common OSGi technologies in general are related.



    Does anyone know of there exists such an overview - perhaps graphical - of the OSGi ecosystem?



    Best regards.










    share|improve this question



























      6












      6








      6


      4






      I'm trying to get comfortable in the vast ecosystem of enterprise OSGi programming, but I find it very difficult to get an overview of how this technology stack is put together, which technologies build upon one another, which technologies solve what task, and how they all fit in the limited terminology I have managed to understand so far.



      For example: What is the relation between Apache Felix, Equinox, Karaf, Jira OSGi, Spring DM, Aries Blueprint, Gemini Blueprint, iPOJO, Camel etc. etc...



      I know Equinox is based on Felix, and that the Blueprint variants and iPOJO are somewhat related to component management, but what about Declarative Services? Is DS an alternative to Blueprint, or is Blueprint an implementation of Declarative Services?



      In general, I am heavily confused, and I really need a simple overview of how common OSGi technologies in general are related.



      Does anyone know of there exists such an overview - perhaps graphical - of the OSGi ecosystem?



      Best regards.










      share|improve this question
















      I'm trying to get comfortable in the vast ecosystem of enterprise OSGi programming, but I find it very difficult to get an overview of how this technology stack is put together, which technologies build upon one another, which technologies solve what task, and how they all fit in the limited terminology I have managed to understand so far.



      For example: What is the relation between Apache Felix, Equinox, Karaf, Jira OSGi, Spring DM, Aries Blueprint, Gemini Blueprint, iPOJO, Camel etc. etc...



      I know Equinox is based on Felix, and that the Blueprint variants and iPOJO are somewhat related to component management, but what about Declarative Services? Is DS an alternative to Blueprint, or is Blueprint an implementation of Declarative Services?



      In general, I am heavily confused, and I really need a simple overview of how common OSGi technologies in general are related.



      Does anyone know of there exists such an overview - perhaps graphical - of the OSGi ecosystem?



      Best regards.







      osgi jira apache-felix equinox declarative-services






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 31 '18 at 22:30









      J Woodchuck

      9071023




      9071023










      asked Nov 22 '18 at 12:28









      Tormod HaugeneTormod Haugene

      1,66511940




      1,66511940
























          1 Answer
          1






          active

          oldest

          votes


















          11














          I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:




          1. An "OSGi Framework" is an implementation of the core OSGi specification. It would have to implement the concept of bundles, installing and resolving bundles, lifecycle, services and so on.

          2. Apache Felix is an OSGi Framework implementation.

          3. Equinox is also an OSGi Framework implementation. It is not "based on" Apache Felix but it does borrow a small amount of code from it. Equinox is the implementation of OSGi used in Eclipse etc.

          4. Karaf is essentially an application server product. It uses Felix as its core OSGi Framework implementation, and then adds a lot of extra features on the top.

          5. Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.

          6. Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.

          7. Blueprint is a specification published by the OSGi Alliance. It is one of the Compendium specifications, i.e. add-ons that are not required in the Core. Blueprint was inspired by Spring-DM and it standardises the idea of wiring together beans within and between bundles.

          8. Gemini Blueprint is an implementation of the Blueprint specification. Gemini started with the Spring-DM code and evolved it to comply with the (then) new specification.

          9. Aries Blueprint is also an implementation of Blueprint. It is "clean-room", i.e. implemented from scratch against the specification rather than evolved from older Spring code.

          10. Declarative Services is an OSGi specification from the Compendium. It is an alternative way to define components and to wire them together using services across bundles. Many experienced OSGi developers – including me – consider Declarative Services to be FAR superior to Blueprint. I can elaborate more on the reasons for that if you like.

          11. iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.

          12. Camel is an integration library, mostly used for messaging applications. It doesn't have much to do with OSGi except that it can run under OSGi.


          I hope this helps.






          share|improve this answer
























          • This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

            – Tormod Haugene
            Nov 22 '18 at 18:06













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431043%2fdoes-there-exist-an-overview-of-osgi-terminology-frameworks-and-their-relations%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          11














          I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:




          1. An "OSGi Framework" is an implementation of the core OSGi specification. It would have to implement the concept of bundles, installing and resolving bundles, lifecycle, services and so on.

          2. Apache Felix is an OSGi Framework implementation.

          3. Equinox is also an OSGi Framework implementation. It is not "based on" Apache Felix but it does borrow a small amount of code from it. Equinox is the implementation of OSGi used in Eclipse etc.

          4. Karaf is essentially an application server product. It uses Felix as its core OSGi Framework implementation, and then adds a lot of extra features on the top.

          5. Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.

          6. Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.

          7. Blueprint is a specification published by the OSGi Alliance. It is one of the Compendium specifications, i.e. add-ons that are not required in the Core. Blueprint was inspired by Spring-DM and it standardises the idea of wiring together beans within and between bundles.

          8. Gemini Blueprint is an implementation of the Blueprint specification. Gemini started with the Spring-DM code and evolved it to comply with the (then) new specification.

          9. Aries Blueprint is also an implementation of Blueprint. It is "clean-room", i.e. implemented from scratch against the specification rather than evolved from older Spring code.

          10. Declarative Services is an OSGi specification from the Compendium. It is an alternative way to define components and to wire them together using services across bundles. Many experienced OSGi developers – including me – consider Declarative Services to be FAR superior to Blueprint. I can elaborate more on the reasons for that if you like.

          11. iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.

          12. Camel is an integration library, mostly used for messaging applications. It doesn't have much to do with OSGi except that it can run under OSGi.


          I hope this helps.






          share|improve this answer
























          • This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

            – Tormod Haugene
            Nov 22 '18 at 18:06


















          11














          I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:




          1. An "OSGi Framework" is an implementation of the core OSGi specification. It would have to implement the concept of bundles, installing and resolving bundles, lifecycle, services and so on.

          2. Apache Felix is an OSGi Framework implementation.

          3. Equinox is also an OSGi Framework implementation. It is not "based on" Apache Felix but it does borrow a small amount of code from it. Equinox is the implementation of OSGi used in Eclipse etc.

          4. Karaf is essentially an application server product. It uses Felix as its core OSGi Framework implementation, and then adds a lot of extra features on the top.

          5. Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.

          6. Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.

          7. Blueprint is a specification published by the OSGi Alliance. It is one of the Compendium specifications, i.e. add-ons that are not required in the Core. Blueprint was inspired by Spring-DM and it standardises the idea of wiring together beans within and between bundles.

          8. Gemini Blueprint is an implementation of the Blueprint specification. Gemini started with the Spring-DM code and evolved it to comply with the (then) new specification.

          9. Aries Blueprint is also an implementation of Blueprint. It is "clean-room", i.e. implemented from scratch against the specification rather than evolved from older Spring code.

          10. Declarative Services is an OSGi specification from the Compendium. It is an alternative way to define components and to wire them together using services across bundles. Many experienced OSGi developers – including me – consider Declarative Services to be FAR superior to Blueprint. I can elaborate more on the reasons for that if you like.

          11. iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.

          12. Camel is an integration library, mostly used for messaging applications. It doesn't have much to do with OSGi except that it can run under OSGi.


          I hope this helps.






          share|improve this answer
























          • This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

            – Tormod Haugene
            Nov 22 '18 at 18:06
















          11












          11








          11







          I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:




          1. An "OSGi Framework" is an implementation of the core OSGi specification. It would have to implement the concept of bundles, installing and resolving bundles, lifecycle, services and so on.

          2. Apache Felix is an OSGi Framework implementation.

          3. Equinox is also an OSGi Framework implementation. It is not "based on" Apache Felix but it does borrow a small amount of code from it. Equinox is the implementation of OSGi used in Eclipse etc.

          4. Karaf is essentially an application server product. It uses Felix as its core OSGi Framework implementation, and then adds a lot of extra features on the top.

          5. Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.

          6. Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.

          7. Blueprint is a specification published by the OSGi Alliance. It is one of the Compendium specifications, i.e. add-ons that are not required in the Core. Blueprint was inspired by Spring-DM and it standardises the idea of wiring together beans within and between bundles.

          8. Gemini Blueprint is an implementation of the Blueprint specification. Gemini started with the Spring-DM code and evolved it to comply with the (then) new specification.

          9. Aries Blueprint is also an implementation of Blueprint. It is "clean-room", i.e. implemented from scratch against the specification rather than evolved from older Spring code.

          10. Declarative Services is an OSGi specification from the Compendium. It is an alternative way to define components and to wire them together using services across bundles. Many experienced OSGi developers – including me – consider Declarative Services to be FAR superior to Blueprint. I can elaborate more on the reasons for that if you like.

          11. iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.

          12. Camel is an integration library, mostly used for messaging applications. It doesn't have much to do with OSGi except that it can run under OSGi.


          I hope this helps.






          share|improve this answer













          I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:




          1. An "OSGi Framework" is an implementation of the core OSGi specification. It would have to implement the concept of bundles, installing and resolving bundles, lifecycle, services and so on.

          2. Apache Felix is an OSGi Framework implementation.

          3. Equinox is also an OSGi Framework implementation. It is not "based on" Apache Felix but it does borrow a small amount of code from it. Equinox is the implementation of OSGi used in Eclipse etc.

          4. Karaf is essentially an application server product. It uses Felix as its core OSGi Framework implementation, and then adds a lot of extra features on the top.

          5. Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.

          6. Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.

          7. Blueprint is a specification published by the OSGi Alliance. It is one of the Compendium specifications, i.e. add-ons that are not required in the Core. Blueprint was inspired by Spring-DM and it standardises the idea of wiring together beans within and between bundles.

          8. Gemini Blueprint is an implementation of the Blueprint specification. Gemini started with the Spring-DM code and evolved it to comply with the (then) new specification.

          9. Aries Blueprint is also an implementation of Blueprint. It is "clean-room", i.e. implemented from scratch against the specification rather than evolved from older Spring code.

          10. Declarative Services is an OSGi specification from the Compendium. It is an alternative way to define components and to wire them together using services across bundles. Many experienced OSGi developers – including me – consider Declarative Services to be FAR superior to Blueprint. I can elaborate more on the reasons for that if you like.

          11. iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.

          12. Camel is an integration library, mostly used for messaging applications. It doesn't have much to do with OSGi except that it can run under OSGi.


          I hope this helps.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 22 '18 at 14:39









          Neil BartlettNeil Bartlett

          21.5k23069




          21.5k23069













          • This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

            – Tormod Haugene
            Nov 22 '18 at 18:06





















          • This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

            – Tormod Haugene
            Nov 22 '18 at 18:06



















          This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

          – Tormod Haugene
          Nov 22 '18 at 18:06







          This is exactly the kind of information I need. Thank you very much! I would greatly appreciate some advice regarding Blueprint vs. DS if you have the opportunity. I am actually trying to figure out what service implementation to use, but weren't able to distinguish the concepts from the frameworks (hence the question). Also, if there are any vital technologies you think I should know about, it would be very helpful too. I will simply reformulate the question to fit your answer better afterwards. ;-)

          – Tormod Haugene
          Nov 22 '18 at 18:06






















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431043%2fdoes-there-exist-an-overview-of-osgi-terminology-frameworks-and-their-relations%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

          Npm cannot find a required file even through it is in the searched directory