Does there exist an overview of OSGi terminology, frameworks and their relations?
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
add a comment |
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
add a comment |
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
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
osgi jira apache-felix equinox declarative-services
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
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:
- 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.
- Apache Felix is an OSGi Framework implementation.
- 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.
- 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.
- Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.
- Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.
- 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.
- 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.
- 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.
- 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.
- iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.
- 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.
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:
- 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.
- Apache Felix is an OSGi Framework implementation.
- 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.
- 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.
- Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.
- Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.
- 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.
- 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.
- 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.
- 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.
- iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.
- 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.
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
add a comment |
I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:
- 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.
- Apache Felix is an OSGi Framework implementation.
- 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.
- 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.
- Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.
- Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.
- 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.
- 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.
- 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.
- 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.
- iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.
- 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.
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
add a comment |
I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:
- 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.
- Apache Felix is an OSGi Framework implementation.
- 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.
- 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.
- Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.
- Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.
- 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.
- 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.
- 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.
- 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.
- iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.
- 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.
I don't know of a graphical representation. I can break down the few specific things you have mentioned in your post:
- 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.
- Apache Felix is an OSGi Framework implementation.
- 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.
- 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.
- Jira OSGi: don't know. I believe Jira is internally implemented with OSGi but I don't know any of the details.
- Spring DM is an obsolete/dead project. It was a way of splitting up a Spring bean graph into a modular application, using OSGi.
- 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.
- 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.
- 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.
- 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.
- iPOJO is yet another different way to define components and wire them together. It does not conform to any OSGi specification.
- 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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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