Am 02.09.2012 18:54, schrieb Scott Wilson:
On 2 Sep 2012, at 17:08, Christian Fischer wrote:
Am 01.09.2012 11:54, schrieb Scott Wilson:
On 1 Sep 2012, at 09:20, Christian Fischer wrote:
Hi all,
Does anyone know how to make shure that the OpenAjax "hub" Instance of a
wookie-iframe-widget is ready and already connected before any user defined scripts are
executed inside the widget?
_Sometimes_ it throws the following ErrorMessage then i'm subsribing to
channels by loading the widget.
Uncaught Error: OpenAjax.hub.Error.Disconnected
For OpenSocial Widgets it's not a problem - these widgets are waiting until the
hub is ready, but wookie not?
Yes thats right - I don't know what mechanism is used in Shindig for this but
it would make sense to replicate it in Wookie.
The relevant part of the Wookie feature is this:
http://svn.apache.org/viewvc/incubator/wookie/trunk/features/openajax/
OK, is there a howto to get the wookie sources into the rave maven project?
I'm not familiar with maven.
What must i do to get the wookie sources into my project to use the Custom
Build instead of the wookie-war wich comes with the rave-project?
OK, so first you need to change the Wookie version you build Rave with; to do
this, in rave-project/pom.xml change:
<apache.wookie.version>0.10.0-incubating</apache.wookie.version>
to:
<apache.wookie.version>0.13.0-incubating-SNAPSHOT</apache.wookie.version>
Next, you need to publish your custom Wookie build locally. You can do this
from the root of your Wookie source folder using:
ant publish-local
This will create a 0.13.0-incubating-SNAPSHOT war in your local Maven
repository (e.g. in ~/.m2/repository/org/apache/wookie)
Note however I've seen a bug in Ivy/Ant where this is cached rather than
updated when you make changes, so you may need to delete it then re-publish
whenever you make changes (which is a pain)
If you just want to try out some JavaScript changes interactively, you can run
Rave, then go into rave-portal/target/tomcat6x/webapps/wookie/features and edit
OpenAjaxClient.js. You can then see the effects just by reloading to clear the
browser cached version. When you're happy you've got a good working solution,
you can copy it into your source folder then follow the steps above to try it
as part of a new build.
Hope this helps,
-S
Hi Scott,
thanks for the instructions - it worked.
For the wookie widgets there are only OpenAjax Iframe Container for
displaying the widgets whereas Shindig loads some other components.
I have cusomized the wookie/features/openajax/feature.xml and
commented out the OpenAjaxClient.js
Then, connect manually inside the widgets taking care of the callback
function from the openajaxhub.
Then the connection is ready, it calls automatically my defined function
which subsribes to the needed topics.
this.connect = function(){
if(typeof window.hub === 'undefined'){
window.hub = new OpenAjax.hub.IframeHubClient({
HubClient: {
onSecurityAlert: function(){
console.log("OpenAjax Security Error!");
}
}
});
// Connect to the ManagedHub with callback function for
asynchronous communication
window.hub.connect(conn.callbackOnConnect);
}
else console.log("OAHub: Hub already defined.");
}
this.callbackOnConnect = function(hub, success, error){
if(success){
console.log("OAHub: Connection successfully established.
");
ConnectionCallBackFunction(); // myfunction
}
else console.log("OAHub: Connection failed.");
}
For general usage, i think we must use the callback function to wait
until the hub is connected and after that load the content for the window.
Has someone an idea how to implement this properly, clean and nice into
rave :) (rave_wookie.js)?
Thanks,
Christian