6 Replies Latest reply on Mar 4, 2015 4:21 PM by Jboss Beginner

    what is Jboss FUSE - is it a container or framework ?

    Jboss Beginner Newbie

      What is the difference between Jboss FUSE and Jboss EAP

        • 1. Re: what is Jboss FUSE - is it a container or framework ?
          Akram KAMMOUN Newbie

          Jboss EAP is an open source Java EE-based application server. Jboss FUSE is an open source Enterprise Service Bus (ESB) that uses Apache Karaf as container. There is another ESB developed by Redhat, named, Jboss Fuse Service Works, that offers more capabilities that Jboss Fuse (see, http://www.jboss.org/products/fsw/overview/). JBoss Fuse Service Works leverages the JBoss Enterprise Application Platform as it’s container, while JBoss Fuse uses Apache Karaf (OSGi) [http://blog.vizuri.com/jboss-fuse-vs.-fuse-service-works].

          • 2. Re: what is Jboss FUSE - is it a container or framework ?
            Jboss Beginner Newbie

            Thank you Akram

             

            However i do have a few questions - if you could help with my doubts.

             

            1) What is the difference between FUSE and Apache Camel  ?

            2)If i can use apache camel direct in my Java Application and deploy this in Jboss EAP - In what case would I use camel with FUSE. ?

             

            Example/User case would help.

             

            thanks in advance

            • 3. Re: what is Jboss FUSE - is it a container or framework ?
              Akram KAMMOUN Newbie

              Hi


              Apache Camel isn’t actually an ESB but some developers (included me) call Apache Camel a lightweight ESB because it supports many functionnalities provided by ESBs (e.g., the routing, transformation, orchestration).

              The difference that Camel doesn’t have a container or a reliable message bus but it it can be deployed as well on an ESB such Jboss Fuse. In the case of JBoss Fuse Service Works ESB, it is possible to develop and to compose easily services which are developed using many technologies (beans, bpel, bpmn, camel, and so forth).

              Here two links that compares Apache Camel with Servicemix ESB and with Mule ESB:

              http://camel.apache.org/how-does-camel-compare-to-servicemix.html

              https://www.mulesoft.com/resources/esb/mule-vs-camel-comparison

              • 4. Re: what is Jboss FUSE - is it a container or framework ?
                Jboss Beginner Newbie

                Thanks Akram

                 

                From your post I understand that Apache camel does not have a container and camel project can run by itself - If i can deploy camel project as a war in a jboss as or tomcat - in what case would I use FUSE or FUSE container. ?

                 

                 

                Thanks.

                • 5. Re: what is Jboss FUSE - is it a container or framework ?
                  Akram KAMMOUN Newbie

                  It depends in your application requirements. In my case, I don't use Jboss Fuse and I use instead Jboss Fuse Service Works (FSW). The latter is an ESB that is based on the former ESB and offers more capabilities. Jboss FSW is dedicated for SOA applications. It regroups many tools, such BPMN, BPEL, Drools, JMS, Apache Camel, etc. It also provides many functionalities to facilitate the development of SOA applications, such interceptors, composers, transformers, etc. It also provides an graphical editor, named Switchyard, that helps to develop and visualize graphically your SOA applications.

                  So, if your application needs these functionalities and your complexity of integration is high, then the Jboss FSW can be efficient. Otherwise, you can use Apache camel to develop you applications.

                  Here an interesting article that describes the appropriate use cases for ESB and Apache Camel

                  http://java.dzone.com/articles/when-use-apache-camel

                  • 6. Re: what is Jboss FUSE - is it a container or framework ?
                    Jboss Beginner Newbie

                    Thanks Akram-

                     

                    I am running this sample camel project. however, I am getting below error on camel:run Could you pls help

                     

                    [ERROR] *************************************

                    [ERROR] Error occurred while running main from: org.apache.camel.test.blueprint.Main

                    [ERROR]

                    java.lang.reflect.InvocationTargetException

                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                      at java.lang.reflect.Method.invoke(Method.java:597)

                      at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:487)

                      at java.lang.Thread.run(Thread.java:662)

                    Caused by: java.lang.RuntimeException: Gave up waiting for service (objectClass=org.apache.camel.CamelContext)

                      at org.apache.camel.test.blueprint.CamelBlueprintHelper.getOsgiService(CamelBlueprintHelper.java:240)

                      at org.apache.camel.test.blueprint.CamelBlueprintHelper.getOsgiService(CamelBlueprintHelper.java:202)

                      at org.apache.camel.test.blueprint.Main.doStart(Main.java:104)

                      at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)

                      at org.apache.camel.main.MainSupport.run(MainSupport.java:148)

                      at org.apache.camel.main.MainSupport.run(MainSupport.java:352)

                      at org.apache.camel.test.blueprint.Main.main(Main.java:81)

                      ... 6 more

                    [ERROR] *************************************

                    [INFO] ------------------------------------------------------------------------

                    [INFO] BUILD FAILURE

                    [INFO] ------------------------------------------------------------------------

                    [INFO] Total time: 35.380 s

                    [INFO] Finished at: 2015-03-04T15:03:13-06:00

                    [INFO] Final Memory: 21M/304M

                    [INFO] ------------------------------------------------------------------------

                    [ERROR] Failed to execute goal org.apache.camel:camel-maven-plugin:2.12.0.redhat-610379:run (default-cli) on project camel-blueprint: null: MojoExecutionException: InvocationTargetException: Gave up waiting for service (objectClass=org.apache.camel.CamelContext) ->

                     

                     

                    ###############################

                     

                    my pom.xml is

                     

                      <dependencies>

                        <dependency>

                          <groupId>org.apache.camel</groupId>

                          <artifactId>camel-core</artifactId>

                          <version>2.12.0.redhat-610379</version>

                        </dependency>

                        <dependency>

                          <groupId>org.apache.camel</groupId>

                          <artifactId>camel-blueprint</artifactId>

                          <version>2.12.0.redhat-610379</version>

                        </dependency>

                     

                     

                        <!-- logging -->

                        <dependency>

                          <groupId>org.slf4j</groupId>

                          <artifactId>slf4j-api</artifactId>

                          <version>1.7.5</version>

                        </dependency>

                        <dependency>

                          <groupId>org.slf4j</groupId>

                          <artifactId>slf4j-log4j12</artifactId>

                          <version>1.7.5</version>

                        </dependency>

                        <dependency>

                          <groupId>org.slf4j</groupId>

                          <artifactId>jcl-over-slf4j</artifactId>

                          <version>1.7.5</version>

                        </dependency>

                        <dependency>

                          <groupId>log4j</groupId>

                          <artifactId>log4j</artifactId>

                          <version>1.2.17</version>

                        </dependency>

                     

                     

                        <!-- testing -->

                        <dependency>

                          <groupId>org.apache.camel</groupId>

                          <artifactId>camel-test-blueprint</artifactId>

                          <version>2.12.0.redhat-610379</version>

                          <scope>test</scope>

                        </dependency>

                      </dependencies>

                     

                     

                      <build>

                        <defaultGoal>install</defaultGoal>

                     

                     

                        <plugins>

                          <plugin>

                            <groupId>org.apache.maven.plugins</groupId>

                            <artifactId>maven-compiler-plugin</artifactId>

                            <version>2.5.1</version>

                            <configuration>

                              <source>1.6</source>

                              <target>1.6</target>

                            </configuration>

                          </plugin>

                          <plugin>

                            <groupId>org.apache.maven.plugins</groupId>

                            <artifactId>maven-resources-plugin</artifactId>

                            <version>2.6</version>

                            <configuration>

                              <encoding>UTF-8</encoding>

                            </configuration>

                          </plugin>

                     

                     

                          <!-- to generate the MANIFEST-FILE of the bundle -->

                          <plugin>

                            <groupId>org.apache.felix</groupId>

                            <artifactId>maven-bundle-plugin</artifactId>

                            <version>2.3.7</version>

                            <extensions>true</extensions>

                            <configuration>

                              <instructions>

                                <Bundle-SymbolicName>camel-blueprint-example</Bundle-SymbolicName>

                                <Private-Package>com.mycompany.camel.blueprint.example.*</Private-Package>

                                <Import-Package>*</Import-Package>

                              </instructions>

                            </configuration>

                          </plugin>

                     

                     

                          <!-- to run the example using mvn camel:run -->

                          <plugin>

                            <groupId>org.apache.camel</groupId>

                            <artifactId>camel-maven-plugin</artifactId>

                            <version>2.12.0.redhat-610379</version>

                            <configuration>

                              <useBlueprint>true</useBlueprint>

                            </configuration>

                          </plugin>

                     

                     

                        </plugins>

                      </build>

                     

                     

                    </project>

                    ######################################## and my blueprint.xml is

                     

                    <?xml version="1.0" encoding="UTF-8"?>

                    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"

                           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                           xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"

                           xmlns:camel="http://camel.apache.org/schema/blueprint"

                           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"

                           xmlns:soap="http://cxf.apache.org/2003/05/soap-envelope"

                           xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"

                           xmlns:ws="http://www.webserviceX.NET/"

                           xsi:schemaLocation="

                                 http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd

                                 http://camel.apache.org/schema/blueprint/cxf http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd

                                 http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0 http://aries.apache.org/schema/blueprint-cm/blueprint-cm-1.0.0.xsd

                                 http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd

                                 http://cxf.apache.org/blueprint/jaxrs http://http://http://cxf.apache.org/schemas/blueprint/jaxrs.xsd">

                                

                    <cxf:rsServer id="restFrontend"  address="http://localhost:9090/route" serviceClass="com.mycompany.rest.GetQuoteResource"/>

                    <bean id="aggregateOrderBean" class="com.mycompany.beans.AggregarteOrders" />

                     

                     

                      <camelContext xmlns="http://camel.apache.org/schema/blueprint">

                        <route id="Main Route">

                            <from uri="cxfrs:bean:restFrontend"/>

                            <log message="Rest endpoint body = ${body}"/>

                        </route>

                    </camelContext>

                     

                     

                    </blueprint>