====== Chainedit 3 ====== ====== Création du projet à Partir de Esup-Blank ====== * [[https://www.esup-portail.org/wiki/pages/viewpage.action?pageId=100663444|Lien vers la doc Esup]] * Le projet est maintenant sur le trunk du SVN de ChainEdit (27/08/2014) * Le choix est d'utiliser l'archétype web-jsf-servlet * Toute référence à esup-commons a été retirée (annonce fin du support esup-commons v2), le projet est donc maintenant un projet JSF 2 (View), Spring (Model/Controler), Hibernate / Jaxb (Accès bas et données XML) ====== Ajout d'une base de donnée embarquée ====== * A la place d'utiliser certains fichiers XML, il parait plus judicieux d'utiliser une base embarquée. * [[http://hsqldb.org/|HSQL]] * [[http://squirrel-sql.sourceforge.net/|Squirrel pour éditer la base]] * [[http://www.liferay.com/community/wiki/-/wiki/Main/HSQLInspect|Tuto pour brancher Squirrel sur HSQL]] * Modifier les accès base : chainedit3-web-servlet/src/main/resources/properties/default.properties -> hibernate.connection.jdbc.url * User par défaut : admin / admin * [[http://docs.jboss.org/hibernate/validator/4.3/reference/en-US/html_single/|Annotation hibernate pour la validation]] ====== Analyse pour la base ====== [[https://launchpad.net/analysesi/+download|Analyse SI pour faire le MCD car pas d'outil UML fonctionnel]] ====== Lancement de l'application sous Tomcat ====== * [[http://stackoverflow.com/questions/6210757/java-lang-classnotfoundexception-org-springframework-web-context-contextloaderl|En cas d'erreur java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener]] * Surprise sur le CAS, il faut modifier le Web.xml : CAS Authentication Filter avec /* dans URL-pattern * Inspiration [[https://www.esup-portail.org/wiki/pages/viewpage.action?pageId=282099720|EsupDematEC]] ====== Upload des fichiers ====== Dans le fichier server.XML du tomcat préciser : Et dans le Web.xml de l'application il faut préciser la taille maxi des fichiers : ....... 52428800 52428800 0 ====== Mise en place de Spring-Security ====== * A priori plus besoin des classes dans domain.services.auth * Ni du domain-services-auth.xml * Ni de la propriété liée dans default.properties et config.properties : auth.bean * Ni de l'import du auth.xml dans l'applicationContext.xml * Ni des filtres CAS dans le WEB.xml * La documentation : [[http://docs.spring.io/spring-security/site/docs/3.2.5.RELEASE/reference/htmlsingle/|Spring-Security]] * Documentation pour le module CAS : [[http://docs.spring.io/spring-security/site/docs/3.0.x/reference/cas.html|Paramétrage]] * Un tuto sur la personnalisation de l'authentification [[http://www.cleancode.co.nz/blog/937/customization-spring-security-authentication|tuto UserDetailService]] * Il y a 2 modes d'authentification livrés avec Chainedit : CAS et MANUAL (saisie d'un login/password). Il y a donc 2 fichiers application-context-security-cas et un application-context-security-manual. Il n'est pas possible de le passer en paramètre. Il faut donc indiquer le bon nom de fichier dans le import du application-context-security. * ====== Mise en place de Spring-Ldap ====== * Pour l'accès aux utilisateur dans la page de gestion d'un utilisateur. * Remplace le LdapService de Esup-commons, la configuration est conservée à l'identique (config.properties) par contre le LDAP.XML est mofifié pour utiliser Spring-LDAP. ====== Zip Zip ====== [[https://truezip.java.net/|TrueZip pour l'édition des fichiers zip]] ====== Intégration i18n ====== * Le RessourceBundle de Spring est utilisé (appelé msgs en Spring). Un objet ResourceBundleBean (appelé msg en Spring) a été ajouté pour permettre de transmettre les messages aux JSF sans avoir à re-déclarer les bundles dans la partie View JSF (faces-config). Ainsi tous les bundles passent par Spring. * Les fichiers custom ne doivent pas être utilisés, ils sont à laisser au client pour surcharger les chaines de messages livrés avec l'application. * Ajout d'un éditeur de bundles [[http://marketplace.eclipse.org/content/jspresso-translation|JExpresso Translation]] qui permet d'éditer les variables directement depuis la classe où il est utilisé * Ajout d'un éditeur de bundles [[http://marketplace.eclipse.org/content/properties-editor|Properties Editor]] coloration du contenu et gestion de l'Unicode pour un fichier ====== Spring JPA Repositories ====== * [[http://docs.spring.io/spring-data/jpa/docs/1.7.0.RELEASE/reference/html/|Spring data repositories]] * [[http://junit.org/|Junit]] * [[http://docs.jboss.org/hibernate/orm/4.0/manual/en-US/html/queryhql.html|Aide HQL Hibernate]] ====== JSF ====== * [[http://www.tutorialspoint.com/jsf/index.htm|Tuto JSF]] * [[http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/|Templating JSF]] * [[http://stackoverflow.com/questions/18808823/primefaces-how-to-make-the-theme-dynamic|Tenir compte des préférence de l'utilisateur concernant son thème (Skin dans ChainEdit)]] * [[http://jqueryui.com/themeroller/|Liste des icones Primefaces]] * [[http://www.primefaces.org/showcase/|Showcase Primefaces]] * [[http://www.primefaces.org/showcase/ui/panel/layout/full.xhtml|Layout primefaces]] * Un fichier prime_override.css a été ajouté pour permettre de surcharger les classes css standard de prime * [[http://omnifaces.org/|Compléments à JSF Omnifaces]] L'éditeur CKEditor fourni avec Primefaces ne peut pas être customisé simplement. Le choix est fait d'intégrer directement l'éditeur : * [[http://ckeditor.com/|CKEditor 4]] 1 éditeur maximum accepté sur le même écran. * [[http://ckeditor.com/addon/mathjax|Plugin mathjax pour latex]] dans fr.js et en.js //button: Math// a été changé en //button : Latex// pour éviter les confusions avec le plugin MathMl * [[https://github.com/matismasters/ckeditor_mathml/tree/master/vendor/assets/javascripts/ckeditor|Plugin mathjax modifié pour gérer du mathml : renommé en mathjaxmathml]] * [[https://sourcesup.renater.fr/wiki/chainedit|Wiki ChainEdit sourcesup sur CKEditor]] ====== Bean validation ====== * Il est possible depuis Java EE 6 d'annoter les beans pour ajouter des contraintes sur leurs valeurs (JSR 303) : [[http://beanvalidation.org/1.1/spec/|spécification Bean Validation 1.1]] * [[http://hibernate.org/validator/|Hibernate Validator]] spécifie la JSR 349 qui est plus complète : [[https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/]] * [[http://commons.apache.org/proper/commons-lang/|Apache Commons Lang]] pour faire des validation simple et d'autres utilitaires sur les Beans (equals, hashcode, ..) ====== Imports dans ChainEdit 3 ====== [[chainedit3:imports|Les imports]] ====== Preview dans ChainEdit 3 ====== [[chainedit3:preview|Les chartes preview]]