History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: ICE-2742
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Deryk Sinotte
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
ICEfaces

Broadcast rendering API

Created: 13/Feb/08 06:38 PM   Updated: 07/Jul/08 12:39 PM
Component/s: Framework
Affects Version/s: None
Fix Version/s: 1.7.1

Environment: cluster
Issue Links:
Dependency
This issue depends on:
ICE-3096 Move the Message Service Client from ... Major Closed
This issue blocks:
ICE-2989 Add new SessionRenderer API Major Closed

Affects: Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial


 Description  « Hide
The original enterprise version of ICEfaces contained a special server-side rendering manager that could be used to broadcast render events across the nodes in a cluster using JMS. This feature has not been migrated to the current version and needs to be added back in.

 All   Comments   Change History   Subversion Commits      Sort Order:
Jack Van Ooststroom [18/Mar/08 01:32 PM]
We should also include the Enterprise Chat example.

Deryk Sinotte [28/Apr/08 05:21 PM]
Assigning to Jack.

The one thing that I wanted to do with this feature is make it more transparent. Right now we have the RenderManager but to switch to broadcast rendering, you have to use the BroadcastRenderer. I'd rather see us turn this into more of a switch that can turned on when necessary. It should be easier now that it's not a separate Enterprise feature.

Ken Fyten [28/Apr/08 06:21 PM]
There is also the new "SessionRenderer" API (ICE-2989). It would be nice if this API could also be used for cross-node deployments as well.

Jack Van Ooststroom [27/May/08 12:55 PM]
Message Service Client needs to be moved into the Core in order for the BroadcastHub to utilize its functionalities.

Jack Van Ooststroom [02/Jun/08 05:21 PM]
RenderManager API changes:

- com.icesoft.faces.async.render.broadcasted
- RenderManager.getInstance()
- RenderManager.isBroadcasted()
- RenderManager.setBroadcasted(boolean broadcasted)
- AsyncRenderer.isBroadcasted()
- AsyncRenderer.setBroadcasted(boolean broadcasted)

The property can be set inside an ICEfaces application's web.xml to enable or disable broadcasting. The RenderManager instance uses this property to set its default value of the broadcasted flag. This can be programmatically changed by using the setBroadcasted(boolean) method. Additionally, an AsyncRenderer can have its own value of the broadcasted flag for fine-grained control:

- if the RenderManager's flag is set to false broadcasting never happens, regardless of the AsyncRenderer's flag.
- if the RenderManager's flag is set to true, broadcasting happens if the AsyncRenderer's flag is set to true as well; otherwise broadcasting does not happen.

AsyncRenderer.requestRender() should still be used to request a render.

The icefacesRenderTopic JMS topic is used for broadcasting.

Marking this one as FIXED.