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