Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
March 2011
- 5 participants
- 15 discussions
r744 - trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr
by echatellier@users.nuiton.org 04 Mar '11
by echatellier@users.nuiton.org 04 Mar '11
04 Mar '11
Author: echatellier
Date: 2011-03-04 16:57:39 +0100 (Fri, 04 Mar 2011)
New Revision: 744
Url: http://nuiton.org/repositories/revision/wikitty/744
Log:
Fix test
Modified:
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 13:30:30 UTC (rev 743)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 15:57:39 UTC (rev 744)
@@ -263,6 +263,7 @@
treeNodeImpl.setName("root");
WikittyEvent event = ws.store(null, Collections.singleton(treeNode), false);
treeNode = event.getWikitties().get(treeNode.getId());
+ treeNodeImpl = new WikittyTreeNodeImpl(treeNode);
// store attachement
Wikitty attach1 = new WikittyImpl("att1");
@@ -274,7 +275,7 @@
toStore.add(attach2);
toStore.add(treeNode);
ws.store(null, toStore, false);
-
+
// set resync
ws.syncSearchEngine(null);
1
0
r743 - in trunk/src/site: . resources resources/user rst rst/user
by jcouteau@users.nuiton.org 04 Mar '11
by jcouteau@users.nuiton.org 04 Mar '11
04 Mar '11
Author: jcouteau
Date: 2011-03-04 14:30:30 +0100 (Fri, 04 Mar 2011)
New Revision: 743
Url: http://nuiton.org/repositories/revision/wikitty/743
Log:
Improve doc :
- Improve security part
- add model examples in generation part
- add spec page in generated site
- fix spelling mistakes
Added:
trunk/src/site/resources/user/
trunk/src/site/resources/user/wikittyDependency.png
trunk/src/site/resources/user/wikittyTree.png
trunk/src/site/rst/user/generation.rst.vm
Removed:
trunk/src/site/rst/user/generation.rst
Modified:
trunk/src/site/rst/Spec.rst
trunk/src/site/rst/user/security.rst
trunk/src/site/site_fr.xml
Added: trunk/src/site/resources/user/wikittyDependency.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/user/wikittyDependency.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/user/wikittyTree.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/user/wikittyTree.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/site/rst/Spec.rst
===================================================================
--- trunk/src/site/rst/Spec.rst 2011-03-04 10:55:53 UTC (rev 742)
+++ trunk/src/site/rst/Spec.rst 2011-03-04 13:30:30 UTC (rev 743)
@@ -29,8 +29,8 @@
=========================
Les identifiants sont de la forme UUID[_<specifique extension>]. Donc tous les
-identifiants commence par un UUID et peut être séparé d'une extension
-spécifique pour certain besoin par un '_' (underscore).
+identifiants commencent par un UUID et peuvent être séparé d'une extension
+spécifique pour certains besoins par un '_' (underscore).
C'est le mécanisme de base de génération des wikitty-id. Il y a toutefois
des exceptions :
@@ -44,21 +44,21 @@
WikittyServiceNotifier
======================
-Tous les events passant par le WikittyServiceNotifier sont envoyé au
-RemoteNotifier s'il est indiqué dans la configuration qu'il faut envoyer les
-events (wikitty.service.event.propagateEvent). Il faut alors dans ce cas
+Tous les évènements passant par le WikittyServiceNotifier sont envoyé au
+RemoteNotifier s'il est indiqué, dans la configuratio,n qu'il faut propager les
+évènements (wikitty.service.event.propagateEvent). Il faut alors dans ce cas
définir le transporter à utiliser (wikitty.notifier.transporter.class).
-Le transporter sert à envoyer(serveur) et recevoir(client) les events. Le
+Le transporter sert à envoyer(serveur) et recevoir(client) les évènements. Le
même transporter doit être utilisé pour le client et le serveur.
-Il existe aujourd'hui deux types de transporter différent (jgroups, xmpp).
+Il existe aujourd'hui deux types de transporter différents (jgroups, xmpp).
L'implantation jgroups pose quelque soucis (ne fonctionne pas toujours). Il
est donc préférable d'utiliser le transporter xmpp.
-Il est bien sur possible d'empiler deux couche de WikittyServiceNotifier
-avec des transporters différents coté serveur pour permettre à différent
-type de client de fonctionner en même temps (FIXME poussin 20101115 il n'est
+Il est bien sûr possible d'empiler deux couches de WikittyServiceNotifier
+avec des transporters différents coté serveur pour permettre à différents
+types de client de fonctionner en même temps (FIXME poussin 20101115 il n'est
pas actuellement possible de configurer ce fonctionnement)
Pour utiliser le transporter xmpp il faut que vous ayez un serveur xmpp avec
@@ -120,109 +120,6 @@
notifications qu'on a pas pu lui envoyer et on lui renvera tout ce qu'il a
manqué lorsqu'il sera de retour. (utile pour la synchro serveur)
-Gestion des droits
-==================
-
-Utilisateurs et groupes
------------------------
-
-Les utilisateurs ont un nom et un mot de passe, les groupes contiennent
-des utilisateurs et d'autres groupes
-
-Par défaut il existe un *WikittyGroup* portant le nom **WikittyAppAdmin**.
-Si ce groupe n'existe pas ou qu'il est vide, cela indique que tous les
-utilisateurs sont AppAdmin. Cela est nécessaire pour deux choses:
-
-- pour permettre d'avoir une authentification, mais que l'on ne souhaite pas de
- gestion d'autorisation.
-
-- pour servir de bootstrap au lancement de l'application seul les AppAdmin
- peuvent modifier le *WikittyGroup* portant le nom **WikittyAppAdmin**, or s'il
- est vide il faut pouvoir le remplir.
-
-Il ne doit donc exister un seul *WikittyGroup* portant le nom
-**WikittyAppAdmin**
-
-Tokens de sécurité
-------------------
-
-À chaque login, un token de sécurité est fourni à l'utilisateur. L'utilisateur
-doit fournir ce token à chaque opération pour montrer qu'il a les droits.
-Pour un token donné, on peut savoir à quel utilisateur il appartient.
-
-Les tokens sont stockés en base et supprimés au logout de l'utilateur.
-
-Les SecurityToken ne sont supprimés de la base de données qu'au moment du logout
-Si les utilisateurs/applications quittent sans faire le logout le nombre de
-SecurityToken ne fera qu'augmenter. Pour éviter cela, il faut prévoir un petit
-job qui de temps en temps fait le ménage dans les SecurityToken trop vieux.
-
-Gestion des droits sur un Wikitty (sécurité niveau 1)
------------------------------------------------------
-
-Un wikitty a plusieurs extensions, pour chacune de ces extensions, on a plusieurs
-droits. On distinque quatre niveaux de droits :
-
-* owner (un utilisateur) donne tous les droits sur un wikitty
-
-* admin (zéro ou plusieurs utilisateurs / groupes) permet d'ajouter ou de
- supprimer des éléments dans writer et reader, et tous les droits comme 'owner'
-
-* writer (zéro ou plusieurs utilisateurs / groupes) permet, pour chacun des
- champs de cette extension, de modifier la valeur
-
-* reader (zéro ou plusieurs utilisateurs / groupes) permet, pour chacun des
- champs de cette extension, de lire la valeur
-
-Si on veut que tout le monde puisse lire un wikitty, il faut laisser vide la
-liste des readers (vide ou null).
-
-Si l'on souhaite indiquer que personne ne peut lire l'objet il faut mettre le
-owner en tant que reader. Car de toute façon l'owner aura toujours le droit
-en lecture.
-
-La granularité des droits se situe donc au niveau de chaque instance. On doit
-pouvoir définir le droit pour chaque extension, de chaque wikitty. Il n'y a
-pas de gestion des droits par champs. Avoir le droit *reader* sur une extension
-d'un wikitty donne le droit de lecture sur tous les champs de cette extension.
-
-Du point de vue structure de données, ces droits sont stockés sur le wikitty
-lui-même, dans des champs spécifiques. Par exemple, si le wikitty porte
-l'extension *Ext*, il portera également l'extension « Ext:WikittySecurity »
-et il y aura, sur le Wikitty, un champ nommé « owner » (dont le FQN est
-« Ext:WikittySecurity.owner »).
-
-Autre exemple, si un wikitty porte 3 extensions, ayant chacune 10 champs.
-Le wikitty aura, au total, 42 champs : 3 × 10 champs + 3 extensions × 4 champs
-(les 4 champs de l'extension WikittySecurity).
-
-Gestion des droits sur les extensions (sécurité niveau 2)
----------------------------------------------------------
-
-Pour chaque extension, on a la même hiérachie de droit qui donnent des
-possibilités différentes :
-
-* owner :
-
-* admin : permet de changer les droits de l'extension. Donc, permet d'ajouter
- ou de supprimer des éléments dans writer et reader
-
-* writer : permet de modifier l'extension
-
-* reader : permet de lire l'extension pour en créer des instances. Si le reader
- est vide, tout le monde peut créer. Pour que seuls les AppAdmin et le owner
- puissent créer des instances, il faut mettre le owner en reader.
-
-Si une extension ne dispose pas de ces informations, seuls les AppAdmin peuvent
-créer les instances et modifier l'extension.
-
-Ces droits sont stockés sous le forme d'un Wikitty. Pour chaque extension
-connue, il y aura donc un wikitty dont la seule extension sera WikittySecurity.
-
-Chacun de ces wikitty aura pour identifiant « WikittySecurity:ExtensionName ».
-permet de court-cuircuiter la recherche solR, et un passage par le réseau à
-chaque store/restore.
-
Localisation
============
Deleted: trunk/src/site/rst/user/generation.rst
===================================================================
--- trunk/src/site/rst/user/generation.rst 2011-03-04 10:55:53 UTC (rev 742)
+++ trunk/src/site/rst/user/generation.rst 2011-03-04 13:30:30 UTC (rev 743)
@@ -1,111 +0,0 @@
-.. -
-.. * #%L
-.. * Wikitty
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
-======================================
-Générer son modèle métier vers Wikitty
-======================================
-
-Modélisation
-============
-
-Vous pouvez modéliser votre modèle métier en utilisant n'importe quel modéliseur
-UML pouvant enregistrer le modèle au format xmi (ArgoUML, Topcased,...). Les
-entités que vous souhaiter générer doivent avoir le stéréotype *entity*.
-
-Configuration Maven
-===================
-
-Pour générer le code, nous utilisons EUGene_ et son plugin Maven.
-
-Dans le pom de votre projet, rajoutez la définition du plugin::
-
- <plugin>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
- <version>2.2/version>
- <executions>
- <execution>
- <id>api generator</id>
- <phase>process-sources</phase>
- <configuration>
- <inputs>
- <input>zargo:src/main/xmi/:*.zargo</input>
- <input>classpath:model:/:wikitty.objectmodel
- </input>
- </inputs>
- <fullPackagePath>your.app.package</fullPackagePath>
- <defaultPackage>your.app.package</defaultPackage>
- <extractedPackages>
- your.app.package,org.nuiton.wikitty
- </extractedPackages>
- <generatedPackages>your.app.package</generatedPackages>
- <templates>
- org.nuiton.wikitty.generator.WikittyMetaGenerator,
- org.nuiton.wikitty.generator.WikittyDTOGenerator
- </templates>
- </configuration>
- <goals>
- <goal>smart-generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-Dans la section *inputs*, on spécifie le(s) modèle(s) métier::
-
- zargo:src/main/xmi/:*.zargo
-
-ainsi que le modèle Wikitty (en cas de dépendance de votre modèle métier vers le
-modèle Wikitty).
-
-Dans la section *templates*, vous pouvez spécifier quoi générer :
-*org.nuiton.wikitty.generator.WikittyMetaGenerator* pour la génération Wikitty
-standard et *org.nuiton.wikitty.generator.WikittyDTOGenerator* pour la
-génération des DTOs si besoin.
-
-Génération
-==========
-
-La génération est effectuée ensuite à chaque fois que vous lancez un build.
-
-Subtilités de modélisation
-==========================
-
-Dépendances vers l'API de Wikitty
----------------------------------
-
-Il est possible de rajouter une dépendance vers un objet de l'API Wikitty (par
-example WikittyUser) en rajoutant simplement la classe dans votre modèle dans le
-package* org.nuiton.wikitty.api*. Elle ne sera pas générée mais interviendra
-comme une autre classe de votre modèle (héritage,...).
-
-Arbres
-------
-
-Si vous souhaitez qu'une entité crée un arbre, vous avez juste à faire hériter
-cette entité de WikittyTreeNode (pas besoin de référence sur elle-même). De
-cette manière, la gestion de l'arbre est assurée par Wikity, de même que
-l'indexation et la recherche.
-
-.. _EUGene::http://maven-site.nuiton.org/eugene/
\ No newline at end of file
Copied: trunk/src/site/rst/user/generation.rst.vm (from rev 738, trunk/src/site/rst/user/generation.rst)
===================================================================
--- trunk/src/site/rst/user/generation.rst.vm (rev 0)
+++ trunk/src/site/rst/user/generation.rst.vm 2011-03-04 13:30:30 UTC (rev 743)
@@ -0,0 +1,115 @@
+.. -
+.. * #%L
+.. * Wikitty
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+======================================
+Générer son modèle métier vers Wikitty
+======================================
+
+Modélisation
+============
+
+Vous pouvez modéliser votre modèle métier en utilisant n'importe quel modéliseur
+UML pouvant enregistrer le modèle au format xmi (ArgoUML, Topcased,...). Les
+entités que vous souhaitez générer doivent avoir le stéréotype *entity*.
+
+Configuration Maven
+===================
+
+Pour générer le code, nous utilisons EUGene_ et son plugin Maven.
+
+Dans le pom de votre projet, rajoutez la définition du plugin::
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugeneVersion}/version>
+ <executions>
+ <execution>
+ <id>api generator</id>
+ <phase>process-sources</phase>
+ <configuration>
+ <inputs>
+ <input>zargo:src/main/xmi/:*.zargo</input>
+ <input>classpath:model:/:wikitty.objectmodel
+ </input>
+ </inputs>
+ <fullPackagePath>your.app.package</fullPackagePath>
+ <defaultPackage>your.app.package</defaultPackage>
+ <extractedPackages>
+ your.app.package,org.nuiton.wikitty
+ </extractedPackages>
+ <generatedPackages>your.app.package</generatedPackages>
+ <templates>
+ org.nuiton.wikitty.generator.WikittyMetaGenerator,
+ org.nuiton.wikitty.generator.WikittyDTOGenerator
+ </templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+Dans la section *inputs*, on spécifie le(s) modèle(s) métier::
+
+ zargo:src/main/xmi/:*.zargo
+
+ainsi que le modèle Wikitty (en cas de dépendance de votre modèle métier vers le
+modèle Wikitty).
+
+Dans la section *templates*, vous pouvez spécifier quoi générer :
+*org.nuiton.wikitty.generator.WikittyMetaGenerator* pour la génération Wikitty
+standard et *org.nuiton.wikitty.generator.WikittyDTOGenerator* pour la
+génération des DTOs si besoin (utilisation d'une UI GWT par exemple).
+
+Génération
+==========
+
+La génération est effectuée ensuite à chaque fois que vous lancez un build.
+
+Subtilités de modélisation
+==========================
+
+Dépendances vers l'API de Wikitty
+---------------------------------
+
+Il est possible de rajouter une dépendance vers un objet de l'API Wikitty (par
+example WikittyUser) en rajoutant simplement la classe dans votre modèle dans le
+package* org.nuiton.wikitty.api*. Elle ne sera pas générée mais interviendra
+comme une autre classe de votre modèle (héritage,...).
+
+.. image:: wikittyDependency.png
+
+Arbres
+------
+
+Si vous souhaitez qu'une entité crée un arbre, vous avez juste à faire hériter
+cette entité de WikittyTreeNode (pas besoin de référence sur elle-même). De
+cette manière, la gestion de l'arbre est assurée par Wikity, de même que
+l'indexation et la recherche.
+
+.. image:: wikittyTree.png
+
+.. _EUGene::http://maven-site.nuiton.org/eugene/
\ No newline at end of file
Property changes on: trunk/src/site/rst/user/generation.rst.vm
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/src/site/rst/user/security.rst
===================================================================
--- trunk/src/site/rst/user/security.rst 2011-03-04 10:55:53 UTC (rev 742)
+++ trunk/src/site/rst/user/security.rst 2011-03-04 13:30:30 UTC (rev 743)
@@ -20,9 +20,15 @@
Cela rajoute la couche de sécurité à Wikitty. Vous pouvez maintenant rajouter
des droits à certaines entitées pour en limiter l'accès.
-Création de l'administrateur de l'application
----------------------------------------------
+Utilisateurs et groupes
+-----------------------
+Dans Wikitty, deux notions sont utilisées pour gérer la sécurité : les
+utilisateurs (WikittyUser) et groupes (WikittyGroup).
+
+Les utilisateurs ont un identifiant et un mot de passe, les groupes contiennent
+des utilisateurs et d'autres groupes.
+
Par défaut il existe un *WikittyGroup* portant le nom **WikittyAppAdmin**.
Si ce groupe n'existe pas ou qu'il est vide, cela indique que tous les
utilisateurs sont AppAdmin. Cela est nécessaire pour deux choses:
@@ -37,6 +43,27 @@
Il ne doit donc exister un seul *WikittyGroup* portant le nom
**WikittyAppAdmin**
+L'authentification et les tokens de sécurité
+--------------------------------------------
+
+À chaque login, un token de sécurité est fourni à l'utilisateur. L'utilisateur
+doit fournir ce token à chaque opération pour montrer qu'il a les droits.
+Pour un token donné, on peut savoir à quel utilisateur il appartient. Pour le
+développeur, cela n'implique pas de changement car le token de sécurité est
+conservé par le **WikittyProxy**. Il faut juste faire attention à bien avoir un
+WikittyProxy par utilisateur. Dans le cas d'applications web, il est conseillé
+de conserver le proxy dans la session de l'utilisateur.
+
+Les tokens sont stockés en base et supprimés au logout de l'utilisateur.
+
+Les SecurityToken ne sont supprimés de la base de données qu'au moment du logout
+Si les utilisateurs/applications quittent sans faire le logout le nombre de
+SecurityToken ne fera qu'augmenter. Pour éviter cela, il faut prévoir un petit
+job qui de temps en temps fait le ménage dans les SecurityToken trop vieux.
+
+Création de l'administrateur de l'application (AppAdmin)
+--------------------------------------------------------
+
La première chose à faire maintenant, est donc de créer l'utilisateur
administrateur de l'application et l'ajouter au groupe **WikittyAppAdmin**::
@@ -47,17 +74,19 @@
WikittyGroup adminGroup = WikittySecurityUtil.createAppAdminGroup(admin);
+Note : il faut vérifier que le groupe existe avant de le créer).
+
Jouer avec les droits sur une entité (sécurité de niveau 1)
-----------------------------------------------------------
A partir de maintenant, l'utilisateur administrateur (et tous les autres
-utilisateurs faisant partie du groupe des **AppAdmin**) peut ajouter/retirer
+utilisateurs faisant partie du groupe **WikittyAppAdmin**) peut ajouter/retirer
des droits à des entités.
-Par exemple, pour rajouter les droits de lecture a un utilisateur (l'utilisateur
+Par exemple, pour rajouter les droits de lecture à un utilisateur (l'utilisateur
admin est déjà identifié) sur un wikitty::
- //On commence par charger les wikittys concernés
+ //On commence par charger les wikitties concernés
WikittyAuthorisation skill = proxy.restore(WikittyAuthorisation.class, id);
//On ajoute en reader notre utilisateur
@@ -92,20 +121,69 @@
owner en tant que reader. Car de toute façon l'owner aura toujours le droit
en lecture.
-L'authentification
-------------------
+La granularité des droits se situe donc au niveau de chaque instance. On doit
+pouvoir définir le droit pour chaque extension, de chaque wikitty. Il n'y a
+pas de gestion des droits par champs. Avoir le droit *reader* sur une extension
+d'un wikitty donne le droit de lecture sur tous les champs de cette extension.
-À chaque login, un token de sécurité est fourni à l'utilisateur. L'utilisateur
-doit fournir ce token à chaque opération pour montrer qu'il a les droits.
-Pour un token donné, on peut savoir à quel utilisateur il appartient. Pour le
-développeur, cela n'implique pas de changement car le token de sécurité est
-conservé par le **WikittyProxy**. Il faut juste faire attention à bien avoir un
-WikittyProxy par utilisateur. Dans le cas d'applications web, il est conseillé
-de conserver le proxy dans la session de l'utilisateur.
+La granularité des droits se situe donc au niveau de chaque instance. On doit
+pouvoir définir le droit pour chaque extension, de chaque wikitty. Il n'y a
+pas de gestion des droits par champs. Avoir le droit *reader* sur une extension
+d'un wikitty donne le droit de lecture sur tous les champs de cette extension.
-Les tokens sont stockés en base et supprimés au logout de l'utilisateur.
+Différence entre Admin et AppAdmin
+----------------------------------
-Les SecurityToken ne sont supprimés de la base de données qu'au moment du logout
-Si les utilisateurs/applications quittent sans faire le logout le nombre de
-SecurityToken ne fera qu'augmenter. Pour éviter cela, il faut prévoir un petit
-job qui de temps en temps fait le ménage dans les SecurityToken trop vieux.
\ No newline at end of file
+Un admin est administrateur d'une entité uniquement, alors qu'un AppAdmin est
+administrateur de toutes les entités de l'application.
+
+Stockage des droits de niveau 1 en base de donnée
+-------------------------------------------------
+
+Du point de vue structure de données, les droits sont stockés sur le wikitty
+lui-même, dans des champs spécifiques. Par exemple, si le wikitty porte
+l'extension *Ext*, il portera également l'extension « Ext:WikittySecurity »
+et il y aura, sur le Wikitty, un champ nommé « owner » (dont le FQN est
+« Ext:WikittySecurity.owner »).
+
+Autre exemple, si un Wikitty porte 3 extensions, ayant chacune 10 champs.
+Le wikitty aura, au total, 42 champs : 3 × 10 champs + 3 extensions × 4 champs
+(les 4 champs de l'extension WikittySecurity).
+
+Jouer avec les droits sur les extensions (sécurité niveau 2)
+------------------------------------------------------------
+
+Pour chaque extension, on a la même hiérachie de droit qui donnent des
+possibilités différentes :
+
++----------+----------------------+----------+-------------+----------------------+
+| Type | Lecture/ | Ecriture | Suppression | Changement de droits |
+| | Création d'instances | | | |
++==========+======================+==========+=============+======================+
+| Reader | X | | | |
++----------+----------------------+----------+-------------+----------------------+
+| Writer | X | X | | |
++----------+----------------------+----------+-------------+----------------------+
+| Owner | X | X | X | |
++----------+----------------------+----------+-------------+----------------------+
+| Admin | X | X | X | X |
++----------+----------------------+----------+-------------+----------------------+
+| AppAdmin | X | X | X | X |
++----------+----------------------+----------+-------------+----------------------+
+
+Si le reader est vide, tout le monde peut créer des instances de l'extension.
+Pour que seuls les AppAdmin et le owner puissent créer des instances, il faut
+mettre le owner en reader.
+
+Si une extension ne dispose pas de ces informations, seuls les AppAdmin peuvent
+créer les instances et modifier l'extension.
+
+Stockage des droits de niveau 2 en base de donnée
+-------------------------------------------------
+
+Ces droits sont stockés sous le forme d'un Wikitty. Pour chaque extension
+connue, il y aura donc un Wikitty dont la seule extension sera WikittySecurity.
+
+Chacun de ces wikitty aura pour identifiant « WikittySecurity:ExtensionName ».
+Cela permet de court-cuircuiter la recherche solR, et un passage par le réseau à
+chaque store/restore.
\ No newline at end of file
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2011-03-04 10:55:53 UTC (rev 742)
+++ trunk/src/site/site_fr.xml 2011-03-04 13:30:30 UTC (rev 743)
@@ -26,60 +26,61 @@
<project name="${project.name}">
- <publishDate format="dd/MM/yyyy"/>
+ <publishDate format="dd/MM/yyyy"/>
- <bannerLeft>
- <name>${project.name}</name>
- <href>index.html</href>
- </bannerLeft>
+ <bannerLeft>
+ <name>${project.name}</name>
+ <href>index.html</href>
+ </bannerLeft>
- <body>
+ <body>
- <breadcrumbs>
- <item name="${project.name}" href="${project.url}"/>
- </breadcrumbs>
+ <breadcrumbs>
+ <item name="${project.name}" href="${project.url}"/>
+ </breadcrumbs>
- <links>
- <item name="Libre-Entreprise"
- href="http://www.libre-entreprise.org/"/>
- <item name="[fr" href="index.html"/>
- <item name="en]" href="en/index.html"/>
- </links>
+ <links>
+ <item name="Libre-Entreprise"
+ href="http://www.libre-entreprise.org/"/>
+ <item name="[fr" href="index.html"/>
+ <item name="en]" href="en/index.html"/>
+ </links>
- <menu name="Overview">
- <item name="Accueil" href="index.html"/>
- <item name="Fonctionnement" href="fonctionnement.html"/>
- <item name="Fonctionnalités" href="features.html"/>
- <item name="Changements" href="changes.html"/>
- </menu>
+ <menu name="Overview">
+ <item name="Accueil" href="index.html"/>
+ <item name="Fonctionnement" href="fonctionnement.html"/>
+ <item name="Fonctionnalités" href="features.html"/>
+ <item name="Changements" href="changes.html"/>
+ <item name="Spécifications" href="Spec.html"/>
+ </menu>
- <menu name="Utilisateur">
- <item name="Génération" href="user/generation.html"/>
- <item name="Migration" href="user/migration.html"/>
- <item name="Hessian" href="user/hessian.html"/>
- <item name="Sécurité" href="user/security.html"/>
- </menu>
+ <menu name="Utilisateur">
+ <item name="Génération" href="user/generation.html"/>
+ <item name="Migration" href="user/migration.html"/>
+ <item name="Hessian" href="user/hessian.html"/>
+ <item name="Sécurité" href="user/security.html"/>
+ </menu>
- <menu name="Developpeur">
- <item name="Todo" href="todo.html"/>
- </menu>
+ <menu name="Developpeur">
+ <item name="Todo" href="todo.html"/>
+ </menu>
- <menu name="Communauté">
- <item name="Bug tracker"
- href="http://nuiton.org/projects/wikitty/issues"/>
- <item name="Téléchargement"
- href="http://nuiton.org/projects/list_files/wikitty"/>
- <item name="Dépot SVN"
- href="http://svn.nuiton.org/svn/wikitty/"/>
- <item name="Intégration continue"
- href="http://hudson.nuiton.org/hudson/job/wikitty/"/>
- <item name="Analyse Sonar"
- href="http://sonar.nuiton.org/sonar/project/index/org.nuiton:wikitty"/>
- </menu>
+ <menu name="Communauté">
+ <item name="Bug tracker"
+ href="http://nuiton.org/projects/wikitty/issues"/>
+ <item name="Téléchargement"
+ href="http://nuiton.org/projects/list_files/wikitty"/>
+ <item name="Dépot SVN"
+ href="http://svn.nuiton.org/svn/wikitty/"/>
+ <item name="Intégration continue"
+ href="http://hudson.nuiton.org/hudson/job/wikitty/"/>
+ <item name="Analyse Sonar"
+ href="http://sonar.nuiton.org/sonar/project/index/org.nuiton:wikitty"/>
+ </menu>
- <menu ref="modules"/>
+ <menu ref="modules"/>
- <menu ref="reports"/>
+ <menu ref="reports"/>
- </body>
+ </body>
</project>
\ No newline at end of file
1
0
r742 - trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr
by echatellier@users.nuiton.org 04 Mar '11
by echatellier@users.nuiton.org 04 Mar '11
04 Mar '11
Author: echatellier
Date: 2011-03-04 11:55:53 +0100 (Fri, 04 Mar 2011)
New Revision: 742
Url: http://nuiton.org/repositories/revision/wikitty/742
Log:
Add two new test (failing) about solr index.
Modified:
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 10:09:41 UTC (rev 741)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 10:55:53 UTC (rev 742)
@@ -26,25 +26,33 @@
package org.nuiton.wikitty.storage.solr;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.nuiton.wikitty.WikittyConfig;
+import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyImpl;
import org.nuiton.wikitty.entities.WikittyLabelImpl;
+import org.nuiton.wikitty.entities.WikittyTreeNode;
import org.nuiton.wikitty.entities.WikittyTreeNodeImpl;
import org.nuiton.wikitty.entities.WikittyUserImpl;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.Search;
import org.nuiton.wikitty.search.TreeNodeResult;
+import org.nuiton.wikitty.search.operators.Element;
+import org.nuiton.wikitty.services.WikittyEvent;
/**
- *
+ * Test for class {@link WikittySearchEngineSolr}.
+ *
* @author poussin
* @version $Revision$
*
@@ -56,8 +64,10 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
private static final Log log = LogFactory.getLog(WikittySearchEngineSolrTest.class);
- protected WikittyServiceSolr ws =new WikittyServiceSolr(new WikittyConfig());
+ protected WikittyServiceSolr ws = new WikittyServiceSolr(new WikittyConfig());
+ protected WikittyProxy proxy = new WikittyProxy(ws);
+
@Before
public void deleteAll() throws Exception {
ws.clear(null);
@@ -189,10 +199,118 @@
TreeNodeResult<String> children =
ws.getSearchEngine().findAllChildrenCount(
null, root.getId(), 1, true, null);
- System.out.println(children);
+ if (log.isDebugEnabled()) {
+ log.debug("Children : " + children);
+ }
+
Assert.assertEquals(2, children.getChildCount());
Assert.assertEquals(5, children.getChild(node1.getId()).getAttCount());
Assert.assertEquals(4, children.getChild(node2.getId()).getAttCount());
}
+ /**
+ * Test que lors de la reindexation les noeuds indexés le sont
+ * correctement si leur attachement ne sont pas encore
+ * présent dans l'index.
+ *
+ * Stocke les attachements avant le noeud.
+ */
+ @Test
+ public void testReindexWithAttachement() {
+
+ // store attachement
+ Wikitty attach1 = new WikittyImpl("att1");
+ Wikitty attach2 = new WikittyImpl("att2");
+ Collection<Wikitty> toStore = new ArrayList<Wikitty>();
+ toStore.add(attach1);
+ toStore.add(attach2);
+ ws.store(null, toStore, false);
+
+ // store first node
+ Wikitty treeNode = new WikittyImpl();
+ WikittyTreeNode treeNodeImpl = new WikittyTreeNodeImpl(treeNode);
+ treeNodeImpl.setName("root");
+ treeNodeImpl.addAttachment(attach1.getId());
+ treeNodeImpl.addAttachment(attach2.getId());
+ ws.store(null, Collections.singleton(treeNode), false);
+
+ // set resync
+ ws.syncSearchEngine(null);
+
+ // search wikitty with attachement
+ Search query = Search.query();
+ query.eq(Element.ELT_EXTENSION, WikittyTreeNodeImpl.EXT_WIKITTYTREENODE);
+ query.eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "root");
+ PagedResult<Wikitty> results = proxy.findAllByCriteria(query.criteria());
+ Assert.assertEquals(1, results.size());
+ WikittyTreeNode resultTreeNode = new WikittyTreeNodeImpl(results.get(0));
+ Assert.assertEquals(2, resultTreeNode.getAttachment().size());
+ }
+
+ /**
+ * Test que lors de la reindexation les noeuds indexés le sont
+ * correctement si leur attachement ne sont pas encore
+ * présent dans l'index.
+ *
+ * Stocke le noeud avant les attachements.
+ */
+ @Test
+ public void testReindexWithAttachementOrdering() {
+
+ // store first node
+ Wikitty treeNode = new WikittyImpl();
+ WikittyTreeNode treeNodeImpl = new WikittyTreeNodeImpl(treeNode);
+ treeNodeImpl.setName("root");
+ WikittyEvent event = ws.store(null, Collections.singleton(treeNode), false);
+ treeNode = event.getWikitties().get(treeNode.getId());
+
+ // store attachement
+ Wikitty attach1 = new WikittyImpl("att1");
+ Wikitty attach2 = new WikittyImpl("att2");
+ treeNodeImpl.addAttachment(attach1.getId());
+ treeNodeImpl.addAttachment(attach2.getId());
+ Collection<Wikitty> toStore = new ArrayList<Wikitty>();
+ toStore.add(attach1);
+ toStore.add(attach2);
+ toStore.add(treeNode);
+ ws.store(null, toStore, false);
+
+ // set resync
+ ws.syncSearchEngine(null);
+
+ // search wikitty with attachement
+ Search query = Search.query();
+ query.eq(Element.ELT_EXTENSION, WikittyTreeNodeImpl.EXT_WIKITTYTREENODE);
+ query.eq(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_NAME, "root");
+ PagedResult<Wikitty> results = proxy.findAllByCriteria(query.criteria());
+ Assert.assertEquals(1, results.size());
+ WikittyTreeNode resultTreeNode = new WikittyTreeNodeImpl(results.get(0));
+ Assert.assertEquals(2, resultTreeNode.getAttachment().size());
+ }
+
+ /**
+ * Test que lorsqu'un document solr est supprimé, il l'est réelement
+ * car le proxy gere les retours null pour des documents qui n'existe
+ * plus dans le base, mais les recherches continue de les trouver.
+ */
+ @Test
+ public void testSolrDeleteDocument() {
+ // store new wikitty
+ Wikitty toDeleteWikitty = new WikittyImpl("wikkitytodelete");
+ ws.store(null, Collections.singleton(toDeleteWikitty), false);
+ // look for it
+ Search query = Search.query();
+ query.eq(Element.ELT_ID, "wikkitytodelete");
+ Assert.assertEquals(1, ws.findAllByCriteria(null, query.criteria()).getNumFound());
+ Assert.assertEquals(1, proxy.findAllByCriteria(query.criteria()).getNumFound());
+
+ // delete it
+ ws.delete(null, Collections.singleton(toDeleteWikitty.getId()));
+
+ // try to look for it after deletion
+ Search query2 = Search.query();
+ query2.eq(Element.ELT_ID, "wikkitytodelete");
+ Assert.assertEquals(0, proxy.findAllByCriteria(query2.criteria()).getNumFound());
+ Assert.assertEquals(0, ws.findAllByCriteria(null, query2.criteria()).getNumFound());
+ }
}
1
0
r741 - trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr
by echatellier@users.nuiton.org 04 Mar '11
by echatellier@users.nuiton.org 04 Mar '11
04 Mar '11
Author: echatellier
Date: 2011-03-04 11:09:41 +0100 (Fri, 04 Mar 2011)
New Revision: 741
Url: http://nuiton.org/repositories/revision/wikitty/741
Log:
Move test to junit 4
Modified:
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2011-03-04 10:06:24 UTC (rev 740)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2011-03-04 10:09:41 UTC (rev 741)
@@ -22,18 +22,19 @@
* <http://www.gnu.org/licenses/lgpl-3.0.html>.
* #L%
*/
+
package org.nuiton.wikitty.storage.solr;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
-import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.nuiton.wikitty.search.Criteria;
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java 2011-03-04 10:06:24 UTC (rev 740)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java 2011-03-04 10:09:41 UTC (rev 741)
@@ -25,8 +25,8 @@
package org.nuiton.wikitty.storage.solr;
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertNull;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java 2011-03-04 10:06:24 UTC (rev 740)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/TreeTest.java 2011-03-04 10:09:41 UTC (rev 741)
@@ -25,10 +25,10 @@
package org.nuiton.wikitty.storage.solr;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.util.ArrayList;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotNull;
-
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 10:06:24 UTC (rev 740)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrTest.java 2011-03-04 10:09:41 UTC (rev 741)
@@ -22,9 +22,9 @@
* <http://www.gnu.org/licenses/lgpl-3.0.html>.
* #L%
*/
+
package org.nuiton.wikitty.storage.solr;
-
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
1
0
r740 - in trunk: wikitty-hbase-impl wikitty-jms-impl wikitty-jpa-impl wikitty-multistorage-impl wikitty-ui-zk
by echatellier@users.nuiton.org 04 Mar '11
by echatellier@users.nuiton.org 04 Mar '11
04 Mar '11
Author: echatellier
Date: 2011-03-04 11:06:24 +0100 (Fri, 04 Mar 2011)
New Revision: 740
Url: http://nuiton.org/repositories/revision/wikitty/740
Log:
Update pom versions
Removed:
trunk/wikitty-ui-zk/renderitem
Modified:
trunk/wikitty-hbase-impl/pom.xml
trunk/wikitty-jms-impl/pom.xml
trunk/wikitty-jpa-impl/pom.xml
trunk/wikitty-multistorage-impl/pom.xml
trunk/wikitty-ui-zk/pom.xml
Modified: trunk/wikitty-hbase-impl/pom.xml
===================================================================
--- trunk/wikitty-hbase-impl/pom.xml 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-hbase-impl/pom.xml 2011-03-04 10:06:24 UTC (rev 740)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.0-SNAPSHOT</version>
+ <version>3.0.5-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-jms-impl/pom.xml
===================================================================
--- trunk/wikitty-jms-impl/pom.xml 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-jms-impl/pom.xml 2011-03-04 10:06:24 UTC (rev 740)
@@ -7,7 +7,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.0-SNAPSHOT</version>
+ <version>3.0.5-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-jpa-impl/pom.xml 2011-03-04 10:06:24 UTC (rev 740)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.0-SNAPSHOT</version>
+ <version>3.0.5-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-multistorage-impl/pom.xml
===================================================================
--- trunk/wikitty-multistorage-impl/pom.xml 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-multistorage-impl/pom.xml 2011-03-04 10:06:24 UTC (rev 740)
@@ -7,7 +7,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.0-SNAPSHOT</version>
+ <version>3.0.5-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-ui-zk/pom.xml
===================================================================
--- trunk/wikitty-ui-zk/pom.xml 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-ui-zk/pom.xml 2011-03-04 10:06:24 UTC (rev 740)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.0-SNAPSHOT</version>
+ <version>3.0.5-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Deleted: trunk/wikitty-ui-zk/renderitem
===================================================================
--- trunk/wikitty-ui-zk/renderitem 2011-02-28 14:20:31 UTC (rev 739)
+++ trunk/wikitty-ui-zk/renderitem 2011-03-04 10:06:24 UTC (rev 740)
@@ -1,11 +0,0 @@
- public ListitemRenderer getRenderer()
- {
- return new ListitemRenderer()
- {
- public void render(Listitem item, Object data) throws Exception
- {
- item.setValue(data);
- item.setLabel(data.toString());
- }
- }
- }
1
0