Skip to content

Universal Router (UR)

Overview

The Universal Router extends the Community Edition (CE) with additional capabilities for enterprise messaging scenarios. UR includes all CE functionality plus extensions for bridging, caching, and integration with external systems.

Installation and Directory Structure

The UR distribution uses the same directory structure as CE, with the same startup scripts (router, cli, clis, cliamqp) and the same configuration layout (data/config/routerconfig.xml, data/log/, data/store/, data/preconfig/).

The only addition is the optional-swiftlets/ directory, which contains optional kernel replacement swiftlets (JDBC-backed Authentication and Store). To activate an optional swiftlet, copy it into the kernel/ directory and update routerconfig.xml accordingly.

Starting the router, connecting with the CLI, and all administrative procedures are identical to CE.

What UR Adds

Extension Swiftlets

UR provides hot-deployable extension swiftlets that add functionality beyond the CE core:

  • AMQP Bridge (xt$amqpbridge) — Bridges messages between SwiftMQ and external AMQP 1.0 brokers.
  • JMS Bridge (xt$jmsbridge) — Bridges messages between SwiftMQ and external JMS providers.
  • JavaMail (xt$javamail) — Sends email notifications triggered by queue messages.
  • Replicator (xt$replicator) — Replicates messages between routers for data distribution.

Additional System Swiftlets

  • File Cache (sys$filecache) — Serves static files from the router's filesystem via HTTP.
  • JAC (sys$jac) — Java Application Container for deploying custom server-side components.

Optional Kernel Replacements

UR includes optional JDBC-based replacements for CE kernel swiftlets, located in the optional-swiftlets/ directory:

  • JDBC Authentication (sys$authentication) — Stores users, groups, and grants in a JDBC database instead of XML configuration.
  • JDBC Store (sys$store) — Uses a JDBC database as the persistent message store instead of the file-based store.

These are drop-in replacements: copy the swiftlet into kernel/, configure the alternative swiftlet in routerconfig.xml, and the router uses the JDBC-backed implementation transparently.

Deployment

Extension swiftlets are deployed into the data/deploy/ directory and the router discovers and starts them automatically at runtime. Optional kernel swiftlets must be placed in kernel/ and configured in routerconfig.xml before startup.