Skip navigation
All Places > Ignite Realtime Blog > Authors Flow
1 2 Previous Next

Ignite Realtime Blog

24 Posts authored by: Flow Champion
Flow

Smack 4.2.1 released

Posted by Flow Champion Aug 14, 2017

I've tagged and released Smack 4.2.1 to Maven Central. We decided to omit the smack-omemo* in this release packages as the API is not yet stable. Paul is currently working on encrypted Jingle Transports as part of his GSOC project which also involves OMEMO, and we probably will make some API changes to the existing OMEMO API because of that. As always daily snapshot builds are available from igniterealtime.org/repo.

Flow

Smack 4.2.0 released

Posted by Flow Champion Mar 20, 2017

Around two years ago, on 2015-03-29 to be precise, Smack 4.1.0 was tagged and released. A few days ago I've tagged and released Smack 4.2.0 to Maven Central. The 4.2.0 release marks a milestone for Smack, but before I got into the exciting new features, I'd like to thank the various contributors:

 

$ git shortlog -sn 4.1.0..4.2.0

   459  Florian Schmaus

     8  Fernando Ramirez

     3  Anno van Vliet

     3  Tibo-lg

     3  damencho

     3  ramabit

     2  Andrey Starodubtsev

     2  Vyacheslav Blinov

     2  stawny

     1  Andrey Prokopenko

     1  Craig

     1  Daniel Hintze

     1  Dave Cridland

     1  David Black

     1  Dmitry Deshevoy

     1  Grigory Fedorov

     1  Hugues Bruant

     1  Ishan Khanna

     1  TheHaf

     1  Tomas Nosek

     1  Tomáš Havlas

     1  UltimateZero

     1  Vaibhav

     1  meisterfuu

     1  rohanag12

     1  vfite

 

I can not remember when Smack had so many contributors. Thanks everyone and keep the contributions coming.

 

The notable changes to Smack 4.2 include support for DNSSEC (thanks to a previous MiniDNS GSOC project), JIDs as first class citizens by using JXMPP's JID API, and tons of other improvements, new features and bug fixes. You can read more in the Smack 4.2 Readme and Upgrade Guide and the Smack's JIRA release notes.

 

Last but not least, thanks to Bilal Siddiq, Smack now has a logo.

 

Ever wanted to contribute to open source? Are you interested in XMPP/DNS/DNSSEC? Google gives students the chance to work on open source projects and get paid for it as part of Google's Summer of Code 2017. The XSF acts as umbrella organization for projects like Smack and MiniDNS [4]. Feel free to contact me in the gsoc@muc.xmpp.org if you are interested in participating or if you want to discuss your own Smack/MiniDNS related project ideas.

Flow

Smack 4.2.0-rc3 released

Posted by Flow Champion Feb 11, 2017

I've just released Smack 4.2.0-rc3 to Maven Central. Smack 4.2.0 is scheduled to be released early Q2 2017, according to Smack's release life cycle. And right now, it looks like the train is right on time.

The Ignite Realtime community is proud to announce that nearly 2 years after the release of Smack 4.1, the first Release Candidate (RC) of Smack 4.2 has been uploaded to Maven Central. Smack 4.2 marks another milestone in the development of Smack. With the availability of the first RC, the API of Smack 4.2 was sealed. This means that now is the ideal time for Smack users to adopt their codebase to the new Smack 4.2 API, and eventually start using Smack 4.2 in the experimental/development branch of their codebase. Please consult the Smack 4.2 Readme and Upgrade Guide for more information.

 

I'd like to use this post also to draw your attention at a very important topic. The codebase of smack-core and -tcp has grown historically over the past 15 years. This is not an issue per se. Smack was well designed from the beginning, is now modular and not affected by bit rot. But especially on important class, namely XMPPTCPConnection, has come to age. It is based on threads, when it should use NIO. It uses triggers for state changes, when it should be designed as finite state machine. And some more. I know that a lot of people are affected by Smack creating at least 2 threads per connection (instead of using NIO). This all also contributed at some amount to the latest security vulnerability found in Smack (SMACK-739 / CVE 2016-10027).

 

The only solution to tackle this would be to re-implement the affected code from scratch. But needles to say that this also would require funding, as it is not a simple one weekend task. I hope to have the resource to do this at some point in the future. If you think you can help, or know someone who possibly would be interested support the funding, then please contact me.

