You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rave.apache.org by Scott Wilson <sc...@gmail.com> on 2012/12/01 13:06:27 UTC

Re: make shure OpenAjax Hub is ready before Userscripts are executed (wookie)

On 3 Sep 2012, at 16:30, Christian Fischer wrote:

> 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)?

Hi Christian,

I've checked in an update to the Wookie feature based on your code - thanks! - plus I added queuing any pub/sub actions made before the hub is ready then executing them. Its in the Wookie trunk, and will be in the 0.13 release.

S

> 
>>>>> Thanks,
>>>>> Christian
> 


Re: make shure OpenAjax Hub is ready before Userscripts are executed (wookie)

Posted by Christian Fischer <c....@cs-hertwig.de>.
Am 01.12.2012 13:06, schrieb Scott Wilson:
> On 3 Sep 2012, at 16:30, Christian Fischer wrote:
>
>> 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)?
> Hi Christian,
>
> I've checked in an update to the Wookie feature based on your code - thanks! - plus I added queuing any pub/sub actions made before the hub is ready then executing them. Its in the Wookie trunk, and will be in the 0.13 release.
>
> S
Hi Scott,

thanks for your work - it looks nice. I'll test it for our purposes but 
i think it schould work without any problems.

Greets,
Christian