Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 4. Fuse Standalone

4.1. Supported containers

Fuse standalone 7.0 is supported on the following runtime containers:

  • Spring Boot (standalone)
  • Apache Karaf
  • Red Hat JBoss Enterprise Application Platform (JBoss EAP)

4.2. New features

The main new features of Fuse standalone in version 7.0 are:

  • Spring Boot standalone is now a deployment option for Fuse applications. Standalone mode is where a Spring Boot application is built as a Jar file and runs directly in a Java virtual machine (JVM).
  • Major upgrade of JBoss EAP to version 7.1.
  • Apache Camel is upgraded to version 2.21.
  • Apache Camel features the following new Enterprise Integration Patterns:

    • Claim Check EIP with push/pop functionality.
    • Saga EIP for simulating transactions in distributed systems.
  • Apache Camel supports the following new data formats:

    • camel-asn1 - the ASN.1 data format is used for file transfer with telecommunications protocols.
    • camel-fastjson - JSon data format (using the FastJSon library) is used to unmarshal a JSon payload to a POJO; or to marshal a POJO back to a JSon payload.
    • camel-thrift - the Thrift data format allows you to call and expose remote procedure calls (RPC) with the Apache Thrift data format and serialization mechanism.
  • Many more Camel components are available for Camel on JBoss EAP. There are now almost as many Camel components available for the JBoss EAP container as for the Apache Karaf container.
  • Major upgrade of Apache Karaf, from version 2.4 to version 4.x.
  • Apache Karaf supports OSGi R6 (upgraded from OSGi R5).
  • Apache Karaf is now configured to use the Narayana transaction manager (replacing the Geronimo transaction manager used in Fuse 6.x).
  • Apache Karaf now supports the Undertow servlet container.
  • Apache Karaf has a new features resolver, which simplifies feature installation and lifecycle. The new resolver checks the feature requirements (defined directly in the features XML), and checks which bundles provide the capabilities to satisfy those requirements. It enables Karaf to install bundles required by features automatically.
  • Client-side integration with AMQ 7 (based on ActiveMQ Artemis) is supported in Fuse 7.0. For more details, see the Supported Configurations page.
  • Web tooling has been upgraded to the PatternFly look and feel.
  • The following Apache Camel components are new in Fuse 7.0:

    • camel-atomix - a component to integrate Camel with Atomix
    • camel-aws - KMS component for managing Amazon KMS
    • camel-aws - MQ component for working with Amazon MQ
    • camel-aws - added lamda component to be used for invoking and working with AWS Lambda functions
    • camel-azure - to integrate with Microsoft Azure Cloud services
    • camel-caffeine - a component that allows you to interact with a Caffeine cache
    • camel-couchbase - The couchbase component allows you to treat CouchBase instances as a producer or consumer of messages.
    • camel-crypto-cms - a component for cryptographic message syntax
    • camel-digitalocean - The digitalocean component allows you to interact with the Digitalocean cloud
    • camel-drill - The drill component gives you the ability to querying to Apache Drill Cluster
    • camel-elasticsearch5 - to communicate with Elasticsearch Server using 5.x APIs
    • camel-elasticsearch-rest - The elasticsearch component is used for interfacing with ElasticSearch server using 5.x REST API.
    • camel-google-bigquery - Google BigQuery data warehouse for analytics (not on Apache Karaf).
    • camel-google-pubsub - allow you communicate with Google Cloud Pub/Sub
    • camel-grpc - The gRPC component is using for calling remote procedures via HTTP/2
    • camel-headersmap - a faster implementation of case-insenstive map (used by camel message headers) which can be added to classpath at runtime to be auto installed
    • camel-iec60870 - to integrate Camel with IEC 60870-5-104 IoT devices
    • camel-master - a component that leverage Cluster SPI to ensure that only a single consumer in a camel cluster is active at any point in time.
    • camel-milo - An OPC UA client and server component based on Eclipse Milo
    • camel-mongodb3 - Evolution of the component based on v3 driver. Camel-Mongodb still exists allowing compatibility with the v2 driver.
    • camel-olingo4 - Communicates with OData 4.0 services using Apache Olingo OData API.
    • camel-openstack - allow you to communicate with an Openstack infrastructure
    • camel-opentracing - Distributed tracing using OpenTracing
    • camel-pubnub - To send and receive messages to PubNub data stream network for connected devices.
    • camel-reactor - a reactor based back-end for camel’s reactive streams component
    • camel-rest-swagger - for accessing REST resources using Swagger specification as configuration
    • camel-sjms2 - JMS 2.0 api compatible component of the SJMS component.
    • camel-spring-cloud - integrates with Spring Cloud
    • camel-spring-cloud-netflix - integrates with Spring Cloud Netflix (not on Apache Karaf or JBoss EAP).
    • camel-thrift - the Thrift component allows to call and expose remote procedures (RPC) with Apache Thrift data format and serialization mechanism
    • camel-tika - integrates with Apache Tika to extract content and metadata from thousands of file types
    • camel-twilio - a component that allows you to interact with Twilio REST APIs to call phones, send texts, etc. from a Camel route
    • camel-wordpress - To integrate Camel with Wordpress (not on JBoss EAP).
    • camel-xchange - The camel-xchange component provide access to many bitcoin and altcoin exchanges for trading and accessing market data (not on JBoss EAP).
    • camel-yql - The YQL (Yahoo! Query Language) platform enables you to query, filter, and combine data across the web (not on JBoss EAP).
    • camel-zendesk - interacts with Zendesk server with using Zendesk Java Client

4.3. Important notes

