Tigase Development Guide

Tigase Team


Table of Contents

1. Basic Information
Tigase Server Elements
Components
Plug-ins
Connector
Data, Stanzas, Packets - Data Flow and Processing
2. Tigase Code Style
Introduction
Source file basics
Technicals details
Source file structure
Import statements
Class declaration
Formatting
Braces
Block indentation: tab
Column limit: 120
Line-wrapping
Whitespace
Specific constructs
Naming
Rules common to all identifiers
Programming Practices
Javadoc
Usage
3. Hack Tigase XMPP Server in Eclipse
Requirements
Installation
Linux
Windows
Setup
API changes in the Tigase Server 5.x
4. Server Compilation
Tigase XMPP Server 5.2.0 and later - Compilation and Generating Distribution Packages
Distribution Packages
Building Server and Generating Packages
Running Server
Tigase Packages Dependency Change - Server Compilation Version 4.x or Later
5. Component Development
Component Implementation - Lesson 1 - Basics
Component Implementation - Lesson 2 - Configuration
Component Implementation - Lesson 3 - Multi-Threading
Component Implementation - Lesson 4 - Service Discovery
Component Implementation - Lesson 5 - Statistics
Component Implementation - Lesson 6 - Scripting Support
Component Implementation - Lesson 7 - Data Repository
ConfigRepository
Accessing other repositories
Component Implementation - Lesson 8 - Lifecycle of a component
Initialization of a component
Reconfiguration
Update of injected dependencies
Stopping a component
REST API
Usage examples
Scripting introduction
HTTP API Scripting
Scripting introduction
Packet Filtering in Components
The Packet Filter API
Configuration
EventBus API in Tigase
EventBus API
Distributed EventBus
Local EventBus
Cluster Map Interface
Requirements
Map creation
Map Changes
Map Destruction
6. Plugin Development
Writing Plugin Code
Using annotation support
Using older non-annotation based implementation
Implementation of processing method
Plugin Configuration
How Packets are Processed by the SM and Plugins
Introduction
SASL Custom Mechanisms and Configuration
Basic SASL Configuration
Logging/Authentication
Built-in Mechanisms
Custom Mechanisms Development
7. Using Maven
Setting up Maven in Windows
Requirements
Setting up Environment Variables
Testing Maven
A Very Short Maven Guide
Snapshot Compilation and Snapshot Package Generation
Release Compilation, Generation
Generating tar.gz, tar.bz2 File With Sources Only
Maven 2.x Support
8. Tests
Tests
Functional Tests
Performance Tests
Stability Tests
Tigase Test Suite
Running Tigase Test Suite (TTS)
Test Suite Scripting Language
Writing Tests for Plugins
Test Case Parameters Description
Test Report Configuration
Basic Test Parameters
Test Case Parameters
9. Experimental
Dynamic Rosters
Problem Description
Syntax and Semantics
Retrieving Contact Data
Updating/Saving Extra Information About the Contact
Configuration
Mobile Optimizations
Problem Description
Solution
Queuing Algorithms
Configuration
Bosh Session Cache
Problem Description
Bosh Session Cache Description
Cache Protocol
10. Old Stuff
11. Tigase DB Schema Explained
12. Why the most recent JDK?
13. API Description for Virtual Domains Management in the Tigase Server
14. Stanza Limitations
Escape Characters