IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

Système de plugins pour charger des modules au runtime


Sujet :

GWT et Vaadin Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut Système de plugins pour charger des modules au runtime
    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

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Personnellement, je pense que la conception de GWT n'est pas très adaptée à ce que tu veux faire.

    Pour faire un truc similaire à ce que tu veux faire (si j'ai bien compris), c'est d'avoir ta page générale (ton module principal) qui contienne une ou plusieurs iframe et se charge de charger (via une url) les autres modules GWT que tu souhaites avoir (il faut bien sûr qu'ils aient été compilé auparavant).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    OK merci benwit.
    L'utilisation d'iframes me parait judicieux pour afficher plusieurs modules dans la même page. Par contre cette solution est assez limitée à partir du moment où l'on veut faire communiquer les modules entre eux, par exemple pour éviter plusieurs fois le chargement des mêmes données. Mais bon, c'est soit ça soit mettre en place un portail de portlets. La nouvelle spec des portlets permet ce genre de choses.

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Tu as mis le doigt sur les limites de cette techno.

    Soit tes modules communiquent entre eux mais doivent être liés à la compilation (et donc être tous présent)
    Soit tu les charges indépendamment les uns des autres et dynamiquement mais c'est plus dur pour les faire communiquer entre eux.

    Je pense en même temps que je te répond au moyen de les faire communiquer entre eux : Définir un protocole de communication et un module de communication qui serait implémenté par tous les modules. Cela doit pouvoir se faire (en javascript, il doit être possible de récupérer certaines variables inter-frame si les urls des frames sont du même domaine (pour éviter le xss)) mais la complexité du truc ne se résume pas à un post de forum.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/02/2013, 16h11
  2. Réponses: 5
    Dernier message: 14/05/2006, 12h57
  3. plugins pour developper des applications RMI
    Par chaouki_2000 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/05/2006, 23h13
  4. Système de tags pour catégoriser des textes
    Par yazerty dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 18
    Dernier message: 20/03/2006, 17h32
  5. fonction pour charger des iframes
    Par rib dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2005, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo