Monday, August 6, 2012

OSGi Application nested submodule messaging

Question to the forum. We are rewriting our 120K line GWT application to run on an OSGi architecture so that we no longer deploy a megawar file and can update individual parts of the application (currently 25 modules, will be 85 in a year) UI and services without affecting others. We've created an OSGi container that can bundle GWT applications and dynamically load/unload their RPC serialization files, but we're not done yet.

Problem:
We use a core application loading screen from which users go to submodules. We are using the design of a Header/Foot and center container here. The Header/Foot are part of the core application and we use the center pane to load the submodule in an iFrame. The rub: we need to pass some state information from the opened submodule back to the core application so that the Header/Footer views in the core application can be updated with Header/Footer customizations from the submodule.

While I know I could just make the Header/Foot part of the submodule, and then just open a new .html page to load the submodule, there are many buttons and services in the Header/Footer that don't make sense to replicate in each submodule. Further, if we update the Header/Footer, we don't want to have to redeploy each submodule to make them match.

Potential messaging mechanisms:
  • Pass messages via Cookie with polling (ugly)
  • Have iFrame parent poll for changes in iFrame DOM (or JSNI method in iFrame like getHeaderState())
  • Update page URL with hashed state information (not so good, finite data limit)
I'd rather not have to poll at intervals and the URL mechanism seems like an anit-pattern. Has anyone else solved this problem before? Thx.



Sincerely,
Joseph

P.S. I'll attach a diagram later tonight. Seems you cannot add a picture w/o using G+ and like many companies we block social media access. :(

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/d_I6pVN5bfQJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment