Skip navigation

Blog Posts

Blog Posts

Items per page
1 2 Previous Next
15

Dear Community,

 

after some more weeks of testing, debugging and developing, we would like to ask for your support and publish the first beta of Spark 2.7.0. Ultimately, we would like to move Spark to Java 7, but that is currently not implemented via the installers. This will change in January after an update to the lastest version von Install4j provided by ej-Technologies.

 

You can find the nightly build for Windows here:  http://bamboo.igniterealtime.org/browse/SPARK-INSTALL4J-543/artifact/JOB1/Instal l4j

 

About Java 7: Spark 2.7.0 will run with Java 7. Please interchange the bundled JRE (located at Spark-install-folder\JRE) against a Java 7 JRE or use the installer named spark_2_6_3_12555_online.exe and install Java 7 as default on Windows. Using Java 7 will stop Spark from stealing the focus, when a new message is received.

 

Important Note: Oracle has introduced a bug in Java 1.6.0 u 25-27 that prevents Spark from closing automatically during the log-off on the Windows plattform. This is not Spark related. This affects all users that install the Spark version without an included JRE.

 

About file transfer: Spark 2.7.0 beta 1 is fixing an big bug with file transfer. Spark 2.6.x has an programmatic error that was making IBB file transfer very unstable. Tim Jentz deserves a big credit for finding this after weeks of debugging. Great job Tim!!!

Spark 2.7.0 will also move to a standard implementation for IBB file transfer. As a result of moving to the standard IBB implementation, you may have issues with transfer between Spark 2.7.0 and Spark 2.5.8 on IBB. This is an unavoidable result of obeying the standard. IBB is the fall back implementation, if Bytestream is not an option. Hence IBB is not the regular transfer method as it is much slower than Bytestream.

 

About plugins: There were large scale changes in the way Spark is dealing internally with plugins/extensions. All Plugin developers are kindly ask to review, if their plugins are still working. This applies also to Fastpath. Feedback regarding issues with this are highly appreciated.

 

About GUI: The Spark developers are only supporting JTattoo Luna. There are several reports that other skins are not working properly. This applies especially to Substance. If you are experiencing any GUI bug, please check if JTattoo Luna is also having this issue and report it.

As a general statement, I would urge all professional users to use the customizing options of Spark to get rid of Substance in corporate environments. The dev team may ultimately decide to remove Substance for 2.7x in a future release.

 

About Mac and Windows7 64 bit: The next Mac release is NOT secured. We are looking for a developer who can provide a Mac beta release. The integration to Windows7 64 bit is ok, but the flashing notification in the tray may or may not work. A tester and developer (MS C++ Code)  for this is also needed.

 

The change log for this beta is:

 

SPARK-1465     Checkboxes appear bigger then normal since the jtattoo update

SPARK-1464     When user accepts group chat invitation, status is always online

SPARK-1460     No group context menu on a right click

SPARK-1459     Update to the latest JTattoo version (Nov 2011)

SPARK-1452     If conferences tab is hidden, then Fastpath tab is hidden also

SPARK-1451     Vcard popup is not always showing up on mouse hover

SPARK-1450     When network connection is lost, chat window cannot be closed

SPARK-1449     UNC Path does not link to folder

SPARK-1445     Selecting 'Start a chat' in a group chat room opens an incomplete chat window

SPARK-1444     Subscription dialog shows the id value instead of the nickname

SPARK-1443     Privacy plugins cannot be accessed if we log into Spark through the IP address of the server

SPARK-1465     Checkboxes appear bigger then normal since the jtattoo update

SPARK-1464     When user accepts group chat invitation, status is always online

SPARK-1460     No group context menu on a right click

SPARK-1459     Update to the latest JTattoo version (Nov 2011)

SPARK-1452     If conferences tab is hidden, then Fastpath tab is hidden also

SPARK-1451     Vcard popup is not always showing up on mouse hover

