SwiftMQ Documentation

SwiftMQ Documentation

  • Client
  • CE
  • UR
  • HA
  • Javadocs
  • Release Notes

›Swiftlets

SwiftMQ Client

  • Getting Started
  • JNDI Client
  • JMS Client
  • AMQP 1.0 Client
  • Filetransfer Client

SwiftMQ CE

  • Getting Started
  • Installation
  • Upgrade
  • Software Architecture
  • Administration

    • Preconfig
    • CLI Command Line Interface
    • JMX Administration
    • CLI Message Interface
    • routerconfig.xml Watch Dog
    • System Properties

    Swiftlets

    • AMQP Swiftlet
    • Authentication Swiftlet
    • Deploy Swiftlet
    • JMS Swiftlet
    • JNDI Swiftlet
    • Log Swiftlet
    • Management Swiftlet
    • MQTT Swiftlet
    • Network Swiftlet
    • Queue Manager Swiftlet
    • Routing Swiftlet
    • Scheduler Swiftlet
    • Store Swiftlet
    • Streams Swiftlet
    • Threadpool Swiftlet
    • Timer Swiftlet
    • Topic Manager Swiftlet
    • Trace Swiftlet
    • XA Resource Manager Swiftlet

    APIs

    • CLI Admin API

    How To

    • TLS Configuration
    • HTTP Tunneling Configuration
    • Upgrade SwiftMQ Router and Clients

    In Depth

    • Versioning
    • File Store

SwiftMQ UR

  • Getting Started
  • License
  • Installation
  • Upgrade
  • Administration

    • SwiftMQ Explorer

    Swiftlets

    • JDBC Authentication Swiftlet
    • FileCache Swiftlet
    • JMS Application Container Swiftlet
    • JMS XA Swiftlet
    • JDBC Store Swiftlet
    • AMQP Bridge Extension Swiftlet
    • JMS Bridge Extension Swiftlet
    • JavaMail Bridge Extension Swiftlet
    • Replicator Extension Swiftlet

SwiftMQ HA

  • Getting Started
  • License
  • Installation
  • Upgrade
  • HA Introduction
  • HA Deployment
  • Administration
  • JNDI/JMS under HA
  • Routing under HA
  • Advanced Configuration
  • HA Test Suite

Deploy Swiftlet

Overview

The Deploy Swiftlet is responsible for the 'hot deployment'. It observes so-called deploy spaces and generates events if it detects changes there. The events are consumed from other Swiftlets which have registered listeners on that space.

Deploy Spaces

A deploy space is an entity consisting of a directory path and a check interval. There can be unlimited deploy spaces defined where each deploy space is independent of each other.

The actual deployment within a deploy space is called a bundle. A bundle is a sub-directory below the deploy space directory path. It must contain a deployment descriptor called config.xml and at least 1 jar file. The content of the file config.xml is component specific.

The deploy space registers a timer on the defined check interval which observes the content of the deploy space' directory path of changes which are reported as events to the resp. listener.

Directory Structure

The following example shows the structure of the deploy space extension-swiftlets with 1 deployed bundle, the Portmapper Swiftlet:

data/deploy/   <-- deploy path
       xt$portmapper/   <-- bundle directory
             config.xml         <-- deployment decriptor
             xt$portmapper.jar  <-- a jar file
             _deployed_1034610346186/  <-- actual deployment, don't change the content!
                             config.xml
                             xt$portmapper.jar

To redeploy (Bundle Changed event) a component, you can change the config.xml or the jar files directly below the bundle directory. Don't change the actual deployment directory because it is under control of the Deploy Swiftlet.

Example: How To Deploy Swiftlets

The Swiftlet deployment is very simple. The distribution of the Swiftlets contains a directory deploy where another directory with the Swiflet name is situated. This is e.g. xt$jmsbridge to the JMS bridge. Please copy this directory (xt$jmsbridge) into the router deploy directory (e.g. data/deploy). The Swiftlet is now automatically installed.

If you wish to install a new version of an Swiftlet (in case an installation already exists), please copy the contents out of the directory with the name of the Swiftlet (e.g. xt$jmsbridge) into the directory of the same name of the router deployment directories (e.g. data/deploy/xt$bridge). Hereupon, the old version is uninstalled and the new version is installed.

If you wish to uninstall an installed Swiftlet please delete the content of the respective deployment directory of the Swiftlet. The Swiftlet is now uninstalled.

The deployment bundle of an Swiftlet consists of a file named config.xml and of at least one jar file. The file config.xml contains meta definitions of the Swiftlet configuration as well as CLI commands which are processed during the installation as well as during the de-installation. Thus, every Swiftlet defines its own resources, e.g. queues, threadpools etc. which are deleted again during a de-installation.

During the deployment a copy of config.xml and of the jar files is being made and copied into a seperate subdirectory, which contains a timestamp. These directories are administrated by the Deploy Swiftlet. They represent the deployment in fact. Please do not delete those. Directories which are no longer used contain a file .deleted and they are purged with the next startup.

Configuration

The configuration of the Deploy Swiftlet is defined within the element

      <swiftlet name="sys$deploy" .../>

of the router's configuration file. One can use the SwiftMQ Exlorer or CLI for configuration as well. They both save into that file.

Element List "deploy-spaces", Parent Element: "swiftlet"

Deploy Spaces. This element list contains zero or more "deploy-space" elements with this template definition:

Definition

Attribute Type Mandatory Description
name java.lang.String Yes Name of this Deploy Space
path java.lang.String Yes Path Name
check-interval java.lang.Long Yes Check Interval for Deployment Changes

Values

Attribute Values
path
check-interval Default: 60000

Element List "usage", Parent Element: "swiftlet"

Active Deployments. This element list contains zero or more "deploy-space" elements with this template definition:

Definition

Attribute Type Mandatory Description
name java.lang.String Yes Name of this Deploy Space

Element List "deployments", Parent Element: "deploy-space"

Active Deployments. This element list contains zero or more "deployment" elements with this template definition:

Definition

Attribute Type Mandatory Description
name java.lang.String Yes Name of this Deployment
deploytime java.lang.String No Deploy Time
directory java.lang.String No Actual Deployment Directory

Values

Attribute Values
deploytime
directory
← Authentication SwiftletJMS Swiftlet →
  • Overview
  • Deploy Spaces
    • Directory Structure
  • Example: How To Deploy Swiftlets
  • Configuration
Copyright © 2020 IIT Software GmbH