Ignite Realtime is the community site for the users and developers of Jive Software's open source Real Time Communications projects. Your involvement is helping to change the open RTC landscape.
Last weekend, I participated in an XSF-community organized sprint, in The Hague (conveniently located in my country of residence). Graciously hosted by IPerity, a group of people from various XMPP related projects got together.
Apart from it always being nice to meet up with fellow enthusiasts, we got quite some work done. In the sprint preparation, we had already established that one of the topics that we?d like to address, was the lack of top-notch (mobile) client support, in XMPP world.
Much of the work that we did revolved around adding better support for client notifications. This lead pep. and Laszlo to build a prototype for browser-based push notifications, which they got working in Converse (the web client that Openfire ships in the ?inVerse? plugin) and the Prosody XMPP server. A goal for this effort is to evolve into a new XEP for web push.
Yours truly is happy to report that a new plugin was created for Openfire, that adds XEP-0357-defined push notifications to Openfire! The code is still somewhat rough around the edges, but I?d love for people to give this a test run, and how the prototype holds up!
Unrelated to the various notification-related efforts, Erik got quite a bit of work done on a refactoring project in the Gajim client, which over the past weekend is growing to be the basis for a refactoring of Gajim?s chat window UI.
I?m thrilled by the prospect of hosting a major, hopefully Openfire-based, hackathon in the near future, that is geared towards a particular industry in the Netherlands. That might be an exciting precursor for another increase in XMPP utilization! More on that later though!
I?ve had a blast! I loved meeting up with everyone, and enjoyed the discussions we had. Let?s do this again, soon!
The Ignite Realtime community is happy to announce the immediate release of version 1.2.1 of the User Status plugin for Openfire!
User Status plugin automatically saves the last status (presence, IP address, logon and logoff time) per user and resource to userStatus table in the Openfire database.
This update adds support for longer IPv6 addresses and fixes a few issues with plugin?s build.
Your instance of Openfire should automatically display the availability of the update in the next few hours. Alternatively, you can download the new release of the plugin at the User Status plugin archive page.
The Ignite Realtime developer community is happy to announce the availability of Smack 4.3.4.
This release includes security fixes and improvements. Please have a look at the Changelog for a list of fixes and improvements. As with all patchlevel releases of Smack, you can use it as drop in replacement for previous Smack 4.3 releases because there are no API changes.
We like to thank everyone who contributed by reporting bugs or providing feedback. Special thanks goes to people who contributed code:
$ git shortlog -sn 4.3.3..4.3.4 18 Florian Schmaus 2 Oliver Mihatsch 1 Eng ChongMeng 1 Georg Lukas 1 Mohsen Hariri
More information about how to use the 4.3 release series can be found one the Smack 4.3 README.
You might have noticed that last official release of Spark client was more than two years ago (January 29, 2017). Many have questions about the future of Spark, so i decided to explain a few things and also draw some attention to this project.
TL;DR: there are no active developers working on Spark for some time and there is a number of big issues in the current code blocking new releases.
A bit of history:
Spark has been abandoned a few times in the past. When JiveSoftware released its source one user (student at that time) took the lead developer role - Andrew Seymour (winsrev). Daniel Henniger (jadestorm) also helped to fix a few things. Andrew left the project after he has finished his studies and didn?t have time for side projects. Then there was a team of Walter Ebeling and his two programmers Holger and Wolf. They were using Spark in their company, so there was an incentive for them to make it work better. I think they pushed Spark to 2.6.0 branch and a few releases past that, getting rid of proprietary parts like Synthetica skin and introducing free JTattoo skin framework. Wolf has contributed Roar plugin for popups and actually made a few fixes many years later. Tim Jentz also came along (i think he was an intern and this was his test project). He added a few features and started working on a multi window chat support, but unfortunately never finished it. Probably they switched from using Spark (or XMPP altogether), so they stopped contributing to this project. Not to diminish they work though. Without them there would be no Spark at all. Then cstux took the reign for a short time and also helped push Spark forward (i think there was at least a few betas and maybe 2.6.3 release). There were (and still are) a lot more contributors. As you can see on GitHub activity page (and this only shows history after switching to GitHub from local SVN repo). I can mention Konstantin, Alexander, Mircea. Also Michael Klein did a lot recently for Client Control features (and just a pleasant person to work with). But then there was a long pause. cstux wasn?t active on Spark project anymore, there were a few fixes being added to the source and a few more posted on the forums or in the tracker, but no releases. Actually i have started using nightly build versions in my company, as they were stable enough and had fixes for some annoying bugs in 2.6.3. It was like that for quite a few years (2.6.3 was released in 2011).
Then came April of 2015 and release of Openfire 3.10.0 version (major version after a year old 3.9.3 with some important changes). And it broke compatibility with 2.6.3. Spark was just too old to work with new TLS standards. Although there were workarounds to use Old SSL 5223 port (or keep using old Openfire). But nightly builds were working fine. So, i decided to step in, take the Project Lead role and release the 2.7.0. Now, i wasn?t a developer (and still am not). But i knew internal kitchen for 10 years, i knew current issues, i have posted hundreds of tickets in the tracker, thousands of posts in the forums helping users or working with past developers. And it worked. It was also fun to try new things. Then i started looking for all not yet submitted patches, testing them, even fixing or adding some minor stuff myself (still very proud of an option to use Spark?s version as a resource). Every few months i would release a new minor version with a few more fixes or new features. A few users started to contribute also.
Next year we have released 2.8.0. Spark is built upon Smack API library. But it was using ancient version of Smack at the time. So 2.8.0 introduced newer Smack version and also switch to Java 8 (both in building and bundling). Huge work has been done by @guus (who is also one of the main developers of Openfire). This release was a bit controversial. As new Smack introduced more strict way of dealing with bad certificates. So forums were flooded with users using IP address or wrong server name to login and getting errors. But Spark became more secure this way. Also, it became apparent that Spark needs a better mechanism to deal with certificates. In 2.8.1-2.8.3 a few new options were added to ignore certificate errors for those users who couldn?t fix their setup.
In 2017 we decided to add Spark to Google?s Summer of Code program with a task to create a certificate store management and GUI (and a few more related things). A few students competed and we have picked @Alameyo. Throughout summer he has created a base for this functionality. Although it took longer to finish this work, but now it is in a usable form (with a few quirks still needed to be fixed). As it was an ongoing work, we couldn?t make a release with an unfinished feature.
Earlier this year Ignite Realtime team decided to move from Ant build system to Maven and Spark was selected as a first project (as being fairly less complex than Openfire) to test this path. @guus again did a lot to make it happen. This of course also broke lots of things and made release even less possible.
During the last few years @Flow (and probably Guus also) made an attempt to update Spark to the latest Smack version. Which in turn introduced a few more issues, which are yet to be fixed.
Granted, with bigger team and better management this probably could be avoided. By having separate branches and porting new fixes to development branch, releasing new 2.8.x bugfix releases. But there are no human resources and time for this. Also we kind of hoped for these issues to get resolved faster, so decided to put everything in the current branch (2.9.0).
You can see what major issues are still present and blocking the release (in my opinion) in this list that i have also pinned to Spark Dev forum - https://discourse.igniterealtime.org/t/issues-blocking-2-9-0-release Some issues were already fixed and removed from that list. But sometimes it feels like you can find an issue anywhere you poke?
So, my main point of this post - Developers needed
Although we still get small patches here and there, but they kind of go in vain as we can?t do a release. Spark is an old application with a lot of inefficient, deprecated and just confusing code. It also uses old Java Swing technology for its GUI. There were talks at various points to maybe move Spark to AIR, then JavaFx, but that would be an enormous task and it never went past talking. All this is probably making Spark not that attractive to Java developers who want to contribute to open source.
But Spark is still used by many users around the world. It?s UI is clean and nice (and in my opinion better than in some other clients). So, if you are a developer who looks for a project to participate, feel free to do this, contact us in the forums or in the group chat. No matter the size of your contribution (small patch or reworking of a bigger part), you are welcome. Maybe you want to learn Smack. Then fixing Spark?s issues with that library could be a good start. Of course, we would be especially pleased with someone able to devote more time to this project and help fixing all current outstanding issues (we are not offering pay though). Maybe even becoming new Project Lead.
The Ignite Realtime community is happy to announce the immediate release of version 2.4.2 of the Hazelcast plugin for Openfire!
The Hazelcast plugin adds support for running multiple redundant Openfire servers together in a cluster.
This update improves the recovery process from ?split-brain? problems, and also updates the version of the underlying Hazelcast IMDG library.
Your instance of Openfire should automatically display the availability of the update in the next few hours. Alternatively, you can download the new release of the plugin at the Hazelcast plugin archive page .