SPARK-1450     When network connection is lost, chat window cannot be closed

SPARK-1449     UNC Path does not link to folder

SPARK-1445     Selecting 'Start a chat' in a group chat room opens an incomplete chat window

SPARK-1444     Subscription dialog shows the id value instead of the nickname

SPARK-1443     Privacy plugins cannot be accessed if we log into Spark through the IP address of the server

SPARK-1442     JabberVersion.java uses hardcoded value "Spark IM Client" for version name

SPARK-1441     ContactItem in shared group - right click popup menu performs copy when move is selected

SPARK-1440     Bug in ConferenceUtils.java that can break smack communication

SPARK-1439     Plugins are loaded in random order - plugins with no dependency has to be loaded first

SPARK-1438     Avatars are not scaled in user login/logout notification dialog

SPARK-1437     Bug in PrivacyManager that can break smack communication

SPARK-1429     Update French translation

SPARK-1427     Default Appearance/Colors cannot be overwritten through plugin;Group-Chat colors are hard-coded

SPARK-1423     typo error in LayoutSettings.java

SPARK-1422     persist vcard may throw file not found exception when jid is empty

SPARK-1421     Application version and application name are hardcoded

SPARK-1420     The messages in the set status message window is not getting deleted

SPARK-1419     Chat room configuration shows wrong roles for which presence is broadcast

SPARK-1418     Update simplified Chinese translation

SPARK-1414     Chat window is not flashing when receiving new message on Windows 7 64 bit

SPARK-1413     Update build.xml to check for Java 7

SPARK-1411     Sometimes file transfer indication is not updated on the receiving side

SPARK-1408     Remove "#" character next to Accounts button on the login screen

SPARK-1405     Improved last activity recognition

SPARK-1403     Enhance ability to extend core classes like ContactItem, ContactGroup, etc through plugin

SPARK-1400     Update to latest version Exe4J

SPARK-1381     Group Chat - Actions/Start a conference menu: propose bookmarked room (if any) instead of adhoc (random) room name

SPARK-1379     Support for XEP-0147

SPARK-1326     Make tabs position optional: TOP or BOTTOM; make search input appearance optional

SPARK-1324     SparkToaster showing avatars in real size

SPARK-1313     Enhance ability to overwrite spark properties values through plugin

SPARK-1215     Log out doesn't log out, it shuts down spark

SPARK-891       Typing notifications would be easier to see if also displayed near typing area

 

The beta release also includes a new Smack library that is based on Smack 3.2.1 plus the following bugfixes:

 

SMACK-362      smack throw NoSuchElementException if the muc#roominfo_subject has no values

SMACK-354      Provide milliseconds in timestamp colum debugwindow

SMACK-353      Thread leak in the FaultTolerantNegotiator

SMACK-350      Bytestream is not working in Spark 2.6.3 from XP to W7

SMACK-349      Smack's IBB sends too much data in a packet

SMACK-348      Documentation error - broken link

SMACK-346      Bug in return code for rejection handling in FileTransferManager

SMACK-343      Make Smack jar an OSGi bundle.

SMACK-338      IBB filetransfer doesn't work as expected

SMACK-336      There is an empty element in a SASL response

SMACK-335      Need to set file size and name for outgoing file transfer from input stream

SMACK-324      Investigate SASL issue with jabberd2 servers

SMACK-322      NPE in XMPPConnection

SMACK-263      Set file info in all send* methods

 

Expect a second beta in the first quarter 2012 that will include the latest final release of Smack

 

Please report issues in the Developer Forum

8

Dear Community!

 