Important notes for the Fuse 7.0 release of the Fuse standalone distribution:

Fuse Console (Hawtio) is not remotely accessible by default
In Fuse 7.0, remote access to the Fuse Console is restricted by a Cross-Origin Resource Sharing (CORS) whitelist. By default, the Fuse Console can only be accessed from the local host. To open up access from remote hosts, you need to add hostnames to the CORS whitelist. For more details, see Managing Fuse.
Some Karaf-related components have been removed in 7.0
As part of the consolidation and refactoring of Fuse, a number of components related to the Apache Karaf container have been removed in version 7.0. For more details, see Chapter 5, Deprecated and Removed Features.

4.4. Upgrading to Fuse 7.0.1

The Fuse 7.0.1 micro release provides fixes for the issues listed in Chapter 8, Issues Resolved in Fuse 7.0.1.

4.4.1. Upgrading applications to 7.0.1 using the old-style BOM

To upgrade your Fuse standalone applications to use the 7.0.1 dependencies, edit the Maven pom.xml and change the versions of the BOMs and Maven plugins listed in the following table:

Table 4.1. Maven BOM and plugin versions for 7.0.1 using the old-style BOM

Container TypeMaven BOM or Plugin Artifact groupId/artifactIdVersion for Fuse 7.0.1

Spring Boot

io.fabric8/fabric8-project-bom-camel-spring-boot

3.0.11.fuse-000065-redhat-3

io.fabric8/fabric8-maven-plugin

3.5.33.fuse-000089-redhat-4

org.springframework.boot/spring-boot-maven-plugin

1.5.13.RELEASE

Apache Karaf

io.fabric8/fabric8-project-bom-fuse-karaf

3.0.11.fuse-000065-redhat-3

org.apache.karaf.tooling/karaf-maven-plugin

4.2.0.fuse-000280-redhat-4

JBoss EAP

org.wildfly.camel/wildfly-camel-bom

5.1.0.fuse-000083-redhat-3

4.4.2. Upgrading applications to 7.0.1 using the new-style BOM

To upgrade your Fuse standalone applications to use the 7.0.1 dependencies, edit the Maven pom.xml and change the versions of the BOMs and Maven plugins listed in the following table:

Table 4.2. Maven BOM and plugin versions for 7.0.1 using the new-style BOM

Container TypeMaven BOM or Plugin Artifact groupId/artifactIdVersion for Fuse 7.0.1

Spring Boot

org.jboss.redhat-fuse/fuse-springboot-bom

7.0.1.fuse-000008-redhat-4

org.jboss.redhat-fuse/fabric8-maven-plugin

7.0.1.fuse-000008-redhat-4

org.jboss.redhat-fuse/spring-boot-maven-plugin

7.0.1.fuse-000008-redhat-4

Apache Karaf

org.jboss.redhat-fuse/fuse-karaf-bom

7.0.1.fuse-000008-redhat-4

org.jboss.redhat-fuse/karaf-maven-plugin

7.0.1.fuse-000008-redhat-4

JBoss EAP

org.jboss.redhat-fuse/fuse-eap-bom

7.0.1.fuse-000008-redhat-4

For more details about using the new-style BOM, see Migrate Maven Projects in "Migration Guide".

4.5. BOM files for Fuse 7.0

To configure your Maven projects to use the supported Fuse 7.0 artifacts, use the BOM versions documented in this section.

4.5.1. Old-style BOM

To upgrade your Fuse standalone applications to use the 7.0 dependencies, edit the Maven pom.xml and change the versions of the BOMs and Maven plugins listed in the following table:

Table 4.3. Maven BOM and plugin versions for 7.0 using the old-style BOM

Container TypeMaven BOM or Plugin Artifact groupId/artifactIdVersion for Fuse 7.0

Spring Boot

io.fabric8/fabric8-project-bom-camel-spring-boot

3.0.11.fuse-000039-redhat-1

io.fabric8/fabric8-maven-plugin

3.5.33.fuse-000067-redhat-1

org.springframework.boot/spring-boot-maven-plugin

1.5.12.RELEASE

Apache Karaf

io.fabric8/fabric8-project-bom-fuse-karaf

3.0.11.fuse-000039-redhat-1

org.apache.karaf.tooling/karaf-maven-plugin

4.2.0.fuse-000237-redhat-1

JBoss EAP

org.wildfly.camel/wildfly-camel-bom

5.1.0.fuse-000063-redhat-1

4.5.2. New-style BOM

To upgrade your Fuse standalone applications to use the 7.0 dependencies, edit the Maven pom.xml and change the versions of the BOMs and Maven plugins listed in the following table:

Table 4.4. Maven BOM and plugin versions for 7.0 using the new-style BOM

Container TypeMaven BOM or Plugin Artifact groupId/artifactIdVersion for Fuse 7.0

Spring Boot

org.jboss.redhat-fuse/fuse-springboot-bom

7.0.0.fuse-000027-redhat-1

org.jboss.redhat-fuse/fabric8-maven-plugin

7.0.0.fuse-000027-redhat-1

org.jboss.redhat-fuse/spring-boot-maven-plugin

7.0.0.fuse-000027-redhat-1

Apache Karaf

org.jboss.redhat-fuse/fuse-karaf-bom

7.0.0.fuse-000027-redhat-1

org.jboss.redhat-fuse/karaf-maven-plugin

7.0.0.fuse-000027-redhat-1

JBoss EAP

org.jboss.redhat-fuse/fuse-eap-bom

7.0.0.fuse-000027-redhat-1

For more details about using the new-style BOM, see Migrate Maven Projects in "Migration Guide".