oct 15 2008

Développement web avec MAVEN - SRING 2.5 – HIBERNATE

Tag: Développement, J2EE, Non classé, Springkarl verger @ 8:48


Table des matières

Mise en place de maven. 3

Mise en place SPRING.. 4

Exemple de fichier web.xml 4

Les fichiers de configurations. 6

applicationContext-service.xml 6

formationspring-servlet.xml 7

Mise en place des controllers. 7

Declaration d’un controller. 7

Explication des annotations. 7

Diagramme de séquence simpliste d’appel à un Controller. 8

Spring security. 8

Authentification et autorisation. 8

Mise en place. 11

pom.xml 11

web.xml 11

applicationContext-security.xml 11

La gestion des transactions. 14

Définition d’une Transaction. 14

Overview d’une transaction applicative. 15

Les niveaux d’isolation des transactions. 15

Les modes de propagation des transactions. 17

Mise en place de HIBERNATE. 18

Le fichier applicationContext-hibernate.xml 18

Validation du domaine métier. 20

Contraintes intégrées. 20

Vérification des erreurs. 22

SQL et HQL Injection. 23

Requête paramétrée HQL. 23

Requite paramétrée SQL. 23

AJAX et DWR. 23

Mise en place. 24

pom.xml 24

web.xml 24

dwr.xml 24

Les problèmes d’ENCODING.. 25

DataBase. 25

Hibernate. 25

Spring framework. 25

Velocity et mails. 25

JSP. 26

Géré les paramètres et les exceptions  utilisateurs web inattendues. 26

La gestion des Tests unitaires. 26

Mesurer la couverture de test. 26

Exemple de test d’un controler web : 27

Mesurer les performances. 29

Mise en place “globale” de JAMon. 29

Paramétrer l’application pour définir les éléments dont on souhaite mesurer les temps d’exécution   29

Suivre le temps d’appel aux pages. 30

Suivre le temps d’exécution de certaines méthodes. 30

Suivre le temps d’exécution des requêtes SQL. 31

Le reporting du projet. 31

JDEPEND.. 32

Analyse des métriques de JDEPEND.. 33

PMD.. 33

 

Continue reading “Développement web avec MAVEN - SRING 2.5 – HIBERNATE”


mar 30 2008

PDF/A pourquoi et comment ?

Tag: Analyse, Architecture, Idées, Infrastructure, J2EE, Non classé, Spring, tipskarl verger @ 15:35

 

Table des matières

Qu’est ce que PDF/A.. 1

Pourquoi PDF/A.. 1

Quelle est la différence entre PDF et PDF/A.. 1

Qu’est ce que PDF/A permet et ne permet pas. 2

Les fichiers PDF/A doivent inclure : 2

Les fichiers PDF/A ne doivent pas inclure. 2

Quels sont les besoins pour une préservation à long terme. 2

Qu’elles sont les considérations sur les Fonts spécifiques. 2

Quand PDF/A devrait être utilisé. 2

Combien de niveaux de conformité avec PDF/A existe-t-il 3

Est-ce que PDF/A supporte les signatures numériques. 3

Quelques éditeurs actuels supportant PDF/A.. 3

Ou trouver la référence du format PDF/A

.. 4

Continue reading “PDF/A pourquoi et comment ?”


fév 07 2008

Workflow et Gestion de flux

Tag: Analyse, Architecture, Développement, Idées, Springkarl verger @ 21:54

L’objectif est d’appréhender les concepts du workflow, pour ce faire nous allons implémenter un petit projet de test permettant de comprendre les principes.

Pour le projet nous nous appuieront sur les outils suivants: spring, hibernate,jdom et groovy et comme d’habitude le projet maven sera téléchargeable à la fin du tutoriel.

wikipedia : Un workflow est un flux d’informations au sein d’une organisation, comme par exemple la transmission automatique de documents entre des personnes.

On appelle « workflow » (traduisez littéralement « flux de travail ») la modélisation et la gestion informatique de l’ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d’un processus métier (aussi appelé processus opérationnel ou bien procédure d’entreprise). Le terme de « workflow » pourrait donc être traduit en français par « gestion électronique des processus métier ».

De façon plus pratique, le workflow décrit le circuit de validation, les tâches à accomplir entre les différents acteurs d’un processus, les délais, les modes de validation, et fournit à chacun des acteurs les informations nécessaires pour la réalisation de sa tâche.

Le moteur de workflow est le dispositif logiciel permettant d’exécuter une ou plusieurs définitions de workflow. Par abus de langage, on peut appeler ce dispositif logiciel tout simplement “workflow”.

Présentation du Projet

Pour notre projet de test nous allons aborder les concepts suivants : tache,fonction,transition,context d’execution. Je met de côté volontairement la partie gestion des droits et habilitations des utilisateurs pour éviter de complexifier le model.

exemple de flux

flux.jpg

le workflow est composé de tache et de transition, un contexte d’exécution est transporté tout au long du processus, ce dernier peut être modifié par les taches, et les transitions pourront accéder à ce contexte, chaque transition est évalué et permet de définir le chemin a suivre dans le flux.

Continue reading “Workflow et Gestion de flux”


jan 12 2008

