Scub-FoundationNouveautées de la version 4.0        http://scub.net         adrien.hautot@scub.net
Plan de la présentation ● Framework GWT     ● GrayLog ● Hibernate         ● Autres évolutions ● Oval              ● Migrat...
Google Web Toolkit● Montée en version● Refonte de larchitecture et conventions de  codage● Intégration de GWT-Bootstrap● G...
Google Web Toolkit    Montée en version: 2.5● Optimisation de la compilation● Apparition du Super Dev Mode● API HTML5● Amé...
Google Web Toolkit Refonte de larchitecture et préconisations● Un seul fichier de langue par application● Mise en place du...
Google Web Toolkit Bootstrap et UI-Binding● Intégration de boostrap● Généralisation de lUI-binding● Aide à la création din...
Google Web Toolkit Mise à jour des composants● Internationalisation● SuggestListBox: possibilités de gérer les  CRUD● Cert...
Google Web Toolkit EmailBox <p1:ControlGroup>     <p1:ControlLabel>         <g:Label text="{i18n.email}" />     </p1:Contr...
Google Web Toolkit PhoneBox                             final PhoneBox Phone = new PhoneBox(); <p1:ControlGroup>     <p1:C...
Google Web Toolkit PhoneBox: HasValue public class PhoneAsValueModel implements Serializable {   private String numero;   ...
Google Web Toolkit TimeBox                              final TimeBox Phone = new TimeBox(); <p1:ControlGroup>     <p1:Con...
Google Web Toolkit DateTimeBox                         final DateTimeBox Phone = new DateTimeBox(); <p1:ControlGroup>     ...
Google Web Toolkit RegexBox final RegexBox regex = new RegexBox("[_A-Za-z0-9-.@]{0,100}");
Google Web Toolkit ConteneurErreur <icc:IntegrityControlErrorContainer monitoredAttribute="{attributes.civilite}">        ...
Google Web Toolkit Nouvelle gestion des popups● Les popups derreurs, de chargements,  dalertes et dinformations sont maint...
Google Web ToolkitNouvelle gestion des popups                                     SingleLoadingPop                  Loadin...
Présentation du projet      exemple
Hibernate● Montée en version● Nouvelle classe de base  ○ Gestion automatiques de dates de    création et de modification d...
Oval● Intégration du framework● Création de validateurs● Mise en place des contrôles dintégrités● Gestion des tests unitai...
Oval PrésentationOval est un framework Java ayant pour but devalider n’importe quel type d’objet:● Validation des objets à...
Oval Création de validateurs● BusinessValidator:         lève      une  BusinessException à la première erreur  detectée● ...
Oval Mise en place des contrôles dintégrités● Création des rapports: contient la listes des  erreurs associées à un champ●...
Oval Gestion des tests unitaires● Création de méthodes facilitant les tests  unitaires avec les controles dintégrités:  ○ ...
OvalCréations dun composant derreurs  ● 3 types daffichages: Tooltip, Inline, Icon  ● 2 positions: gauche et droite  ● Ges...
OvalAsyncCallback spécifique  ● Gestion      automatique des  controles    dintégrités  ● Mise à jour automatique des cont...
Controle dintégritésAnnotation dans les DTOpublic class ContactDto extends AbstractDto {  private Long id;  @NotNull  @Not...
Controle dintégritésValider les DTO    public ContactDto ajouterOuModifierContact(ContactDto contactDto) {       final Rep...
Controle dintégrités    Presenter: sauvegardeprivate void saveContact() {    fireEventGlobalBus(new LoadingEvent(true));  ...
Spring●   Montée en version●   Spring security●   Spring web service●   Spring Batch
SpringMontée en version  ● version 3.1.2  ● Adaptation des fichiers de configuration  ● Compatibilité avec hibernate
SpringSpring security  ● Montée en version  ● Adaptation des fichiers de configuration  ● Préconisation de JasyPt pour le ...
SpringSpring Web Service  ● Exposer et consommer les web services  ● Création de deux archetypes pour les projets    web s...
SpringSpring Web Service
SpringSpring Web Service
SpringSpring Web Service Server
SpringSpring Web Service Server
SpringSpring Web Service Server
SpringSpring Web Service Server
SpringSpring Web Service Server
SpringSpring Web Service Client
SpringSpring Web Service Client
SpringSpring Web Service Client
SpringSpring Batch  ● Gestion :    ○ du Scheduling    ○ du multi threading    ○ du chainage  ● Supervision via JMX
Jenkins●   Présentation de lintégration continue●   Information reporting●   Gestion du versioning●   Génération de module...
JenkinsPrésentation de lintégration continueEnsemble de pratiques consistant à vérifier à chaque modificationde code sourc...
Jenkins
Jenkins
Selenium● Mise en place en environnement de  développement● Goals maven● Automatisation lors de lintégration continue● Evo...
Usine de développement●   Nouvelle version déclipse: Juno●   JDK 1.7●   Montées en versions des plugins●   Nouveaux plugin...
Usine de développementNouveaux plugins  ● Dozer  ● GWT Designer  ● Hibernate Synchronizer
Jetty● Jetty remplace Jonas comme serveur  dapplications par défaut dans Scub  foundation.
Maven 3● Migration de maven 2 vers maven 3● Nouveaux goals  ○   Create database from dataset  ○   Launch Selenium Tests  ○...
Tests unitaires● Gestion de plusieurs datasets au sein dun  même test unitaire● Auto-completion dans les datasets
Communauté● Nouveau site internet http://www.scub-  foundation.org● Blog● Réécriture de la documentation et des  tutoriaux...
GrayLog● Application permettant de faire des  recherches sur les logs.● Création dindex et requetage avec  ElasticSearch● ...
GrayLog
Autres évolutions● Le code source est développé en français et  peut être internationnalisé.● Nouvelle préconisation pour ...
3.X                   4.0MigrationNiveau 1                   Niveau 2               Niveau 3●   Utiliser les projets   ●  ...
Fin de la présentationMerci de votre  attention
Prochain SlideShare
Chargement dans…5
×

Evolutions scub foundation 3.0 = 4.0

996 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
996
Sur SlideShare
0
Issues des intégrations
0
Intégrations
391
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Evolutions scub foundation 3.0 = 4.0

  1. 1. Scub-FoundationNouveautées de la version 4.0 http://scub.net adrien.hautot@scub.net
  2. 2. Plan de la présentation ● Framework GWT ● GrayLog ● Hibernate ● Autres évolutions ● Oval ● Migration ● Spring ● Jenkins ● Selenium ● Usine de developpement ● Jetty ● Maven 3 ● Tests unitaires
  3. 3. Google Web Toolkit● Montée en version● Refonte de larchitecture et conventions de codage● Intégration de GWT-Bootstrap● Généralisation de lUI-Binding● Mise à jour des composants● Création de nouveaux composants● Nouvel archetype● Nouvelle gestion des popups
  4. 4. Google Web Toolkit Montée en version: 2.5● Optimisation de la compilation● Apparition du Super Dev Mode● API HTML5● Amélioration des performances en dev mode● Multiples corrections et amélioration du framework.● Compilation multi thread● Support de java.util.logging
  5. 5. Google Web Toolkit Refonte de larchitecture et préconisations● Un seul fichier de langue par application● Mise en place dune factory● Apparition du package shared
  6. 6. Google Web Toolkit Bootstrap et UI-Binding● Intégration de boostrap● Généralisation de lUI-binding● Aide à la création dinterface avec GWT Designer.
  7. 7. Google Web Toolkit Mise à jour des composants● Internationalisation● SuggestListBox: possibilités de gérer les CRUD● Certains composants sont devenus obsolètes● Corrections de bugs● Adaptation aux styles de Bootstrap● Réécriture du RemotePaggingTable
  8. 8. Google Web Toolkit EmailBox <p1:ControlGroup> <p1:ControlLabel> <g:Label text="{i18n.email}" /> </p1:ControlLabel> <p1:Controls> <box:EmailBox ui:field="email"/> </p1:Controls> </p1:ControlGroup> final EmailBox tbEmail = new EmailBox();
  9. 9. Google Web Toolkit PhoneBox final PhoneBox Phone = new PhoneBox(); <p1:ControlGroup> <p1:ControlLabel> <g:Label text="{i18n.phone}" /> </p1:ControlLabel> <p1:Controls> <box:PhoneBox ui:field="phone"/> </p1:Controls> </p1:ControlGroup>
  10. 10. Google Web Toolkit PhoneBox: HasValue public class PhoneAsValueModel implements Serializable { private String numero; private String libellePays; private String format; private String validationFormat; private String indicatif; private String tag; ...
  11. 11. Google Web Toolkit TimeBox final TimeBox Phone = new TimeBox(); <p1:ControlGroup> <p1:ControlLabel> <g:Label text="{i18n.heure}" /> </p1:ControlLabel> <p1:Controls> <box:TimeBox ui:field="heure"/> </p1:Controls> </p1:ControlGroup>
  12. 12. Google Web Toolkit DateTimeBox final DateTimeBox Phone = new DateTimeBox(); <p1:ControlGroup> <p1:ControlLabel> <g:Label text="{i18n.dateTime}" /> </p1:ControlLabel> <p1:Controls> <box:DateTimeBox ui:field="dateTime"/> </p1:Controls> </p1:ControlGroup>
  13. 13. Google Web Toolkit RegexBox final RegexBox regex = new RegexBox("[_A-Za-z0-9-.@]{0,100}");
  14. 14. Google Web Toolkit ConteneurErreur <icc:IntegrityControlErrorContainer monitoredAttribute="{attributes.civilite}"> <slb:SuggestListBoxSingle p1:id="civilite" ui:field="slbCivilite" /> </icc:IntegrityControlErrorContainer>
  15. 15. Google Web Toolkit Nouvelle gestion des popups● Les popups derreurs, de chargements, dalertes et dinformations sont maintenant gérées de manière unique dans lapplication.
  16. 16. Google Web ToolkitNouvelle gestion des popups SingleLoadingPop LoadingPresenter upViewImpl SingleErrorPopup ErrorPresenter ViewImpl AppController MultiConfirmPopu ConfirmPresenter pViewImpl SingleAlertTypeP AlertPresenter opupViewImpl
  17. 17. Présentation du projet exemple
  18. 18. Hibernate● Montée en version● Nouvelle classe de base ○ Gestion automatiques de dates de création et de modification des enregistrements
  19. 19. Oval● Intégration du framework● Création de validateurs● Mise en place des contrôles dintégrités● Gestion des tests unitaires● Créations dun composant pour afficher les erreurs (partie GWT)● AsyncCallback spécifique
  20. 20. Oval PrésentationOval est un framework Java ayant pour but devalider n’importe quel type d’objet:● Validation des objets à la demande en faisant appel à des validateurs.● Utilisation dannotations: @NotNull, @MaxLength…
  21. 21. Oval Création de validateurs● BusinessValidator: lève une BusinessException à la première erreur detectée● IntegrityValidator: rassemble toutes les erreurs dans un rapport et lève une ControleIntegrityException
  22. 22. Oval Mise en place des contrôles dintégrités● Création des rapports: contient la listes des erreurs associées à un champ● ControleIntegrityException: transporte le rapport jusquau client pour len informer des erreurs.
  23. 23. Oval Gestion des tests unitaires● Création de méthodes facilitant les tests unitaires avec les controles dintégrités: ○ assertErrorCountEquals au niveau rapport et au niveau attribut ○ assertHasMessage
  24. 24. OvalCréations dun composant derreurs ● 3 types daffichages: Tooltip, Inline, Icon ● 2 positions: gauche et droite ● Gestion de lUI-Binding ● Gestion des styles derreurs des composants ● Ecoute les changements détat des composants pour se mettre à jour ● Gère plusieurs attributs
  25. 25. OvalAsyncCallback spécifique ● Gestion automatique des controles dintégrités ● Mise à jour automatique des conteneurs derreurs dans la vue.
  26. 26. Controle dintégritésAnnotation dans les DTOpublic class ContactDto extends AbstractDto { private Long id; @NotNull @NotBlank private String nom; @NotNull @NotBlank private String prenom; private Date dateNaissance; @NotNull.List(value = {@NotNull, @NotNull(target = "id") }) private IdLabelDto civilite; ...
  27. 27. Controle dintégritésValider les DTO public ContactDto ajouterOuModifierContact(ContactDto contactDto) { final ReportDto report = integrityValidator.validate(contactDto);}
  28. 28. Controle dintégrités Presenter: sauvegardeprivate void saveContact() { fireEventGlobalBus(new LoadingEvent(true)); contactService.createOrUpdateContact(getContact(), new IntegrityControlAsyncCallback<ContactModel>(view){ @Override public void onFail(Throwable caught) { fireEventGlobalBus(new LoadingEvent(false)); fireEventGlobalBus(new ErrorEvent(caught)); } @Override public void onSuccess(ContactModel result) { fireEventGlobalBus(new SaveContactSuccessEvent(result, currentContact.getId() == null)); fireEventGlobalBus(new LoadingEvent(false)); } });}
  29. 29. Spring● Montée en version● Spring security● Spring web service● Spring Batch
  30. 30. SpringMontée en version ● version 3.1.2 ● Adaptation des fichiers de configuration ● Compatibilité avec hibernate
  31. 31. SpringSpring security ● Montée en version ● Adaptation des fichiers de configuration ● Préconisation de JasyPt pour le cryptage
  32. 32. SpringSpring Web Service ● Exposer et consommer les web services ● Création de deux archetypes pour les projets web services clients et noyaux
  33. 33. SpringSpring Web Service
  34. 34. SpringSpring Web Service
  35. 35. SpringSpring Web Service Server
  36. 36. SpringSpring Web Service Server
  37. 37. SpringSpring Web Service Server
  38. 38. SpringSpring Web Service Server
  39. 39. SpringSpring Web Service Server
  40. 40. SpringSpring Web Service Client
  41. 41. SpringSpring Web Service Client
  42. 42. SpringSpring Web Service Client
  43. 43. SpringSpring Batch ● Gestion : ○ du Scheduling ○ du multi threading ○ du chainage ● Supervision via JMX
  44. 44. Jenkins● Présentation de lintégration continue● Information reporting● Gestion du versioning● Génération de modules reactor● Lignes dintégration continue sur les phases de développement
  45. 45. JenkinsPrésentation de lintégration continueEnsemble de pratiques consistant à vérifier à chaque modificationde code source quil ny a pas de regression dans lapplication.Les principaux avantages dune telle technique dedéveloppement sont :● le test immédiat des unités modifiées● la prévention rapide en cas de code incompatible ou manquant● les problèmes dintégration sont détectés et réparés de façon continue, évitant les problèmes de dernière minute● une version est toujours disponible pour un test, une démonstration ou une distribution
  46. 46. Jenkins
  47. 47. Jenkins
  48. 48. Selenium● Mise en place en environnement de développement● Goals maven● Automatisation lors de lintégration continue● Evolution des composants du socle
  49. 49. Usine de développement● Nouvelle version déclipse: Juno● JDK 1.7● Montées en versions des plugins● Nouveaux plugins● Nouvel installeur● Support Mac OS X● Montée en version de postgresql (9.2)● Stabilisation● Intégration de Jetty
  50. 50. Usine de développementNouveaux plugins ● Dozer ● GWT Designer ● Hibernate Synchronizer
  51. 51. Jetty● Jetty remplace Jonas comme serveur dapplications par défaut dans Scub foundation.
  52. 52. Maven 3● Migration de maven 2 vers maven 3● Nouveaux goals ○ Create database from dataset ○ Launch Selenium Tests ○ Deploy to Jetty ○ Clean Jetty ○ Extract XSD and generate POJO
  53. 53. Tests unitaires● Gestion de plusieurs datasets au sein dun même test unitaire● Auto-completion dans les datasets
  54. 54. Communauté● Nouveau site internet http://www.scub- foundation.org● Blog● Réécriture de la documentation et des tutoriaux● Google group ○ Bug tracker public ○ Forum ○ Téléchargements dexemples
  55. 55. GrayLog● Application permettant de faire des recherches sur les logs.● Création dindex et requetage avec ElasticSearch● Interface Web pour accéder aux logs.● Tous les logs sont centralisés sur une seule interface même si les applications tournent sur plusieurs serveurs.
  56. 56. GrayLog
  57. 57. Autres évolutions● Le code source est développé en français et peut être internationnalisé.● Nouvelle préconisation pour la structure SVN● Renommage des archetypes core et core- model
  58. 58. 3.X 4.0MigrationNiveau 1 Niveau 2 Niveau 3● Utiliser les projets ● Modifier les ● Remplacer le code existant par les existants avec la configurations nouvelles technologies nouvelle usine, pour utiliser la du socle et les quelques version 4.0 nouveaux composants configurations ● Supprimer les necessaires composants du● Développer les socle créés dans nouveaux projet les projets sur la version 4.0
  59. 59. Fin de la présentationMerci de votre attention

×