Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
7 février 2014 5 07 /02 /février /2014 10:22

Dans mon dernier post concernant les accès aux données avec  Le framework YAKOLIV (brève présentation) j'ai fait allusion à Yakoliv Generation Tool Assistant dont je vous ferai une présentation dans le présent article.

C'est quoi YAKOLIV Gen Tool?

YAKOLIV Generation Tool est un progiciel qui à partir d'un fichier xml génère, en respectant une structure précise, un ensemble de fichiers constituant le socle du logiciel à écrire. Il se base sur les annotations de YAKOLIV pour générer automatiquement:

-le code SQL pour la création de vos tables dans la base de données.(Facilite donc le travail de l'administrateur des bases de données car il y trouvera la majorité des contraintes déjà établies et coordonnées les unes aux autres)

-le mapping objet relationnel nécessaire au projet (les developpeurs pourront y ajouter des éléments si nécessaire car tous les fichiers sont à leur portée)

-une librairie d'accès aux données ayant toute l'implémentation nécessaire pour remplacer la couche d'accès aux données de votre application (il s'agit du framework YAKOLIV)

-le source nécessaire pour les services d'accès simple en CRUD à votre base de données.

-une couche de  services web permettant de manipuler à distance toutes les tables en CRUD

-un ensemble de fichiers de configuration pour le déploiement de vos services web dans un conteneur de servlets

    Il s'agit des fichiers web.xml, de configuration des web services, et de configuration de Apache CXF avec la sécurité nécessaire en s'appuyant sur spring security.

-la configuration nécessaire pour le client devant consommer les web services déployés.

YAKOLIV Gen Tool Assistant est une application graphique utilisant YAKOLIV Gen Tool pour générer les éléments sus-cités.

Yakoliv Gen Tool utilise un fichier respectant le schéma suivant:

 

<?xml version="1.0" encoding="UTF-8"?>

<project name = "cproject" basedir = "D:\yakoliv\test\" author="YAKAM Olivier" dbsm="PostgreSQL" language="Java" server ="laptop-yale" context="test-webservice" port="8080">

    <packages>

        <package id = "org.yakoliv.exple">

            <type name = "Country" package = "org.yakoliv.exple">

                <classAnnotations>

                    <classAnnotation type = "org.yakoliv.mbouop.dto.abs.annotation.Entity"  />

                </classAnnotations>

                <fields>

                    <field name = "code" type = "String" modifiers = "private">

                        <fieldAnnotations>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.CompareEqual"/>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.Unique"/>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.NotNull"/>

                        </fieldAnnotations>

                    </field>

                    <field name = "name" type = "String" modifiers = "private">

                        <fieldAnnotations>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.Unique"/>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.NotNull"/>

                        </fieldAnnotations>

                    </field>

                    <field name = "id" type = "Integer" modifiers = "private">

                        <fieldAnnotations>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.Auto"/>

                            <fieldAnnotation type="org.yakoliv.mbouop.dto.abs.annotation.PrimaryKey"/>

                        </fieldAnnotations>

                    </field>

                </fields>

            </type>

        </package>

    </packages>

</project>

Il s'agit d'un fichier xml décrivant le projet à construire. Il est très aisé pour quelqu'un qui connaît manipuler les fichiers xml de paramétrer son projet et de générer ses éléments. Pour ceux qui ne savent pas le faire, ils peuvent utiliser l'assistant. Je profite pour signaler que l'assistant n'est pas achevé, notamment au niveau de la fenêtre d'enregistrement d'un champs.

Enregistrons le document xml ci-dessus dans un fichier au nom de 'Country.yakoliv' et ouvrons ce fichier à partir de Yakoliv Gen Tool Assistant. Nous obtenons ceci:

acceuil_yakolivGenToolAssistant-copie-1.jpg

Un clic droit sur le noeud Country permet d'afficher le code java de la classe Country que nous avons présenté dans l'article précédent. 

Country_Java_Class-copie-2.jpg

Essayons de générer un projet pour manipuler la table Country. Pour ce faire, effectuons un clic droit sur le projet et choisissons Generate DTO Component. Nous obtenons :

Generated files

Le fichier sélectionné est le fichier yakoliv contenant la description du projet, celui qui a permis la génération.

le fichier cproject.jar est a été construit à partir du code source généré par l'outil, et contient des Data Transfer Objects à partir desquels le reste du projet est généré. Le code source de ces DTOs est visible dans le dossier 'src'.

Explorons le dossier YAKAMOlivier.

Premièrement, il est créé à partir du nom de l'auteur du projet. Il contient un fichier jar dans lequel les éléments du projet ont été archivés.

generted_jar.jpg

Dézippons ce dernier, nous obtenons ceci:

dezzipped_generated_jar.jpg

Maintenant que nous savons nous faire aider de Yakoliv Gen Tool pour générer notre code source, il nous reste à utiliser les objets générés pour constituer un projet java basé sur des services web Jax-ws avec Apache CXF, Spring security et Ibatis SQLMap.

Dans le prochain article, je vous présenterai succinctement les contenus de chacun des dossiers ci-dessus et dans les prochains articles, nous utiliserons ensemble les fichiers obtenus pour monter un projet client/serveur de A à Z.

Partager cet article
Repost0

commentaires

Présentation

  • : Le blog de YAKAM OLIVIER
  • : Blog de partage d'idées en mathématiques et en programmation avancée JAVA
  • Contact

Recherche

Archives

Mes Sources Favorites