-
Notifications
You must be signed in to change notification settings - Fork 885
Smack 4.2 Readme and Upgrade Guide
Smack 4.2 is the upcoming release of Smack. This is an early draft version of this document. The scheduled and already fixed issue can be found in the JIRA issue status for Smack 4.2.
Methods invoking network operations and awaiting responses are now interruptible. This means you can interrupt the thread performing them in case they are take too long to complete.
JXMPP's JID types provide an powerful yet simply to use abstraction over an XMPP address (also called "JID"). This helps to minimize problems caused by using the wrong JID type or by the normalization applied to JIDs. To create a JID from a CharSequence
(this includes String
) simply use JidCreate.from(charSequence)
.
The MUC API was improved allowing easy creation of rooms and joining them.
Smack now supports SASL authzid.
Warning: This list may not be complete
- Use jxmpp-jid, and Jid types
- Rewrote the PEP API to use the existing PubSub API
- Renamed
processPacket(Stanza)
toprocessStanza(Stanza)
- Renamed
PacketCollector
toStanzaCollector
In previous versions of Smack, ConnectionConfiguration.setHost(String)
could be used to set the XMPP service's host IP address. This is no longer possible due to the added DNSSEC support. You have to use the new connection configuration ConnectionConfiguration.setHostAddress(InetAddress)
instead.
Use ConnectionConfiguration.performSaslAnonymousAuthentication()
instead. Then simply call the zero argument variant of login()
.
Smack 4.2 provides two artifacts as entry points that you can refer to when including Smack in your project: smack-java7 and smack-android. A typical Smack setup may also want to additional declare dependencies on smack-tcp, smack-extensions and smack-experimental
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
mavenCentral()
}
dependencies {
compile "org.igniterealtime.smack:smack-java7:4.2.0"
// Optional for XMPPTCPConnection
compile "org.igniterealtime.smack:smack-tcp:4.2.0"
// Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats, …)
compile "org.igniterealtime.smack:smack-im:4.2.0"
// Optional for XMPP extensions support
compile "org.igniterealtime.smack:smack-extensions:4.2.0"
}
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-java7</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-tcp</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-im</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-extensions</artifactId>
<version>4.2.0</version>
</dependency>
<dependency org="org.igniterealtime.smack" name="smack-java7" rev="4.2.0"/>
<dependency org="org.igniterealtime.smack" name="smack-tcp" rev="4.2.0"/>
<dependency org="org.igniterealtime.smack" name="smack-extensions" rev="4.2.0"/>
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
mavenCentral()
}
dependencies {
compile "org.igniterealtime.smack:smack-android-extensions:4.2.0"
compile "org.igniterealtime.smack:smack-tcp:4.2.0"
}
dependencies {
compile "org.igniterealtime.smack:smack-android:4.2.0"
compile "org.igniterealtime.smack:smack-tcp:4.2.0"
}
dependencies {
compile "org.igniterealtime.smack:smack-android-extensions:4.2.0"
compile "org.igniterealtime.smack:smack-experimental:4.2.0"
compile "org.igniterealtime.smack:smack-tcp:4.2.0"
}
We recommend using the MavenToAndroidAnt Python3 script to fetch the required artifacts from maven central. Use the following artifact definition file
org.igniterealtime.smack,smack-android,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-android-extensions,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-core,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-tcp,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-extensions,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-experimental,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-resolver-minidns,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.igniterealtime.smack,smack-sasl-provided,4.1.1,1357B01865B2503C18453D208CAC2A9678548E35
org.jxmpp,jxmpp-core,0.4.2-beta1,1357B01865B2503C18453D208CAC2A9678548E35
org.jxmpp,jxmpp-util-cache,0.4.2-beta1,1357B01865B2503C18453D208CAC2A9678548E35
de.measite.minidns,minidns,0.1.1,4677EF84C286721DA33C09C98D2028BA8AF1E192
and save it as artifacts.csv
. Now run
getMavenArtifactsNg.py -f artifacts.csv -p <projectdir>
to let the script download and install the artifacts into your Android Ant project.
Please have a look at
Please report bugs in the "Smack Developers" forum. The IRC channel #smack
on freenode can be used to discuss Smack and to ask for help.