Another year has passed for this open source project and various developers have contributed significantly to nearly all of our projects. We were able to finally release Openfire 3.7 and Spark 2.6.3 under Apache 2.0 license. The most important Smack library has also seen several releases and last but not least the good old instant messaging gateway Kraken returned to us. Some great innovations were presented like SparkWeb/Redfire, Websocks and Candy. I really would like to thank all developers involved by contributing code and all users and system admins that went through this year. A very special thank you goes to Daryl Herzmann who keeps the servers healthy and Wroot for outstanding work in the forum. I would also like to single out Guus der Kinderen for his insights in Openfire architecture and the release of Openfire 3.7.

 

Merry Christmas to all of you and a happy, healthy and sucessful 2012

34

The Ignite Realtime community is happy to announce the release of version 3.7.1 of Openfire! Downloads for various platforms are available here.

 

Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache license. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.

 

The 3.7.1 release is primarily a bugfix release. Amongst others, these issues have been addressed:

  • A number of enhancements were made to the server-to-server connectivity. Server-to-Server connectivity was enhanced and a bug preventing a successful dialback was fixed.
  • Various improvements have been made to platform specific installers and scripts.
  • The Multi-User Chat implementation has received various tweaks and updates.

The full changelog is available on the Openfire project page.

 

We welcome your feedback, suggestions, tips, hints, questions and other contributions in the Ignite Realtime Community pages.

2

If you use openfire-jappix plugin on your server, you should update to version 0.0.2 which uses the the new 0.8 package

 

Please read

 

http://codingteam.net/project/jappix/news/show/500-jappix_users_please_update

 

and

 

http://codingteam.net/project/jappix/browse/diff/1319/1320/

41

Ignite Realtime community is happy to release OfChat (Openfire Chat), a Google Chrome extension that puts a chat toolbar on any web site you want so you don't have to switch back and forth between tabs or have to resize your browser window to include your desktop chat application on your screen.

 

Image1.jpg

 

OfChat does not require a front-end Apache web server or middle-man BOSH server and connects directly with Openfire eliminating the cross-domain issues associated with web browser application like SparkWeb, Jappix or Candy. With WebSockets, it is as fast as a chat desktop application. It also uses Google Alerts when the Chrome window is minimised.

 

OfChat is based on on Gtalklet for by Sean Zheng and has been modified to work with Openfire BOSH and the WebSockets Plugin for Openfire 3.7.1. It uses Strophe JavaScript library by Jack Moffitt and includes a new Openfire.Connection class which implements the full Strophe.Connection class for Openfire WebSockets. Openfire.Connection should work with other Stophe based applications as a direct replacement for Strophe.Connection..

 

OfChat does not have a conventional roster display with groups. You have to start typing into the search area to filter a list of contacts in Google search style and like the new Facebook contact list view. In order to see only online contacts, just press spacebar as your first character. Support for MUC (group-chat) will be added later on.

 

To install from Chrome, just click on this link or download and install from the attached ofchat.crx file.

 

After you install the extension, go to the extension's preferences and enter your Openfire account credentials. Enter your Openfire BOSH URL. It is usually http://your_server:7070/http-bind/. Please don't select WebSockets unless you have upgraded your Openfire server to use jetty 7.5.1+ and running the WebSockets plugin. Once you've signed in, reload one of your tabs and you should see it pop up in the lower right-hand corner. Once you see it in the corner of your screen, just hit the grey circle to log in. Once you log in, you can set status as normal. Click the plus sign as many times you need to search for a contact and start a new chat.You can block it from showing up on certain sites from the extension's preferences.

7

This is an implementation of WebSockets for the Openfire XMPP server. It consists a plugin for Openfire and a low-level JavaScript library suitable to be used with jQuery.

 

Why?

Recently, I have been involved in shaping an XMPP protocol extension (XEP) for simple application remote control of telephony devices for financial trading systems. This XEP is called Openlink and is still evolving.

 

I use XMPP Bosh to provide an Openlink Javascript library for web based applications and I am seeking to improve performance and scalability beyond the limitations of long-polling BOSH connections, so I decided to investigate replacing BOSH with Websockets in my Openlink Javascript library.

What did you do?

