Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Migration Guide
Red Hat JBoss Fuse
Migrating to Red Hat JBoss Fuse 6.0
Version 6.0
Copyright © 2013 Red Hat, Inc. and/or its affiliates.
13 Oct 2017
Abstract
This guide lays out the issues a user will encounter when upgrading to the latest version of Red Hat JBoss Fuse.
Chapter 1. Migration Overview Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Abstract
1.1. Upgraded Components Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Version upgrades Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Most of the major components in Red Hat JBoss Fuse 6.0 have the same version as the previous release (with the exception of Apache ActiveMQ). The following versions are used in Red Hat JBoss Fuse:
- Apache ActiveMQ has been upgraded from version 5.7.0 to version 5.8.0.
- Apache Camel has version 2.10.0 (same as previous release).
- Apache CXF has version 2.6.0 (same as previous release).
- Apache Karaf kernel has version 2.3.0 (same as previous release).
- Fuse Fabric has been upgraded from version 7.1.0 to 7.2.0.
- Spring framework has been upgraded from version 3.0.7 to version 3.1.3.
Apache ActiveMQ changes Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The changes resulting from the upgrade to version 5.8.0 are detailed in Chapter 2, Apache ActiveMQ Issues.
The most important changes are:
- The
activemq-coreJAR has been replaced by several other smaller JARs. - The JMX MBeans have been renamed.
1.2. Fabric Migration Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
If you use Fuse Fabric containers to deploy your applications, you should read this section to understand the issues that affect migration to Red Hat JBoss Fuse. If you use standalone containers, however, you can ignore this section.
Ensemble profiles not versioned Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In Red Hat JBoss Fuse version 6.0, ensemble profiles (that is, the profiles that are generated automatically to configure a Fabric Server) are no longer versioned. Ordinary (user-defined) profiles are not affected by this change.
1.3. Management Console Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Management Console now bundled with JBoss Fuse Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Since JBoss Fuse 6.0, the management console is provided as a standard component of the JBoss Fuse product. There is no need to download it separately. It can be enabled at any time by installing the
fabric-webui Karaf feature. For details, see Using the Management Console.
Chapter 2. Apache ActiveMQ Issues Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Abstract
Red Hat JBoss Fuse 6.0.0.redhat-024 uses Apache ActiveMQ 5.8.0. Since the last release, Apache ActiveMQ has been upgraded from version 5.7.0 to version 5.8.0. This introduces a few migration issues.
2.1. Key Migration Issues Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
activemq-core component Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In version 5.8, the
activemq-core component is no longer available. It has been split up into the following components:
activemq-client activemq-broker activemq-jdbc-store activemq-kahadb-store activemq-leveldb-store
activemq-client
activemq-broker
activemq-jdbc-store
activemq-kahadb-store
activemq-leveldb-store
This enables your applications to be more lightweight and modular. For example, a Java client application now requires only the
activemq-client JAR, which is much smaller than the old activemq-core JAR.
If you are using the Apache Maven build system, you must replace the
activemq-core artifact by either the activemq-broker artifact or the activemq-client artifact.
Note
The
activemq-all component (which encapsulates the whole ActiveMQ runtime) is still available.
JMX MBeans renamed Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The JMX MBeans exposed by ActiveMQ have been refactored to conform to a hierarchical naming structure. If you have any application code that accesses JMX MBeans, you must re-write your code to use the new
ObjectName values. All MBeans now share the type=Broker attribute (where type now starts with a lowercase t). The mapping from old to new ObjectName values is shown in the following table:
| Object Type | Old ObjectName | New ObjectNamed |
|---|---|---|
Broker | Type=Broker | type=Broker |
Destination | Type=Queue|Topic,Destination=<destination identifier> | type=Broker,destinationType=Queue|Topic,destinationName=<destination identifier> |
Connector | Type=Connector | type=Broker,connector=clientConnectors |
NetworkConnector | Type=NetworkConnector | type=Broker,connector=networkConnectors |
Connection | Type=Connection | type=Broker,connector=*,connectionViewType=remoteAddress|clientId |
2.2. New Features Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
MQTT transport Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Red Hat JBoss A-MQ now supports the MQTT (MQ Telemetry Transport) transport. There are three variations of the MQTT transport: plain MQTT (
mqtt: URL), MQTT+NIO (mqtt+nio: URL), and MQTT+NIO+SSL (mqtt+nio+ssl: URL).
Note
You cannot use the MQTT transport with the JMS client API, because the provided implementation of the JMS client API supports only the Openwire protocol. You must use a dedicated MQTT client to connect to the broker over the MQTT transport.
Stomp 1.2 Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Red Hat JBoss A-MQ now supports Stomp version 1.2.
Note
You cannot use the Stomp transport with the JMS client API, because the provided implementation of the JMS client API supports only the Openwire protocol. You must use a dedicated Stomp client to connect to the broker over the Stomp transport.
MS SQL JDBC driver 4.0 Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Red Hat JBoss A-MQ now supports using MS SQL JDBC driver 4.0 with the JDBC persistence adapter.
JMS selector expressions Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In order to be compliant with the JMS specification,
String property values are no longer converted automatically into numeric values in ActiveMQ 5.8.
For example, if a message has an
age property equal to the string value, 21, the selector, age > 18, will not match the property value in ActiveMQ version 5.8. If you would prefer the property to match the selector in this case (by converting the string to a numeric value), you can use the following selector instead: convert_string_expressions:age > 18.
Published address policy Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
It is now possible to specify whether a broker should advertise its endpoint address using a hostname, numeric IP address, or a fully-qualified domain name (FQDN). You can specify this policy by setting the
publishedAddressPolicy attribute on the broker's transportConnector element.
2.3. Feature Previews Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Technical previews of features in development Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The following features are included in the JBoss Fuse 6.0 release in order to let you preview technology that is currently under development. These features are not yet supported and are not suitable for deployment in a production environment.
AMQP protocol Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Red Hat JBoss Fuse 6.0 includes a technical preview of the AMQP 1.0 protocol (OASIS Advanced Message Queuing Protocol). You can access the AMQP protocol using a URI of the form,
amqp://Hostname:Port. SSL security is also supported.
Important
This is a technical preview only. The AMQP protocol is currently not supported and is not suitable for deployment in a production environment.
Note
You cannot use the AMQP protocol with the JMS client API, because the provided implementation of the JMS client API supports only the Openwire protocol. You must use a dedicated AMQP client to connect to the broker with the AMQP protocol.
LevelDB store (on selected platforms) Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Red Hat JBoss Fuse includes a technical preview of the new LevelDB store, which uses Google's LevelDB library to maintain the indexes in the log files. The LevelDB store supports XA transactions in ActiveMQ 5.8. The LevelDB store is available only on Windows, Linux, and Mac OS platforms.
Important
This is a technical preview only. The LevelDB store is currently not supported and is not suitable for deployment in a production environment.
2.4. Persistence and Failover Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Pure master/slave failover mechanism Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The pure master/slave failover mechanism, which was previously deprecated, has been removed from version 5.8. It is recommended that you migrate such a system to use either the shared filesystem mechanism or the shared database mechanism instead.
AMQ message store Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The AMQ message store is now deprecated and will be removed in a future release.
Kaha message store Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The Kaha message store is now deprecated and will be removed in a future release.
Note
The Kaha message store is not the same as the KahaDB message store. The Kaha store represents an earlier generation of technology. The KahaDB message store is still supported (and recommended).
Recommended message stores Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
If you are using one of the deprecated message stores, it is recommended that you migrate to one of the following message stores instead:
- KahaDB message store.
- JDBC message store.
2.5. Transport Protocol Changes Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
XMPP transport Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The XMPP transport is now deprecated and will be removed in a future release.
Openwire over UDP Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The Openwire over UDP protocol combination is now deprecated and will be removed in a future release.
2.6. Dependency Upgrades Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Spring framework Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In ActiveMQ 5.8.0, the Spring framework is upgraded from version 3.0.7 to version 3.1.3.
MQTT client Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In ActiveMQ 5.8.0, the MQTT client library is upgraded to version 1.4.
2.7. Tooling Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Maven plug-ins Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Apache ActiveMQ provides a number of plug-ins to use in the Apache Maven build system. In version 5.8.0, the names of these Maven plug-ins has been changed in order to comply with standard Maven plug-in naming conventions. The artifact IDs of the plug-ins have changed as follows:
| Old Maven Plug-In Name | New Maven Plug-In Name |
|---|---|
maven-activemq-plugin | activemq-maven-plugin |
maven-activemq-memtest-plugin | activemq-memtest-maven-plugin |
maven-activemq-perf-plugin | activemq-perf-maven-plugin |
2.8. Migrating Clients Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Migrating Apache ActiveMQ clients Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In general, it is recommended that you update your Apache ActiveMQ clients at the same time that you update the brokers, in order to guarantee compatibility between clients and brokers.
It is possible, in some cases, that older client versions might be interoperable with later broker versions. The Openwire protocol supports version negotiation, such that an old client can negotiate the lowest common version with its peer and use that version. But Red Hat JBoss Fuse does not have a comprehensive test suite for testing compatibility between all of the different versions of Apache ActiveMQ. Hence, to be sure of compatibility, it is recommended that you upgrade your clients along with your brokers to use the same version.
Legal Notice Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Trademark Disclaimer
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Apache, ServiceMix, Camel, CXF, and ActiveMQ are trademarks of Apache Software Foundation. Any other names contained herein may be trademarks of their respective owners.
Legal Notice Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Third Party Acknowledgements
One or more products in the Red Hat JBoss Fuse release includes third party components covered by licenses that require that the following documentation notices be provided:
- JLine (http://jline.sourceforge.net) jline:jline:jar:1.0License: BSD (LICENSE.txt) - Copyright (c) 2002-2006, Marc Prud'hommeaux
mwp1@cornell.eduAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of JLine nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Stax2 API (http://woodstox.codehaus.org/StAX2) org.codehaus.woodstox:stax2-api:jar:3.1.1License: The BSD License (http://www.opensource.org/licenses/bsd-license.php)Copyright (c) <YEAR>, <OWNER> All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - jibx-run - JiBX runtime (http://www.jibx.org/main-reactor/jibx-run) org.jibx:jibx-run:bundle:1.2.3License: BSD (http://jibx.sourceforge.net/jibx-license.html) Copyright (c) 2003-2010, Dennis M. Sosnoski.All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of JiBX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - JavaAssist (http://www.jboss.org/javassist) org.jboss.javassist:com.springsource.javassist:jar:3.9.0.GA:compileLicense: MPL (http://www.mozilla.org/MPL/MPL-1.1.html)
- HAPI-OSGI-Base Module (http://hl7api.sourceforge.net/hapi-osgi-base/) ca.uhn.hapi:hapi-osgi-base:bundle:1.2License: Mozilla Public License 1.1 (http://www.mozilla.org/MPL/MPL-1.1.txt)