Hello! In short words:
1) Camel / OSGi OSGi is an architecture for packaging and running components called "bundles". It provides ways to make these bundles cooperate with each other using well defined semantics. The basic unit of modularization is (Java) "package". Of course beyond the basics, OSGi has higher-level layers which provide additional services. For introduction, see e.g., http://www.osgi.org/Technology/HowOSGi. "Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns<http://camel.apache.org/enterprise-integration-patterns.html>." (http://camel.apache.org).Camel is a framework which allows you to develop clean applications based on messaging patterns. Camel consists of many libraries/jars - all of them are OSGi "bundles" and this allows to run them in any compliant OSGi container (e.g., Apache Felix or Eclipse Equinox) 2) Camel / Spring Spring (Framework) is general purpose framework for developing Java Applications, the main concept of Spring Framework is Dependency Injection, which allows you to develop applications in modular (not modular in the sense of OSGi) fashion - where each "bean" expresses the need for other beans by exposing getter/setters or @Inject/@Autowired fields. Spring makes sure that your expressed dependencies are satisfied. Camel is not based on Spring, but uses it's functionality for one of the dialects of Camel DSL (language for expressing Enterprise Integration Patterns). Also Camel uses Spring in the area of transaction management and JDBC access. 3) 1) / 2) A meta-difference you mean? :) Relation #1 is between two different abstractions (categories). Between framework for messaging application and framework for component deployment (Camel may be deployed as component in OSGi) Relation #2 is between abstractions which belong to single category - Java Frameworks which makes developer's life easier. Conclusion: - OSGi is container + services it provides. you run your applications there quite similiar to how you run them in e.g., Tomcat - Camel is framework for messaging applications - you actually develop using it - Spring (Framework) is for dependency injections (+ helpers to use JavaEE APIs such as JDBC, JTA, Servlets, JMS, ...) - there are other Spring products, such as Spring-WebServices, Spring-WebFlow, Spring-Batch, ... hope this sheds some light in this topic regards Grzegorz Grzybek 2014-05-13 23:25 GMT+02:00 nono <yan.w...@db-is.com>: > Hi i am not very clear about the relation between camel and osgi > could someone explain in short words > what is the relation between camel and osgi? > what is relation between camel and spring? > what are the differences betwen those two relations? > > Thanks in advance > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/camel-osgi-tp5751095.html > Sent from the Camel - Users mailing list archive at Nabble.com. >