The Websocket protocol is close to finalising and Jetty (the embedded web server for Openfire) has been supporting WebSocket since Nov 2009 in version 7.0.1 which is the Jetty version in current Openfire 3.7.0. My first attempt of using the Jetty WebSocketServelet? class from Openfire 3.7.0 with Google Chrome web browser failed and I am not sure why. The WebSockets specification has changed a lot over the last two years and both Chrome and Jetty have kept up with it, so I was not surprised.

 

I therefore decided to recompile Openfire from SVN (version 3.7.1 Alpha) with latest Jetty 7.5.1 and finally got it working.

 

 

I then implemented a very thin XMPP stanza based Javascript class called openfire-websockets which exposes a minimium "Stophe" like connection object which I tested with the XMPP console application in chapter 4 of the book "Professional XMPP Programming with JavaScript and jQuery" by Jack Moffitt.


 

 

 

How?

You can use this plugin from Openfire 3.7.0. Just replace openfire.jar and slf4j-log4j12.jar in OPENFIRE_HOME\lib.

Should I?

If you do most of your application development with XMPP like I do, using Openfire and need fast and simple access to the low level XMPP messages as DOM elements in Javascript from JQuery right now, then take a look at openfire-websockets.js

Where?

http://code.google.com/p/openfire-websockets/

4

logo2.gif

ej-Technologies has granted a multi-plattform license of install4j to the Spark community. The community developers gladly accept the donation to the project. This will give all core developers of Spark the opportunity to use the features of install4j for during the development of the Spark installer.

 

Install4j is the installation plattform for Spark since many years and has helped to provide multi-plattform support and great integration in the operation systems.

 

About ej-Technologies:
ej-technologies GmbH was founded in 2001 as a privately held company and specializes in solutions that help programmers make the most of their        own applications. With its focused expertise in the areas of performance and deployment, ej-technologies is developing the next generation of enterprise application development tools.

 

If you have any questions regarding install4j and it's usage during the Spark development, please contact me via community mail.

 

Kind regards,


Walter Ebeling

39

Hi

 

again an experimental Smack to fix IBB transfers for Spark 2.6.3. This is an experimental build with patches based on the Smack 3.2. branch. The patch itself is published in SMACK-351

 

The Smack code is not using IQ Stanzas for IBB file transfer since the implementation is not correct.  Smack 3.2.1 also breaks file transfers via IBB to Spark 2.5.8. This alpha should fix:

 

SMACK-350                    Bytestream is not working in Spark 2.6.3 from XP to W7

SMACK-349                    Smack's IBB sends too much data in a packet

SMACK-263                    Set file info in all send* methods

SMACK-335                    Need to set file size and name for outgoing file transfer from input stream

 

 

Copy into the lib folder of the Spark installation folder and report results.


Walter

 

P.S. Also fixes SASL against jabberd2 since http://issues.igniterealtime.org/browse/ SMACK-324 is included.

18

Image2.jpg

 

 

I have received a couple of emails about Jappix MiniChat not working properly with Openfire BOSH.  The main issue seems to be that the Openfire BOSH is not handling the reconnection properly as the user browses from page to page.

 

I'll be surprised if it did as the implementation was a few years ago and the BOSH specification has moved on since. More importantly was that it was designed to work with SparkWeb which was always resident on the web page until the user logged off. In this mode, Openfire BOSH works very well.

 

A possible solution for using Jappix MiniChat with Openfire is to use this same approach and keep Jappix resident on the web page as the user browses from page to page. My way of doing this is to use a main top page container with the Jappix MiniChat which puts the content web page in an <iframe> tag. I then call JavaScript on the main top page from within the iframe to control Jappix.

 

Of course, this does not always work especially if the content page promotes itself to be the top main page for security purposes like Goole Mail for example. In practice, I use Jappix MiniChat with my own web applications and even if my web page is hijacked, cross domain security will stop malicious JavaScript controlling my application.

 

