I am asking for your ideas about how to combine multiple GWT based web applications into a flexible, pluggable system little bit similar to the new Google portfolio. Here are the details/ideas/requirements:
- on the top of the screen there should be a bar
- the system bar contains the menu buttons for each “plugin-application”. the list should be somehow configurable or even fully dynamic
- the system bar contains login/logout widgets
- each plugin applications are below the system bar
- the user can switch application by choosing its name on the system menu bar
- the plugin applications should be in separate Eclipse projects so that they can be developed/tested separately
- the plugin applications would share some custom widgets, so these widgets should be kept in a common Eclipse project
- it would be nice if the plugin applications could be deployed as separate WAR files on the server so that they could be upgraded one by one
- it would be nice if the system bar automatically detected new plugin applications
Is it possible to use sources from different Eclipse projects when building a GWT application? If the login is owned by the “system bar” then how is it possible to secure the separate war files? Can the login state be shared somehow?
The answer lies in GWT with JAX-RS REST: http://h2g2java.blessedgeek.com/2011/11/gwt-with-jax-rs-aka-rpcrest-part-0.html.
REST on JAX-RS and RestyGWT using JAX-B and Jackson as object schemata will allow
However, the weakness of REST is that your UI cannot be a mashup bundle of cross-domain portlets. Some people might see this as a strength, since cross-domain has to use the security-risky script-include technique. In order to overcome that, you could write a proxy servlet (aka http tunnel), which is a rather simple affair.