wikitty-publication externalize
===============================
:Authors: Mano��l Fortun

but
+++

Le but d'externaliser les wikitty est de pr��compiler les wikitty pour gagner en 
performance et fixer les wikittyPubText emp��chant leurs modifications. 
Ainsi avoir un wikitty service contenant le code applicatif "fix��" et des 
wikitty service qui viennent se connecter dessus et exploiter l'application avec
les wikitty "donn��es" que eux poss��dent.

La pr��compilation devrait permettre plus facilement un tel fonctionnement. 

Ce m��chanisme sous entends qu'en plus de les pr��compiler on stocke les wikitty
compil�� dans un jar, pour emp��cher la modification.


Un wikitty service
++++++++++++++++++

La premi��re analyse envisageait une jsp qui externaliserait les wikitty, mais 
finalement je pense qu'une option int��ressante serait d'utiliser une nouvelle 
impl��mentation de wikitty service. 

Ce service WikittyServiceExternalize impl��menterait des m��thodes comme le store 
de list de wikitty, restore, et les m��thodes de recherche.

Le store prendrait une liste de wikitty, les ��crirais sur le disque comme le
wikitty service file system, compilerais ce qui est compilable et packagerais le 
tout dans un jar.

Le restore et les recherches serait des m��thodes qui exploreraient le jar. 

Une autre solution serait que le stockage, pr��compilation, packaging se fassent
par une classe un peu similaire �� l'outil de synchronisation de wikitty service 
mais que les restores et m��thodes de recherche se fassent par une impl��mentation
de wikitty service sur Jar.


Un nouveau type de wikittyPub
+++++++++++++++++++++++++++++

Pour que les wikitty compil��s soient utilis��s et ��x��cut��, il faut qu'ils soient
encore des wikitty, ils ne peuvent plus ��tre consid��r�� comme des wikittyPubText,
et on ne doit pas pouvoir les modifier.

Il faut un nouveau type de wikittyPub:
- wikittyPubCompiled
- WikittyPubStatic
- wikittyPubTextCompiled

Qui aurait en champ:
- nom
- mimetype (cel�� dit pas sur que ce soit n��cessaire �� la transformation du 
  wikitty en objet compilable cel�� sera peut ��tre ins��r�� dedans)
- content en byte



Conservation des propri��t��s des wikitty
+++++++++++++++++++++++++++++++++++++++

Comme pour le stockage des wikitty sur file system dans wikitty publication, 
afin de pouvoir r��utiliser les wikitty il faut pouvoir conserver certaines 
propri��t�� des wikitty, comme l'id, la version et eventuellement le mimeType.

Une solution serait comme pour les wikitty dans le file syst��me de sauvegarde
les propri��t��s dans des fichiers de propri��t��s. Mais dans le minimum possible,
on aurait �� la racine du jar dans un sous dossier externalIndex deux fichiers de 
propri��t��s pour les attributs des wikitty.

Le fait que tout soit enregistr�� dans seulement deux fichiers de propri��t��s 
permet de ne pas avoir �� chercher dans toute l'arborescence du jar pour 
retrouver les wikitty, contrairement au cas de la synchronisation o�� c'��tait 
n��cessaire.

Exemple:
--------


jar:

+jar
|externalIndex/
||id.properties
||meta.properties
|+label
||unwikittyCompil��.class
||unautre.class    
||+chausette
|||autre.class
|||fff.class
|wi.jpg

Fichiers de propri��t��s correspondant:
-------------------------------------

id.properties:
11daz5facz=/label/unwikittyCompil��.class
jbdub1dza8=/label/unautre.class
dadzadzac=/label/chausette/autre.class
dcdzcve678=/label/chausette/fff.class
oniifdefe4=/wi.jpg


meta.properties
11daz5facz.version=8
jbdub1dza8.version=2
dadzadzac.version=3
dcdzcve678.version=1
oniifdefe4.version=1.2
11daz5facz.mimeType=application/javascript
jbdub1dza8.mimeType=application/jruby
dadzadzac.mimeType=application/java
dcdzcve678.mimeType=application/javascript


Es ce que finalement on ne pourrait pas n��gliger la version pour les 
wikittyPubText externaliz��s?
Et consid��rer les wikitty comme tous de version 1.0 et donc ne plus avoir besoin
de sauvegarder dans un second fichier de propri��t��.

Dans le cas o�� l'on externalize des wikittyPubData on conserverait la version
ausi, bien que la question pourrait se poser aussi, puisque si ce wikitty
est d��ja existant dans le wikitty service appelant on pourrait consid��rer
que le wikitty externaliz�� est red��fini par celui du service.


Mechanisme de transformation
++++++++++++++++++++++++++++

Le mechanisme de transformation d'un wikittyPubText en wikitty externaliz�� 
implique de d��corer le code du wikittyPubText par du code java pour le compiler 
et le stocker sous forme de classe.