If this solution will work for you, then use the attached HTML file and adapt it to your needs.

5

Since several defects have been fixed, including a rather serious issue dealing with file transfers.   The 3.2.1 version of Smack is released as of July 4th. 

 

Although more issues were planned for this release, due to number of people having issues with SMACK-338 and the slower than expected resolution rate on the planned issues, the release will go ahead with the 6 issues that have already been resolved.

 

  • [SMACK-129] - MultiUserChat will Store Messages in its PacketCollector irregardless of whether or not they are being read
  • [SMACK-230] - Disconnect Can Cause Null Pointer Exception
  • [SMACK-273] - Bug in RoomListenerMultiplexor.java
  • [SMACK-324] - Investigate SASL issue with jabberd2 servers
  • [SMACK-329] - XHTMLText uses improper format for br tag
  • [SMACK-338] - IBB filetransfer doesn't work as expected

 

The rest of the planned issues have been pushed to a 3.2.2 release.

 

Robin Collier

31

Dear Community,

 

due to several issues, we have released a 2.6.3 on July 1st. The following issues were fixed

 

  • SPARK-1383Login screen shows disabled fields.
  • SPARK-1394 Search in history is not working
  • SPARK-1395 NPE when exiting a chat window with ESC
  • SPARK-1396 Send Broadcast Window doesnt show when not using JTattoo
  • SPARK-1379 Support for XEP-0147 (URI handling)
  • SPARK-1392 Check if Spark is really checking for updates even if that option is turned off

 

A new Feature was added:

Expand ability to customize spark if you want to build your own branded version 

 

You can download the release in the download section of the igniterealtime web site.

 

The Spark development will be reduced until the 4th quarter this year.

 

There has been a significant demand for help about the packaging of custom editions for Spark. I would like to ask all users who have done custom packages to report their approach in the forum. The project files of the packager (e.g. appdeploy) are really welcome.

 


Walter Ebeling

27

I really like Jappix. It ia fully functional XMPP web client with a lot of features and even looks like Sparkweb

 

Image1.png

It has a cool microblog feature like onesocialweb similiar to the one I implemented on a comercial version of SparkWeb using XMPP pubsub. As much as I liked Jappix, I really could not use it. It was developed in PHP and required a second web server with too much fiddly configuration to make Openfire HTTP-BIND run the cross-domain gauntlet. Well that all changed when I discovered Quercus: Caucho Technology's fast, open-source, 100% Java implementation of the PHP language.

 

It has enabled me to create an Openfire plugin for Jappix that works out-of-the box. No configuration required.

 

The main reason for my interest in Jappix was the minichat feature which is like the Facebook IM User Interface and is best for integration with other web applications. I have an immediate requirement to put IM into my Clearspace/Openfire setup and Jappix was just right for this.

Image4.png

 

I am posting this here for community members who might have a need for it. I do not plan on doing any development work on the Jappix PHP code, so if you spot a fault, head over to the Jappix project web site and report it. Please don't email me.

 

How to install and use

  1. Download the appropiate zip file for your Openfire server
  2. Stop Openfire
  3. Unzip jappix.war and copy to your plugins folder
  4. Restart Openfire
  5. Go to http://your-server:7070/jappix

 

How to access the Jappix Admin Console

  1. Delete the contents of the OPENFIRE_HOME\plugins\jappix\store folder
  2. Go to http://YOUR_SERVER:7070/jappix

 

References

Download for Openfire-Jappix is http://code.google.com/p/openfire-jappix/downloads/list

Source code is http://code.google.com/p/openfire-jappix/source/checkout

Project Jappix is https://project.jappix.com/

Project Quercus is http://www.caucho.com/resin-3.0/quercus/

26

The community is happy to report that Spark 2.6.2 has reached final status. The release contains several bug fixes and new features and enhancements for Spark. It is a hot fix release for a regression bug introduced in 2.6.1. Details can be found in the changelog.

 

