https://github.com/igniterealtime/jxmpp
A Java library providing fundamental abstractions for XMPP
https://github.com/igniterealtime/jxmpp
android java xmpp
Last synced: 10 months ago
JSON representation
A Java library providing fundamental abstractions for XMPP
- Host: GitHub
- URL: https://github.com/igniterealtime/jxmpp
- Owner: igniterealtime
- License: apache-2.0
- Created: 2014-05-31T11:46:55.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-10-24T17:36:33.000Z (over 1 year ago)
- Last Synced: 2025-04-12T17:48:36.424Z (11 months ago)
- Topics: android, java, xmpp
- Language: Java
- Homepage:
- Size: 727 KB
- Stars: 98
- Watchers: 14
- Forks: 52
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - JXMPP
README
JXMPP
=====
[](https://www.openhub.net/p/jxmpp)
About
-----
JXMPP is an Open Source Java base library for XMPP. It provides often
used functionality needed to build an XMPP stack.
Resources
---------
- Nightly Javadoc: http://jxmpp.org/nightly/javadoc/
- Maven Releases: https://oss.sonatype.org/content/repositories/releases/org/jxmpp
- Maven Snapshots: https://oss.sonatype.org/content/repositories/snapshots/org/jxmpp
JXMPP Components
================
JXMPP consists of several components, you can use all of them or decide to pick only the ones that suit your needs.
jxmpp-core
----------
Provides core functionality most software that interacts with XMPP requires.
Highlights include
### XmppDateTime
A utility to parse date/time Strings in the various formats used within XMPP to a Date instance in a efficient manner without depending on third party libraries
### XmppStringUtils
Contains various String operations often needed when using XMPP
### XmppStringPrepUtil
A utility to apply the various string transformation profiles required by XMPP in a efficient manner. Does also utilize a Cache for maximum efficiency.
jxmpp-jid
---------
This part of the API abstracts XMPP JIDs with Java classes, performing string preparation and validation.
Although JIDs are split over five classes, jxmpp-jid is designed so that you often only need to use the simple `Jid` type.
It therefore combines the simplicity of the single JID class approach, where JIDs are represented by a single class no matter what kind of JID they are, which the expressiveness of the JID class hierarchy approach, where you can express in a method signature the required JID type (e.g. `foo(BareJid bareJid)`).
Jid instances are created with the help of the `JidCreate` utility:
```java
Jid jid = JidCreate.from("foo@bar.example");
```
```text
,______Jid______,
/ / \ \
EntityFullJid / \ DomainFullJid
/ \
EntityBareJid DomainBareJid
```
There are also the `BareJid`, `FullJid`, `EntityJid` and `DomainJid` interfaces, which are implemented by the Jid types as follows:
```text
BareJid FullJid
/ \ / \
/ \ / \
EntityBareJid DomainBareJid EntityFullJid DomainFullJid
EntityJid DomainJid
/ \ / \
/ \ / \
EntityBareJid EntityFullJid DomainBareJid DomainFullJid
```
| Example JID | JXMPP JID Type |
|---------------------------|-----------------|
| example.org | `DomainBareJid` |
| example.org/resource | `DomainFullJid` |
| user@example.org | `EntityBareJid` |
| user@example.org/resource | `EntityFullJid` |
jxmpp-stringprep-libidn
-----------------------
Perform XMPP's StringPrep with the help of libidn.
Use `LibIdnXmppStringprep.setup()` to make `XmppStringPrepUtil` use libidn.
jxmpp-util-cache
----------------
Provides a lightweight and efficient Cache without external dependencies used by various JXMPP Components.
jxmpp-strings-testframework
---------------------------
A framework to test "XMPP Strings".
Simply run
```bash
$ ./test-xmpp-strings
```
to run the testframework.