Pré-requis:
Avoir sur son poste une version d'éclipse contenant le plugin GWT ce dernier correctement configurer pour utiliser une version 2.x de l'api GWT.
Etape 1: création du projet.
En cliquant sur l'icône de création d'un projet GWT la fenêtre ci-dessous s'affiche. Pour l'exemple j'ai choisi d'appeler mon projet ApiGwt avec comme package principal org.graphical.api:

Par défaut GWT créé des classes d'exemples. Supprimer toutes les classes existantes ainsi que les packages org.graphical.api.server et org.graphical.api.shared
Etape 2: mise à jour du fichier XML de déclaration du module.
Editer le fichier ApiGwt.gwt.xml et modifier le en supprimant les lignes surlignées en jaunes ci dessous.

Le projet est maintenant prêt et peut-être utiliser pour créer les classes que l'on souhaite partager.
Etape 3: Création d'une classe simple.
Afin d'avoir un plus grande lisibilité dans le code source, il est intéressant de créer un nouveau dossier source. Pour cela faire un clic droit sur le projet puis new -> source folder

J'ai appelé "ui" ce nouveau dossier source. Dans ce dossier il faut créer deux packages:

Le projet est maintenant prêt et peut-être utiliser pour créer les classes que l'on souhaite partager.
Etape 3: Création d'une classe simple.
Afin d'avoir un plus grande lisibilité dans le code source, il est intéressant de créer un nouveau dossier source. Pour cela faire un clic droit sur le projet puis new -> source folder

J'ai appelé "ui" ce nouveau dossier source. Dans ce dossier il faut créer deux packages:
- org.graphical.api.client.ui
- org.graphical.api.client.ui.dialogs
Note: penser à décommenter le doctype.
Afin de fournir un exemple, dans le package org.graphical.api.client.ui.dialogs, je créé la classe MyDialog dont le code est:
package org.graphical.api.client.ui.dialogs;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
public class MyDialog extends DialogBox {
public MyDialog() {
super();
this.setText("Mon titre");
this.setWidget(new HTML("Bla bla bla"));
}
}
Etape 4: déclaration du nouveau module dans le fichier XML de déclaration principal.
Pour cela il suffit de rajouter la ligne suivante dans le fichier ApiGwt.gwt.xm:
Pour cela il suffit de rajouter la ligne suivante dans le fichier ApiGwt.gwt.xm:
A ce stade il est possible d'exporter les packages créés sous forme de jar afin de les utiliser dans un autre projet GWT. Le soucis est que pour le moment nous n'avons pas testé notre classe.
Etape 5: création d'un package de tests.
Afin de bien séparer les tests du reste je créé un nouveau dossier source nommé "tests". Dans ce dossier je créé deux packages:
- org.graphical.api.tests
- org.graphical.api.tests.client
La ligne
permet de déclarer quelle est la classe qui implémente "EntryPoint".
Dans le deuxième package org.graphical.api.tests.client je crée la classe "Tests":
package org.graphical.api.tests.client;
import org.graphical.api.client.ui.dialogs.MyDialog;
import com.google.gwt.core.client.EntryPoint;
public class Tests implements EntryPoint {
@Override
public void onModuleLoad() {
MyDialog myDialog = new MyDialog();
myDialog.show();
myDialog.center();
}
}
Une dernière modification est nécessaire avant de pouvoir lancer la classe de test. Il faut éditer le fichier ApiGwt.html et remplacer la ligne:
par la ligne:
Une fois cela fait faire un clic droit sur ApiGwtTests.gwt.xml puis run as -> web application.
L'étape 5 n'est pas nécessaire, en effet il aurait été possible de faire les tests directement dans la classe d'entrée créé automatiquement par GWT. L'intéret de cette solution est qu'elle permet de bien isoler les tests et le reste du code et aussi de faire des exports incluant uniquement les classes effectivement utiles.
Etape 6: export sous forme de jar.
L'arborescence finale est la suivante:
Pour exporter sous forme de jar faire un clic droit sur le projet puis export->java->jar file et sélectionner les packages a exporter comme suit:
Etape 6: export sous forme de jar.
L'arborescence finale est la suivante:
Pour exporter sous forme de jar faire un clic droit sur le projet puis export->java->jar file et sélectionner les packages a exporter comme suit:

Etape 7 : Utilisation du jar créé.
Pour utiliser le jar créé il suffit de la placer dans le répertoire lib de votre projet GWT, de l'ajouter au classpath de celui-ci et enfin de le déclarer dans le fichier
Conclusion:
Cette démarche me parait intéressante et facile à mettre en place. Lors de mes différents essais je n'ai trouvé qu'un lien sur le sujet (http://java.ociweb.com/mark/programming/GWT.html#Reuse) que j'ai trouvé un peu léger même si tout y est dit, d'où l'idée de ce post.
Aucun commentaire:
Enregistrer un commentaire