SPRING JMS ActiveMQ

Tag: Développement, J2EE, Springkarl verger @ 17:36

L’objectif de cet article est de vous permettre d’appréhender les bases de la mise en place de JMS avec SPRING et activeMQ.

 

Le projet de test que vous allez réaliser est téléchargeable à la fin de cet article, ce projet un projet maven donc pour le build : mvn package .Maven s’occupera de télécharger les dépendances pour vous .

 

Spring est le meta-framework du moment, il intègre les concepts comme AOP IOC MVC et fourni un nombre considérable d’helpers pour l’intégrations de technologies, nous l’utiliserons afin de bénéficier des templates jms qu’il fournis.

 

Java Message Service (JMS) permet d’envoyer et de recevoir des messages de manière asynchrone entre applications ou composants Java. Un client peut également recevoir des messages de façon synchrone dans le mode de communication point à point.

 

ActiveMQ d’Apache est le plus populaire et puissant des Message Broker open source, il permet une intégration aisé et multi languages.

 

  1. Installation activeMQ

    tout d’abord vous devez télécharger activeMQ ici , une fois cela fait vous le décompacter

    tar zxvf apache-activemq-5.0.0.tar.gz

    puis vous vous positionner dans le répertoire correspondant

    cd apache-activemq-5.0.0/bin

et enfin vous lancer le script d’execution

activemq > activemq-log.txt

a ce stade activeMQ est prêt à etre utilisé. Vous pouvez vous connecter à la console pour vérifier

à l’adresse http://0.0.0.0:8161/admin/

activeMQ est désormais accessible sur le port 61616 pour vos applications java.

Continue reading “SPRING JMS ActiveMQ”


jan 08 2008

Hibernate Search Lucene Spring Maven

Tag: Architecture, Développement, J2EE, Springkarl verger @ 23:21

L’objectif de cet article est de vous permettre d’appréhender la mise en place d’une indexation avec le moteur Lucene en s’aidant des frameworks java du moment sur le marché à savoir Hibernate et Spring.

Le projet de test que vous allez réaliser est téléchargeable à la fin de cet article, ce projet un projet maven donc pour le build : mvn package .Maven s’occupera de télécharger les dépendances pour vous .

Hibernate Search vous permet de profiter du moteur d’indexation Lucene pour indexer les objets de votre domaine métiers.

Lucene est basé sur une technologie d’indexation des contenus textuels similaire à Google ou d’autres moteurs de recherche. D’ailleurs, un sous-projet de Lucene, Nutch, offre les fonctionnalités de Google et permet de faire de la recherche sur des millions de pages web.

Lucene offre des performances inégalées et est scalable quelle que soit la volumétrie en terme de contenu ou de nombre de recherches.

Spring quand à lui est le meta-framework du moment, il intègre les concepts comme AOP IOC MVC et fourni un nombre considérable d’helpers pour l’intégrations de technologies, nous l’utiliserons dans notre projet pour manager hibernate et les transactions

L’intégration d’hibernate search est assez aisé et ce fait par le biais des annotations et les events hibernate.

Les annotations permettent de définir les propriétés que vous voulez indexer ainsi que leur stratégies d’indexations.

Les events s’occupent pour vous de synchroniser les indexes Lucene avec vos Entités hibernate

 

L'image “http://www.hibernate.org/hib_docs/search/reference/en/shared/images/lucene-backend.png” ne peut être affichée car elle contient des erreurs.

voilà après ce rapide tour d’horizon, nous allons mettre en place hibernate search pour un projet de test

Continue reading “Hibernate Search Lucene Spring Maven”


jan 05 2008

Transactions et SPRING Framework

Tag: Architecture, Développement, J2EE, Springkarl verger @ 23:20

L’objectif de cet article est de faire quelques rappels interressants sur les transactions et leur comportements avec SPRING.

Définition d’une Transaction : Une transaction regroupe une série d’opérations dans un tout indivisible. La transaction n’est validé que si chacune des taches unitaires qu’elle regroupent se sont déroulées correctement (COMMIT). Dans le cas contraire (si une des taches unitaires échoue) l’ensemble des données traitées retrouvent leur état initial(ROLBACK).

Une transaction doit respecter les quatre contraintes suivantes dites ACID :

  • Atomicité : une transaction doit s’effectuer en tout ou rien ;

  • Cohérence : la cohérence des données doit être assurée dans tous les cas, même dans les cas d’erreur où le système doit revenir au précédent état cohérent ;

  • Isolation : la transaction va travailler dans un mode isolé où elle seule peut voir les données qu’elle est en train de modifier, cela en attente d’un nouveau point de synchronisation ; le système garantit aux autres transactions, exécutées en parallèle sur le même système, une visibilité sur les données antérieures ;

  • Durabilité : lorsque la transaction est achevée, le système est dans un état stable durable, soit à l’issu d’une modification transactionnelle réussie, soit à l’issue d’un échec qui se solde par le retour à l’état stable antérieur.

Overview d’une transaction applicative

les transactions spring permettent d’encapsuler plusieurs appels de méthodes sur différentes couches et d’en assurer le caractère ACID.

overview-Transaction

Continue reading “Transactions et SPRING Framework”