2 mars 2018 17:59:45 seb leridon avatar

Evolutions de la Version 5

Version 5.0.0

Utilisation du framework CSS Bootstrap 3 pour le Front Office

A partir de Lutece v5.0, les templates du front Office s'appuient sur la version 3 du framework Bootstrap. Documentation officielle décrivant la migration de la version 2.x vers la 3.0

Mise à niveau des librairies Lucene

Mise à jour de la librairie d'indexation et d'analyse (Lucène et Tika). Lucène est maintenant en version 4.6.1 et Tika en version 1.5. Cette évolution à des impacts forts sur l'ensemble des plugins utilisants l'indexation (ex : directory, form, calendar, ...). Voici les aspects à prendre en compte pour la migration :

  • La classe Searcher a disparu et a été remplacé par IndexSearcher. La méthode de construction est maintenant la suivante :
    IndexReader ir = DirectoryReader.open( %INDEX_PATH% );
            searcher = new IndexSearcher( ir );
  • La classe HTMLParser fourni par lucene-demos a été remplacée par la classe HtmlParser fourni par Tika. Le parsing de document HTML se fait dorénavant de la manière suivante :
    String strContentToIndex = getContentToIndex( document );
            ContentHandler handler = new BodyContentHandler( );
            Metadata metadata = new Metadata( );
            try
            {
            new HtmlParser( ).parse( new ByteArrayInputStream( strContentToIndex.getBytes( ) ), handler, metadata,
            new ParseContext( ) );
            }
            catch ( SAXException e )
            {
            throw new AppException( "Error during page parsing." );
            }
            catch ( TikaException e )
            {
            throw new AppException( "Error during page parsing." );
            }
    
            //the content of the article is recovered in the parser because this one
            //had replaced the encoded caracters (as é) by the corresponding special caracter (as ?)
            StringBuilder sb = new StringBuilder( handler.toString( ) );
  • Les classes Field qui permettent d'indexer et d'analyser les champs Lucène ont été refactorées. Voici les changements à effectuer :
Field.Store.NO, Field.Index.ANALYZED TextField.TYPE_NOT_STORED
Field.Store.YES, Field.Index.ANALYZED TextField.TYPE_STORED
Field.Store.YES, Field.Index.NOT_ANALYZED FieldType ft = new FieldType( StringField.TYPE_STORED );
ft.setOmitNorms( false );
Field.Store.YES, Field.Index.NO FieldType ftNo = new FieldType( StringField.TYPE_STORED );
ftNo.setIndexed( false );
ftNo.setTokenized( false );
ftNo.setOmitNorms( false );
Field.Store.NO, Field.Index.NOT_ANALYZED FieldType ftNotStored = new FieldType( StringField.TYPE_NOT_STORED );
ftNotStored.setOmitNorms( false );
ftNotStored.setTokenized( false );
Field.Store.NO, Field.Index.ANALYZED FieldType ftNotStored = new FieldType( StringField.TYPE_NOT_STORED );
ftNotStored.setOmitNorms( false );

Libellés i18n avec paramètres

Il est possible à partir de Lutece v5 de passer des paramètres à une libellé i18n utilisant le motif (pattern) de la classe Java MessageFormat dans le fichier de ressources myplugin_messages.properties :

mykey.message=My message using 2 arguments : {0} and {1}
${i18n( "myplugin.mykey.message" , argument1 , argument2 )}

Surcharge de valeurs i18n

Les valeurs par défaut des clés i18n sont surchargeables dans des fichiers placés sous /WEB-INF/conf/override/ et respectant la même arborescence.