A critical security vulnerability has been found in Smack. Please upgrade immediately to Smack 4.1.9. Like all Smack releases with the same major and minor version numbers, 4.1.9 is a drop in replacement for all Smack 4.1 releases. Smack 4.1.9 is available on Maven Central.

 

The Ignite Realtime community would like to thank Sylvain Sarméjeanne for discovering and reporting the vulnerability to security@igniterealtime.org.

I've just uploaded Smack 4.1.8 and 4.2.0-beta2 to Maven Central.

 

Smack 4.1.8 fixes a few minor issues and is expected to be the last release of the 4.1 branch. As always, Smack releases with the same major and minor version numbers are drop in replacements. Ideally you just need to change a single variable somewhere in your build system.

 

Smack 4.2.0-beta2 is the latest beta of Smack's current development branch. Notable additions include support for XEP-0313: Message Archive Management (MAM) and the IoT XEP series.

Starting with b91978dcc4ae partial support for the IoT XEPs was added to Smack. The XEPs consists, amongst other XEPs, of

  • XEP-0323: Data
  • XEP-0324: Provisioning
  • XEP-0325: Control
  • XEP-0347: Discovery

The XEPs are in experimental state, which means changes to them are possible.

Smack does currently only support a partial set of the mechanisms specified, especially when it comes to Data and Control. For example only boolean and integer values can be read and written But support for more data types can be easily added.

 

The IoT API for those XEPs is available in the latest snapshot builds of Smack, which are available via Maven Central's snapshot repository.  A quick start guide can be found here.

 

The development of the API was sponsored by Clayster.

Clayster creates technology to secure trust in the transactions between physical and digital entities, and strives to be that generic foundation for your physical assets digital life.

Clayster has an IoT discovery and provisioning platform supporting XEP-0347 and XEP-0324. The platform is available for those who are interested to explore XMPP and IoT further.  If you don't want to run your own infrastructure, Clayster is able to provide an XMPP Server and the discovery/provisioning platform for you. Feel free to reach out to rikard at clayster.com if you are interested to learn more about using XMPP for your next IoT project. www.clayster.com

Two new releases of Smack have just been pushed to Maven Central.

 

Smack 4.1.7 fixes a few bugs. One noteworthy bug is that on certain platforms Smack's setEnabledSSL(Protocols|Ciphers) had no effect. More information about the fixed bugs can be found in the Release Notes.

 

The careful reader may noticed that this is the first beta release of Smack 4.2. Which means that Smack 4.2 just entered the beta phase. My rough timeplan is to release Smack 4.2 in 6 months: starting with 3 months long beta period now, followed by 3 months of release candidates. But as all schedules in the software industry, take it with a grain of salt.

I've just released and uploaded Smack 4.1.6 and 4.2.0-alpha3 to Maven Central.

 

Smack 4.1.6 contains a few important bug fixes for Smack's stable branch: 4.1. The changelog can be found here: Smack Changelog

 

The third alpha version of Smack's upcoming development branch contains a ton of fixes and new features. Adventurous users are encouraged to explore the API improvements. But, as the version name suggests, don't use an alpha version for production deployments. A provisional and incomplete list of Smack 4.2's highlights can be found at Smack 4.2 Readme and Upgrade Guide · igniterealtime/Smack Wiki · GitHub

Flow

Smack 4.1.5 released

Posted by Flow Champion Nov 23, 2015

The Ignite Realtime community is proud to announce the availability of Smack 4.1.5. Like all patch level releases, this release includes some important fixes and users are strongly encouraged to update. Smack 4.1.5 is a API compatible drop-in replacement for every release of the Smack 4.1 series. Have a look at the changelog and the git changelog.

 

Thanks to everyone who contributed to this release by providing bug reports and patches.

I've just published Smack 4.2.0-alpha2 on Maven Central. Everyone who wants to look into which direction Smack is heading, and current Smack users eager to be prepared for the upcoming API changes are invited to test this version out. We are awaiting your feedback in the Smack Users forum.

 

More information about Smack 4.2 can be found in the Smack 4.2 Readme and Upgrade Guide.

Flow

Smack 4.1.4 released

Posted by Flow Champion Sep 14, 2015