Main features for this release are:

  • OTR (off-the-record) support for encrypted chat between clients
  • New notification mechanism
  • New splash screen
  • Support for animated GIF as avatar
  • Plugin blacklisting
  • Documentation for Spark customizing (lot's of option now)

 

More than 30 bugs were fixed, including

  • New default look and feel for Mac
  • File transfer is using IBB as fall back for VPN network connections
  • Scroll to end in chat window

 

The downloads for all supported plattforms can be found in the download section of Igniterealtime.org.

 

Red5 is not included in the release as well as games were not included. These can be found in the forum for those of you interested.

 

A big "Thank You" to Holger and Wolf who spend numerous hours in writing features and debugging code. And of course to all the users who have reported issues, provided feedback and contributed code.

 

Walter Ebeling

7

This is an update from ignite realtime community about where we are with SparkWeb

 

There is an Open Source HTML version of SparkWeb based on the original commercial Jive Software version and now released under the Apache 2.0 license just like Spark and Openfire. It can be found on the ignite realtime community here.

 

Image3.png

 

Knight Raider has worked on the Flash version of SparkWeb and has made it compatible with the ignite realtime latest version of XIFF. His version compiles with Flex Builder using Flex SDK 3.0  for Flash Player 9 and above. It can be found on the ignite realtime community here.

 

I have made a few more changes to make it compile with the latest Flex SDK 4.5 for current Flash Player 10.3 and above and uploaded it to the SparkWeb SVN. The code can be checked out using

 

https://svn.igniterealtime.org/svn/repos/sparkweb/trunk/SparkWeb2

 

Knight Raider has volunteered to work on this. We plan to to add Jingle-based audio, video, file transfer, screen sharing, etc and make it look better than this

 

Image1.jpg

 

Finally, work has started on RedSpark which is yet another web client for Spark, but is tightly integrated into Redfire and will be compatible with the Redfire plugin for Spark. It is extending XIFF with the new RTMP/RTMFP connection classes and has a Facebook/Google type chat user interface that combines both HTML5 and Flash to support a softphone (red5phone), audio/video in both 2-way and multi-user chat with screen sharing (red5-screenshare) and p2p file transfer using RTMFP.

 

Image6.png

14

I am currently looking at adding peer2peer support to Openfire using the Redfire plugin which has support for both RTMP and the new RTMFP (peer to peer) protocol from Adobe. I would like to get some feedback from the community to validate my thinking and confirm I am on the right track.

 

I know that I should be looking at Jingle and I also know I should be looking at XEP-0174: Serverless Messaging, but they don't serve my needs and the XMPP council had reservations about my RTMP ideas for Jingle because RTMP and RTMFP are considered proprietary. Unfortunately, Flash Player has not gone away and the open HTML5 websockets is still taking its first steps as a toddler.

 

I have developed a new client-side RTMFP connection class for XIFF that enables clients to dynamically become nodes or supernodes (like Skype) using RTMP and RTMFP. Nodes will connect and distribute messages to each other without a server using RTMFP, while super-nodes will connect to Openfire via the Redfire connection manager using RTMP and act as proxies for their neighbour nodes. Like Openfire clustering, disconnecting super-nodes are replaced immediately by election among the neighbour nodes.

 

XMPP Message packets between neighbours can be sent directly peer to peer if there is a route and server messaging logging is not mandatory.

 

In theory, a fully populated enterprise muticast 192.168.x.x network with aproximately 64K users would only need 256 Openfire socket connections

 

Image2.png

 

As a first step towards Openfire peer2peer, the latest version of the Redfire plugin for Spark has support for RTMFP. If there is a route between clients having a two-way chat or multi-user chat, then the audio and video is sent peer2peer using RTMFP. There should be some performance gains with multiple participants in a chat room. Screenshare and remote desktop control is still done via Openfire server using RTMP with Red5.