Tools
Contents |
Outils utilisés pour développer Neogia
Comment installer une station de travail pour développeur :
Java
- java version 6.0 (ou 1.6) par ex. celui de Sun choisir JDK 6.0 Update xx
Eclipse
- Téléchargement eclipse Ganymede ou Téléchargement Eclipse Europa (choisir Eclipse IDE for Java EE Developers ) le plug-in important à avoir est WTP pour avoir une édition des fichiers XML confortable.
- Paramétrage_d'Eclipse
- Installer et Configurer OfbizNeogia sur l'IDE Eclipse, sous Windows
- FreeMarker plugin for Eclipse
- Groovy plugin for Eclipse
- Tutoriel SVN Subversive plugin for Eclipse
- Properties editor plugin for Eclipse
- Maven2 for Eclipse (Optional)
- FindBugs for Eclipse (Optional)
- CheckStyle for Eclipse (Optional)
NetBeans
- Téléchargement Netbeans La version Java SE est suffisante.
Ant
- Ant 1.6.5 sera utile pour compiler ou pour re-charger les données de démo
- les différentes options pour ant :
- ant : compilation des sources des modules et création du fichier ofbiz.jar
- ant run-install : charger les données de démo et les seed (données minimum pour se connecter)
- ant run-install-seed : juste les données seed
- ant run : lancer le serveur
- ant clean : nettoyer en supprimant les anciennes build
- ant clean-all : ant clean + les données
Argo Uml
- Site Web de ArgoUml c'est l'éditeur UML que nous utilisons
Neogia Generator
- Ce sont les générators qui créer la structure de fichiers venant en surplomb d'ofbiz. Structure définie par les diagramme UML du projet Neogia
Add-on Manager
L'Add-on Manager est un gestionnaire d'extensions pour Ofbiz développé par l'équipe Neogia. Il permet de rajouter des fonctionnalités propres à Neogia sur une installation Ofbiz de base.
Vous trouverez plus d'informations sur cet outil, ainsi que la liste des extensions disponibles sur la page suivante : OFBiz add-on/fr.
Subversion
Pour s'éviter un certain nombre de problèmes lors d'un commit, comme l'envoie de fichiers cachés, ou le mode binaire pour des fichiers textes, on peut configurer subversion. Le fichier ~/.subversion/config pourrait ressembler à celui-ci :
[miscellany] global-ignores = *.o *.lo *.la *.iml *.ipr #*# .*.orig *.orig .*.rej *.rej .*~ *~ .#* *.bak *.class .DS_Store enable-auto-props = yes [auto-props] *.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.bsh = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.groovy = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.jsp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.tld = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.ftl = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.js = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.c = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.cpp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.h = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.sgml = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.properties = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.pop.patch = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.cfp.patch = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.classpath = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.project = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.sld = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.gml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.xsl = svn:mime-type=text/xsl;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.xsd = svn:mime-type=text/xsd;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.html = svn:mime-type=text/html;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.htm = svn:mime-type=text/html;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.css = svn:mime-type=text/css;svn:eol-style=native;svn:keywords="Date Rev Author URL Id" *.dsp = svn:eol-style=CRLF *.bat = svn:eol-style=CRLF *.dsw = svn:eol-style=CRLF *.sh = svn:eol-style=LF;svn:executable;svn:keywords="Date Rev Author URL Id" *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg *.gif = svn:mime-type=image/gif *.tif = svn:mime-type=image/tiff *.zip = svn:mime-type=application/zip *.sxw = svn:mime-type=application/zip *.sxc = svn:mime-type=application/zip *.sxi = svn:mime-type=application/zip *.jar = svn:mime-type=application/octet-stream *.jks = svn:mime-type=application/octet-stream *.utf = svn:mime-type=application/octet-stream *.ttf = svn:mime-type=application/octet-stream *.shp = svn:mime-type=application/octet-stream *.shx = svn:mime-type=application/octet-stream *.dbf = svn:mime-type=application/octet-stream *.mif = svn:mime-type=application/octet-stream *.mid = svn:mime-type=application/octet-stream Makefile = svn:mime-type=text/plain;svn:eol-style=native README = svn:mime-type=text/plain;svn:eol-style=native NOTICE = svn:mime-type=text/plain;svn:eol-style=native LICENSE = svn:mime-type=text/plain;svn:eol-style=native ant = svn:mime-type=text/plain;svn:eol-style=LF ij.ofbiz = svn:mime-type=text/plain;svn:eol-style=LF rc.ofbiz = svn:mime-type=text/plain;svn:eol-style=LF
Mise en forme des entitymodel.xml par feuille de style xsl
Pour vérifier qu'un diagramme UML est fidèle au fichier entitymodel.xml correspondant on peut le générer avec neogia-generator et comparer les deux fichiers. Le problème vient du fait que l'ordre dans les deux fichiers n'est pas forcément le même et que ce sont des fichiers xml donc difficilement lisibles. Afin de faciliter ce travail on peut modifier l'affichage des entitymodel.xml par une feuille de style XSL (mef.xsl par exemple). Voici ce que pourrait contenir une telle feuille :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
</head>
<body>
<center>
<xsl:apply-templates select="entitymodel" />
</center>
</body>
</html>
</xsl:template>
<xsl:template match="entitymodel" >
<h1><xsl:value-of select="title"/></h1>
<h2><xsl:value-of select="description"/></h2>
<h2><xsl:value-of select="copyright"/></h2>
<h2><xsl:value-of select="author"/></h2>
<h2><xsl:value-of select="version"/></h2>
<table border="1px" style="text-align:center;">
<caption><big>Entities</big></caption>
<xsl:apply-templates select="entity"><xsl:sort select="@entity-name" order="ascending" /></xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="entity">
<h3 style="text-align:center;color:red"><xsl:value-of select ="@entity-name" /> [ <xsl:value-of select ="@package-name" /> ]</h3>
<table border="1px" style="text-align:center;"><center>
<caption><big>Fields</big></caption>
<tr><td style="text-align:center;color:blue">Nom</td><td style="text-align:center;color:blue">Type</td></tr>
<xsl:apply-templates select="field"><xsl:sort select="@name" order="ascending" /></xsl:apply-templates>
</center></table>
<br />
<table border="1px" style="text-align:center;"><center>
<caption><big>Relations</big></caption>
<tr><td style="text-align:center;color:blue">Type</td><td style="text-align:center;color:blue">fk-name</td>
<td style="text-align:center;color:blue">rel-field-name</td><td style="text-align:center;color:blue">rel-entity-name</td></tr>
<xsl:apply-templates select="relation" ><xsl:sort select="@type" order="ascending" /></xsl:apply-templates>
</center></table>
<br />
<table border="1px" style="text-align:center;"><center>
<caption><big>Primary keys</big></caption>
<tr><td style="text-align:center;color:blue">field</td></tr>
<xsl:apply-templates select="prim-key" ><xsl:sort select="@field" order="ascending" /></xsl:apply-templates>
</center></table>
<br />
</xsl:template>
<xsl:template match="field">
<tr><td><b><xsl:value-of select ="@name" /></b></td><td><xsl:value-of select ="@type" /></td></tr>
</xsl:template>
<xsl:template match="relation">
<tr>
<td><b><xsl:value-of select ="@type" /></b></td><td><xsl:value-of select ="@fk-name" /></td>
<td><xsl:value-of select ="@rel-field-name"/></td>
<td><xsl:value-of select="@rel-entity-name"/></td>
</tr>
</xsl:template>
<xsl:template match="prim-key">
<tr><td><b><xsl:value-of select ="@field" /></b></td></tr>
</xsl:template>
</xsl:stylesheet>
Il ne reste plus qu'à afficher la feuille xml avec ce style.
Parmi les diverses solutions la plus simple est l'ajout de la ligne
<?xml-stylesheet type="text/xsl" href="mef.xsl"?>
juste après la ligne du type
<?xml version="1.0" encoding="UTF-8"?>
Voici alors ce que l'on peut obtenir :