The Ignite Realtime community is proud to announce the availability of Smack 4.1.4. This release includes some important fixes. Most notably MultiUserChat's UserStatusListener would not always get triggered in previous releases. Also the JOSN/GCM provider did not correctly parse JSON/GCM extensions. Smack 4.1.4 includes fixes for those and addresses a few other bugs. Since it is a patch level release, Smack 4.1.4 can be used as drop-in replacement for any previous version of Smack 4.1. Users are encouraged to update existing projects depending on Smack.

 

This is also a friendly reminder that Smack 3 has critical security vulnerabilities. Please check if you are affected by those if you are still using Smack 3 and update as soon as possible.

Flow

Smack 4.1.3 released

Posted by Flow Champion Jul 15, 2015

I've just released Smack 4.1.3 to Maven Central. This is a bugfix release which can act as drop-in replacement for any Smack 4.1 version. Users are encouraged to update since Smack 4.1.2 introduced a memory leak in the Roster API which was fixed in 4.1.3.

Flow

Smack 4.1.0 released

Posted by Flow Champion Mar 29, 2015

The Ignite Realtime community is very happy and proud to announce the release of Smack 4.1.0, our open source XMPP client library. Since Smack 4.1 is not binary compatible with Smack 4.0, i.e. it is not a drop-in replacement, make sure to have a look at the "Smack 4.1 Readme and Upgrade Guide".

 

Smack 4.1 marks a milestone in the development history of Smack, as its obsoletes aSmack, the build environment formerly required to port Smack to Android. Starting with 4.1, Smack is able to run natively and unmodified on Android.

 

A further release highlight, among many others, is the support for XEP-198: Stream Management. Note that like every new big feature, Stream Management is disabled by default.

 

The full changelog can be found at https://www.igniterealtime.org/builds/smack/docs/4.1.0/changelog.html, the javadoc is available accessible via https://www.igniterealtime.org/builds/smack/docs/4.1.0/javadoc/ and the documentation available at https://www.igniterealtime.org/builds/smack/docs/4.1.0/documentation/

 

We would like to thank everyone who provided feedback, bug reports and contributed. The developers and contributors for the 4.1.0 release, since 4.0.0 are:

 

$ git shortlog -sn 4.0.0..4.1.0

   631  Florian Schmaus

     4  Vyacheslav Blinov

     3  Anno van Vliet

     3  Daniele Ricci

     2  Georg Lukas

     2  Júlio Cesar Bueno Cotta

     2  lucastucchi

     2  vito-c

     1  Abmar Barros

     1  Anno

     1  Chris Deering

     1  Christoph Fiehe

     1  Gilles Cornu

     1  Gligor Selimovic

     1  Jae Jang

     1  Luke GB

     1  atsykholyas

 

The signed tag used to upload the 4.1.0 artifacts to Maven Central points to 4bb8aea2815ceaab4224d1e2c3d80ba70c1f3803. As always, Smack 4.1.0 is available via Maven Central.

 

Now go ahead and implement a open source XMPP client with Smack. Be it for Android or one of the many platforms supported by Java. But even more importantly, provide feedback and help to improve Smack. We try our best to make Smack one of the best, stable and reliable open source libraries for XMPP, but it's far from being perfect. Join #smack (freenode) and discuss with us how Smack could be improved.

 

Happy Hacking.

The Ignite Realtime community is participating, as part of the XMPP Standards Foundation (XSF) GSOC organization, in this year's Google Summer of Code. Besides various Openfire projects, there are two Smack related ones:

 

All XMPP project ideas can be found at the XSF wiki: Summer of Code 2015 - XMPP WIKI

 

 

Furthermore we are proud to announce the availability of Smack 4.1.0-rc3, which should fix the last outstanding issues with Stream Management (XEP-198).

 

 

Also the first alpha version of Smack 4.2 has been released. Smack 4.2.0-alpha1 is basically Smack 4.1.0-rc3 with two major modifications that introduce the first big API changes in Smack 4.2:

  • Smack is now interruptible, which means that most methods throw a InterruptedException. This allows users to cancel (long-running) blocking I/O operations by just interrupting the thread performing those actions.
  • Smack uses now the Jid type (from jxmpp-jid) everywhere a Jid is expected. This prevents programming and users errors caused by an invalid JID String, since JIDs have pretty strict requirements regarding their String representation. Also jxmpp-jid does cache the result of the expensive String operations required to perform on JID Strings, which results in increased performance.

Filter Blog

By date: By tag: