powered by Jive Software

Developer and Administrator Guide



Source code can be obtained from GitHub either via Zip download or by forking the repository - https://github.com/igniterealtime/Spark

In Spark’s source there are two guides for setting up IDE. One for Eclipse and one for IntelliJ. You can find them in /core/src/documentation.

There is also a wiki on how to setup Eclipse to work with GitHub fork - https://discourse.igniterealtime.org/t/working-with-spark-openfire-source-in-eclipse-github/



To install on Windows one can download one of the two installation packages. Bundled with JRE (recommended) and marked as “online”, which means it doesn’t include JRE and one has to install Java on their system manually for Spark to run. Spark is using Java 8 (it is not working with newer versions yet, it won’t also work with Java 7 and older versions. It is recommended to use latest Java 8 version).

On Linux one can use either deb (Debian based) or rpm (Redhat, Fedora, CentOS) installer or a simple tar.gz archive for portable version. All these variants don’t have JRE included and one has to install Java on the system manually. Preferably Oracle’s version as there might be issues with OpenJDK.

2.8.3 RPM/DEB version can be run with /usr/share/spark/bin/startup.sh
2.9.0 RPM/DEB installs itself into /opt/spark

One can also create a link on the desktop pointing to startup.sh - Example

Note: on the latest Ubuntu version it was observed that the system removes Spark after doing regular system updates, when it was installed via deb into /opt/spark (using Ubuntu Software app by double clicking the deb).

There is a dmg installer available for download. One might have to disable Gatekeeper temporarily to be able to install Spark as it comes from an unknown for macOS source (not from Apple Store).

SSO and LDAP integration

There are a number of guides created by users in the forums. Below are some of the guides, which cover setting up Openfire and Spark with LDAP integration and Single Sing On:
How To: Video on setting up SSO/AD with Openfire

Settings and Client Deployment
There is no msi package for Spark (there was in the past, but it was problematic and was removed since; our current installer producing system is not making msi or nobody knows how to setup it to do this). So, there is no easy way to install Spark via group policy. But Spark’s installer supports silent installation, so one can use scripts to deploy it to workstations.

Additionally one may want to also deploy a preconfigured settings file. Most Spark settings are stored in spark.properties file in its profile folder (on Windows it is at C:\Users\username\AppData\Roaming\Spark).

Below are the links to community contributed guides:
Unattended Spark installation (via shutdown script GPO)
PDQ deploy of Spark (on Spiceworks)

Spark supports features, which are currently part of XMPP Core (such as SASL, SSL/TLS, resources etc.). Below is the list of separate supported protocols.

  • XEP-0012 Last Activity
  • XEP-0016 Privacy Lists
  • XEP-0030 Service Discovery (limited to MUC service discovery)
  • XEP-0045 Multi-User Chat
  • XEP-0047 In-Band Bytestreams (an option to force IBB since 2.9.0)
  • XEP-0048 Bookmarks
  • XEP-0049 Private XML Storage
  • XEP-0052 File Transfer
  • XEP-0077 In-Band Registration
  • XEP-0083 Nested Roster Groups (Spark uses " :: " as a delimiter for virtual nesting)
  • XEP-0084 User Avatar
  • XEP-0085 Chat State Notifications
  • XEP-0092 Software Version
  • XEP-0100 Gateway Interaction
  • XEP-0126 Invisibility
  • XEP-0138 Stream Compression
  • XEP-0142 Workgroup Queues (Fastpath)
  • XEP-0144 Roster Item Exchange (presumably Shared Groups in Openfire are based on this XEP, or older XEP-0140 Shared Groups)
  • XEP-0153 vCard-Based Avatars
  • XEP-0172 User Nickname
  • XEP-0199 XMPP Ping
  • XEP-0203 Delayed Delivery
  • XEP-0224 Attention
  • XEP-0245 The /me Command
  • XEP-0280 Message Carbons (added since 2.9.0 - STILL WORK IN PROGRESS)
  • XEP-0363 HTTP File Upload (added since 2.9.0 as a bundled plugin)
  • XEP-0364 Current Off-the-Record Messaging Usage (could be removed in 2.9.0 because of lack of Maven artifacts)
  • XEP-0393 Message Styling (added since 2.9.0)