Bonjour,
Toutes les librairies utilisées par un module GWT ("EntryPoint") doivent être disponibles lors de la compilation. Par exemple :
<module>
<inherits name='com.google.gwt.user.User'/>
<inherits name="x.y.Z" />
</module>
nécessite que les JARs des libs GWT et x.y.Z soient dans le classpath du compilateur. Jusque là tout va bien.
Je cherche maintenant à créer une page web extensible via un système de plugins. Ma page est une sorte de template de blocs, un peu à la iGoogle/netvibes. Chaque bloc est généré par une lib GWT. Le problème est que ces libs ne sont pas disponibles lors de la compilation de l'appli. Elles sont déployées ultérieurement par l'utilisateur lors de l'installation de l'appli (en gros c'est un WAR + un repertoire plugins/ de JARs). Il est donc impossible de renseigner tous les noeuds <inherits> necessaires dans le XML de la page.
Ce problème est récurrent sur la mailing-list GWT, mais je n'arrive pas à savoir si une réelle solution existe (http://code.google.com/p/google-web-.../detail?id=620).
Mes pistes :
1. re-compiler les JS GWT au démarrage de l'application. C'est impossible car la classe GWTCompiler de google termine par un System.exit()...
2. utiliser GWT reflection (http://gwtreflection.sourceforge.net). L'exemple fourni ne parait pas correspondre au besoin. Si vous avez des retours d'experience...
3. utiliser GWT Exporter (http://code.google.com/p/gwt-exporter/) pour deployer les plugins en pur code javascript, que je pourrais ensuite appeler depuis ma page principale.
4. regarder du côté des Overlay types de GWT 1.5.
Je ne suis pas du tout à niveau sur les deux derniers points. Toute aide est vraiment la bienvenue.
Merci bien
Simon
--
Sonar , Open Source Quality Dashboard for Java projects
http://sonar.codehaus.org
Partager