Rapport des demandes du serveur Redmine

Sujet Description Statut Par Type Priorité Version Catégorie Date de création
In wikitty add support for 'variant' Le but est d'ajouter la notion de 'variant' sur les valeurs des 'wikitty'. Le wikitty reste comme il est mais en plus contient une map variant avec en cle le nom du variant et en valeur un objet 'WikittyVariant' qui contient protected HashMap fieldValue = new HashMap(); protected Set fieldDirty = new HashSet(); comme un wikitty. (peut-etre faire un peu de factorisation dans wikitty pour avec une variant par defaut (ex: "") ce qui permettrait de traiter le wikitty et les variantes de la meme facon). Il faut donc modifier les storages pour stocker les variants et les restorer, et modifier l'indexation pour les indexer. Pour le stockage il suffit peut-etre de prefixer les noms de champs des variants par le nom du variant. Pour l'indexation peut etre simplement indexer de la meme facon, mais prefixer l'id du document lucene par le variant, et ajouter un nouveau champs pour l'id du wikitty. De cette facon on peut bien faire des recherches sur les champs (il porte le meme nom). Exemple d'utilisation: I18n: un variant par langue (fr, en, es, ...) prix: un variant par monnaie (euro, dollars, livre, ...) Nouveau - Evolution Normal futur - -
Add wikitty-publication wars in redmine files   Nouveau - Tâche Normal futur - -
Add xmpp as protocol cache synchronisation Actuellement pour synchroniser les caches des clients on peut utilise cajo. Mais il serait bien de pouvoir utiliser xmpp, cela permettrait d'avoir des clients sur des reseaux completement distinct. Le serveur wikitty lance un serveur xmpp ou reutilise un serveur specifie dans le fichier de configuration. Il cree une room dont il trouve le nom dans le fichier de configuration et a chaque fois qu'il fait un store ou remove au sync, il envoie sur la room un numero de sequence + la liste des ids impactes par l'action. Les clients qui utilise le cache et veulent etre notifier se logguent dans la room. Ils conservent le dernier numero de sequence. Si le numero de sequence suivant n'est pas juste le suivant, alors on efface tout le cache. si old numero + 1 = new numero alors on supprime seulement les id envoyes. Nouveau - Evolution Normal futur API -
Add xmpp server in WikittyServerStart WikittyServerStart must be able to start xmpp server if configuration ask it (if we don't want use external xmpp server). If possible try to use same servlet container that WikittyServiceHessianServer Nouveau - Evolution Normal futur - -
new wikitty-publication module see http://svn.nuiton.org/svn/wikitty/trunk/wikitty-publication/src/site/rst/wp-analyse.rst Nouveau - Evolution Normal futur - -
Add a transporter based on Cajo We got a client/server communication using cajo, we got a transporter using xmpp, it should be great to also have a transporter using Cajo Nouveau - Evolution Bas futur API -
new wp-maven-plugin The wp-maven-plugin will help to run wikitty publication tasks froma maven project. Assigné tchemit Evolution Normal futur - -
Init database at application startup in wikitty-publication I try to launch the war of wikitty-publication but I had no data :( Two choices are offered : - create datas when application starts (via a ServletcontextListener) - create a init page which ask user more admin informations Nouveau - Evolution Normal futur WP -
add new field type: GeoPoint for latitude, longitude De plus en plus d'application utilise des données spatiales, il serait bon que Wikitty permette de les stocker et les gérer facilement. SolR permet déjà de gérer ce type au travers de LatLonType (il y a aussi PointType qui est plus pour les espaces a N dimensions ou les plan, LatLonType est plus pour le support des coordonnées géographiques sphérique) http://wiki.apache.org/solr/SpatialSearch Nouveau - Evolution Normal 5 API -
add new field type: CURRENCY Il serait bien de proposer un type CURRENCY qui permettent de faire des recherches sur des sommes quelle que soit la valeur. 10 euros = 13 dollars Donc si on recherche amount > 11 dollars on aurait en résultat tous les objets quelque soit la monnaie qui correspondent à la demande. Il y a dans SolR le type CURRENCY et un mécanisme de conversion automatique (basé sur un fichier ou un service web) documentation: http://wiki.apache.org/solr/CurrencyField Il faut prévoir l'écriture de son propre provider (ExchangeRateProvider) qui va chercher la conversion des monnaies dans la base wikitty extension WikittyCurrency ce qui permet d'éditer facilement les taux de change en modifiant/créer un objet wikitty Les questions qu'il reste est comment écrire les monnaies dans les requetes: 10dollars 10 euros 10,euros euros(10) autre ? Comment permettre l'utilisation du symbole et du texte: dollars = $ euros = € Il faut peut-être créer un type Currency(montant, monnaie) Nouveau - Evolution Normal 5 API -
Improve WikittyQuery SolR transformation for function with SolR func SolR support function in query and fl. We can register new function in solrconfig.xml. function usage: http://wiki.apache.org/solr/FunctionQuery function creation: http://www.solrtutorial.com/custom-solr-functionquery.html With that we can transfert some function evaluation from java to Solr. Create generic solr function to encapsulate all user defined simple function (not aggregate). example: wikitty query: select package.MyClass#myFunc(field1, field2) AS my where ... solr query: fl=my:wikittyFunction("package.MyClass#myFunc", field1, field2)&q=... Use it for function in Wikitty WHERE clause too Nouveau - Evolution Normal 5 SolR -
Improve WikittyQuery SolR transformation for sub query clause with SolR {!join} Solr permet maintenant de lier deux recherches via le parser join. Couplé avec les sous requêtes que permet SolR, on pourrait modifier la transformation pour éviter de devoir jouer deux requêtes là ou l'on peut en faire 1 seule. Il n'est a priori pas possible de faire un join dans un join donc seul un niveau fonctionne. Exemple de requête solr avec un join: q=Invoice.amount:1019 AND _query_:{!join from=#id to=Invoice.payer}Company.name:BigBrother La requête Wikitty que cela remplacerait: Invoice.amount=1019 AND Invoice.payer={SELECT id WHERE Company.name=BigBrother} documentation: http://wiki.apache.org/solr/Join Nouveau - Evolution Normal 5 SolR -
Improve WikittyQuery SolR transformation for Select clause with SolR fl param for simple select (select field) it's possible to use fl param in Query example: SolrQuery querySolr = new SolrQuery(query); querySolr.setParam("fl", "#id,ref:FinancialTransaction.reference_s,amount:FinancialTransaction.amount_d,tva:FinancialTransaction:VAT_d,payer:FinancialTransaction.payer_w"); It's possible to declare alias for field with "[alias]:[realy field name]" It's possible to use SolR function in list with "sum([field1], [field2])" work with alias too but for field with '#' there is bug, fl doesn't accept '#' in field see bug report https://issues.apache.org/jira/browse/SOLR-4524 before implement this improvement, this bug report must be closed or you can create new transformer to transforme #id to id. fl=#id become fl=[id] see documentation on transformer: http://wiki.apache.org/solr/DocTransformers and http://lucene.apache.org/solr/api/solr-core/org/apache/solr/response/transform/TransformerWithContext.html Nouveau - Evolution Normal 5 SolR -
Change propertyChangeListener on generated business entity Actuellement on peut mettre des listeners sur les wikitties mais aussi sur les entites generees. Mais ce sont deux choses differentes. Il faut modifier l'implantation pour que les business entities sur les add/remove delegue au wikitty sous jacent. De cette facon, il n'y a plus rien a faire sur le business (pas de fire, ils sont fait directement par le wikitty). Nouveau - Evolution Normal 4 Generation -
Change facet implementation to permit to define mincount, offset, limit and sort per facet Actuelle on peut positionner l'ordre de tri et le nombre de resultat max a retourner pour toutes les facettes. Mais il peut-etre utile de pouvoir fixer cela pour chaque facette. entre autre: - mincount - sort - limit - offset Pour voir les options a passer a solr voir: http://wiki.apache.org/solr/SimpleFacetParameters Nouveau - Evolution Normal 4 API -
Add Map field type Actuellement on peut avoir des collections List ou Set. Il serait bien d'avoir aussi des collections Map comme champs. Cela est différent d'un wikitty, car un wikitty a un nombre de champs et des noms de champs prédéfinis. La clé est toujours une String. La valeur peut-etre de n'importe quel type accepté par Wikitty. h2. Définition String tagValue map=true Wikitty field map=true C'est un tag value sur le champs qui indique si ce champs est une map ou un simple champs. Pensez a modifier l'implantation de FieldType.isCollection pour retourner vrai pour une map. Et recherche les implications que cela à dans d'autre méthode. Lorsqu'un champs est une map, le upperbound est automatiquement mis à '*'. h2. Utilisation De nouvelle méthode seront ajouter sur le Wikitty pour géré les champs de type map getFieldAsMap(extName, fieldName):Map ( en lecture seul) putToField(extName, fieldName, key, value):Object (l'ancienne valeur ou null; si value vaut null, cela revient a supprimer cette clé) getFieldAsXXX(extName, fieldName, key) on reutilise la methode clear pour les maps Les méthodes équivalentes seront générées sur l'entité métier h2. Stockage De la même façon qu'on stocke les listes avec nomdechamps[n/m] on stockera le champs avec pour chaque entrée dans la map une ligne dans la base nomdechamps[key] h2. Indexation extName.fieldName:key=value (une fois pour chaque entrée de la map) extName.fieldName.keys:liste des keys extName.fieldName.values:liste des values La premiere indexation permettra de faire une recherche précise. La deuxième de faire une recherche sur une cle, et la derniere sur une valeur. Nouveau - Evolution Normal 4 API -
Delete all deprecated API (criteria, ...)   Nouveau - Evolution Normal 4 - -
Web administration application for wikitty Faire une application web d'administration generique de wikitty: - capable d'etre pre-configurer (fichier) ou configurable via une page specifique pour pouvoir aller sur n'importe quelle instance de Wikitty - CRU d'extension - CRUD de wikitty - export/import CSV/XML On doit pouvoir recuperer des choses de wikitty-publication. Ce nouveau module pourrait ensuite servir de base pour l'interface de wikitty-publication Nouveau - Evolution Normal 4 - -
Change database model to support easily collection Actuellement pour stocker les collections on est obligé d'ajouter au bout des noms de champs [n/m]. Il serait plus simple d'ajouter une colonne 'index' dans lequel on stocke l'indice de l'element de la collection. Que l'element soit un Set, une List ou une Map. Cela devrait simplifier le sockage et la restauration. Il suffirait de faire un 'order by' index. et ajouter les valeurs aux collections fur et a mesure qu'on lit le resultSet. La cle deviendrait alors (id,fieldname, index) Pour l'ajout d'un champs on Map peut-etre faire: 000000000-key, 000000001-Key, ... Gere-t-on automatiquement la migration du schema des bases existantes ? en tout cas il faut essayer. Nouveau - Evolution Normal 4 JDBC -
Add last writer in WikittyAuthorisation or other specific extension When someone try to write or delete a wikitty. We can add this user in WikittyAuthorisation of this object as lastWriter or in other specific extension if is not possible in WikittyAuthorisation. Nouveau - Evolution Normal 4 - -
Select condition create backdoor access to all data Si on utilise la condition select, les données sont extraites directement au plus bas niveau (WikittySearchEngine) lorsqu'on arrive au service de securite, il ne peut donc plus verifier si l'utilisateur avait le droit ou non de lecture sur ce champs. Il faudrait donc conserver dans le WikittyQueryResult en plus de la liste des résultats, une map qui indique pour chaque resultat depuis qu'elle wikitty(id) il est issu. Mais cela est compliqué, car les selects sont issu de facet, il faudrait donc faire une autre requete pour retrouver les id :(. L'autre facon de faire serait de forcer l'ajout dans les requetes par le service de security les conditions tel que decrit dans le ticket #1871 si la requete est une requete select. Cette deuxieme solution est beaucoup plus viable et plus simple Nouveau - Anomalie Normal 4 API -
Change query in Security service to add condition on user logged for right management Actuellement le service de security verifie lors du chargement que l'utilisateur a bien le droit charger l'objet, si ce n'est pas le cas, il le remplace par null dans la liste. Pour minimiser ce travail, et permettre a l'utilisateur de ne pas avoir de null dans la liste, il faut ajouter sur l'objet query une variable checkAutorisation qui prend sa valeur par defaut en fonction d'une option de configuration. Mais que le developpeur peut modifier sur son objet query. Si checkAutorisation est vrai alors le service de securite ajoute sur toutes les requetes les bonnes conditions pour que si l'utilisateur n'a pas le droit en lecture sur un objet qu'il ne soit pas retourne. De cette facon, ne remonte que des Ids que l'utililsateur peut voir. Il restera toujours un check au restore, car l'utilisateur peut recuperer un objet directement a partir de son Id et pas seulement grace a une requete. Assigné bpoussin Evolution Normal 4 API -
Document new Select behaviour for user Le select peut maintenant prendre autant de parametre que souhaite, il retourne une Map. Il est possible d'appler ces propres fonctions. Nouveau - Evolution Normal 4 documentation -
Move Treenode with child, move TreeNode but not child Si un Noeud a des enfants et qu'on déplace ce noeud dans l'arbre. Les enfants ne sont pas bien réindexé (on ne les retrouve plus via la recherche d'arbre a partir de ce noeud) (un exemple d'utilisation est dans chorem, lorsqu'on bouche une categorie qui a des sous categories) Nouveau - Anomalie Normal 4 API -
Document new Select behaviour for developper Expliquer comment a été mis en place la nouvelle implantation du Select c-a-d List que l'on filtre au fur et a mesure Nouveau bpoussin Evolution Normal 4 documentation -
Enhance query language to permit dashboard creation easiest Le but est d'améliorer le langage de requête (et le QueryMaker) pour offrir la possibilité de facilement créer des rapports. Par exemple, si on a des factures qui ont des items, et que l'on souhaite avoir la liste des factures avec pour chaque ligne la somme des items de la facture. Et en plus la somme totale de toutes les factures. Il faudrait pouvoir faire des choses commes: Select Id, firstNotNull(Facture.client.personne.name, Facture.client.name, "pas de client") AS Client, sum(select item.prix where item.facture=Facture.id) AS Prix where Facture.date>Date(01/01/12) Puis avant de jouer la requete: query.addGlobalResult("Total", "sum(Prix)"); Le QueryResult aurait donc des méthodes pour accéder au global result: result.getGlobalResult("Total") Et les objets retournés seraient marqué comme étant des WikittyProjection (généré pour ce résultat) et contiendraient les champs demandé (nommé avec leur alias si on utilise AS) et un nouveau champs Prix (qui est la somme des items de la facture) Ces WikittyProjection auraient donc des champs n'appartenant pas a une extension, il ne seraient pas modifiables et ne seraient pas sauvegardables. On a alors dans le queryResult tout ce qu'il faut pour afficher un joli tableau et la somme total en bas Nouveau - Evolution Normal 4 API -
add group by clause in Query to group on specific field On pourrait permettre de grouper les resultats en fonction d'un champs, le resultat retourné serait alors une map de resultat, avec en cle la valeur du champs. Cela se rapproche des facets mais permet plus de choses car au lieu du champs on recuperer l'objet lui meme. L'interet est de faire une seul requete au lieu de N actuellement pour certain besoin. au lieu de: SELECT sum(Invoice.amount) as ca WHERE extension=Invoice AND date=[date(01/01/2012) TO date(31/01/2012)] ce qui donnerait comme résultat: {ca:789} et il faut refaire la requête pour les autres années on pourrait faire: SELECT sum(Invoice.amount) as ca WHERE extension=Invoice GROUPBY date ce qui donnerait comme résultat: {2010:{ca:123}, 2011:{ca:456}, 2012:{ca:789}} ce qui devient en solr query (seulement la clause where): q=extension:Invoice&group.func=year(date)&group.limit=2000000 Il faut que la fonction year existe et retourne l'annee de la date. On aura alors en resultat N groupe, un groupe par an sur lequel le select pourra s'appliquer. documentation des groupes: http://wiki.apache.org/solr/FieldCollapsing Nouveau - Evolution Normal 4 API -
Add Unit test on WikittyUtil.toDate, this method accept now Date Math Les calculs sur les dates ne sont pas bien testé dans les tests. Il faut les ajouter. Nouveau - Evolution Normal 3.14 - -
Add documentation about Date Math syntax Il est possible maintenant pour une date de faire des choses comme: - NOW+1DAY - TODAY+3MONTHS - date(12/12/2014+3HOURS) - ... Mais il n'y a pas de documentation dessus. la javadoc indique: /HOUR ... Round to the start of the current hour /DAY ... Round to the start of the current day =????1130 ... keep year but set date to 30 november :12??30 ... keep minute but set hour to 12 and seconde to 30 +2YEARS ... Exactly two years in the future from now -1DAY ... Exactly 1 day prior to now /DAY+6MONTHS+3DAYS ... 6 months and 3 days in the future from the start of the current day +6MONTHS+3DAYS/DAY ... 6 months and 3 days in the future from now, rounded down to nearest day Résolu bpoussin Evolution Normal 3.13 - -
Add Wikitty service authentication that not raise exception we try to load unauthorise wikitty If we don't have read access on wikitty, wikitty is replace by null. All other result is returned. Résolu bpoussin Evolution Normal 3.13 API -
If try to load wikitty with bad id, or if we don't have access to wikitty, there is exception during conversion   Résolu bpoussin Anomalie Normal 3.13 API -
containsOne and containsAll with an empty collection returns all objects but no object should have been returned bug during conversion from wikitty query to solr query. false condition must be something like: (#id:* -#id:*) and not (#id:* - #id:*). The différence is in blank between '-' and '#id' Résolu bpoussin Anomalie Normal 3.12.1 SolR -
Migrates to git   Résolu tchemit Tâche Normal 3.12 - -
add support of special wikittyId 'all' for reader/writer/admin in WikittyAuthorisation for reader if there is no User and no Group, wikitty is publicaly readable. But in some circonstance, it's more useful to mark publicaly readable with 'all' in list of id for reader. This id 'all' is not valid id because is not a UUID and no Wikitty can have it. Résolu bpoussin Evolution Normal 3.12 API -
WikittyAuthorisation reader/write/admin is WikittyUser, but we can add WikttyGroup too Change type of reader/write/admin to Wikitty and add allow WikittyUser and WikittyGroup Résolu bpoussin Anomalie Normal 3.12 API -
Authorise multiple parent for WikittyAuthorisation In some case, we want to have multiple parent for one authorisation. Authorisation, is aggregation of all parent Résolu bpoussin Evolution Normal 3.12 API -
Simplify field cardinality migration When change field cardinality N to 1 or 1 to N, wikitty must migrate automaticaly field value Résolu bpoussin Evolution Normal 3.12 API -
Updates dependencies * nuiton-utils *2.6.9* -> *3.0-rc-2* 3.11 3.13 develop index.html index.html~ latest versions use now nuiton-config (was before in nuiton-utils) 3.11 3.13 develop index.html index.html~ latest versions i18n *2.4.1* -> *3.0* 3.11 3.13 develop index.html index.html~ latest versions nuiton-web *1.3* -> *1.15-alpha-3* 3.11 3.13 develop index.html index.html~ latest versions eugene *2.4.2* -> *2.7.4* 3.11 3.13 develop index.html index.html~ latest versions processor *1.1* -> *1.3* 3.11 3.13 develop index.html index.html~ latest versions jbossjta *4.16.2.Final* -> *4.16.3.Final* Fermé tchemit Tâche Normal 3.12 - -
Problem in properties copy with commons-beanutils upgrade There is some changes between current commons-beanutils version (1.8.3) and next version (1.9.x) : During the copy, the properties are not set in same order. With 1.8.3 version, the "wikittyVersion" property was the last to be copied. This behaviour was useful to avoid the version upgrade with each set on other properties. But, with 1.9.0 version, this kind of order is not guaranted, and so the wikittyVersion could be set before other properties and when those properties and set, the version is upgraded. Three tests fail with the commons-beanutils version upgrade: BusinessEntityImplTest.testCopyFrom WikittyUtilTest.testCopyBean WikittyUtilTest.testCopyFrom During copy, we should force the version copy last. Résolu - Anomalie Normal 3.11 API -
When wikitty open multiple solr server on same data file, solr index is corrupted Il faudrait que ne pas instancier plusieurs solr serveur si on detecte qu'ils vont utiliser les memes fichiers Résolu bpoussin Anomalie Haut 3.10 SolR -
add new select function to get year of date ex: select year(birthday) where ... Résolu bpoussin Evolution Normal 3.10 API -
Change upgrade data process Actuellement si on inverse l'héritage entre extension, le processus de migration échoue. Un refonte de la migration doit pouvoir: - supporter l'inversion d'héritage - la création de données durant la migration Résolu bpoussin Evolution Normal 3.10 API -
Add new method to WikittyClient and BusinessHelper to remove extension easily Actuellement on a une methode sur les wikitty pour enlever une extension et ces dependances. Il faudrait ajouter des methodes sur le Client et le Helper pour simplifier sont utilisation Résolu bpoussin Evolution Normal 3.10 API -
migrate to solr 4.1 and cleaning solrconfig.xml Le fichier solrconfig.xml contient beaucoup de chose inutile, profiter de la migration vers solr4.1 pour le nettoyer Résolu bpoussin Evolution Normal 3.10 SolR -
Change select implementation to do only one solr request L'implantation de select utilise 2 requetes car actuellement toutes les facettes ont les meme order et limit. Une fois l'evolution #1995 faite, on pourra reimplanter le select pour ne faire qu'une requete. Fermé - Evolution Normal 3.10 API -
Add support of new method in query language Le but est de pouvoir ecrire des choses comme: Select firstNotNull(Facture.client.personne.name, Facture.client.name, "pas de client") where Facture.date > Date(01/01/12) Ici firstNotNull et Date sont des méthodes que l'on recherche dans le objet spécifier dans la requête. Pour que toutes les query en profite: Query.addGlobalMethod(new MonObjectAvecLesMethodes()); Pour que seul cette query en profite: maQuery.addMethod(new MonAutreObjet()); Prévoir aussi l'utilisation dans QueryMaker Fermé - Evolution Normal 3.10 API -
Improve WikittyQueryResult, result must have wikitty id and select result in same time Actuellement, un resultat retourne des id s'il n'y pas de select, on les données du select s'il y en a un. Il serait preferable que le result contiennent les deux tout le temps (sauf s'il n'y a pas de select). On pourra ainsi et recuperer les id, et les valeurs du select sans devoir faire deux requetes. Cette nouvelle implantation va facilite l'implatation du WikittyServiceTransaction pour la fusion des resultats. Résolu bpoussin Evolution Normal 3.10 API -
Update to solr and lucene 4.0   Fermé jcouteau Evolution Normal 3.10 SolR -
Support relative date for String date representation Le but est de pouvoir mettre dans un champs date "now" ou "today" ou "now+1month" ... now/day+1month+2weeks+4hours (maintenant arrondi au debut de journée + 1mois + 2 semaines + 4 heures) now+3Years/Month (maintenant + 3 ans arrondi au mois) Résolu bpoussin Evolution Normal 3.10 API -
remove extension in wikitty object Il n'existe aucune methode pour supprimer une extension sur un wikitty. Il faut ajouter une methode removeExtension(String) qui supprime l'extension et toute les extensions qui en dependent Résolu bpoussin Evolution Normal 3.9 API -
Wikitty query staring with space pasing throw NullPointerException A unit test has been added for this. Parsing query " xxx" displya following error message:
Parse Errors:
Invalid input 'x', expected ' ', 't', 'f', "NOT", '(', "#OFFSET", "#LIMIT", "#DEPTH" or EOI (line 1, pos 2):
xxx
and throw following exception:
java.lang.NullPointerException
at org.nuiton.wikitty.query.WikittyQueryMakerAbstract.parse(WikittyQueryMakerAbstract.java:266)
at org.nuiton.wikitty.query.WikittyQueryTest.testParseSpaceStart(WikittyQueryTest.java:446)
Résolu bpoussin Anomalie Normal 3.9 API -
add default value tag for wikitty field definition Il est impossible de fixer une valeur par defaut. Au depart tous les champs sont null. En ajoutant un tag/value 'default' que l'on peut positionner sur un champs, le champs des l'ajout de cette extension sur un wikitty prendrait cette valeur. Résolu bpoussin Evolution Normal 3.9 API -
enhance parser to support empty query as True Le parseur s'il n'y a aucune recherche demandée doit interpréter ça comme une condition TRUE. Résolu bpoussin Evolution Normal 3.9 API -
Enhance parser to support #depth as WikittyFieldSearchDepth Il faut ajoute le parsing de #depth pour pouvoir indiquer la profondeur de recherche sur les champs de type wikitty. Résolu bpoussin Evolution Normal 3.9 API -
Make select clause more useful: return more than one value, use user function, ... L'implantation actuelle ne permet que de retourner une seul valeur. Il serait utile pour évite de faire plusieurs fois la même requête de permettre des choses commes: select min(Invoice.date), max(Invoice.date) where extension=Invoice select Sum(MultTVA(Invoice.amount, Invoice.vat)) where extension=Invoice Dans le deuxieme exemple MultTVA est une fonction ecrite par l'utilisateur de Wikitty Résolu bpoussin Evolution Normal 3.9 API -
Add DISTINT clause for SELECT query Actuellement lorsqu'on fait un SELECT, il n'est pas possible de récupérer les doublons. Cela pose des soucis pour les agrégats qui ne retourne pas le résultat attendu. L'ajout de ce mot clé permettra d'utiliser réellement les fonctions d'agrégat. SELECT DISTINCT Invoice.customer WHERE Invoice.status='CANCELED' Retourne une liste d'id de customer sans doublon Résolu bpoussin Evolution Normal 3.9 API -
add a date format translator in the query parser when the field to compare is a date Exemple : search?query=Invoice.postedDate>*dateFormat("01/01/2012")* permet de faire : search?query=Invoice.postedDate>"2012-01-01T00:00:00.000+0000Z" Résolu bpoussin Evolution Normal 3.9 API -
Wikitty is not indexed when you add an extension If you got a wikitty and add only an extension to it (no field modification), it is saved into database but not indexed. Résolu jcouteau Anomalie Normal 3.9 SolR -
Wikitty purifier template generate accessor for non navigable association   Résolu echatellier Anomalie Normal 3.9 Generation -
Field extension order seems to be not maintened with JDBC storage Normalement l'ordre des champs devrait être celui de l'ordre de déclaration. Mais avec l'implantation JDBC l'ordre n'est pas maintenu. Plutôt que de modifier l'implantation JDBC, autant faire quelque chose de plus générique qui permette de modifier l'ordre si on le souhaite. ajout du tag: TAG_FIELD_ORDER à la génération qui indique l'ordre. Le développeur peut ensuite modifier ce tag dans le fichier de properties pour prendre une autre valeur que la valeur par défaut. Cette valeur est une valeur réel pour permettre l'insertion facile d'un élement entre deux autres, sans devoir tous les renuméroter. Par défaut les valeurs sont: 1, 2, 3, 4, ... il est possible de modifier le 3 pour avoir: 1, 1.5, 2, 4, ... Résolu bpoussin Anomalie Normal 3.8 API -
When we have query with aggregate and use findByQuery the result is false Si on a une requête avec une agrégation (ex: SELECT SUM numbre WHERE ...) et qu'on utilise findByQuery puisqu'on attend qu'un seul resultat. Cela ne fonctionne pas. Car le findByQuery modifie le limit à 1. Or même si on a bien un seul resultat, il faut conserver le offset et le limit positionné par l'utilisateur. Résolu bpoussin Anomalie Normal 3.8 API -
BusinessEntity with Wikitty Field must be capable to use preload for this field Actuellement, seul le champs de type BusinessEntity peuvent etre en preload. Il faut que les champs de type Wikitty peuvent aussi l'etre dans les classes generes (existance des methodes) Résolu bpoussin Evolution Normal 3.8 API -
Wikitty and BusinessEntity interface must have same methods name for same behaviour BusinessEntity et Wikitty utilise des noms de methodes différentes pour faire la meme chose. Il faut unifier les noms de methodes pour peut-etre dans le futur faire de qu'un objet Wikitty puisse etre aussi un BusinessEntity Résolu bpoussin Evolution Normal 3.8 API -
Add parse method to WikittyQueryMaker Il serait plus simple d'avoir une methode parse sur le WikittyQueryMaker pour pouvoir mixer des bout de requete textuel avec des choses plus formel. exemple: WikittyQuery q = new WikittyQueryMaker().and() .parse(queryString) .eq("status", "open") .end(); Il faut que parse accepte un queryString vide ou null sans erreur (dans ce cas n'ajoute aucune condition) query string pourrait etre un filtre ecrit par l'utilisateur via un zone texte Résolu bpoussin Evolution Normal 3.7 API -
add new query property wikittyFieldSearchDepth on query that permit to follow link between wikitty for search Si un objet a un lien vers un autre et qu'on souhaite recherche des choses en fonction de ce qu'il y a dans l'objet pointe. Il faut utilise un select dans la requete ce qui la complexifie enormement. Une recherche pour numero de telephone pour une personne donnée si en fait l'objet contenant le numero a un lien vers un objet Person, la requete deviendrait "MonNom Phone" au lieu de "Phone AND Phone.person={select ID where Person.name=MonNom}" On peut vouloir descendre à plus d'un niveau, il faut donc permettre d'indiquer le niveau souhaité (ATTENTION, il y a une requete par mot en plus) Résolu bpoussin Evolution Normal 3.7 API -
Be able to set a File on a binary field   Résolu ymartel Evolution Normal 3.7 - -
add extContainsOne method on WikittyQueryMaker On a actuellement extContainsAll mais pas extContainsOne, il serait plus pratique d'avoir les deux Résolu bpoussin Evolution Normal 3.7 API -
Error in findTreeNode client method when Node depth + depth asked > Integer.MAX_VALUE Lorsque la profondeur de recherche est fixée à un très grand nombre, lorsque le framework ajoute à ce nombre la profondeur du noeud de départ, il y a débordement et on se retrouve avec un nombre négatif. Il faut donc vérifier et s'il y a débordement, on fixe la valeur a Integer.MAX_VALUE Résolu bpoussin Anomalie Normal 3.7 SolR -
Error when we try to search containsAll or containsOne with empty collection la requete solr genere divient ":()" ce qui n'est pas valide. Le remplacer par false Résolu bpoussin Anomalie Normal 3.6 SolR -
Add elapsed time in QueryResult mettre le temps d'execution des requetes dans Result voir WSEngineSolr:752 -> QueryResponse.getElapsedTime(); Résolu bpoussin Evolution Normal 3.5 API -
Add sort-order tag value as toString tag value Actuellement on a un toString en tag value pour les extensions, il serait pratique d'avoir la meme chose pour pouvoir avoir un tri par defaut pour chaque extension. (Affichage générique d'une extension). En fait, il n'y a rien a faire, juste declarer une constante et la documenter. Résolu bpoussin Evolution Normal 3.5 API -
(Not)Equals must be ignore case and ignore accent if needed Actellement on a un equals strict un like en fulltext, mais il faudrait quelque chose entre les deux: recherche en ignorant la case et les accents. Le mieux est d'ajouter un flag sur Equals et NotEquals pour indiquer si on veut l'egalite strict (celle par defaut) ou non Résolu bpoussin Evolution Normal 3.5 API -
Binary field are corrupted during restore This bug is illustrated by test @testStorageBinaryField@. It runs fine in memory mode, but fails with jdbc storage. Rejeté bpoussin Anomalie Normal 3.5 API -
Query limit set to MAX (or -1) won't work This bug is illustrated by test : @WikittyClientTest#testPaginedSearchSelect@ Using @query1.setLimit(WikittyQuery.MAX);@ cause following exception:
org.nuiton.wikitty.WikittyException: Error during find
at org.nuiton.wikitty.services.WikittyServiceStorage.findAllByQuery(WikittyServiceStorage.java:980)
at org.nuiton.wikitty.services.WikittyServiceDelegator.findAllByQuery(WikittyServiceDelegator.java:191)
at org.nuiton.wikitty.WikittyClient.findAllByQuery(WikittyClient.java:795)
at org.nuiton.wikitty.WikittyClient.findAllByQuery(WikittyClient.java:805)
at org.nuiton.wikitty.WikittyClientTest.testPaginedSearchSelect(WikittyClientTest.java:1690)
Caused by: java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
at java.util.SubList.(AbstractList.java:604)
at java.util.RandomAccessSubList.(AbstractList.java:758)
at java.util.AbstractList.subList(AbstractList.java:468)
at org.nuiton.wikitty.storage.WikittySearchEngineHelper.findAllByQueryWithSelect(WikittySearchEngineHelper.java:146)
at org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr.findAllByQuery(WikittySearchEngineSolr.java:665)
at org.nuiton.wikitty.services.WikittyServiceStorage.findAllByQuery(WikittyServiceStorage.java:961)
... 29 more
Résolu bpoussin Anomalie Normal 3.5 API -
Add tag value wikitty-extension on field of type Wikitty Actuellement les champs de type Wikitty accepte n'importe qu'elle wikitty (quelque soit ses extension). Il sera bien de pouvoir restraindre les wikitties assignable via une contrainte contenu dans un tag/value. exemple: Wikitty company wikitty-extension=Company Wikitty meuble wikitty-extension=Table,Chaise,Bureau wikitty-extension peut-etre une liste d'extension, dans ce cas cela veut dire que l'objet doit avoir une des extension, et non pas toutes les extensions. Si un Wikitty contient un champs avec le tag/value wikitty-extension, lors du store un check sera fait sur l'objet assigné pour vérifier qu'il a bien une des extensions requises. Lors de la génération des entities métier penser a ajouter ce tag/value. Résolu bpoussin Evolution Normal 3.5 API -
Wikitty pre-loading field Il serait agreable de pouvoir faire un pre-loading de certain champs Wikitty. client.restore(id, "Company.employee") client.restore(id, "Company.employee,Employee.person;Company.address") Dans le 1er cas, on preload seulement le un champs de l'objet qui va etre chargé. Dans le 2eme cas on preload 2 champs Company.employee et Company.address. Puis pour employee on re-preload Employee.person. Pour cela ajouter sur le WikittyImpl une map qui permette de stocker les wikitty preloader. on ajoute la méthode sur le Wikitty: getAsWikitty(String extName, String fieldName, boolean exceptionIfNotLoader):Wikitty lors d'un set(...) si la value est un Wikitty alors on le met dans la map des objets preloaded on ajoute la méthode sur les objets metiers: get(boolean exceptionIfNotLoader): ObjectMetier Si le boolean est false, alors au lieu d'une exception, on retourne null si l'objet est pas preloader. Résolu bpoussin Evolution Normal 3.5 API -
Add support of limit and offset in query parser Actuellement on peut faire des requetes, mais seulement definir les conditions. Il serait pratique de pouvoir aussi definir la limite de recherche et l'offset de debut directement dans la chaine a parser. exemple: ext.field=toto offset=10 limit=10 Résolu bpoussin Evolution Normal 3.5 API -
In parser support ' as string delimiter and not only " Pour plus facilement ecrire des requetes dans des chaines de caractere java, il sera plus pratique que les chaines dans le parser puissent aussi etre delimitee par ' en plus de ". Donc: ext.field="Bonjour le monde" pourrait aussi s'ecrire: ext.field='Bonjour le monde' Résolu bpoussin Evolution Normal 3.5 API -
Update to h2 1.3.164   Résolu echatellier Evolution Normal 3.5 API -
JdbcSQLException during sync engin With calling method "syncEngine()", calling method @WikittyStorageJDBC.getDataStatistic()@ throw following exception:
org.h2.jdbc.JdbcSQLException: No data is available [2000-127]
at org.h2.message.Message.getSQLException(Message.java:110)
at org.h2.message.Message.getSQLException(Message.java:121)
at org.h2.message.Message.getSQLException(Message.java:74)
at org.h2.message.Message.getSQLException(Message.java:156)
at org.h2.jdbc.JdbcResultSet.checkOnValidRow(JdbcResultSet.java:3016)
at org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:3022)
at org.h2.jdbc.JdbcResultSet.getLong(JdbcResultSet.java:601)
at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:228)
at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:228)
at org.nuiton.wikitty.jdbc.WikittyStorageJDBC.getDataStatistic(WikittyStorageJDBC.java:632)
at org.nuiton.wikitty.services.WikittyServiceStorage.syncSearchEngine(WikittyServiceStorage.java:1204)
Résolu echatellier Anomalie Normal 3.5 API -
Update to postgresql 9.1-901-1.jdbc4   Résolu echatellier Tâche Normal 3.5 API -
Wildcard search test fails with query marker and parser Following test fails using wildcard : 3.11 3.13 develop index.html index.html~ latest versions testQueryMarkerWilcardEquals() 3.11 3.13 develop index.html index.html~ latest versions testQueryParserWilcardEquals() Résolu bpoussin Anomalie Normal 3.5 SolR -
All not* condition have different behaviour with in memory service Following condition doesn't return same result count with in memory or solr search engine: 3.11 3.13 develop index.html index.html~ latest versions ne() 3.11 3.13 develop index.html index.html~ latest versions unlike() 3.11 3.13 develop index.html index.html~ latest versions notsw() 3.11 3.13 develop index.html index.html~ latest versions notew() Résolu bpoussin Anomalie Normal 3.5 API -
Add pattern tagValue on wikitties Force the field to verify a pattern. Résolu bpoussin Evolution Normal 3.5 API -
Add indexed tagValue on wikitty indexed (boolean, default true) : If false, the field is not indexed. Résolu bpoussin Evolution Normal 3.5 API -
Add Crypt tagvalue on wikitties crypt : Crypt the data when storing into database (not indexed). Résolu bpoussin Evolution Normal 3.5 API -
Update to commons-pool 1.6   Résolu echatellier Tâche Normal 3.5 API -
Update to slf4j 1.6.4   Résolu echatellier Tâche Normal 3.5 API -
findByXXX with entity class in argument don't add filter condition on extension of this entity Il y a une erreur dans le code un isAssignableFrom qui est inversé et donc toujours faux :( Résolu bpoussin Anomalie Haut 3.5 API -
If entity use two extension with same field name, *.fieldname faild Lorsqu'on genere les #all. et #ft.all. il faut prendre en compte qu'il peut y avoir dans la meme entite plusieurs fois le meme champs et donc ne pas ecraser les valeurs precedentes. Ce qui n'est pas le cas actuellement Résolu bpoussin Anomalie Normal 3.5 SolR -
toString tagValue must support preload wikitty access Maintenant que les wikitties peuvent avoir des champs wikitty precharge, il sera interessant de pouvoir ecrire des expressions plus complexe pour le toString. Et que par defaut pour un champs de type Wikitty, il essaie de recuperer l'objet et non l'id. exemple: toString="Ma societe: %Employee.company,Company.name|societe non chargée$s" Résolu bpoussin Evolution Normal 3.5 API -
Enhance in memory implementation Petite correction (tri des facette) et amélioration de l'implantation in memory (meme retour que solr sur les != et unlike) Résolu bpoussin Evolution Normal 3.5 API -
Search with *.fieldname faild if this entity is in WikittyTreeNode Si on met un objet dans un TreeNode, les données de l'objet sont relu depuis solr, pour etre reindexe. Mais certain champs qui devrait etre stored="true" ne le sont pas. Des infos sont donc perdu lorsqu'on met une entite dans un TreeNode. Résolu bpoussin Anomalie Haut 3.5 SolR -
add new constraints tag value on field (min, max, allow) De nouveau type de contraintes seraient utiles: - min, minQuery pour indiquer que le champs ne peut pas etre inferieur a une valeur qui peut provenir de la base - max, maxQuery pour indiquer que le champs ne peut pas etre superieur a une valeur qui peut provenir de la base - allowed, allowedQuery pour indiquer qu'un champs de type wikitty doit prendre sa valeur dans une liste d'id possible (allowedQuery) ou que la valeur doit avoir certain extension (allowed) Résolu bpoussin Evolution Normal 3.5 API -
Update to smackx 3.2.1   Résolu echatellier Tâche Normal 3.5 API -
Update to jbossjta 4.16.2.Final   Résolu echatellier Tâche Normal 3.5 API -
Field *.fieldname must be sortable Actuellement les champs *.fieldname (#all. et #ft.all.) ne sont pas triable. Il serait bon de pouvoir les utiliser comme champs triable meme si certaine fois cela n'a pas de sens. Résolu bpoussin Evolution Normal 3.5 SolR -
ElementField in generated entities not usable on GWT We must either clean the ElementField source code so that it is usable on GWT or clean generated entities so that there is no reference to ElementField. Problems for GWT in ElementField : Line 45: Element Line 48: Log Line 48: LogFactory Line 71: WikittyUtil Line 81: FieldType.TYPE Résolu bpoussin Anomalie Normal 3.4 API -
Update to solr and lucene 3.5   Résolu echatellier Evolution Normal 3.4 - -
serialVersionUID changes at each generation serialVersionUID are not safe when deploying and using snapshot that use those id for serialisation. For example, using cajo:
Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.chorem.vradi.entities.FormImpl; local class incompatible: stream classdesc serialVersionUID = 8512268570430849981, local class serialVersionUID = -2402275119093430223
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:334)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at gnu.cajo.invoke.Remote_Stub.invoke(Unknown Source)
at gnu.cajo.invoke.Remote.invoke(Unknown Source)
at gnu.cajo.utils.extra.TransparentItemProxy.invoke(Unknown Source)
Résolu echatellier Anomalie Normal 3.4 Generation -