After Gato made this suggestion in my last blog, I decided to move this request to the top of my to-do list as I also need it for another project I am currently working on.
How does it work?
I am using the Flex Dashboard developed by ESRIA which was donated to the Adobe Developer Connection. Plugins are presented in a pod layout called a View. Each View occupies a Tab in the SparkWeb ChatWindow. You can modify Views by dragging and dropping pods to a different location and minimizing, maximizing, and restoring pod windows. View changes are saved using a LocalSharedObject. View configuration data is loaded from sparkweb/plugins/plugins.xml with values in plugins.xml indicating which swf file to load for a particular pod within each View.
SparkWeb will load each pod SWF file and call the method setParentApplication passing it the SparkWeb root Application object. From this object, you can navigate your way to access all other SparkWeb public objects and even add eventhandlers on events like NewMessage for example.
To get a feel of what can be done, I decided to implement the User Tunes and Moods PEP (personal eventing protocol) applications. See Armando Jagucki’s blog for more details about PEP in Openfire. The source code to the demo plugins is in the src/plugins folder.
For those interested, the latest version of Red5 Plugin for Openfire can be found at _http://red5.4ng.net/red5-0.1.06.zip. Remove comments in plugins.xml to activate the demo.
I now got the sparkweb main page but that was it. when I copied red5.war over to openfire/plugins directory I made sure openfire was stopped before copying. Still working on a few issues.
In spark, our red5 plugin is not working. it is verion 0.0.6. I’d downloaded from latest red5 but it is still not working is spark.
Please provide some instructions. Like to try this.
One of these days, I will setup a Linux box and understand why the Red5 plugin in Linux is such a pain. For now there not much I can do without seeing any logs.
I have this working on my Windows PCs with no problems.
I just remembered. Red5 SparkWeb version 0.1.05 and above use TLS for socket connections which don’t login with Openfire 3.6.2. Either use the patch I supplied at _http://red5.4ng.net/openfire.jar or switch to http-bind.
<?xml version="1.0" encoding="utf-8"?>
<!--
- Represents a tab.
id - Must be unique so state can be saved properly.
label - The label of the tab.
id - Must be unique per view so state can be saved properly.
title - The title of the pod.
dataSource - The xml to load for the pod.
Remove comments from tag below to activate plugins in SparkWeb
one reason is that red5 plugin assumes that openfire is started from openfire_home/bin. If isn’t, then all references to file names are incorrect. This is not a problem in Windows, but could be in Linux.
I’m trying to compile your Red5 SparkWeb but I’ve encountered some problems.
I’m using Windows 2000 with FlexBuilder 3.0.2, I’ve updated your make_sparkweb.cm script (located under sparkweb/src_3.6 folder) in order to launch my mxmlc.exe compiler, but there are some errors using both 3.1.0 and 3.2.0 sdks.
Here is my output when compiling red5 sparkweb 0.1.08:
Warning: Source path entry, ‘D:\TEMP\sparkweb\src_3.6\locale’, is a subdirectory of source path entry, ‘D:\TEMP\sparkweb\src_3.6’.
D:\TEMP\sparkweb\src_3.6\com\esria\samples\dashboard\view\PodContentBase.mxml(34 ): Error: Call to a possibly undefined method setParentApplication through a reference with static type mx.core:Application.
D:\TEMP\sparkweb\src_3.6\SparkWeb.mxml(259): Error: Implicit coercion of a value of type org.jivesoftware.xiff.data.im:RosterItemVO to an unrelated type com.jivesoftware.spark.managers:SparkManager.
sparkManager = SparkManager.me*
D:\TEMP\sparkweb\src_3.6\com\hurlant\crypto\symmetric\AESKey.as(214): col: 23: Warning: flex2.compiler.as3.SignatureExtension.SignatureGenerationFailed[level=‘warning’ , column=‘23’, node=‘ForStatement’, line=‘214’, cause='flex2.compiler.as3.SignatureAssertionRuntimeException: Unreachable Codepath
at flex2.compiler.as3.SignatureEvaluator.ASSERT(SignatureEvaluator.java:369)
at flex2.compiler.as3.SignatureEvaluator.UNREACHABLE_CODEPATH(SignatureEvaluator.j ava:357)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1560)
at macromedia.asc.parser.ForStatementNode.evaluate(ForStatementNode.java:50)
at flash.swf.tools.as3.EvaluatorAdapter.evaluate(EvaluatorAdapter.java:338)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1795)
at macromedia.asc.parser.StatementListNode.evaluate(StatementListNode.java:60)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:530)
at macromedia.asc.parser.ClassDefinitionNode.evaluate(ClassDefinitionNode.java:106 )
at flash.swf.tools.as3.EvaluatorAdapter.evaluate(EvaluatorAdapter.java:338)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:1795)
at macromedia.asc.parser.StatementListNode.evaluate(StatementListNode.java:60)
at flex2.compiler.as3.SignatureEvaluator.evaluate(SignatureEvaluator.java:454)
at macromedia.asc.parser.ProgramNode.evaluate(ProgramNode.java:80)
at flex2.compiler.as3.SignatureExtension.generateSignature(SignatureExtension.java :270)
at flex2.compiler.as3.SignatureExtension.doSignatureGeneration(SignatureExtension. java:174)
at flex2.compiler.as3.SignatureExtension.parse1(SignatureExtension.java:137)
at flex2.compiler.as3.Compiler.parse1(Compiler.java:369)
Tried the other script, the 2 compiling errors have been replaced by this new one:
D:\TEMP\sparkweb_all_versions\red5–0.1.08\sparkweb\src_3.6\com\jivesoftware\spa rk\ChatContainer.mxml(671): Error: Type was not found or was not a compile-time constant: SuperTabNavigator.
I’ve trying to download Red5 Plugin but the url was not found.
For those interested, the latest version of Red5 Plugin for Openfire can be found at _http://red5.4ng.net/red5-0.1.06.zip. Remove comments in plugins.xml to activate the demo.
Looks like there is an issue with this site and can not download the file. does anyone else has this and upload it somewhere else please so we can all download?