GS-reactor ― Introduction

La partie moteur de données de Generic System est développée depuis 2005 et elle est actuellement stable. Elle peut être utilisée dans n’importe quel projet Java 8, il suffit de la définir comme dépendance du projet. Il est également possible d’utiliser CDI pour injecter une référence à Engine au lieu de la créer.

Qu’est-ce que gs-reactor ?

gs-reactor est la partie front-end de Generic System. Le développement de gs-reactor a débuté beaucoup plus récemment que celui du noyau de Generic System. Par conséquent, gs-reactor est encore en cours de développement intensif et l’API n’est pas encore stable.

gs-reactor est à la fois :

  • Un serveur d’applications web pouvant utiliser des unités de persistance fournies par Generic System ;
  • Un framework de développement permettant de développer des applications web réactives directement en Java ;
  • Une bibliothèque de composants graphiques pouvant s’adapter au modèle de persistance configuré dans Generic System.

Les applications gs-reactor sont principalement configurées à l’aide d’annotations.

Continue reading GS-reactor ― Introduction

GS-reactor ― Exemple : Lancement d’une application

Voici d’abord comment lancer une application à l’aide de la partie serveur d’applications du réacteur :

Continue reading GS-reactor ― Exemple : Lancement d’une application

GS-reactor — Exemple : Composant créé avec gs-reactor

L’exemple d’application donné ci-dessus fait appel à une classe Table, qui a été écrite pour donner un exemple relativement simple d’utilisation du framework Generic System, elle est donc moins complexe que la table utilisée dans la démonstration disponible sur genericsystem.com.
Ce composant se contente d’afficher toutes les instances d’un type donné avec les valeurs de leurs holders et des composants de leurs liens.
Nous verrons plus bas comment l’arbre de tags créé est transformé en arbre de DOM nodes affichable par le navigateur.

Continue reading GS-reactor — Exemple : Composant créé avec gs-reactor

GS-reactor, annotations ― Description des annotations

@Children

Prend comme valeur un tableau de classes étendant TagImpl qui correspondent aux classes des tags enfants à instancier. Lors du lancement de l’application, cette annotation est traitée en premier afin de construire entièrement l’arborescence des tags. Puis l’arbre est parcouru afin de traiter les autres annotations.

Exemple : InstancesTable permet d’afficher les instances d’un type. Les instances de cette classe ont 3 enfants : HeaderRow qui correspond à la ligne de titre, InstanceBuilder qui permet de créer une nouvelle instance du type affiché, et enfin ContentRow qui affiche les instances du type affiché.

Continue reading GS-reactor, annotations ― Description des annotations

GS-reactor, annotations — Les paramètres path et pos, priorité des annotations

Les paramètres path et pos

Toutes les annotations définies dans le réacteur permettent de préciser des paramètres path et pos en plus des paramètres décrits ci-dessus. Ces paramètres permettent d’appliquer des commandes non seulement aux instances de la classe sur laquelle les annotations sont placées, mais aussi sur n’importe lequel de leurs descendants. Cela permet de préciser le comportement de descendants du composant que l’on écrit et d’éviter de créer une nouvelle classe à chaque fois que l’on veut modifier le comportement d’un tag.

Le paramètre path a comme valeur un tableau de classes indiquant les classes des instances du chemin à emprunter lors de la descente dans l’arbre pour aboutir au(x) tag(s) concerné(s) par l’annotation.

Il n’est pas obligatoire de préciser la classe exacte de ces tags, mais seulement une superclasse.

Continue reading GS-reactor, annotations — Les paramètres path et pos, priorité des annotations