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.
>

Reply via email to