<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2754249220006084747</atom:id><lastBuildDate>Sun, 27 Nov 2011 23:29:21 +0000</lastBuildDate><category>ECM : Définitions et débats</category><category>Formation</category><category>WCM</category><category>Présentation</category><category>web social</category><category>REST</category><category>ECM</category><category>Vidéos</category><category>Article</category><category>JSR</category><category>Solutions</category><category>Accueil</category><category>Outils</category><category>Intégration Continue</category><category>Alfresco</category><category>KnowledgeTree</category><category>Partenariat</category><category>Tutorial</category><category>Actualité</category><category>Spécification</category><category>Interview</category><category>Webcast</category><category>OpenSource</category><category>Anecdote</category><category>Version</category><category>Editeur</category><category>Contribution</category><category>Nuxeo</category><category>Maven</category><category>Framework</category><category>twitter</category><category>Portail</category><category>drupal</category><category>English Version</category><category>Définition</category><category>Evènement</category><category>Organisation</category><category>Technologies</category><category>Divers</category><category>CMIS</category><category>Integrateur</category><category>wave</category><category>Stratégie</category><category>Blog</category><category>Juridique</category><title>Sur la route d'un monde ECM</title><description>Depuis la création des nouvelles technologies de l'information et de la communication, notre société est devenue une société d'Informations et de Communications.
Mais que faire de toutes ces informations qui pour la plupart sont non structurées ? Comment les partager ? Comment les rendre utiles ? 
Une Réponse Possible : L'ECM !</description><link>http://www.opensourceecm.fr/</link><managingEditor>noreply@blogger.com (JM.Pascal)</managingEditor><generator>Blogger</generator><openSearch:totalResults>166</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SurLaRouteDunMondeEcm" /><feedburner:info uri="surlaroutedunmondeecm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><feedburner:emailServiceId>SurLaRouteDunMondeEcm</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-4873189361207947468</guid><pubDate>Thu, 06 May 2010 18:22:00 +0000</pubDate><atom:updated>2011-07-04T09:54:07.425+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Evènement</category><title>Alfresco Meetup 2010 : Impressions et Compte Rendu</title><description>Bonjour a tous,&lt;br /&gt;&lt;br /&gt;Le jeudi 07.04,  j'ai assisté à Paris à&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;l'&lt;span style="font-weight: bold;"&gt;Alfresco Meetup 2010&lt;/span&gt;  et comme l'année dernière je vais essayer de vous faire le compte rendu  de cet événement majeur pour la communauté Alfresco.&lt;br /&gt;&lt;br /&gt;Tout d'abord la manifestation a eu lieu dans les même locaux que  l'année dernière c'est à dire dans 8 rue d’Athènes, 75009, Pa&lt;span style="font-size:small;"&gt;ris.  &lt;/span&gt;Mais à la différence de l'année  dernière, l'équipe Alfresco était beaucoup plus représentée. Pas moins  d'une vingtaine!&lt;br /&gt;&lt;br /&gt;On citera par exemple la présence entre autre :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;John Newton CTO UK&lt;/li&gt;&lt;li&gt;Denis Dorval VP, EMEA &amp;amp; APAC France&lt;/li&gt;&lt;li&gt;Paul Hampton Director of Product Marketing UK&lt;/li&gt;&lt;li&gt;Ben Hagan WCM, Manager UK&lt;/li&gt;&lt;li&gt;Gabriele Columbro Consultant NL&lt;/li&gt;&lt;li&gt;Michael Harlaut Solutions Engineer France&lt;/li&gt;&lt;li&gt;Paul Holmes-Higgins VP of Engineering UK&lt;/li&gt;&lt;li&gt;Linton Baddeley Senior Usability Engineer UK&lt;/li&gt;&lt;li&gt;Natasha Woodhouse Training Coordinator  UK&lt;/li&gt;&lt;li&gt;Herve Leroux Channel Manager, WE France&lt;/li&gt;&lt;li&gt;Philippe Galland Director, WE France&lt;/li&gt;&lt;li&gt;Thomas Esser Inside Sales Executive, EMEA France&lt;/li&gt;&lt;li&gt;Romain Guinot Solutions Engineer France&lt;/li&gt;&lt;li&gt;Harinder Sunder  Marketing Assistant UK&lt;/li&gt;&lt;li&gt;Coralie Froeliger Renewals UK&lt;/li&gt;&lt;li&gt;Brian Remmington WCM Architect UK&lt;/li&gt;&lt;li&gt;Derek Hulley Senior Software Engineer UK&lt;/li&gt;&lt;li&gt;Claudia Belardo Satisfaction Manager EMEA UK&lt;/li&gt;&lt;/ul&gt;(Désolé si j'ai oublié du monde... la liste complète était sur l'un des  slides de présentation que j'ai pas eu le temps de bien parcourir...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sinon  le programme de cette journée ?&lt;/span&gt;&lt;br /&gt;A la différence de l'année dernière, la journée était coupée en trois  temps. Enfin pour être précis en une matinée et une branche  conditionnelle l'après midi entre sessions techniques et sessions  stratégiques. Donc cruel dilemme pour moi lors de la pause de midi  lorsqu'il a fallu que je choisisse les sessions à suivre.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;L'affluence  &lt;/span&gt;?&lt;br /&gt;Beaucoup plus de monde que l'année dernière! Pour ce 3e meetup français,  on notera la présence de plus de 200 personnes. Une bonne progression  par rapport à l'année dernière.&lt;br /&gt;&lt;br /&gt;Donc allons y pour un petit compte rendu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Matinée - Première  partie&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;La matinée comme l'année dernière a débuté avec  la vision stratégique et globale d'Alfresco par la présentation de &lt;span style="font-weight: bold;"&gt;Denis Dorval&lt;/span&gt;.&lt;br /&gt;Il nous a rappelé  quelques chiffres sur l'environnement Alfresco, sur l'open source en  général et sur le modèle économique d'Alfresco. On citera entre autres  des chiffres sur :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;La communauté&lt;/span&gt; : 150 000  membres, USA 1er, France 2e, Allemagne 3e&lt;br /&gt;L'Europe représente plus de 50% de  la communauté&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Le forum FR&lt;/span&gt; : 6000  visiteurs unique par mois. Croissance constante depuis la création&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Utilisation : &lt;/span&gt;2 millions  de téléchargements d'Alfresco, 70 000 serveurs "live", 1 millions  d'utilisateurs actifs&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Clients &lt;/span&gt;: 1100 clients  d'Alfresco Entreprises au 30/04/10 (40% Europe, 40% US, 10% asie); +300  nouveaux clients en 2009 (120 dernier  trimestre); +100 nouveaux partenaires; +20 nouveaux partenaires OEM;  Taux de renouvellement du support de 80 à 90%; Répartition des clients :  Public, Finances, HighTech/Telco&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Alfresco &lt;/span&gt;: un chiffre  d'affaire en progression de +61% (Pour ceux intéressés par le chiffre  précis, si vous connaissez le tarif Alfresco + le nombre de clients...) ,  +29% staff&lt;/li&gt;&lt;/ul&gt; On notera aussi d'autres informations comme :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le lancement futur d'une campagne de "switch to" vers Alfresco.  En d'autres termes, nous allons vous fournir les outils nécessaires pour  passer d'un système d'ECM vers Alfresco via CMIS (je suppose  fortement...)&lt;/li&gt;&lt;li&gt;un taux de croissance de 100% des clients possédant Alfresco. Ils  déploient de plus en plus Alfresco une fois qu'il a été installé.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;La seconde présentation a été effectuée par &lt;span style="font-weight: bold;"&gt;John Newton.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Pour la première fois en direct, j'ai pu assister à son art de la  présentation qui n'a rien à envier à mes présentations (je m'enflamme  un petit peu la...). En tout cas, si vous n'avez jamais vu une de ces  présentations, vous loupez sans doute quelque chose. On pourra dire  qu'il arrive à faire passer son message d'une façon détournée et bien  percutante mais toujours dans la bonne humeur.&lt;br /&gt;Ce que je retiens de cette présentation, c'est que le point central  n'était pas forcément Alfresco mais plus une vision de haut niveau (dans  les nuages...) de la gestion de contenu. Après moults essais de résumé  (après sa présentation et le lendemain), je ne suis pas arrivé à résumer  correctement sa présentation riche en informations et en pensées. Je  pense que j'aurai besoin d'un peu plus de temps et sans doute une  présentation....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Par contre, j'ai retenu  qu'il y aura sans doute une annonce concernant le BPM2.0 importante  courant Mai...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je vous invite donc à voir les supports de présentation à cette adresse  (quand elle sera disponible) pour vous faire vous même une idée.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Matinée - Seconde partie&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;La deuxième partie de la matinée a été centrée sur 2 études de cas.&lt;br /&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;Mark Scheers, P&amp;amp;V Insurance&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Jean Marc Bittoun, DGAC&lt;/li&gt;&lt;/ul&gt; Dans le premier cas, il s'agissait d'améliorer la chaine de  dématérialisation (scan) et d'archivage de documents relatifs à  l'assurance. Avec l'aide de leur partenaire &lt;a href="http://www.xenit.eu/"&gt;Xenit&lt;/a&gt;, P&amp;amp;V Insurance a mis en place  Alfresco pour l'archivage de plus de 10 millions de documents, le  stockage de 4 millions de documents et l'intégration de 8000 pages à  15000 pages par jour. On notera aussi un taux de reconnaissance des  pages scannées de plus de 95%.&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;"&gt;Pour de plus amples  informations : &lt;a href="http://www.xenit.eu/?q=references/vivium"&gt;http://www.xenit.eu/?q=references/vivium&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans le second cas, il s'agissait de rationaliser l'ensemble de la  documentation de la DGAC. Comme toutes entreprises, l'ensemble de la  documentation était réparti dans de nombreux silos et avec l'aide de  leur partenaire &lt;a href="http://www.sollan.com/v6/index.php"&gt;Sollan&lt;/a&gt;,  la DGAC a réussi à mettre en place un entrepôt de données unifié.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Sur le site de sollan,  vous pourrez retrouver des informations sur cette étude de cas. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;"&gt;Aprés midi – Séances Techniques&lt;/span&gt;&lt;br /&gt;Après  un bon buffet, j'ai finalement choisi d'assister à l'ensemble des  sessions techniques concernant Alfresco 3.3 et ses nouveautés. Dans une  salle que l'on pourrait qualifier d'original, j'ai pu assister aux 3  séances techniques de l'après midi.&lt;br /&gt;&lt;br /&gt;Tout dabord on va  s'intéresser à SHARE et à EXPLORER via une présentation de &lt;span style="font-weight: bold;"&gt;Michael Harlaut&lt;/span&gt;&lt;br /&gt;On notera&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Les fonctionnalités de navigation (tags, catégorie...)&lt;/li&gt;&lt;li&gt;les Favoris&lt;/li&gt;&lt;li&gt;Simplification de l'envoi de mail&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gestion des permissions (interface graphique améliorés et plus  simple...)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Les listes de données&lt;/li&gt;&lt;li&gt;La gestion des règles et des bibliothèques de règles (création des  exceptions si une règle s'est mal passée)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Recherche à la google avec l'ajout d'opérateur &lt;/li&gt;&lt;li&gt;Gestion des thèmes améliorés&lt;/li&gt;&lt;li&gt;Intégration avec les outils IBM&lt;/li&gt;&lt;li&gt;Support de CMIS&lt;/li&gt;&lt;li&gt;Alfresco RM&lt;/li&gt;&lt;li&gt;Sortie de la 3.3E courant mai.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Pour être plus exhaustif, allez faire un tour sur les différentes  informations données lors de la sortie de la 3.3C à cette adresse :&lt;a href="http://forums.alfresco.com/fr/viewtopic.php?f=5&amp;amp;t=3916"&gt;  http://forums.alfresco.com/fr/viewtopic.php?f=5&amp;amp;t=3916&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pour  le futur, on notera l'amélioration ou la création de&lt;br /&gt;&lt;ul&gt;&lt;li&gt;l'intégration Google Docs&lt;/li&gt;&lt;li&gt;la gestion de la corbeille&lt;/li&gt;&lt;li&gt;la recherche avancée&lt;/li&gt;&lt;li&gt;les workflow avancés&lt;/li&gt;&lt;/ul&gt; Ensuite pour la &lt;span style="font-weight: bold;"&gt;deuxième session&lt;/span&gt;, on va s'intéresser à WCM via une  présentation de &lt;span style="font-weight: bold;"&gt;Ben&lt;/span&gt;&lt;span style="font-size:78%;"&gt;(et non paul...)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Hagan&lt;/span&gt; !  La  présentation a été décomposée en 4 grandes parties :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web platform vision&lt;/li&gt;&lt;li&gt;Transfer Service&lt;/li&gt;&lt;li&gt;Rendition Service&lt;/li&gt;&lt;li&gt;Alfresco Web Editor &amp;amp; Web Editor FrameWork&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Alfresco WCM reste concentré sur un cas d'utilisation décomposé en 2  parties&lt;br /&gt;&lt;ul&gt;&lt;li&gt;une instance de création&lt;/li&gt;&lt;li&gt;une instance de publication&lt;/li&gt;&lt;li&gt;et des transferts entre ces 2 plateformes&lt;/li&gt;&lt;/ul&gt; Personnellement, j'ai beaucoup apprécié la démonstration du transfert  service. J'avais essayé de mon côté de le faire marcher et bizarrement  cela ne marchait pas aussi simplement... Les joies de la configuration  et du développement...&lt;br /&gt;&lt;br /&gt;Finalement, j'ai assisté à la &lt;span style="font-weight: bold;"&gt;présentation sur CMIS&lt;/span&gt; de &lt;span style="font-weight: bold;"&gt;Gabriele Columbro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il nous a fourni beaucoup d'informations sur &lt;a href="https://cwiki.apache.org/CMIS/opencmis.html"&gt;OpenCMIS &lt;/a&gt;et sur &lt;a href="http://wiki.alfresco.com/wiki/CMIS"&gt;CMIS &lt;/a&gt;en général. Dans ce  cas aussi, je reviendrai sans doute plus tard dessus dans un post  consacré au sujet.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Au final  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tout d'abord on constate qu'Alfresco se porte très bien! C'est toujours  bon à noter surtout pour ceux qui doutent parfois de la pérennité d'une  entreprise basée sur le modèle open source... Ensuite personnellement,  je sens Alfresco dans une phase d'accélération continue un peu comme une  fusée qui aurait largué un étage... Trajectoire correcte on continue  sur la lancée.. Comment cela se sent il ?&lt;br /&gt;Disons que cela se traduit par la croissance&lt;br /&gt;&lt;ul&gt;&lt;li&gt;des partenariats stratégiques avec Spring, IBM&lt;br /&gt;&lt;/li&gt;&lt;li&gt;du nombre de fonctionnalités dans SHARE et dans la partie WCM&lt;/li&gt;&lt;li&gt;des clients souscripteurs à la version entreprise&lt;/li&gt;&lt;li&gt;des participants et des membres de la communauté&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Si vous jouez à des jeux de gestion de ressources/stratégie (comme moi  parfois), il arrive toujours un moment de fléchissement entre le début  où c'est difficile et le moment où cela commence à payer... Je pense que  pour l'année 2010 c'est un peu cela qui se passe pour Alfresco.&lt;br /&gt;&lt;br /&gt;Alors tout ce que j'ai à dire : J'ai encore de long posts à proposer  pour vous faire découvrir toutes les routes qui mènent à Alfresco.&lt;br /&gt;&lt;br /&gt;Allez Merci pour  tout. Et à très bientôt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-4873189361207947468?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=FqVBa58Z3us:ulpRDDG98mc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=FqVBa58Z3us:ulpRDDG98mc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=FqVBa58Z3us:ulpRDDG98mc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/FqVBa58Z3us/alfresco-meetup-2010-impressions-et.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>2</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/05/alfresco-meetup-2010-impressions-et.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-7717587421916860384</guid><pubDate>Sun, 25 Apr 2010 09:10:00 +0000</pubDate><atom:updated>2010-04-25T16:20:31.896+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : Format de livraison</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bonjour à tous !&lt;br /&gt;&lt;br /&gt;Cette fois ci, il est temps de parler du format de livraison de votre projet. Vous me direz, il nous parle depuis plusieurs post du format AMP et maintenant il veut nous livrer autre chose ? C'est un peu ça... Suivant les projets, la distribution des rôles,  les équipes et les bonnes pratiques de l'entreprise, le format de livraison va être simple ou bien très très complexe!&lt;br /&gt;&lt;br /&gt;Prenons le cas classique, d'un côté une équipe de développement et de l'autre une équipe d'exploitation. Le premier est en charge de créer le produit, l'autre est en charge d'installer le produit et de vérifier qu'il fonctionne tout au long de sa durée de vie.&lt;br /&gt;&lt;br /&gt;La question : &lt;span style="font-weight: bold;"&gt;Quel est le format d'échange du produit entre ces deux équipes ?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Ps : on ne tiendra pas compte ici de toute la documentation à fournir à l'équipe de production...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Listons un peu les différents cas possibles :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;un (des) AMP(s)&lt;/span&gt; : Pour l'équipe de développement c'est le format le plus simple. En effet c'est le format de sortie de notre projet ! Il suffit donc de récupérer le fichier .amp et de l'envoyer ! Bien entendu si notre projet est constitué de plusieurs AMPs, on enverra l'ensemble des AMPs. Dans ce cas de figure, c'est l'équipe de production qui est en charge de générer le WAR de l'application en utilisant le script fourni par Alfresco.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;un WAR : &lt;/span&gt;Ici, c'est l'équipe de développement qui a la responsabilité de créer le war.  Ils doivent intégrer les différents modules dans le war Alfresco par défaut. L'équipe de production n'aura simplement qu'à installer l'application.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;un WAR + AMP&lt;/span&gt; : Dans ce cas de figure, l'équipe de production demande à avoir l'application + les AMPs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Autre :  &lt;/span&gt;Ici vous pouvez inventer tout ce qui vous passe par la tête. Si vous travaillez dans des gros projets, ou dans des entreprises de grandes tailles, je pense que vous avez de très beaux exemples!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Comme vous pouvez le voir, les exemples ne manquent pas ! C'est même plutôt le contraire. La question que l'on se pose alors :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comment créer ces nouveaux formats de distribution dans notre projet AMP ?&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;L'idée comme d'habitude consiste à lancer une commande Maven et d'attendre le résultat attendu. Ne jamais oublier que le développeur est censé être un fainéant ^^ .&lt;br /&gt;&lt;br /&gt;Dans les lignes ci-dessous, je vais vous présenter 2 approches pour générer autre chose que votre AMP. Ces approches se basent sur un nouveau projet Maven appelé &lt;span style="font-weight: bold;"&gt;alf-war-osecm&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0); font-style: italic;"&gt;Remarque : Cette approche n'est pas très conforme à la philosophie Maven mais effectue  le travail désiré.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Création d'un nouveau projet AMP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Définir la structure&lt;/span&gt;&lt;br /&gt;Créez un répertoire avec pour nom :&lt;span style="font-weight: bold;"&gt; alf-war-osecm&lt;/span&gt;&lt;br /&gt;Ajoutez y un fichier &lt;span style="font-weight: bold;"&gt;pom.xml&lt;/span&gt; avec pour valeur&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;&lt;br /&gt; &lt;groupId&gt;fr.opensourceecm&lt;/groupId&gt;&lt;br /&gt; &lt;artifactId&gt;alf-war-osecm&lt;/artifactId&gt;&lt;br /&gt; &lt;packaging&gt;pom&lt;/packaging&gt;&lt;br /&gt; &lt;version&gt;0.1&lt;/version&gt;&lt;br /&gt; &lt;name&gt;Alfresco AMP Open Source ECM&lt;/name&gt;&lt;br /&gt; &lt;description&gt;Open Source ECM - Extension&lt;/description&gt;&lt;br /&gt;&lt;/project&gt;&lt;br /&gt;&lt;/pre&gt;   &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Intégrer l'outil dans un repository&lt;/span&gt;&lt;br /&gt;Dans ce projet, on va utiliser le &lt;a href="http://wiki.alfresco.com/wiki/Module_Management_Tool"&gt;Module  Management Tool d'Alfresco&lt;/a&gt;. Ce module est disponible dans le  répertoire &lt;span style="font-weight: bold;"&gt;bin&lt;/span&gt; d'une  installation standard Alfresco. Il est aussi disponible ici : &lt;a href="http://wiki.alfresco.com/wiki/Community_Edition_file_list_3.3"&gt;http://wiki.alfresco.com/wiki/Community_Edition_file_list_3.3&lt;/a&gt;. Donc dans  un premier temps, nous allons installer dans notre repository ce  fichier avec la commande :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;call mvn install:install-file  -Dfile=alfresco-mmt.jar -DgroupId=org.alfresco.sdk -DartifactId=mmt  -Dversion=3.3 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;On  effectuera cette commande, dans le répertoire où se situe notre  fichier. Il nous sera ainsi possible de le retrouver via le mécanisme de  dépendance maven classique.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Créer un nouveau WAR Alfresco&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Maintenant, comme le titre l'indique, je souhaite générer un WAR avec l'ensemble des AMPs.  Il faudra intégrer l'ensemble des AMPs dans un War Alfresco. Ce  processus va se décomposer en 4 parties.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Définition des propriétés&lt;/span&gt; : Dans cette  partie, on va initialiser des propriétés qui nous serviront au cours  des autres parties.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Import des pré-requis&lt;/span&gt; : On va  installer notre répertoire de travail avec le war et l'outil Alfresco.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Import des AMPs&lt;/span&gt; : Dans notre  répertoire de travail, on va créer un sous-répertoire qui aura pour  fonction de contenir l'ensemble des AMPs à intégrer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Génération du war&lt;/span&gt; : Ici, on va lancer  une ligne de commande pour intégrer les AMPs&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;(Optionnel) Installer  dans un repository&lt;/span&gt; : Après la génération, on peut éventuellement  ajouter une phase d'installation du war généré dans notre repository.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Définition des propriétés&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;On va définir 4 propriétés&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;work.dir : &lt;/span&gt;répertoire de travail&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;amps.dir : &lt;/span&gt;répertoire de dépôts des amps&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;mmt.jar : &lt;/span&gt;nom du fichier Module Management Tool&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;alfresco.war : &lt;/span&gt;Application Alfresco&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;properties&gt;&lt;br /&gt;    &lt;work.dir&gt;livraison&lt;/work.dir&gt;&lt;br /&gt;    &lt;amps.dir&gt;amps&lt;/amps.dir&gt;&lt;br /&gt;    &lt;mmt.jar&gt;mmt.jar&lt;/mmt.jar&gt;&lt;br /&gt;    &lt;alfresco.war&gt;alfresco.war&lt;/alfresco.war&gt;&lt;br /&gt;&lt;/properties&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Import des pré-requis&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Via le plugin &lt;a style="font-weight: bold;" href="http://maven.apache.org/plugins/maven-dependency-plugin/index.html"&gt;maven-dependency-plugin&lt;/a&gt; nous allons réaliser le goal &lt;a href="http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html"&gt;copy &lt;/a&gt;lors de la phase de &lt;a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference"&gt;prepare-package&lt;/a&gt;. Plus simplement, on veut copier un ensemble de dépendances (alfresco.war + outil Alfresco) dans notre répertoire de travail.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;&lt;br /&gt;    &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;&lt;br /&gt;    &lt;executions&gt;&lt;br /&gt;        &lt;execution&gt;&lt;br /&gt;            &lt;id&gt;war-copy-requisites&lt;/id&gt;&lt;br /&gt;            &lt;phase&gt;prepare-package&lt;/phase&gt;&lt;br /&gt;            &lt;goals&gt;&lt;br /&gt;                &lt;goal&gt;copy&lt;/goal&gt;&lt;br /&gt;            &lt;/goals&gt;&lt;br /&gt;            &lt;configuration&gt;&lt;br /&gt;                &lt;artifactItems&gt;&lt;br /&gt;                    &lt;artifactItem&gt;&lt;br /&gt;                        &lt;groupId&gt;org.alfresco.sdk&lt;/groupId&gt;&lt;br /&gt;                        &lt;artifactId&gt;alfresco-community-war&lt;/artifactId&gt;&lt;br /&gt;                        &lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;                        &lt;type&gt;war&lt;/type&gt;&lt;br /&gt;                        &lt;outputDirectory&gt;${project.build.directory}/${work.dir}&lt;/outputDirectory&gt;&lt;br /&gt;                        &lt;destFileName&gt;${alfresco.war}&lt;/destFileName&gt;&lt;br /&gt;                    &lt;/artifactItem&gt;&lt;br /&gt;                    &lt;artifactItem&gt;&lt;br /&gt;                        &lt;groupId&gt;org.alfresco.sdk&lt;/groupId&gt;&lt;br /&gt;                        &lt;artifactId&gt;mmt&lt;/artifactId&gt;&lt;br /&gt;                        &lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;                        &lt;type&gt;jar&lt;/type&gt;&lt;br /&gt;                        &lt;outputDirectory&gt;${project.build.directory}/${work.dir}&lt;/outputDirectory&gt;&lt;br /&gt;                        &lt;destFileName&gt;${mmt.jar}&lt;/destFileName&gt;&lt;br /&gt;                    &lt;/artifactItem&gt;&lt;br /&gt;                &lt;/artifactItems&gt;&lt;br /&gt;            &lt;/configuration&gt;&lt;br /&gt;        &lt;/execution&gt;&lt;br /&gt;    &lt;/executions&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Import des AMPs&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Tout d'abord, on va ajouter un bloc &lt;span style="font-weight: bold;"&gt;dependencies &lt;/span&gt;à notre pom.xml. Dans notre cas, les dépendances de ce bloc seront :&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;fr.opensourceecm:alf-amp-osecm:amp:0.0.5&lt;/li&gt;&lt;li&gt;org.alfresco.sample:SDK-CustomWizard:amp:1.0&lt;/li&gt;&lt;/ul&gt;On aura ainsi dans notre pom.xml&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;dependencies&gt;&lt;br /&gt;    &lt;dependency&gt;&lt;br /&gt;        &lt;groupId&gt;fr.opensourceecm&lt;/groupId&gt;&lt;br /&gt;        &lt;artifactId&gt;alf-amp-osecm&lt;/artifactId&gt;&lt;br /&gt;        &lt;version&gt;0.0.5&lt;/version&gt;&lt;br /&gt;        &lt;type&gt;amp&lt;/type&gt;&lt;br /&gt;    &lt;/dependency&gt;&lt;br /&gt;    &lt;dependency&gt;&lt;br /&gt;        &lt;groupId&gt;org.alfresco.sample&lt;/groupId&gt;&lt;br /&gt;        &lt;artifactId&gt;SDK-CustomWizard&lt;/artifactId&gt;&lt;br /&gt;        &lt;version&gt;1.0&lt;/version&gt;&lt;br /&gt;        &lt;type&gt;amp&lt;/type&gt;&lt;br /&gt;    &lt;/dependency&gt;&lt;br /&gt;&lt;/dependencies&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ensuite, toujours via le plugin &lt;a style="font-weight: bold;" href="http://maven.apache.org/plugins/maven-dependency-plugin/index.html"&gt;maven-dependency-plugin&lt;/a&gt;  nous allons réaliser le goal &lt;a href="http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html"&gt;copy-dependencies  &lt;/a&gt;lors de la phase de &lt;a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference"&gt;prepare-package&lt;/a&gt;.  Plus simplement, on veut copier l'ensemble des AMPs (défini en dépendance) dans un sous-répertoire de travail {amps.dir}.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;&lt;br /&gt;    &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;&lt;br /&gt;    &lt;executions&gt;&lt;br /&gt;        &lt;execution&gt;&lt;br /&gt;            &lt;id&gt;war-copy-amp&lt;/id&gt;&lt;br /&gt;            &lt;phase&gt;prepare-package&lt;/phase&gt;&lt;br /&gt;            &lt;goals&gt;&lt;br /&gt;                &lt;goal&gt;copy-dependencies&lt;/goal&gt;&lt;br /&gt;            &lt;/goals&gt;&lt;br /&gt;            &lt;configuration&gt;&lt;br /&gt;                &lt;includeTypes&gt;amp&lt;/includeTypes&gt;&lt;br /&gt;                &lt;outputDirectory&gt;${project.build.directory}/${work.dir}/${amps.dir}&lt;/outputDirectory&gt;&lt;br /&gt;                &lt;overWriteReleases&gt;false&lt;/overWriteReleases&gt;&lt;br /&gt;                &lt;overWriteSnapshots&gt;true&lt;/overWriteSnapshots&gt;&lt;br /&gt;                &lt;excludeTransitive&gt;true&lt;/excludeTransitive&gt;&lt;br /&gt;            &lt;/configuration&gt;&lt;br /&gt;        &lt;/execution&gt;&lt;br /&gt;    &lt;/executions&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Génération du war&lt;/span&gt;&lt;br /&gt;Via le plugin &lt;a href="http://mojo.codehaus.org/exec-maven-plugin/"&gt;exec-maven-plugin&lt;/a&gt;, nous allons réaliser le goal &lt;a href="http://mojo.codehaus.org/exec-maven-plugin/exec-mojo.html"&gt;exec&lt;/a&gt; lors de la phase de &lt;a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference"&gt;package&lt;/a&gt;.&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Autrement dit, on veut réaliser le même comportement que le batch &lt;span style="font-weight: bold;"&gt;apply-amps.bat&lt;/span&gt;(ou .sh)  mais via Maven.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;    &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;&lt;br /&gt;    &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;&lt;br /&gt;    &lt;version&gt;1.1&lt;/version&gt;&lt;br /&gt;    &lt;executions&gt;&lt;br /&gt;        &lt;execution&gt;&lt;br /&gt;            &lt;id&gt;war-create&lt;/id&gt;&lt;br /&gt;            &lt;phase&gt;package&lt;/phase&gt;&lt;br /&gt;            &lt;goals&gt;&lt;br /&gt;                &lt;goal&gt;exec&lt;/goal&gt;&lt;br /&gt;            &lt;/goals&gt;&lt;br /&gt;        &lt;/execution&gt;&lt;br /&gt;    &lt;/executions&gt;&lt;br /&gt;    &lt;configuration&gt;&lt;br /&gt;        &lt;executable&gt;java&lt;/executable&gt;&lt;br /&gt;        &lt;arguments&gt;&lt;br /&gt;            &lt;argument&gt;-jar&lt;/argument&gt;&lt;br /&gt;            &lt;argument&gt;${project.build.directory}/${work.dir}/${mmt.jar}&lt;/argument&gt;&lt;br /&gt;            &lt;argument&gt;install&lt;/argument&gt;&lt;br /&gt;            &lt;argument&gt;${project.build.directory}/${work.dir}/${amps.dir}&lt;/argument&gt;&lt;br /&gt;            &lt;argument&gt;${project.build.directory}/${work.dir}/${alfresco.war}&lt;/argument&gt;&lt;br /&gt;            &lt;argument&gt;-directory&lt;/argument&gt;&lt;br /&gt;        &lt;/arguments&gt;&lt;br /&gt;    &lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Maintenant, il est possible de lancer la commande maven&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean package&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt; pour avoir dans le repertoire &lt;span style="font-weight: bold;"&gt;work.dir &lt;/span&gt;&lt;span&gt;le fichier&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; alfresco.war &lt;/span&gt;&lt;span&gt;contenant l'ensemble des dépendances AMP définis dans notre pom.xml.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;(Optionnel) Installer le war en local&lt;br /&gt;&lt;/span&gt;Si vous souhaitez installer ce war dans votre repository local (et ainsi pouvoir créer des dépendances dans des buts de tests ou d'intégration), voici la configuration à ajouter dans votre phase de build :&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;&lt;br /&gt;    &lt;artifactId&gt;maven-install-plugin&lt;/artifactId&gt;&lt;br /&gt;    &lt;version&gt;2.3&lt;/version&gt;&lt;br /&gt;    &lt;executions&gt;&lt;br /&gt;        &lt;execution&gt;&lt;br /&gt;            &lt;id&gt;war-install&lt;/id&gt;&lt;br /&gt;            &lt;phase&gt;install&lt;/phase&gt;&lt;br /&gt;            &lt;goals&gt;&lt;br /&gt;                &lt;goal&gt;install-file&lt;/goal&gt;&lt;br /&gt;            &lt;/goals&gt;&lt;br /&gt;            &lt;configuration&gt;&lt;br /&gt;                &lt;file&gt;${project.build.directory}/${work.dir}/${alfresco.war}&lt;/file&gt;&lt;br /&gt;                &lt;groupId&gt;${project.groupId}&lt;/groupId&gt;&lt;br /&gt;                &lt;artifactId&gt;${project.artifactId}&lt;/artifactId&gt;&lt;br /&gt;                &lt;version&gt;${project.version}&lt;/version&gt;&lt;br /&gt;                &lt;packaging&gt;war&lt;/packaging&gt;&lt;br /&gt;                &lt;classifier&gt;test&lt;/classifier&gt;&lt;br /&gt;                &lt;generatePom&gt;true&lt;/generatePom&gt;&lt;br /&gt;                &lt;createChecksum&gt;true&lt;/createChecksum&gt;&lt;br /&gt;            &lt;/configuration&gt;&lt;br /&gt;        &lt;/execution&gt;&lt;br /&gt;    &lt;/executions&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Avec la commande&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;vous pouvez installer votre nouveau war. Bien entendu, vous pouvez modifier les différents paramètres pour correspondre à vos besoins...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Remarque : idem avec la phase deploy à quelques paramètres près... ^^&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Créer un format de livraison personnalisé&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Maintenant, nous allons nous intéresser à la création d'un format de livraison personnalisé. Dans mon cas, je souhaite&lt;br /&gt;&lt;ul&gt;&lt;li&gt;créer un &lt;span style="font-weight: bold;"&gt;fichier .zip&lt;/span&gt; avec&lt;/li&gt;&lt;li&gt;un dossier racine &lt;span style="font-weight: bold;"&gt;&lt;groupid&gt;.&lt;artifactid&gt;.&lt;version&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;un sous dossier &lt;span style="font-weight: bold;"&gt;amps &lt;/span&gt;contenant mes amps&lt;/li&gt;&lt;li&gt;un sous dossier &lt;span style="font-weight: bold;"&gt;application &lt;/span&gt;contenantt un alfresco.war (avec les amps déjà intégré)&lt;/li&gt;&lt;/ul&gt;Pour faire le travail, je vais utiliser le plugin &lt;a href="http://maven.apache.org/plugins/maven-assembly-plugin/"&gt;maven-assembly-plugin&lt;/a&gt;. Ce plugin sert à créer des formats de distribution personnalisés. La configuration de ce plugin se fait en 2 temps : Création d'un fichier de description et Ajout dans le pom.xml&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Création d'un fichier de description&lt;/span&gt;&lt;br /&gt;Ce fichier de description définit le résultat attendu c'est à dire quels sont les répertoires à créer, les formats des fichiers, les droits, l'encoding... On peut en fait définir beaucoup de paramètres!&lt;br /&gt;Dans notre cas, nous allons créer un fichier &lt;span style="font-weight: bold;"&gt;osecm-assembly.xml&lt;/span&gt; dans le répertoire &lt;span style="font-weight: bold;"&gt;alf-war-osecm\src\assembly&lt;/span&gt;. Ce fichier contiendra la configuration suivante :&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" &lt;br /&gt;  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"&gt;&lt;br /&gt;  &lt;id&gt;production&lt;/id&gt;&lt;br /&gt;  &lt;formats&gt;&lt;br /&gt;    &lt;format&gt;zip&lt;/format&gt;&lt;br /&gt;  &lt;/formats&gt;&lt;br /&gt;  &lt;baseDirectory&gt;${project.groupId}.${project.artifactId}.${project.version}&lt;/baseDirectory&gt;&lt;br /&gt;  &lt;fileSets&gt;&lt;br /&gt;   &lt;fileSet&gt;&lt;br /&gt;    &lt;directory&gt;target/${work.dir}&lt;/directory&gt;&lt;br /&gt;    &lt;lineEnding&gt;unix&lt;/lineEnding&gt;&lt;br /&gt;    &lt;outputDirectory&gt;/application&lt;/outputDirectory&gt;&lt;br /&gt;    &lt;includes&gt;&lt;br /&gt;     &lt;include&gt;${alfresco.war}&lt;/include&gt;&lt;br /&gt;    &lt;/includes&gt;&lt;br /&gt;   &lt;/fileSet&gt;&lt;br /&gt;  &lt;/fileSets&gt;&lt;br /&gt;  &lt;dependencySets&gt;&lt;br /&gt;    &lt;dependencySet&gt;&lt;br /&gt;      &lt;outputDirectory&gt;/${amps.dir}&lt;/outputDirectory&gt;&lt;br /&gt;      &lt;includes&gt;&lt;br /&gt;        &lt;include&gt;org.alfresco.sample:SDK-CustomWizard&lt;/include&gt;&lt;br /&gt;        &lt;include&gt;fr.opensourceecm:alf-amp-osecm&lt;/include&gt;&lt;br /&gt;      &lt;/includes&gt;&lt;br /&gt;    &lt;/dependencySet&gt;&lt;br /&gt;  &lt;/dependencySets&gt;&lt;br /&gt;&lt;/assembly&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Comme on peut le voir, il reprend la configuration attendue dans mon besoin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ajout dans le pom.xml&lt;/span&gt;&lt;br /&gt;Maintenant, on doit définir dans le fichier pom.xml la déclaration de ce nouveau fichier. On ajoute donc le plugin &lt;a href="http://maven.apache.org/plugins/maven-assembly-plugin/"&gt;maven-assembly-plugin&lt;/a&gt; avec pour configuration.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;    &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;&lt;br /&gt;    &lt;configuration&gt;&lt;br /&gt;        &lt;descriptors&gt;&lt;br /&gt;            &lt;descriptor&gt;src/assembly/osecm-assembly.xml&lt;/descriptor&gt;&lt;br /&gt;        &lt;/descriptors&gt;&lt;br /&gt;    &lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Lancer l'assemblage&lt;br /&gt;&lt;/span&gt;Finalement, je peux lancer la commande Maven :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean assembly:assembly&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt; pour assembler mon format de distribution. On retrouve ainsi dans le répertoire target le fichier &lt;span style="font-weight: bold;"&gt;alf-war-osecm-0.1-production.zip&lt;/span&gt; prêt à être envoyé !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;Remarque : l'utilisation de ce plugin peut s'avérer être gourmand en mémoire. Pour résoudre ce problème augmentez les valeurs de &lt;span style="font-weight: bold;"&gt;MAVEN_OPTS&lt;/span&gt; dans vos variables d'environnements.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-7717587421916860384?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=RTJ2W3k4RO8:-pMCocJZsAo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=RTJ2W3k4RO8:-pMCocJZsAo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RTJ2W3k4RO8:-pMCocJZsAo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/RTJ2W3k4RO8/maven-alfresco-format-de-livraison.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-format-de-livraison.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-5352908218706032208</guid><pubDate>Fri, 23 Apr 2010 07:48:00 +0000</pubDate><atom:updated>2010-04-25T16:20:19.600+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : Relations entre AMPs</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hello World !&lt;br /&gt;&lt;br /&gt;Cette fois ci je vais essayer de vous expliquer les relations  multi-modules AMP et comment on peut les gérer avec Maven et dans  Alfresco aussi...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La problématique est la suivante :&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Dans  un projet multi-AMP, comment modéliser les relations et comment  organiser notres (ou nos) projets Maven ?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt; Admettons que nous voulons créer un projet comprenant&lt;span style="font-weight: bold;"&gt; 3 AMPS : A, B, C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Avant toute chose, quelles sont les &lt;span style="font-weight: bold;"&gt;relations   &lt;/span&gt;qui existent entre ces 3 AMPS ? Sont ils dépendants les uns par  rapport aux autres ? Quels sont les relations induites ?&lt;br /&gt;&lt;br /&gt;Ensuite, quel est le&lt;span style="font-weight: bold;"&gt; format de  livraison&lt;/span&gt; de notre application ? S'agit il d'un WAR, d'un AMP  unique, d'un ensemble d'AMP, d'un format particulier de livraison....&lt;br /&gt;&lt;br /&gt;Suivant les réponses de chacune des questions, il faudra mettre en place  une politique différente! et bien entendu une configuration des projets  Maven différents !&lt;br /&gt;&lt;br /&gt;On peut retrouver plusieurs cas d'utilisation.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Les relations simples&lt;/span&gt; :  Autrement dit il s'agit des mêmes dépendances que l'on a déjà vu depuis  que l'on a commencé nos projets. Dans notre cas, les modules A, B et C  sont indépendants mais notre serveur de production a besoin de ces 3  modules pour répondre aux besoins des utilisateurs. Par exemple, il peut  s'agir d'intégrer le module de RM d'Alfresco, le module SharePoint  d'Alfresco et notre propre module comprenant nos personnalisation.&lt;br /&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Les dépendances (faibles et fortes)  : &lt;/span&gt;Dans ce cas de figure, l'un des modules a besoin d'un autre  module pour fonctionner. Un exemple simple est la liaison qui peut  exister entre un modèle de données et des actions associés à ce modèle  de données. Si le modèle n'existe pas et n'est pas installé alors B ne  peut fonctionner. Si B est modifié alors il modifie le comportement de  A.&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Comment modéliser (et  tester!) ces relations dans notre projet ? &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Les relations simples&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reprenons notre module &lt;span style="font-weight: bold;"&gt;alf-amp-osecm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actuellement, notre module ne possède que des dépendances vers des  librairies déjà présent dans le war Alfresco. Cela ne pose aucun  problème puisque le démarrage de notre serveur jetty s'effectue avec le  war d'Alfresco.&lt;br /&gt;&lt;br /&gt;Or maintenant je souhaite tester mon module avec la présence d'un autre  module. Pour exemple, je vais prendre le module &lt;span style="font-weight: bold;"&gt;SDK-TaggingSample&lt;/span&gt; (créé et transformé  précédemment en module - cf. &lt;a href="http://www.opensourceecm.fr/2010/04/maven-alfresco-sdk-samples.html"&gt;post  ici&lt;/a&gt;). L'idée est d'ajouter ce module dans Alfresco.war, de packager  mon module puis de lancer jetty pour qu'il prenne en compte mon module.&lt;br /&gt;&lt;br /&gt;Pour ajouter mon module on va ajouter dans le pom.xml de mon projet  &lt;span style="font-weight: bold;"&gt;alf-amp-osecm&lt;/span&gt;, le quadruplet ci-dessous entre les balises &lt;span style="font-weight: bold;"&gt;//dependencies&gt;&lt;/span&gt; dans la profil &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;webapp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;   &lt;groupid&gt;org.alfresco.sample&lt;/groupid&gt;&lt;br /&gt;   &lt;artifactid&gt;SDK-TaggingSample&lt;/artifactid&gt;&lt;br /&gt;   &lt;type&gt;amp&lt;/type&gt;&lt;br /&gt;   &lt;version&gt;1.0&lt;/version&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A ce stade, on pourrait se dire, c'est bon on lance la commande maven :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean integration-test -P webapp,clean-jetty -DskipTests=true&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;et on a un Alfresco démarré avec nos 2 modules. Et bien non... Cela  serait trop simple !&lt;br /&gt;&lt;br /&gt;En effet, le format AMP est un format un peu particulier qui n'est  reconnu par Maven que grâce au plugin : &lt;a href="http://maven.alfresco.com/nexus/content/repositories/alfresco-docs/maven-alfresco-lifecycle/plugins/maven-amp-plugin/index.html"&gt;maven-amp-plugin&lt;/a&gt;.  Or ici on a ajouté une dépendance avec un AMP ! La question qui se pose  c'est comment maven sait il quoi en faire et sait il l'intégrer dans le  war "explosé" nécessaire à jetty ? La réponse est bien entendu NON !&lt;br /&gt;&lt;br /&gt;La solution réside dans la déclaration d'un nouveau plugin : &lt;a href="http://maven.apache.org/plugins/maven-dependency-plugin/"&gt;maven-dependency-plugin&lt;/a&gt;.  Ce plugin comme son nom l'indique nous permet de manipuler les  dépendances et donc les artefacts et donc les AMP ! On va ainsi  configurer ce plugin afin qu'il prenne en compte notre dépendance et  l'installer dans le war.&lt;br /&gt;&lt;br /&gt;Comment ? et bien via la configuration ci-dessous que l'on intégrera  dans le&lt;span style="font-weight: bold;"&gt; profil webapp &lt;/span&gt;(dans mon  cas, il se trouve maintenant dans le projet &lt;span style="font-weight: bold;"&gt;alf-sdk.&lt;/span&gt; Factorisation oblige ! Par contre la déclaration de dépendance se situe dans mon pom.xml)&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;   &lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;   &lt;artifactid&gt;maven-dependency-plugin&lt;/artifactid&gt;&lt;br /&gt;   &lt;executions&gt;&lt;br /&gt;       &lt;execution&gt;&lt;br /&gt;           &lt;id&gt;unpack-amps&lt;/id&gt;&lt;br /&gt;           &lt;phase&gt;process-resources&lt;/phase&gt;&lt;br /&gt;           &lt;goals&gt;&lt;br /&gt;               &lt;goal&gt;unpack-dependencies&lt;/goal&gt;&lt;br /&gt;           &lt;/goals&gt;&lt;br /&gt;           &lt;configuration&gt;&lt;br /&gt;               &lt;includetypes&gt;amp&lt;/includetypes&gt;&lt;br /&gt;               &lt;outputdirectory&gt;${build.directory}/${webapp.name}&lt;/outputdirectory&gt;&lt;br /&gt;               &lt;excludes&gt;META*&lt;/excludes&gt;&lt;br /&gt;           &lt;/configuration&gt;&lt;br /&gt;       &lt;/execution&gt;&lt;br /&gt;   &lt;/executions&gt;&lt;br /&gt;   &lt;dependencies&gt;&lt;br /&gt;       &lt;dependency&gt;&lt;br /&gt;           &lt;groupid&gt;org.alfresco.maven.plugin&lt;/groupid&gt;&lt;br /&gt;           &lt;artifactid&gt;maven-amp-plugin&lt;/artifactid&gt;&lt;br /&gt;           &lt;version&gt;3.0.2&lt;/version&gt;&lt;br /&gt;       &lt;/dependency&gt;&lt;br /&gt;   &lt;/dependencies&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;On note que ce plugin va prendre toutes les dépendances de type AMP et  va exécuter le goal : &lt;a href="http://maven.apache.org/plugins/maven-dependency-plugin/unpack-dependencies-mojo.html"&gt;unpack-dependencies&lt;/a&gt;  dans le répertoire ${build.directory}/${webapp.name}. En d'autre terme  il va installer l'AMP comme le ferait (presque) &lt;a href="http://wiki.alfresco.com/wiki/Module_Management_Tool"&gt;l'outil de  management des modules&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ensuite, on doit ajouter un bloc &lt;span style="font-weight: bold;"&gt;testRessource  &lt;/span&gt;toujours dans le &lt;span style="font-weight: bold;"&gt;profil Webapp&lt;/span&gt;.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;testresource&gt;&lt;br /&gt;   &lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;   &lt;directory&gt;.&lt;/directory&gt;&lt;br /&gt;   &lt;includes&gt;&lt;br /&gt;       &lt;include&gt;module.properties&lt;/include&gt;&lt;br /&gt;   &lt;/includes&gt;&lt;br /&gt;   &lt;targetpath&gt;alfresco/module/${project.groupId}.${project.artifactId}&lt;/targetpath&gt;&lt;br /&gt;&lt;/testresource&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ce bloc est nécessaire dès que l'on veut intégrer plusieurs AMP dans un  war (ce qui est notre cas ici).&lt;br /&gt;&lt;br /&gt;Maintenant on peut lancer la commande :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean integration-test -P webapp,clean-jetty -DskipTests=true&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;et vérifier (après quelques minutes) de la prise en compte de nos 2 AMPS  !&lt;br /&gt;&lt;br /&gt;C'est beau la technologie !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Les dépendances&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Maintenant intéressons nous aux dépendances. Dans ce cas  de figure je ne souhaite pas que mon application démarre si mon module  n'a pas toutes les dépendances nécessaires. On aurait alors une  application instable qui pourrait endommager des données !! (ce que je  ne souhaite évidemment pas...).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comment définir ces dépendances fortes  entre mes modules ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reprenons l'exemple précédent. Suite à des modifications importantes de  mon code, je souhaite créer une liaison forte entre mon projet et le  projet SDK-TaggingSample. Pour cela il y a un mécanisme défini dans  l'AMP et disponible via le fichier &lt;span style="font-weight: bold;"&gt;module.properties&lt;/span&gt;  (situé à la racine de notre projet).&lt;br /&gt;En fin de ce fichier, il suffit de rajouter la ligne ci-dessous pour  créer une dépendance :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;module.depends.org.alfresco.sample.SDK-TaggingSample=0.1-*&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A noter le formalisme simple :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;module.depends : &lt;/span&gt;pour  définir une dépendance du module&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;groupid&gt;.&lt;aritfactid&gt;  ou nom du module : &lt;/aritfactid&gt;&lt;/groupid&gt;&lt;/span&gt;pour identifier le module&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;X.X - Y.Y : &lt;/span&gt;Pour  déterminer la porté du module à prendre en compte (entre X.X et Y.Y).   Notre module dépend du SDK-TaggingSample à partir de la version 0.1. (A  noter la possibilité de mettre le caractère * pour signifier n'importe  lequel)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; Pour de plus amples informations :&lt;a href="http://wiki.alfresco.com/wiki/Developing_an_Alfresco_Module#Module_Properties"&gt;  wiki.alfresco.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vous pouvez maintenant démarrer l'application via la commande Maven :&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;mvn clean integration-test -P webapp -DskipTests=true&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Comme vous pouvez le voir, rien à changer! C'est déjà ça. Mais ce que  l'on aimerait là, c'est de vérifier que notre mécanisme anti-démarrage  fonctionne bien. Pour cela vous avez deux choix.&lt;br /&gt;Soit&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vous modifiez le numéro de version dans le fichier  module.properties pour avoir par exemple : &lt;span style="font-weight: bold;"&gt;module.depends.org.alfresco.sample.SDK-TaggingSample=99.99-*&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Vous supprimer la dépendance dans la partie &lt;span style="font-weight: bold;"&gt;dependencies &lt;/span&gt;du pom.xml.&lt;/li&gt;&lt;/ul&gt; Dans ces deux cas, relancer l'application et vous vous apercevrez dans  la console d'une jolie stackTrace vous interdisant de démarrer  l'application si la dépendance n'est pas respectée !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Et les projets Maven  multi-modules ?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Maven permet de créer des projets multi-modules.  Si vous ne connaissez  pas l'idée qui se cache derrière, je ne serai vous conseillez de lire &lt;a href="http://www.sonatype.com/books/mvnex-book/reference/multimodule.html"&gt;ceci&lt;/a&gt;.  Sinon pour simplifier les choses, admettons que votre projet se  décompose de 2 AMPS. Ces 2 AMPS possèdent une dépendance forte l'un  envers l'autre.  Ce que vous cherchez c'est un seul pom.xml vous permettant de construire (faire un build) des 2 projets en même temps. En d'autre termes, je lance une commande mvn clean install, cette commande va être exécuté sur les 2 projets ! On va encore plus loin dans l'héritage et dans les principes Maven ! Pour la pratique on verra cela un peu plus tard ^^&lt;br /&gt;&lt;br /&gt;Voilà c'est fini pour aujourd'hui !&lt;br /&gt;&lt;br /&gt;Mavenisez bien !&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;PS : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les sources du projet &lt;span style="color: rgb(255, 0, 0);"&gt;alf-sdk&lt;/span&gt; sont disponibles ici : &lt;a href="http://www.box.net/shared/exremqsr0m"&gt;http://www.box.net/shared/exremqsr0m&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les sources du projet &lt;span style="color: rgb(255, 0, 0);"&gt;alf-amp-osecm&lt;/span&gt; sont disponibles ici : &lt;a href="http://www.box.net/shared/dzige0nchr"&gt;http://www.box.net/shared/dzige0nchr&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-5352908218706032208?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=nYohrPk-a-U:HGFOgGQ8Jho:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=nYohrPk-a-U:HGFOgGQ8Jho:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=nYohrPk-a-U:HGFOgGQ8Jho:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/nYohrPk-a-U/maven-alfresco-relations-entre-amps.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-relations-entre-amps.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-9103253943373484832</guid><pubDate>Thu, 22 Apr 2010 07:04:00 +0000</pubDate><atom:updated>2010-04-25T16:20:04.358+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : SDK Samples</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bienvenue !&lt;br /&gt;&lt;br /&gt;Dans la série découverte de Maven par la pratique, je vous propose aujourd'hui un exercice assez simple.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Vous devez passer les exemples (samples) du SDK Alfresco en projet AMP ! &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;A quoi cela sert il me direz vous ? Pas à grand chose si ce n'est de faire des exercices et de voir les avantages et les limites de cette approche. Cela parmet aussi de comprendre les différents mécanismes Maven pour builder, tester et intégrer les projets Samples.&lt;br /&gt;&lt;br /&gt;Pour information, vous pouvez retrouver les informations sur le SDK  à cette adresse : &lt;a href="http://wiki.alfresco.com/wiki/Alfresco_SDK_3.3"&gt;http://wiki.alfresco.com/wiki/Alfresco_SDK_3.3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Actuellement, j'ai réussi la migration des samples suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SDK Custom Dialog&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SDK Custom JSP&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SDK Custom Login&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SDK Custom Wizard&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SDK Tagging Sample&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Chacun des samples héritent du projet alf-sdk permettant ainsi :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lancer les tests unitaires : &lt;span style="font-weight: bold;"&gt;mvn clean test&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Installer le projet dans le repository local : &lt;span style="font-weight: bold;"&gt;mvn install&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;(Ré)Initier la base de données/: &lt;span style="font-weight: bold;"&gt;mvn clean -P clean-jetty&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Relancer l'application : &lt;span style="font-weight: bold;"&gt;mvn integration-test -P webapp&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Si vous avez suivi les précédents posts, vous devriez être capable de faire la même chose. Sinon n'hésitez pas à voir les &lt;a href="http://www.box.net/shared/vx57fetjg8"&gt;sources &lt;/a&gt;de chacun des projets que j'ai réalisé.&lt;br /&gt;&lt;br /&gt;A très vite pour de nouvelles aventures !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-9103253943373484832?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=KQsV--UVrSA:R_xWF5aUS10:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=KQsV--UVrSA:R_xWF5aUS10:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=KQsV--UVrSA:R_xWF5aUS10:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/KQsV--UVrSA/maven-alfresco-sdk-samples.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-sdk-samples.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-2428205560000874015</guid><pubDate>Mon, 19 Apr 2010 19:58:00 +0000</pubDate><atom:updated>2010-04-21T16:37:42.061+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : Jetty, Boostrap et Profil</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bonjour à tous !&lt;br /&gt;&lt;br /&gt;Cette fois ci je vais vous présenter comment on peut "bootstapper" (initialiser) des données lors de l'installation de notre AMP et comment on peut le tester facilement.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;1. Bootstrap&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Tout d'abord, il y a plusieurs façons de créer un bootstrap&lt;br /&gt;&lt;ul&gt;&lt;li&gt;soit par des &lt;span style="font-weight: bold;"&gt;fichiers XML&lt;/span&gt;, &lt;/li&gt;&lt;li&gt;soit &lt;span style="font-weight: bold;"&gt;programmatiquement &lt;/span&gt;(via une sorte de patch...).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;L'avantage de la première approche est sa simplicité&lt;/span&gt; ! En effet, un bootstrap XML n'est rien d'autre que l'équivalent de l'import/export disponible dans Alfresco Explorer. Vous savez les flèches vertes sur un dossier dans l'écran des détails... Bref... pour simplifier on exporte des noeuds sous format XML pour ensuite les (ré)intégrer dans une autre instance Alfresco. L'exemple typique est le passage d'un serveur de Test (responsabilité équipe de développement) vers un serveur de production (responsabilité équipe d'exploitation). Sur le serveur de DEV, l'équipe de développement a créé une arborecence projet spécifique qui doit être installé sur le serveur de PROD automatiquement. Ceci doit être effectué lors de la première installation de notre AMP sur le serveur de PROD.&lt;br /&gt;&lt;br /&gt;La limite de cette approche vient du fait que seule la création d'objet est possible. On ne peut supprimer ou transformer...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;L'avantage de la seconde approche est sa richesse !&lt;/span&gt; En effet, on a accès à l'ensemble des services Alfresco plus (éventuellement) les services de notre projet. On peut donc effectuer tout ce que l'on veut.. On peut réorganiser une arborescence, effectuer une modification massive d'un ensemble d'objet ou encore transformer des contenus...&lt;br /&gt;&lt;br /&gt;L'inconvénient : Il faut s'avoir coder :o/ et connaître en partie les services Alfresco.&lt;br /&gt;&lt;br /&gt;Je vais m'intéresser par la suite à la première approche. Je m'intéresserai à la deuxième approche dans un prochain post..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;1.1 Boostrap via XML&lt;/span&gt;&lt;br /&gt;Donc en premier, je vais vous expliquer l'approche par un fichier XML.&lt;br /&gt;Dans notre exemple de bootstrap, je veux créer &lt;span style="font-weight: bold;"&gt;4 espaces&lt;/span&gt; : un espace BASE DOCUMENTAIRE + 3 sous-espaces PROJET 1, PROJET 2 et PROJET 3. Ces espaces ont été créés précédemment avec une instance d'Alfresco de TEST préalablement installé. Maintenant je veux le mettre en place sur mon projet et donc dans mon AMP pour que chaque instance installant cet AMP puisse aussi avoir ces répertoires.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;1.2 Export&lt;/span&gt;&lt;br /&gt;Tout d'abord j'exporte les répertoires de mon instance de TEST (via l'action export), puis je télécharge le fichier ACP généré en local afin d'extraire le fichier XML.&lt;br /&gt;Mon fichier XML a pour nom&lt;span style="font-weight: bold;"&gt; spaces.xml&lt;/span&gt; (orginal...).  Pour plus d'informations sur l'IMPORT/EXPORT : &lt;a href="http://wiki.alfresco.com/wiki/Export_and_Import"&gt;http://wiki.alfresco.com/wiki/Export_and_Import&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1.3 Intégration dans le projet&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Je vais ensuite déposer ce fichier dans le nouveau répertoire &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/main/config/bootstrap&lt;/span&gt;. Actuellement, ce fichier est orphelin et ne sera pas pris en compte. Il faut donc définir sa prise en compte par Alfresco (et donc par Spring...).&lt;br /&gt;Pour cela, on va créer un nouveau fichier qui a pour nom &lt;span style="font-weight: bold;"&gt;boostrap-context.xml&lt;/span&gt; dans le répertoire  &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/main/config/context&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt; &lt;bean id="osecm.bootstrapSpaces" class="org.alfresco.repo.module.ImporterModuleComponent"&lt;br /&gt;  parent="module.baseComponent"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;property name="moduleId" value="fr.opensourceecm.alf-amp-osecm" /&gt;&lt;br /&gt;  &lt;property name="name" value="osecm.bootstrapSpaces" /&gt;&lt;br /&gt;  &lt;property name="description" value="Creation des principaux espaces" /&gt;&lt;br /&gt;  &lt;property name="sinceVersion" value="0.0.4" /&gt;&lt;br /&gt;  &lt;property name="appliesFromVersion" value="0.0.4" /&gt;&lt;br /&gt;  &lt;property name="executeOnceOnly" value="true" /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;property name="importer" ref="spacesBootstrap" /&gt;&lt;br /&gt;  &lt;property name="bootstrapViews"&gt;&lt;br /&gt;   &lt;list&gt;&lt;br /&gt;    &lt;props&gt;&lt;br /&gt;     &lt;prop key="path"&gt;/${spaces.company_home.childname}&lt;/prop&gt;&lt;br /&gt;     &lt;prop key="location"&gt;alfresco/module/fr.opensourceecm.alf-amp-osecm/bootstrap/spaces.xml&lt;/prop&gt;&lt;br /&gt;    &lt;/props&gt;&lt;br /&gt;   &lt;/list&gt;&lt;br /&gt;  &lt;/property&gt;&lt;br /&gt; &lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Pour résumer comment comprendre ce fichier ?&lt;br /&gt;Litterallement, voilà ce qu'il veut dire :&lt;br /&gt;On crée un bean Spring identifié par osecm.bootstrapSpaces héritant du bean &lt;span style="font-weight: bold;"&gt;module.baseComponent&lt;/span&gt;. Ce bean sert à Importer. Il s'applique pour le module &lt;span style="font-weight: bold;"&gt;fr.opensourceecm.alf-amp-osecm&lt;/span&gt; (notre AMP), à partir de la version&lt;span style="font-weight: bold;"&gt; 0.0.4&lt;/span&gt;.  Le traitement du bean (donc de l'import) ne s'effectue qu'une &lt;span style="font-weight: bold;"&gt;seule fois&lt;/span&gt; (donc au premier démarrage du module). Il prend pour paramètre un "&lt;span style="font-weight: bold;"&gt;bootstrapViews&lt;/span&gt;" lié à notre fichier. Ce bootstrapView va nous permettre de créer notre arboresence en tant que sous-espace de &lt;span style="font-weight: bold;"&gt;{spaces.company_home.childname}&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;C'est simple non ? ;o)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1.4 Création du projet &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Maintenant que nous avons notre bootstrap, il n'y a plus qu'à le tester ! On effectue donc un package de notre AMP via la commande&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;mvn clean install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;On peut ainsi retrouver dans le répertoire target de notre projet, le fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.4.amp&lt;/span&gt; qui sera alors possible d'intégrer dans &lt;span style="font-weight: bold;"&gt;Alfresco.war&lt;/span&gt;.&lt;br /&gt;Effectuez un copier/coller du fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.4.amp&lt;/span&gt; vers le répertoire &lt;span style="font-weight: bold;"&gt;amps &lt;/span&gt;du répertoire d'installation d'un Alfresco.&lt;br /&gt;Lancez ensuite le script d'installation des amps dans le répertoire d'installation d'un Alfresco : &lt;span style="font-weight: bold;"&gt;apply_amps.bat &lt;/span&gt;&lt;br /&gt;A la fin de celui ci, vous avez un nouveau&lt;span style="font-weight: bold;"&gt; alfresco.war&lt;/span&gt; mis à jour avec votre module.&lt;br /&gt;Vous pouvez maintenant lancer Alfresco et vérifier l'intégration du module !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;2. Lancer et Tester Alfresco via Maven &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si vous avez suivi l'ensemble de mes posts sur l'intégration Alfresco/Maven, vous vous êtes rendu compte que cela pouvait prendre beaucoup de temps d'intégrer un AMP dans Alfresco... Copier/coller c'est bien mais c'est un peu rébarbatif à la longue...&lt;br /&gt;L'idée pour améliorer ce processus serait de lancer une commande Maven pour démarrer un Alfresco...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comment ?&lt;/span&gt;&lt;br /&gt;Et bien via l'utilisation de nouveaux plugins :&lt;span style="font-weight: bold;"&gt; &lt;a href="http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin/"&gt; jetty &lt;/a&gt;et&lt;a href="http://maven.apache.org/plugins/maven-war-plugin/"&gt; maven-war&lt;/a&gt;! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jetty.codehaus.org/jetty/"&gt;&lt;span style="font-weight: bold;"&gt;Jetty&lt;/span&gt; &lt;/a&gt;est un container HTTP leger (un peu du même style que Tomcat...) qui va nous permettre de lancer un Alfresco via Maven tandis que le plugin &lt;span style="font-weight: bold;"&gt;maven-war&lt;/span&gt; va nous permettre de créer le war de test de notre application.&lt;br /&gt;&lt;br /&gt;Pour faire simplement, on désire créer un alfresco.war "déployé/explosé" dans un sous-répertoire de target (via le plugin maven-war) et qui sera ensuite lancé comme une application web (via le serveur Jetty).&lt;br /&gt;&lt;br /&gt;Attention on y va !&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.1 Profil &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;En fait la majorité du travail de configuration s'effectue au niveau du pom.xml de notre projet AMP. On va créer ce que l'on appelle un &lt;a href="http://maven.apache.org/guides/introduction/introduction-to-profiles.html"&gt;&lt;span style="font-weight: bold;"&gt;PROFIL&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Un profil maven est un ensemble d'action rendu optionnel ou non par l'utilisateur lors de l'execution d'une commande Maven. On peut le voir comme une instruction conditionnelle commandée par l'utilisateur. Dans le cas présent, on cherche à démarrer un Alfresco afin de vérifier que le boostrap a fonctionné. On cherche aussi de manière générale à vérifier le fonctionnement de notre AMP.&lt;br /&gt;&lt;br /&gt;Néanmoins, avant de créer notre profil, nous avons besoin de créer quelques fichiers de propriétés.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.2 Le fichier jetty-env.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Avant toute chose, on définit le fichier &lt;span style="font-weight: bold;"&gt;jetty-env.xml&lt;/span&gt;. Il permet de configurer la connexion à la base de données via Jetty. Pour cela, on va créer un nouveau fichier &lt;span style="font-weight: bold;"&gt;jetty-env.xml&lt;/span&gt; dans le répertoire &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/test/properties/local/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;configure class="org.mortbay.jetty.webapp.WebAppContext"&gt;&lt;br /&gt;&lt;br /&gt; &lt;new id="myDataSource" class="org.mortbay.jetty.plus.naming.Resource"&gt;&lt;br /&gt;  &lt;arg&gt;jdbc/dataSource&lt;/arg&gt;&lt;br /&gt;  &lt;arg&gt;&lt;br /&gt;   &lt;new class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"&gt;&lt;br /&gt;    &lt;set name="Url"&gt;jdbc:mysql://localhost/${alfresco.db.name}&lt;/set&gt;&lt;br /&gt;    &lt;set name="User"&gt;${alfresco.db.username}&lt;/set&gt;&lt;br /&gt;    &lt;set name="Password"&gt;${alfresco.db.password}&lt;/set&gt;&lt;br /&gt;   &lt;/new&gt;&lt;br /&gt;  &lt;/arg&gt;&lt;br /&gt; &lt;/new&gt;&lt;br /&gt;&lt;/configure&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.3 Le fichier application.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Qui dit nouvel environnement dit forcément nouvelle configuration de l'entrepôt de données. Nous allons créer pour cela un nouveau fichier &lt;span style="font-weight: bold;"&gt;application.properties&lt;/span&gt; que nous allons ajouter dans le répertoire : &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/test/properties/local&lt;/span&gt;&lt;br /&gt;Cet ensemble de clé/valeur va être ensuite utilisé dans le &lt;span style="font-weight: bold;"&gt;pom.xml&lt;/span&gt; en tant que référence ainsi que dans le fichier &lt;span style="font-weight: bold;"&gt;dev.properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;webapp.name=alfresco-jetty&lt;br /&gt;alfresco.data.jetty=alf_data_jetty&lt;br /&gt;alfresco.data.location=./alf_data_jetty&lt;br /&gt;alfresco.db.driver=org.gjt.mm.mysql.Driver&lt;br /&gt;alfresco.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect&lt;br /&gt;alfresco.db.url=localhost&lt;br /&gt;alfresco.db.name=alfjetty&lt;br /&gt;alfresco.db.username=alfresco33&lt;br /&gt;alfresco.db.password=alfresco&lt;br /&gt;webapp.log.level=error&lt;br /&gt;webapp.log.dir=&lt;br /&gt;module.log.level=debug&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.4 Le fichier dev.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ici nous allons créer un fichier &lt;span style="font-weight: bold;"&gt;dev.properties&lt;/span&gt; que nous allons ajouter dans le répertoire : &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/test/properties/local&lt;/span&gt; Ce fichier va faire le lien entre les variables définies dans &lt;span style="font-weight: bold;"&gt;application.properties&lt;/span&gt; et la configuration alfresco défini dans le fichier &lt;span style="font-weight: bold;"&gt;dev-context.xml.&lt;/span&gt; Lors de la création de notre war, ce fichier va venir écraser le fichier dev.properties précédemment défini.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;dir.root=${alfresco.data.location}&lt;br /&gt;index.recovery.mode=AUTO&lt;br /&gt;integrity.failOnError=true&lt;br /&gt;db.test.name=${alfresco.db.name}&lt;br /&gt;db.username=${alfresco.db.username}&lt;br /&gt;db.password=${alfresco.db.password}&lt;br /&gt;db.host=${alfresco.db.host}&lt;br /&gt;db.port=${alfresco.db.port}&lt;br /&gt;db.driver=${alfresco.db.driver}&lt;br /&gt;db.url=jdbc:mysql://${db.test.host}:${db.test.port}/${db.test.name}&lt;br /&gt;hibernate.dialect=${alfresco.hibernate.dialect}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.5 Les propriétés&lt;/span&gt;&lt;br /&gt;Maintenant nous pouvons attaquer la configuration de notre &lt;span style="font-weight: bold;"&gt;pom.xml&lt;/span&gt;. Tout d'abord nous allons déclarer une propriété : &lt;span style="font-weight: bold;"&gt;env&lt;/span&gt; Cette propriété est définie après le bloc de déclaration du &lt;span style="font-weight: bold;"&gt;projet &lt;/span&gt;et avant le bloc de déclaration des &lt;span style="font-weight: bold;"&gt;dépendances&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;   &lt;properties&gt;&lt;br /&gt;  &lt;env&gt;local&lt;/env&gt;&lt;br /&gt;  &lt;webapp.name&gt;alfresco-jetty&lt;/webapp.name&gt;&lt;br /&gt; &lt;/properties&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.6 Création du profil&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Comme le titre l'indique, nous allons maintenant créer un bloc profil que l'on va appeller &lt;span style="font-weight: bold;"&gt;webapp&lt;/span&gt;. Son goal par défaut sera &lt;span style="font-weight: bold;"&gt;jetty:run-exploded&lt;/span&gt; (autrement dit lancement de l'application war déployé/explosé que l'on aura créé). Ce bloc est à ajouter en fin de notre pom.xml mais avant la balise fermante &lt;span style="font-weight: bold;"&gt;project&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;profiles&gt;&lt;br /&gt;  &lt;profile&gt;&lt;br /&gt;   &lt;id&gt;webapp&lt;/id&gt;&lt;br /&gt;   &lt;build&gt;&lt;br /&gt;               &lt;filters&gt;&lt;br /&gt;     &lt;filter&gt;src/test/properties/${env}/application.properties&lt;/filter&gt;&lt;br /&gt;    &lt;/filters&gt;&lt;br /&gt;    &lt;defaultgoal&gt;jetty:run-exploded&lt;/defaultgoal&gt;&lt;br /&gt;    &lt;plugins&gt;&lt;br /&gt;     &lt;plugin&gt;&lt;br /&gt;                   ... CF. POINTS SUIVANTS...&lt;br /&gt;                   &lt;/plugin&gt;&lt;br /&gt;    &lt;/plugins&gt;&lt;br /&gt;                  &lt;br /&gt;               &lt;testresources&gt;&lt;br /&gt;                   &lt;testresource&gt;&lt;br /&gt;                       &lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;                       &lt;directory&gt;src/test/resources&lt;/directory&gt;&lt;br /&gt;                       &lt;excludes&gt;&lt;br /&gt;                           &lt;exclude&gt;alfresco/desktop/*.*&lt;/exclude&gt;&lt;br /&gt;                       &lt;/excludes&gt;&lt;br /&gt;                   &lt;/testresource&gt;&lt;br /&gt;                   &lt;testresource&gt;&lt;br /&gt;                       &lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;                       &lt;directory&gt;src/test/properties/${env}&lt;/directory&gt;&lt;br /&gt;                       &lt;targetpath&gt;alfresco/extension&lt;/targetpath&gt;&lt;br /&gt;                       &lt;includes&gt;&lt;br /&gt;                           &lt;include&gt;dev.properties&lt;/include&gt;&lt;br /&gt;                       &lt;/includes&gt;&lt;br /&gt;                   &lt;/testresource&gt;&lt;br /&gt;               &lt;/testresources&gt;&lt;br /&gt;           &lt;/build&gt;&lt;br /&gt;           &lt;dependencies&gt;&lt;br /&gt;               &lt;dependency&gt;&lt;br /&gt;                   &lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;                   &lt;artifactid&gt;alfresco-community-war&lt;/artifactid&gt;&lt;br /&gt;                   &lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;                   &lt;type&gt;war&lt;/type&gt;&lt;br /&gt;               &lt;/dependency&gt;&lt;br /&gt;           &lt;/dependencies&gt;&lt;br /&gt;       &lt;/profile&gt;&lt;br /&gt;   &lt;/profiles&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A noter plusieurs points :&lt;br /&gt;Tout d'abord on a ajouté un &lt;a style="font-weight: bold;" href="http://maven.apache.org/guides/getting-started/index.html#How_do_I_filter_resource_files"&gt;FILTRE &lt;/a&gt;via la fichier&lt;span style="font-weight: bold;"&gt; application.properties&lt;/span&gt;. Il va nous permettre d'utiliser l'ensemble des variables définies dans ce fichier dans le reste du &lt;span style="font-weight: bold;"&gt;pom.xml&lt;/span&gt; et plus précisément dans notre profil.&lt;br /&gt;&lt;br /&gt;On a ajouté ensuite en tant que &lt;span style="font-weight: bold;"&gt;dépendance alfresco-community-war&lt;/span&gt; c'est à dire l'application Alfresco Explorer. Bien entendu, on l'aura préalablement ajouté à notre repository Maven local via la commande&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;call mvn install:install-file -Dfile=alfresco.war -DgroupId=org.alfresco.sdk -DartifactId=alfresco-community-war -Dversion=3.3 -Dpackaging=war&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Après on a ajouté des &lt;span style="font-weight: bold;"&gt;testResource &lt;/span&gt;qui vont nous permettre&lt;br /&gt;&lt;ul&gt;&lt;li&gt;de ne pas prendre en compte les desktops actions présents dans l'AMP (Pour rappel ils sont simplement nécessaires pour les tests unitaires dans Eclipse)&lt;/li&gt;&lt;li&gt;de prendre en compte les paramètres de l'entrepôt de donnée spécifique à Jetty via le fichier dev.properties.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.7 Configurer plugin maven-war&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Le plugin maven-war va nous permettre de déployer le war alfresco et d'ajouter nos fichiers de configuration.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;       &lt;plugin&gt;&lt;br /&gt;           &lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;           &lt;artifactid&gt;maven-war-plugin&lt;/artifactid&gt;&lt;br /&gt;           &lt;version&gt;2.0.2&lt;/version&gt;&lt;br /&gt;           &lt;executions&gt;&lt;br /&gt;               &lt;execution&gt;&lt;br /&gt;                   &lt;id&gt;it&lt;/id&gt;&lt;br /&gt;                   &lt;phase&gt;package&lt;/phase&gt;&lt;br /&gt;                   &lt;goals&gt;&lt;br /&gt;                       &lt;goal&gt;exploded&lt;/goal&gt;&lt;br /&gt;                   &lt;/goals&gt;&lt;br /&gt;                   &lt;configuration&gt;&lt;br /&gt;                       &lt;archiveclasses&gt;true&lt;/archiveclasses&gt;&lt;br /&gt;                   &lt;/configuration&gt;&lt;br /&gt;               &lt;/execution&gt;&lt;br /&gt;           &lt;/executions&gt;&lt;br /&gt;           &lt;configuration&gt;&lt;br /&gt;               &lt;primaryartifact&gt;false&lt;/primaryartifact&gt;&lt;br /&gt;               &lt;webappdirectory&gt;${project.build.directory}/${webapp.name}&lt;/webappdirectory&gt;&lt;br /&gt;               &lt;archive&gt;&lt;br /&gt;                   &lt;addmavendescriptor&gt;false&lt;/addmavendescriptor&gt;&lt;br /&gt;               &lt;/archive&gt;&lt;br /&gt;               &lt;warsourceexcludes&gt;licenses/**&lt;/warsourceexcludes&gt;&lt;br /&gt;               &lt;webresources&gt;&lt;br /&gt;                   &lt;resource&gt;&lt;br /&gt;                       &lt;directory&gt;${project.build.testOutputDirectory}&lt;/directory&gt;&lt;br /&gt;                       &lt;targetpath&gt;WEB-INF/classes&lt;/targetpath&gt;&lt;br /&gt;                       &lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;                       &lt;includes&gt;&lt;br /&gt;                           &lt;include&gt;**&lt;/include&gt;&lt;br /&gt;                       &lt;/includes&gt;&lt;br /&gt;                   &lt;/resource&gt;&lt;br /&gt;                   &lt;resource&gt;&lt;br /&gt;                       &lt;directory&gt;src/test/properties/${env}&lt;/directory&gt;&lt;br /&gt;                       &lt;targetpath&gt;WEB-INF&lt;/targetpath&gt;&lt;br /&gt;                       &lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;                       &lt;includes&gt;&lt;br /&gt;                           &lt;include&gt;jetty*&lt;/include&gt;&lt;br /&gt;                       &lt;/includes&gt;&lt;br /&gt;                   &lt;/resource&gt;&lt;br /&gt;               &lt;/webresources&gt;&lt;br /&gt;           &lt;/configuration&gt;&lt;br /&gt;       &lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;On note dans les ressources que l'on veut&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ajouter l'ensemble des fichiers de configuration de &lt;span style="font-weight: bold;"&gt;src/test/resource/alfresco/*&lt;/span&gt; (équivalent à ${project.build.testOutputDirectory})&lt;/li&gt;&lt;li&gt;Ajouter le fichier&lt;span style="font-weight: bold;"&gt; jetty-env.xml&lt;/span&gt; pour la prise en compte du paramètre JNDI de la base de données.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;2.8 Configurer plugin jetty&lt;/span&gt;&lt;br /&gt;Le plugin maven-jetty va nous permettre de lancer l'application alfresco et prendre en compte les sources de notre projet.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;       &lt;plugin&gt;&lt;br /&gt;           &lt;groupid&gt;org.mortbay.jetty&lt;/groupid&gt;&lt;br /&gt;           &lt;artifactid&gt;maven-jetty-plugin&lt;/artifactid&gt;&lt;br /&gt;           &lt;version&gt;6.1.22&lt;/version&gt;&lt;br /&gt;           &lt;executions&gt;&lt;br /&gt;               &lt;execution&gt;&lt;br /&gt;                   &lt;id&gt;it&lt;/id&gt;&lt;br /&gt;                   &lt;phase&gt;integration-test&lt;/phase&gt;&lt;br /&gt;                   &lt;goals&gt;&lt;br /&gt;                       &lt;goal&gt;run-exploded&lt;/goal&gt;&lt;br /&gt;                   &lt;/goals&gt;&lt;br /&gt;                   &lt;configuration&gt;&lt;br /&gt;                       &lt;contextpath&gt;/${webapp.name}&lt;/contextpath&gt;&lt;br /&gt;                       &lt;webapp&gt;${project.build.directory}/${webapp.name}&lt;/webapp&gt;&lt;br /&gt;                       &lt;scanintervalseconds&gt;10&lt;/scanintervalseconds&gt;&lt;br /&gt;                       &lt;connectors&gt;&lt;br /&gt;                           &lt;connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"&gt;&lt;br /&gt;                               &lt;port&gt;8080&lt;/port&gt;&lt;br /&gt;                               &lt;maxidletime&gt;60000&lt;/maxidletime&gt;&lt;br /&gt;                           &lt;/connector&gt;&lt;br /&gt;                       &lt;/connectors&gt;&lt;br /&gt;                   &lt;/configuration&gt;&lt;br /&gt;               &lt;/execution&gt;&lt;br /&gt;           &lt;/executions&gt;&lt;br /&gt;           &lt;dependencies&gt;&lt;br /&gt;               &lt;dependency&gt;&lt;br /&gt;                   &lt;groupid&gt;mysql&lt;/groupid&gt;&lt;br /&gt;                   &lt;artifactid&gt;mysql-connector-java&lt;/artifactid&gt;&lt;br /&gt;                   &lt;version&gt;5.0.3&lt;/version&gt;&lt;br /&gt;                   &lt;scope&gt;provided&lt;/scope&gt;&lt;br /&gt;               &lt;/dependency&gt;&lt;br /&gt;           &lt;/dependencies&gt;&lt;br /&gt;       &lt;/plugin&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;On notera en dépendance le driver mysql.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;2.9 Lancer l'application&lt;/span&gt;&lt;br /&gt;Maintenant vous êtes fin prêt à lancer Alfresco via une commande Maven&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;   mvn clean integration-test -P webapp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pour information, on utilise un profil en ajoutant à la commande le &lt;span style="font-weight: bold;"&gt;paramètre -P&lt;/span&gt; suivi du nom du profil à prendre en compte. Si vous ne voulez pas jouer les tests, ajouter à la fin le paramètre &lt;span style="font-weight: bold;"&gt;-DskipTests=true.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quelques minutes plus tard si tout se passe bien, vous pouvez ouvrir un navigateur internet et tapez l'adresse &lt;a href="http://localhost:8080/alfresco-jetty/"&gt;http://localhost:8080/alfresco-jetty/&lt;/a&gt;&lt;br /&gt;Vous vous apercevez alors de la présence d'une arborescence &lt;span style="font-weight: bold;"&gt;BASE DOCUMENTAIRE&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Well Done ! &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;3. Extras&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Généralement, un test de bootstrap ne fonctionne pas du premier coup ! Or qui dit bootstrap dit forcément installation unique au premier démarrage. Si on veut retenter une nouvelle fois, il serait donc utile &lt;span style="font-weight: bold;"&gt;de remettre à zéro&lt;/span&gt; notre application.&lt;br /&gt;&lt;br /&gt;Comme vous êtes familier avec les profils et la configuration de plugin, je vous propose en petit extra le profil clean-jetty qui vous permettra de mettre à zero le contexte jetty.&lt;br /&gt;A vous de le placer judicieusement dans le fichier pom.xml et de l'améliorer!&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;profile&gt;&lt;br /&gt;   &lt;id&gt;clean-jetty&lt;/id&gt;&lt;br /&gt;   &lt;build&gt;&lt;br /&gt;       &lt;plugins&gt;&lt;br /&gt;           &lt;plugin&gt;&lt;br /&gt;               &lt;artifactid&gt;maven-clean-plugin&lt;/artifactid&gt;&lt;br /&gt;               &lt;version&gt;2.4&lt;/version&gt;&lt;br /&gt;               &lt;configuration&gt;&lt;br /&gt;                   &lt;excludedefaultdirectories&gt;true&lt;/excludedefaultdirectories&gt;&lt;br /&gt;                   &lt;filesets&gt;&lt;br /&gt;                       &lt;fileset&gt;&lt;br /&gt;                           &lt;directory&gt;target&lt;/directory&gt;&lt;br /&gt;                           &lt;excludes&gt;&lt;br /&gt;                               &lt;exclude&gt;war/**&lt;/exclude&gt;&lt;br /&gt;                           &lt;/excludes&gt;&lt;br /&gt;                           &lt;includes&gt;&lt;br /&gt;                               &lt;include&gt;**&lt;/include&gt;&lt;br /&gt;                           &lt;/includes&gt;&lt;br /&gt;                       &lt;/fileset&gt;&lt;br /&gt;                       &lt;fileset&gt;&lt;br /&gt;                           &lt;directory&gt;alf_data_jetty&lt;/directory&gt;&lt;br /&gt;                           &lt;excludes&gt;&lt;br /&gt;                               &lt;exclude&gt;oouser/**&lt;/exclude&gt;&lt;br /&gt;                           &lt;/excludes&gt;&lt;br /&gt;                       &lt;/fileset&gt;&lt;br /&gt;                   &lt;/filesets&gt;&lt;br /&gt;               &lt;/configuration&gt;&lt;br /&gt;           &lt;/plugin&gt;&lt;br /&gt;           &lt;plugin&gt;&lt;br /&gt;               &lt;groupid&gt;org.codehaus.mojo&lt;/groupid&gt;&lt;br /&gt;               &lt;artifactid&gt;sql-maven-plugin&lt;/artifactid&gt;&lt;br /&gt;               &lt;version&gt;1.4&lt;/version&gt;&lt;br /&gt;&lt;br /&gt;               &lt;dependencies&gt;&lt;br /&gt;                   &lt;dependency&gt;&lt;br /&gt;                       &lt;groupid&gt;mysql&lt;/groupid&gt;&lt;br /&gt;                       &lt;artifactid&gt;mysql-connector-java&lt;/artifactid&gt;&lt;br /&gt;                       &lt;version&gt;5.0.3&lt;/version&gt;&lt;br /&gt;                   &lt;/dependency&gt;&lt;br /&gt;               &lt;/dependencies&gt;&lt;br /&gt;               &lt;configuration&gt;&lt;br /&gt;                   &lt;driver&gt;org.gjt.mm.mysql.Driver&lt;/driver&gt;&lt;br /&gt;                   &lt;url&gt;jdbc:mysql://localhost/&lt;/url&gt;&lt;br /&gt;                   &lt;username&gt;root&lt;/username&gt;&lt;br /&gt;                   &lt;password&gt;admin&lt;/password&gt;&lt;br /&gt;                   &lt;settingskey&gt;true&lt;/settingskey&gt;&lt;br /&gt;               &lt;/configuration&gt;&lt;br /&gt;               &lt;executions&gt;&lt;br /&gt;                   &lt;execution&gt;&lt;br /&gt;                       &lt;id&gt;drop-db-jetty&lt;/id&gt;&lt;br /&gt;                       &lt;phase&gt;pre-clean&lt;/phase&gt;&lt;br /&gt;                       &lt;goals&gt;&lt;br /&gt;                           &lt;goal&gt;execute&lt;/goal&gt;&lt;br /&gt;                       &lt;/goals&gt;&lt;br /&gt;                       &lt;configuration&gt;&lt;br /&gt;                           &lt;autocommit&gt;true&lt;/autocommit&gt;&lt;br /&gt;                           &lt;sqlcommand&gt;drop database IF EXISTS alfjetty &lt;/sqlcommand&gt;&lt;br /&gt;                       &lt;/configuration&gt;&lt;br /&gt;                   &lt;/execution&gt;&lt;br /&gt;                   &lt;execution&gt;&lt;br /&gt;                       &lt;id&gt;create-db-jetty&lt;/id&gt;&lt;br /&gt;                       &lt;phase&gt;clean&lt;/phase&gt;&lt;br /&gt;                       &lt;goals&gt;&lt;br /&gt;                           &lt;goal&gt;execute&lt;/goal&gt;&lt;br /&gt;                       &lt;/goals&gt;&lt;br /&gt;                       &lt;configuration&gt;&lt;br /&gt;                           &lt;autocommit&gt;true&lt;/autocommit&gt;&lt;br /&gt;                           &lt;sqlcommand&gt;create database alfjetty default character set utf8 collate utf8_bin&lt;/sqlcommand&gt;&lt;br /&gt;                       &lt;/configuration&gt;&lt;br /&gt;                   &lt;/execution&gt;&lt;br /&gt;               &lt;/executions&gt;&lt;br /&gt;           &lt;/plugin&gt;&lt;br /&gt;       &lt;/plugins&gt;&lt;br /&gt;   &lt;/build&gt;&lt;br /&gt;&lt;/profile&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Rendez vous pour le prochain épisode qui sera consacré à la gestion des versions des AMPS + Patchs Java !&lt;br /&gt;&lt;br /&gt;A++&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PS :&lt;/span&gt; L'ensemble des sources du projet sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/bpcx8kl7dn"&gt;http://www.box.net/shared/bpcx8kl7dn&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-2428205560000874015?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ZT0vpNIKsZg:bQ-kpAzxSdA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ZT0vpNIKsZg:bQ-kpAzxSdA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZT0vpNIKsZg:bQ-kpAzxSdA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/ZT0vpNIKsZg/maven-alfresco-jetty-boostrap-et-profil.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-jetty-boostrap-et-profil.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-1317549563403659911</guid><pubDate>Wed, 14 Apr 2010 12:16:00 +0000</pubDate><atom:updated>2010-04-20T00:39:20.020+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : Test Unitaires</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bonjour tout le monde!&lt;br /&gt;&lt;br /&gt;Cette fois ci il je vais essayer de vous faire partager mon approche des tests unitaires avec Maven lors de la création d'un AMP.&lt;br /&gt;Bien entendu qui dit TEST, dit CODE! Donc à vos claviers!&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;Objectif : &lt;/span&gt;&lt;br /&gt;En tant que développeur et intégrateur mon objectif est double :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tout d'abord je veux&lt;span style="font-weight: bold;"&gt; pouvoir lancer les tests unitaires Alfresco dans Eclipse&lt;/span&gt;. Je tiens à conserver mon debugger :o) pour suivre la création de mon code.&lt;/li&gt;&lt;li&gt;Ensuite &lt;span style="font-weight: bold;"&gt;je veux pouvoir lancer l'ensemble de mes tests unitaires via Maven&lt;/span&gt;. Ainsi lorsque je voudrais créer une version de mon AMP, il devra passer obligatoirement les tests! Il s'agit d'un gage de qualité évident.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Donc comment faire ? &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Si vous avez suivi mes 2 précédents posts &lt;a href="http://www.opensourceecm.fr/2010/04/maven-alfresco-creation-dun-amp.html"&gt;ici &lt;/a&gt;et &lt;a href="http://www.opensourceecm.fr/2010/04/maven-alfresco-sdk-dependances-et.html"&gt;ici&lt;/a&gt;, nous avons en notre possession &lt;span style="font-weight: bold;"&gt;deux AMP&lt;/span&gt; (enfin... 2 projets MAVEN pour être précis...).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;En premier, &lt;span style="font-weight: bold;"&gt;alf-sdk&lt;/span&gt;. Il s'agit d'une sorte de PARENT-AMP qui contient l'ensemble des dépendances du SDK Alfresco ainsi que l'ensemble des plugins pour créer un AMP.&lt;/li&gt;&lt;li&gt;En second, &lt;span style="font-weight: bold;"&gt;alf-amp-osecm&lt;/span&gt;. Il s'agit de l'AMP que l'on est entrain de créer et de faire évoluer. Il a pour parent le alf-sdk.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Nous allons modifier ces 2 projets pour mettre en place des tests unitaires.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;1. Mettre à jour ALF-SDK&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tout d'abord on va mettre un peu à jour le pom parent. Les principales modifications ont lieu au niveau des balises &lt;span style="font-weight: bold;"&gt;build&lt;/span&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;maven-compiler-plugin et maven-resources-plugin&lt;/span&gt;. Ils ont reçu des paramètres pour l'encoding.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;maven-eclipse-plugin&lt;/span&gt; a été installé. Nous allons voir dans le prochain point pourquoi...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;br /&gt;&lt;groupid&gt;fr.opensourceecm&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alf-sdk&lt;/artifactid&gt;&lt;br /&gt;&lt;packaging&gt;pom&lt;/packaging&gt;&lt;br /&gt;&lt;version&gt;3.3C&lt;/version&gt;&lt;br /&gt;&lt;name&gt;Maven - Alfresco SDK 3.3C&lt;/name&gt;&lt;br /&gt;&lt;description&gt;Super POM Maven Alfresco SDK 3.3C &lt;/description&gt;&lt;br /&gt;&lt;br /&gt;&lt;/project&gt;&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;build&gt;&lt;br /&gt;&lt;resources&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/resources&lt;/directory&gt;&lt;br /&gt;&lt;excludes&gt;&lt;br /&gt;&lt;exclude&gt;**README-*&lt;/exclude&gt;&lt;br /&gt;&lt;/excludes&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/config&lt;/directory&gt;&lt;br /&gt;&lt;targetpath&gt;alfresco/module/${groupId}.${artifactId}&lt;/targetpath&gt;&lt;br /&gt;&lt;excludes&gt;&lt;br /&gt;&lt;exclude&gt;**README-*&lt;/exclude&gt;&lt;br /&gt;&lt;/excludes&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;/resources&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugins&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-eclipse-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;2.8&lt;/version&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;additionalprojectnatures&gt;&lt;br /&gt;&lt;projectnature&gt;org.springframework.ide.eclipse.core.springnature&lt;/projectnature&gt;&lt;br /&gt;&lt;/additionalprojectnatures&gt;&lt;br /&gt;&lt;additionalbuildcommands&gt;&lt;br /&gt;&lt;buildcommand&gt;org.springframework.ide.eclipse.core.springbuilder&lt;/buildcommand&gt;&lt;br /&gt;&lt;/additionalbuildcommands&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- COMPILATION DES SOURCES + TESTS EN UTF-8 --&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-resources-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;2.2&lt;/version&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;encoding&gt;UTF-8&lt;/encoding&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- COMPILATION DES SOURCES + TESTS --&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-compiler-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;source&gt;1.6&lt;br /&gt;&lt;target&gt;1.6&lt;/target&gt;&lt;br /&gt;&lt;encoding&gt;UTF-8&lt;/encoding&gt;&lt;br /&gt;&lt;optimize&gt;true&lt;/optimize&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- PERMET LA CREATION DU PACKAGE AMP --&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.maven.plugin&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-amp-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.0.2&lt;/version&gt;&lt;br /&gt;&lt;extensions&gt;true&lt;/extensions&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;archive&gt;&lt;br /&gt;&lt;addmavendescriptor&gt;false&lt;/addmavendescriptor&gt;&lt;br /&gt;&lt;/archive&gt;&lt;br /&gt;&lt;mampjarexcludes&gt;alfresco/extension/**,alfresco/module/**&lt;/mampjarexcludes&gt;&lt;br /&gt;&lt;overlays&gt;&lt;br /&gt;&lt;br /&gt;&lt;/overlays&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/plugins&gt;&lt;br /&gt;&lt;/build&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Une fois modifié, vous pouvez installer et déployer cet artefact en local avec une simple commande maven&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Dans notre repository, nous avons désormais accès au module &lt;span style="font-weight: bold;"&gt;fr.opensourceecm:alf-sdk:pom:3.3C&lt;/span&gt;&lt;br /&gt;Les projets héritant de cet artefact obtiendront automatiquement les mises à jour.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;2. Mettre à jour notre projet AMP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Maintenant nous allons ajouter une action Alfresco + une classe de test pour la tester. &lt;/span&gt; Pour rappel, une action est une unité de travail sur l'entrepôt de données. Il peut être exécuté via une règle ou directement par l'utilisateur via l'interface.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dans notre cas, l'action effectue simplement la création d'un sous-espace par rapport à l'espace qui lance une action.&lt;/li&gt;&lt;li&gt;La classe de test va démarrer un contexte Alfresco (création d'un store), créer un espace, lancer une action sur cet espace et vérifier la création d'un sous-espace.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.1 Ajout d'une action Alfresco&lt;/span&gt;&lt;br /&gt;Dans le répertoire&lt;span style="font-weight: bold;"&gt; /alf-amp-osecm/src/main/java/fr/opensourceecm/alf/amp/osecm/actions/&lt;/span&gt;, j'ajoute l'action :&lt;span style="font-weight: bold;"&gt; sampleActionExecuter.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;&lt;br /&gt;package fr.opensourceecm.alf.amp.osecm.actions;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import org.alfresco.model.ContentModel;&lt;br /&gt;import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;&lt;br /&gt;import org.alfresco.service.cmr.action.Action;&lt;br /&gt;import org.alfresco.service.cmr.action.ParameterDefinition;&lt;br /&gt;import org.alfresco.service.cmr.model.FileFolderService;&lt;br /&gt;import org.alfresco.service.cmr.model.FileInfo;&lt;br /&gt;import org.alfresco.service.cmr.repository.NodeRef;&lt;br /&gt;&lt;br /&gt;public class sampleActionExecuter extends ActionExecuterAbstractBase{&lt;br /&gt;&lt;br /&gt;private FileFolderService fileFolderService;&lt;br /&gt;&lt;br /&gt;private final String FOLDER_TEST_NAME = "FolderTest";&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;protected void executeImpl(Action arg0, NodeRef actionUponRef) {&lt;br /&gt;List&lt;fileinfo&gt; listNodeRef = fileFolderService.listFolders(actionUponRef);&lt;br /&gt;fileFolderService.create(actionUponRef, FOLDER_TEST_NAME + "_" +  listNodeRef.size(), ContentModel.TYPE_FOLDER);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;protected void addParameterDefinitions(List&lt;parameterdefinition&gt; arg0) {&lt;br /&gt;// TODO Auto-generated method stub&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setFileFolderService(FileFolderService fileFolderService) {&lt;br /&gt;this.fileFolderService = fileFolderService;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A noter que pour créer notre sous-espace, on se sert du FileFolderService et que le nom de notre espace sera la concatenation de : FolderTest et du nombre de dossiers présents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.2 Ajout d'un test unitaire&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dans le répertoire &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/test/java/fr/opensourceecm/alf/amp/osecm/actions&lt;/span&gt;, j'ajoute le test : &lt;span style="font-weight: bold;"&gt;sampleActionExecuterTest.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;&lt;br /&gt;package fr.opensourceecm.alf.amp.osecm.actions;&lt;br /&gt;&lt;br /&gt;import junit.framework.Assert;&lt;br /&gt;&lt;br /&gt;import org.alfresco.model.ContentModel;&lt;br /&gt;import org.alfresco.service.cmr.action.Action;&lt;br /&gt;import org.alfresco.service.cmr.repository.NodeRef;&lt;br /&gt;import org.alfresco.util.BaseAlfrescoTestCase;&lt;br /&gt;import org.junit.Test;&lt;br /&gt;&lt;br /&gt;public class sampleActionExecuterTest extends BaseAlfrescoTestCase {&lt;br /&gt;&lt;br /&gt;protected NodeRef companyHomeRef;&lt;br /&gt;protected NodeRef rootFolderTestRef;&lt;br /&gt;protected final String rootFolderTestName = "ROOTFOLDERTEST";&lt;br /&gt;&lt;br /&gt;@Test&lt;br /&gt;public void testIntegrerFluxCreationParAction() throws Throwable {&lt;br /&gt;&lt;br /&gt;// Création d'un répertoire de test dans le store de test.&lt;br /&gt;rootFolderTestRef = serviceRegistry.getNodeService().createNode(&lt;br /&gt;rootNodeRef, ContentModel.ASSOC_CHILDREN,&lt;br /&gt;ContentModel.TYPE_FOLDER, ContentModel.TYPE_FOLDER).getChildRef();&lt;br /&gt;&lt;br /&gt;//Lancement de l'action de création d'un sous-répertoire.&lt;br /&gt;Action action = serviceRegistry.getActionService().createAction("createFolderTest-action");&lt;br /&gt;serviceRegistry.getActionService().executeAction(action,rootFolderTestRef);&lt;br /&gt;&lt;br /&gt;//Vérification de la présence du sous-répertoire.&lt;br /&gt;Assert.assertEquals("ERREUR LORS DE LA RECHERCHE", 1, serviceRegistry.getNodeService().getChildAssocs(rootFolderTestRef).size());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ici j'attire votre attention sur le fait que cette classe de test étend la classe BaseAlfrescoTestCase. C'est dans cette classe que le contexte Alfresco est démarré et que le store de test est créé. Dans ma classe, je me contente de créer un espace de test afin de lancer mon action et de vérifier le résultat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.3 Configuration du pom.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notre POM.XML va bien entendu évolué suite à l'intégration de ce code java. En effet, Maven a besoin de savoir les dépendances nécessaires pour compiler ces classes. Il s'agit&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;alfresco-repository-3.3&lt;/span&gt; pour l'appel aux services Alfresco&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;org.springframework.beans-3.0.0&lt;/span&gt; pour l'appel du context Spring&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;junit &lt;/span&gt;pour le test unitaire.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Notre pom.xml devient alors :&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt;&lt;parent&gt;&lt;br /&gt;&lt;groupid&gt;fr.opensourceecm&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alf-sdk&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3C&lt;/version&gt;&lt;br /&gt;&lt;/parent&gt;&lt;br /&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;br /&gt;&lt;artifactid&gt;alf-amp-osecm&lt;/artifactid&gt;&lt;br /&gt;&lt;packaging&gt;jar&lt;/packaging&gt;&lt;br /&gt;&lt;version&gt;0.0.3&lt;/version&gt;&lt;br /&gt;&lt;name&gt;Alfresco AMP Open Source ECM&lt;/name&gt;&lt;br /&gt;&lt;description&gt;Open Source ECM - Extension&lt;/description&gt;&lt;br /&gt;&lt;br /&gt;&lt;dependencies&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alfresco-repository-3.3&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;provided&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;org.springframework.beans-3.0.0&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;provided&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;junit&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;junit&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;4.7&lt;/version&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;/dependencies&gt;&lt;br /&gt;&lt;/project&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUE IMPORTANTE  : Le packaging est &lt;span style="color: rgb(255, 0, 0);"&gt;JAR &lt;/span&gt;! Il ne faut pas le mettre en AMP (c'est un petit "trick" à faire pour configurer le projet dans Eclipse...)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.4 Configuration du workspace eclipse&lt;/span&gt;&lt;br /&gt;Généralement (et si vous avez bien suivi les instructions précédentes) vous n'avez encore jamais ouvert Eclipse pour faire les manipulations précédentes ! Je reconnais... c'est difficile. ;o) &lt;span style="font-weight: bold;"&gt;Mais il faut savoir qu'un projet Maven généré n'est pas intégrable directement dans Eclipse!&lt;/span&gt;En effet ce n'est pas prévu pour ! Il n'existe pas de fichier .classpath ou .project et ni de répertoire .settings qui permettent de configurer votre projet dans Eclipse. &lt;br /&gt;Néanmoins Maven possède un plugin pour créer automatiquement l'ensemble de ces fichiers de configuration. Il s'agit du &lt;span style="font-weight: bold;"&gt;maven-eclipse-plugin&lt;/span&gt; défini précédemment dans le pom parent.&lt;br /&gt;&lt;br /&gt;Pour créer cette configuration, tapez une commande dans le répertoire racine du projet maven créé.&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn eclipse:eclipse&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Automatiquement, les fichiers &lt;span style="font-weight: bold;"&gt;maven-eclipse.xml, .project et .classpath&lt;/span&gt; ont été créé ainsi que les répertoires &lt;span style="font-weight: bold;"&gt;.settings et .externalToolBuilders&lt;/span&gt; (et éventuellemnt target).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Remarque : A noter pour les utilisateurs de Spring IDE que le projet va posséder la nature de projet Spring par défaut.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Remarque : Si vous avez déjà intégré le projet dans eclipse ou si vous voulez supprimer la configuration eclipse, tapez la commande suivante : &lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn eclipse:clean&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.5 Import du projet dans eclipse&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Vous pouvez maintenant lancer un eclipse (3.5R2 Galilleo pour ma part) et importer le projet dans votre Workspace.&lt;br /&gt;Le projet ressemble alors à l'image ci-dessous :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HuDWht5cbyc/S8Xz4UME6_I/AAAAAAAAAxY/fP4JEmTpGqo/s1600/ProjetAMP.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 151px; height: 207px;text-align: center;" src="http://1.bp.blogspot.com/_HuDWht5cbyc/S8Xz4UME6_I/AAAAAAAAAxY/fP4JEmTpGqo/s320/ProjetAMP.png" alt="" id="BLOGGER_PHOTO_ID_5460038272074181618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Remarque : Si vous n'avez pas cette configuration, vérifiez bien que vous avez lancé la commande eclipse alors que le packaging du pom est à JAR. En effet, si on lance la commande eclipse alors qu'il s'agit d'un AMP, le plugin va construire une autre arborescence qui n'est pas celle que l'on attend pour développer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.6 (Re)Définition des beans spring&lt;/span&gt;&lt;br /&gt;On va maintenant modifier la déclaration des beans spring pour chaque partie de notre AMP afin d'améliorer la lisibilité du code. Pour cela nous allons spécialiser un répertoire. Il s'agira du répertoire context.&lt;br /&gt;&lt;br /&gt;Donc dans le répertoire &lt;span style="font-weight: bold;"&gt;\alf-amp-osecm\src\main\config&lt;/span&gt;, créez un répertoire context puis créez 3 fichiers :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;actions-context.xml&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;bean id="createFolderTest-action" class="fr.opensourceecm.alf.amp.osecm.actions.sampleActionExecuter" parent="action-executer"&gt;&lt;br /&gt;&lt;property name="fileFolderService"&gt;&lt;br /&gt;&lt;ref bean="FileFolderService"&gt;&lt;br /&gt;&lt;/ref&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;model-context.xml&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" on="dictionaryBootstrap"&gt;&lt;br /&gt;&lt;property name="models"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;&lt;value&gt;alfresco/module/fr.opensourceecm.alf-amp-osecm/model/ecmModele.xml&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Cette déclaration comme son nom l'indique va nous permettre de définir le modèle de données. A noter que dans mon précédent post, j'avais remplacé fr.opensourceecm.alf-amp-osecm par {groupID} et {artifactId}. Or ici, je souhaite qu'Eclipse soit capable de le comprendre lors d'une compilation. En effet Maven est le seul capable de remplacer ces valeurs! Donc on doit le mettre en dur... A noter cependant que le groupId et l'artifactId doivent être généralement définis dès le début de la construction de votre AMP.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Je profite du refactoring pour simplifier le nom du fichier de configuration de mon modèle de données.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Maintenant, on va créer le fichier &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;webclient-context.xml&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;bean id="ds_web.configBootstrap" class="org.alfresco.web.config.WebClientConfigBootstrap" method="init"&gt;&lt;br /&gt;&lt;property name="configs"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;&lt;value&gt;alfresco/module/fr.opensourceecm.alf-amp-osecm/ui/ecm-web-client-config.xml&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Cette déclaration comme son nom l'indique va nous permettre de définir la configuration du client web.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Je profite du refactoring pour simplifier le nom du fichier configuration du client web&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dans le répertoire&lt;span style="font-weight: bold;"&gt; \alf-amp-osecm\src\main\config&lt;/span&gt;, modifiez le fichier  :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;module-context.xml&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;import resource="classpath:alfresco/module/fr.opensourceecm.alf-amp-osecm/context/actions-context.xml"/&gt;&lt;br /&gt;&lt;import resource="classpath:alfresco/module/fr.opensourceecm.alf-amp-osecm/context/model-context.xml"/&gt;&lt;br /&gt;&lt;import resource="classpath:alfresco/module/fr.opensourceecm.alf-amp-osecm/context/webclient-context.xml"/&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ce fichier va nous servir à référencer l'ensemble des déclarations Spring nécessaire à notre module. Dans notre cas pour récapituler, notre module comporte : un modèle de données, une action et une configuration du client web.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.7 Définition de notre environnement de test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Maintenant nous allons définir et configurer l'entrepôt de données de test (c'est à dire on va définir où vont être stocker le content-store et le lucene-indexes ainsi que les paramètres de configuration de la  base de données).&lt;br /&gt;&lt;br /&gt;Pour cela dans le répertoire&lt;span style="font-weight: bold;"&gt; /alf-amp-osecm/src/test/resources/alfresco/extension/&lt;/span&gt; (créez les répertoires manquants si nécessaire) créez le fichier&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dev.properties&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;dir.root=./alf_data&lt;br /&gt;index.recovery.mode=AUTO&lt;br /&gt;integrity.failOnError=true&lt;br /&gt;db.name=alf33Test&lt;br /&gt;db.username=alfresco33&lt;br /&gt;db.password=alfresco&lt;br /&gt;db.host=localhost&lt;br /&gt;db.port=3306&lt;br /&gt;db.driver=org.gjt.mm.mysql.Driver&lt;br /&gt;db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}&lt;br /&gt;hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Ce fichier permet de définir l'ensemble des propriétés de notre environnement de test. Dans mon cas, j'ai installé et configuré une base de données MySQL.&lt;br /&gt;Pour plus d'informations sur comment configurer un environnement, n'hésitez pas à télécharger le pdf suivant : &lt;a href="http://wiki.alfresco.com/w/images/8/88/Installing_and_Configuring_Alfresco_Community_Edition_3_3.pdf"&gt;Manuel de configuration et Installation d'Alfresco 3.3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ensuite dans le même répertoire, vous devez créer le fichier&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dev-context.xml&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;bean id="global-properties" class="org.alfresco.config.JndiPropertiesFactoryBean"&gt;&lt;br /&gt;&lt;property name="locations"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;   &lt;value&gt;classpath:alfresco/repository.properties&lt;/value&gt;&lt;br /&gt;   &lt;value&gt;classpath:alfresco/domain/transaction.properties&lt;/value&gt;&lt;br /&gt;   &lt;!-- &lt;value&gt;classpath:alfresco/jndi.properties&lt;/value&gt; --&gt;&lt;br /&gt;   &lt;!--  Overrides supplied by modules --&gt;&lt;br /&gt;   &lt;value&gt;classpath*:alfresco/module/*/alfresco-global.properties&lt;/value&gt;&lt;br /&gt;   &lt;!--  Installer or user-provided defaults --&gt;&lt;br /&gt;   &lt;value&gt;classpath*:alfresco-global.properties&lt;/value&gt;&lt;br /&gt;   &lt;value&gt;classpath:alfresco/extension/dev.properties&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;property name="systemPropertiesModeName"&gt;&lt;br /&gt;&lt;value&gt;SYSTEM_PROPERTIES_MODE_OVERRIDE&lt;/value&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;!-- Extra properties that have no defaults that we allow to be defined through JNDI or System properties --&gt;&lt;br /&gt;&lt;property name="systemProperties"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;   &lt;value&gt;hibernate.dialect&lt;/value&gt;&lt;br /&gt;   &lt;value&gt;hibernate.query.substitutions&lt;/value&gt;&lt;br /&gt;   &lt;value&gt;hibernate.jdbc.use_get_generated_keys&lt;/value&gt;&lt;br /&gt;   &lt;value&gt;hibernate.default_schema&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Ce bean va nous permettre de prendre en compte le fichier de propriétés précédemment créé. Il s'agit d'un bean Spring qui vient écraser la précédente déclaration faite dans Alfresco uniquement pour notre phase de test.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dans cette étape, vous pouvez rajouter un répertoire&lt;span style="font-weight: bold;"&gt; /alf-amp-osecm/src/test/resources/alfresco/desktop&lt;/span&gt; qui contiendra les desktop ations Alfresco par défaut (&lt;span style="font-weight: bold;"&gt;disponible dans le sdk&lt;/span&gt;). Apparemment il n'arrive pas à les avoir dans mon environnement...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dans cette étape, vous pouvez aussi rajouter un fichier&lt;span style="font-weight: bold;"&gt; log4j.properties&lt;/span&gt; dans le répertoire &lt;span style="font-weight: bold;"&gt;/alf-amp-osecm/src/test/resources&lt;/span&gt; pour déterminer les niveaux de logs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.8 Modifier le pom.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Nous avons maintenant un environnement prêt à être testé et packagé sous format AMP.&lt;br /&gt;Il faut donc &lt;span style="font-weight: bold;"&gt;modifier dans le pom.xml&lt;/span&gt; de notre projet, la valeur du packaging à &lt;span style="font-weight: bold;"&gt;amp&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.9 Lancer le packaging&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Maintenant votre projet doit ressembler à l'image ci dessous :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HuDWht5cbyc/S8X018nb88I/AAAAAAAAAxg/pEamLXONwEc/s1600/envEclipse.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 148px; height: 320px;" src="http://2.bp.blogspot.com/_HuDWht5cbyc/S8X018nb88I/AAAAAAAAAxg/pEamLXONwEc/s320/envEclipse.png" alt="" id="BLOGGER_PHOTO_ID_5460039330898375618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Le projet est maintenant complet, vous pouvez lancer le packaging via la commande&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean package&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Si tout se passe bien, vous voyez apparaitre le fameux et tant convoité &lt;span style="font-weight: bold;"&gt;BUILD SUCCESSFULL&lt;/span&gt; et si vous faîte attention à la console, vous avez l'affichage du résultat des tests du style&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tests run: 1, Failures: 0, Errors: 0, Skipped: 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si c'est le cas vous avez votre premier AMP testé par Maven.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:180%;"&gt;FELICITATION !&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Ainsi, dans le répertoire target du projet, vous avez votre AMP packagé : &lt;span style="font-weight: bold;"&gt;alf-amp_osecm.0.0.3.amp&lt;/span&gt; que vous pouvez installer sur votre instance Alfresco.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.10 Lancer le test via Eclipse&lt;br /&gt;&lt;/span&gt;Comme je le disais au tout début, j'ai aussi envie de pouvoir utiliser Eclipse pour pouvoir débugguer mon application si nécessaire. Je lance donc via &lt;span style="font-weight: bold;"&gt;Junit&lt;/span&gt; mon test et vérifie le résultat.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8X29OXXhUI/AAAAAAAAAxo/Yr4YFLP9_bI/s1600/junitTest.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 50px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8X29OXXhUI/AAAAAAAAAxo/Yr4YFLP9_bI/s320/junitTest.png" alt="" id="BLOGGER_PHOTO_ID_5460041654945154370" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Objectifs atteints ! &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;C'est fini pour aujourd'hui ! C'est déjà pas mal je pense...&lt;br /&gt;Si vous avez des questions, une remarque ou un bug/une amélioration à signaler par exemple, n'hésitez pas à poster un commentaire.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pour cette partie, je tiens à remercier&lt;span style="font-weight: bold;"&gt; G.Tournier&lt;/span&gt; pour son aide et ses conseils.&lt;br /&gt;Sans lui les noeuds Alfresco seraient sans doute encore un grand mystère pour moi.&lt;br /&gt;&lt;br /&gt;A la prochaine !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PS : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-amp-osecm sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/374lms3ogv"&gt;http://www.box.net/shared/374lms3ogv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-sdk sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/oevx14hy8n"&gt;http://www.box.net/shared/oevx14hy8n&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-1317549563403659911?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ux_abuj0kHk:9r-A0L9YdEA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ux_abuj0kHk:9r-A0L9YdEA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ux_abuj0kHk:9r-A0L9YdEA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/ux_abuj0kHk/maven-alfresco-test-unitaires.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>1</thr:total><enclosure url="http://wiki.alfresco.com/w/images/8/88/Installing_and_Configuring_Alfresco_Community_Edition_3_3.pdf" length="1951905" type="application/pdf" /><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-test-unitaires.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-1216891725727722922</guid><pubDate>Sat, 10 Apr 2010 13:37:00 +0000</pubDate><atom:updated>2010-04-21T14:57:45.584+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : SDK, dépendances et héritage</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hello,&lt;br /&gt;&lt;br /&gt;Cette fois ci, je vais discuter de l'intégration du SDK et des dépendances dans la création d'un AMP.&lt;br /&gt;&lt;br /&gt;Pour petit rappel, une dépendance est généralement une bibliothèque de classes packagée sous forme de jar. Si un programme informatique se sert d'une dépendance il doit au moment de son execution savoir où trouver ce jar pour pouvoir l'utiliser.&lt;br /&gt;&lt;br /&gt;Dans le cas d'Alfresco, le SDK regroupe l'ensemble de dépendances nécessaires pour pouvoir utiliser et lancer une application Alfresco.&lt;br /&gt;&lt;br /&gt;Pour gérer ses dépendances, il n'existe pas qu'un seul mode mais plutôt deux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En mode classique,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il faut d'abord télécharger le SDK Alfresco et le dezipper dans un répertoire.&lt;br /&gt;&lt;br /&gt;Ensuite dans Eclipse, on doit effectuer l'opération "Importer un projet existant" (généralement le projet &lt;span style="font-weight: bold;"&gt;SDK AlfrescoEmbedded&lt;/span&gt;) dans le répertoire &lt;span style="font-weight: bold;"&gt;ALF_SDK_HOME\lib&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans le projet AMP via Eclipse, on configure le Java Build Path c'est à dire lorsque l'on se retrouve dans l'interface de configuration, dans l'onglet &lt;span style="font-weight: bold;"&gt;Project&lt;/span&gt;, on doit ajouter le projet précédemment importé.&lt;br /&gt;&lt;br /&gt;Une fois toutes ces étapes passées, on peut utiliser le SDK dans Eclipse. Les liens et dépendances sont alors disponibles pour l'auto complétion et la compilation des sources par Eclipse...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En mode Maven&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans ce mode là, il faut que l'ensemble du projet &lt;span style="font-weight: bold;"&gt;SDK AlfrescoEmbedded&lt;/span&gt; soit intégré dans un repository Maven 2 (celui de son poste de travail, celui de l'entreprise ou un repository distant).&lt;br /&gt;&lt;br /&gt;Pour information, Alfresco possède maintenant son propre repository à l'adresse suivante : &lt;a href="http://maven.alfresco.com/nexus/index.html"&gt;Alfresco Nexus/Maven&lt;/a&gt; Néanmoins, à l'heure de création de ce billet, il ne possède pas l'ensemble des artefacts du SDK.&lt;br /&gt;&lt;br /&gt;Donc pour pouvoir résoudre les dépendances, il faut définir et identifier dans le pom.xml de notre projet d'AMP l'ensemble des dépendances (groupID, ArtifactID, version, classifier).&lt;br /&gt;&lt;br /&gt;Lorsque le pom.xml est complet et exhaustif, il devient possible de compiler et tester l'application via Maven.&lt;br /&gt;&lt;br /&gt;Et la configuration Eclipse dans tout cela ?? Et bien il est aussi possible via une commande eclipse:eclipse de régénérer la configuration Eclipse.... Mais cela sera pour plus tard si vous le voulez bien...&lt;br /&gt;&lt;br /&gt;En tout cas c'est cette deuxième méthode que je vais essayer de vous présenter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:160;" &gt;Procédure pour mettre en place le SDK dans un repository Maven 2 et l'utiliser pour construire un AMP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Remarque et avertissement :&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Attention cette procédure est loin (très loin même...) d'être la plus propre ou la plus esthétique. Elle ne respecte pas forcément très bien les principes de base de Maven. Il faut donc l'utiliser avec précaution !&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;1. Intégrer le SDK d'Alfresco en local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comment répertorier les dépendances ?&lt;/span&gt;&lt;br /&gt;Via un petit projet écrit en java et compilé grâce à Maven (quand on veut faire du Maven autant le faire partout...).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le principe ?&lt;/span&gt;&lt;br /&gt;Lister l'ensemble des jar présents dans le projet SDK et les intégrer dans notre repository via un script (.bat ou .sh)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le code ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;&lt;br /&gt;package fr.opensourceecm;&lt;br /&gt;&lt;br /&gt;import java.io.BufferedReader;&lt;br /&gt;import java.io.BufferedWriter;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileNotFoundException;&lt;br /&gt;import java.io.FileWriter;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStreamReader;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;&lt;br /&gt;public class AlfrescoMavenSDKCreator {&lt;br /&gt;&lt;br /&gt;   public static String isWindows = "O";&lt;br /&gt;&lt;br /&gt;   public static String pathToSDK = "D:\\opt\\JM-Alfresco\\SDK\\3.3C\\lib\\server";&lt;br /&gt;   public static String sdkGroupId = "org.alfresco.sdk";&lt;br /&gt;   public static String sdkVersion = "3.3";&lt;br /&gt;   public static String sdkClassifier = "community";&lt;br /&gt;   public static String mavenLocation = "call mvn";&lt;br /&gt;&lt;br /&gt;   private static final String ln = System.getProperty("line.separator");&lt;br /&gt;&lt;br /&gt;   private static void execute() {&lt;br /&gt;&lt;br /&gt;      String nomFichier = null;&lt;br /&gt;&lt;br /&gt;      FileWriter fout1 = null;&lt;br /&gt;      FileWriter fout2 = null;&lt;br /&gt;      try {&lt;br /&gt;&lt;br /&gt;         showVariables();&lt;br /&gt;&lt;br /&gt;         System.out.println("Voulez-vous modifier ces paramètres (O/N) ? ");&lt;br /&gt;         BufferedReader in = new BufferedReader(&lt;br /&gt;               new InputStreamReader(System.in));&lt;br /&gt;         String reponse = in.readLine();&lt;br /&gt;         if (reponse.toUpperCase().equals("O")) {&lt;br /&gt;            System.out.println("Windows (O/N) ? ");&lt;br /&gt;            isWindows = in.readLine();&lt;br /&gt;            System.out.println("PATH SDK ? ");&lt;br /&gt;            pathToSDK = in.readLine();&lt;br /&gt;            System.out.println("Version d'Alfresco ? ");&lt;br /&gt;            sdkVersion = in.readLine();&lt;br /&gt;            System.out.println("GroupID ? ");&lt;br /&gt;            sdkGroupId = in.readLine();&lt;br /&gt;            System.out.println("emplacement de Maven (binaire) ? ");&lt;br /&gt;            mavenLocation = in.readLine();&lt;br /&gt;            System.out.println("classifier (labs/enterprise) ? ");&lt;br /&gt;            sdkClassifier = in.readLine();&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;         if (isWindows.toUpperCase().equals("O")) {&lt;br /&gt;            nomFichier = "maven-sdk-install-files.bat";&lt;br /&gt;         } else {&lt;br /&gt;            nomFichier = "maven-sdk-install-files.sh";&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;         File file1 = new File("maven-dependencies.txt");&lt;br /&gt;         fout1 = new FileWriter(file1, false);&lt;br /&gt;         BufferedWriter out1 = new BufferedWriter(fout1);&lt;br /&gt;&lt;br /&gt;         File file2 = new File(nomFichier);&lt;br /&gt;         fout2 = new FileWriter(file2, false);&lt;br /&gt;         BufferedWriter out2 = new BufferedWriter(fout2);&lt;br /&gt;&lt;br /&gt;         if (isWindows.toUpperCase().equals("O")) {&lt;br /&gt;            out2.write("cd " + pathToSDK + ln);&lt;br /&gt;            out2.write(ln);&lt;br /&gt;         } else {&lt;br /&gt;            out2.write("#!/bin/bash" + ln);&lt;br /&gt;            out2.write(". /etc/profile" + ln);&lt;br /&gt;            out2.write(ln);&lt;br /&gt;            out2.write("cd " + pathToSDK + ln);&lt;br /&gt;            out2.write(ln);&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;         ArrayList&lt;File&gt; listingFiles = getFiles(pathToSDK);&lt;br /&gt;&lt;br /&gt;         for (File file : listingFiles) {&lt;br /&gt;&lt;br /&gt;            String librairieNameJar = file.getName();&lt;br /&gt;            String librairieName = librairieNameJar.substring(0,&lt;br /&gt;                  librairieNameJar.length() - 4); // moins ".jar"&lt;br /&gt;&lt;br /&gt;            out1.write("&lt;dependency&gt;" + ln);&lt;br /&gt;            out1.write("  &lt;groupId&gt;" + sdkGroupId + "&lt;/groupId&gt;" + ln);&lt;br /&gt;            out1.write("  &lt;artifactId&gt;" + librairieName + "&lt;/artifactId&gt;" + ln);&lt;br /&gt;            out1.write("  &lt;version&gt;" + sdkVersion + "&lt;/version&gt;" + ln);&lt;br /&gt;            out1.write("  &lt;classifier&gt;" + sdkClassifier + "&lt;/classifier&gt;" + ln);&lt;br /&gt;            out1.write("  &lt;scope&gt;test&lt;/scope&gt;" + ln);&lt;br /&gt;            out1.write("&lt;/dependency&gt;" + ln);&lt;br /&gt;&lt;br /&gt;            out2.write(mavenLocation + " install:install-file" + &lt;br /&gt;                  " -Dfile=" + file.getPath().substring(pathToSDK.length() + 1) + &lt;br /&gt;                  " -DgroupId=" + sdkGroupId + &lt;br /&gt;                  " -DartifactId=" + librairieName + &lt;br /&gt;                  " -Dversion=" + sdkVersion + &lt;br /&gt;                  " -Dpackaging=jar" +&lt;br /&gt;                  " -Dclassifier=" + sdkClassifier + &lt;br /&gt;                  " -DgeneratePom=true" +&lt;br /&gt;                  " -DcreateChecksum=true" + ln) ;&lt;br /&gt;&lt;br /&gt;            out1.flush();&lt;br /&gt;            out2.flush();&lt;br /&gt;         }&lt;br /&gt;         fout1.close();&lt;br /&gt;         fout2.close();&lt;br /&gt;&lt;br /&gt;         System.out.println("Les fichiers ont été générés : ");&lt;br /&gt;         System.out.println(file1.getAbsolutePath());&lt;br /&gt;         System.out.println(file2.getAbsolutePath());&lt;br /&gt;      } catch (FileNotFoundException e) {&lt;br /&gt;         e.printStackTrace();&lt;br /&gt;      } catch (IOException e) {&lt;br /&gt;         e.printStackTrace();&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   private static void showVariables() {&lt;br /&gt;      System.out.println("This utils is going to generate two files");&lt;br /&gt;      System.out.println("");&lt;br /&gt;      System.out.println("Le programme va s'ex�cuter avec les paramtres suivants :");&lt;br /&gt;      System.out.println("- pathSDK : " + pathToSDK);&lt;br /&gt;      System.out.println("- Windows : " + System.getProperty("os.name"));&lt;br /&gt;      System.out.println("- GroupID Alfresco : " + sdkGroupId);&lt;br /&gt;      System.out.println("- version d'Alfresco : " + sdkVersion);&lt;br /&gt;      System.out.println("- classifier : " + sdkClassifier);&lt;br /&gt;      System.out.println("- emplacement de Maven (binaire) : " + mavenLocation);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   private static ArrayList&lt;File&gt; getFiles(String root) {&lt;br /&gt;      ArrayList&lt;File&gt; listeFichiersJar = new ArrayList&lt;File&gt;();&lt;br /&gt;      getFilesRec(listeFichiersJar, root);&lt;br /&gt;      return listeFichiersJar;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   private static void getFilesRec(ArrayList&lt;File&gt; listeFichiersJar, String root) {&lt;br /&gt;      File f = new File(root);&lt;br /&gt;      File[] listFiles = f.listFiles();&lt;br /&gt;      for (int i = 0; i &lt; listFiles.length; i++) {&lt;br /&gt;         if (listFiles[i].isDirectory()) {&lt;br /&gt;            getFilesRec(listeFichiersJar, listFiles[i].toString());&lt;br /&gt;         } else if (listFiles[i].getName().endsWith(".jar")) {&lt;br /&gt;            listeFichiersJar.add(listFiles[i]);&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;      (new AlfrescoMavenSDKCreator()).execute();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;L'exécution de ce petit programme en ligne de commande ou via l'interface Eclipse créé deux fichiers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le premier fichier (un fichier .bat) permet d'installer les dépendances dans le repository.&lt;/span&gt;&lt;br /&gt;Ce fichier lance un ensemble d'appel maven du type :&lt;br /&gt;&lt;pre class="brush: plain"&gt;call mvn install:install-file -Dfile=alfresco-core-3.3.jar -DgroupId=org.alfresco.sdk -DartifactId=alfresco-core-3.3 -Dversion=3.3 -Dclassifier=community -Dpackaging=jar&lt;br /&gt;&lt;/pre&gt;Comme vous pouvez le voir sur cet exemple, il y a comme qui dirait un petit souci de numéro de version ! En effet, cette commande va créer un fichier avec le nom : &lt;span style="font-weight: bold;"&gt;alfresco-core-3.3-3.3-community.jar&lt;/span&gt; Peu mieux faire n'est il pas... C'est pour cela que je considère que c'est pas très beau... Je me suis posé un TODO pour essayer de résoudre ce problème (ou bien attendre qu'Alfresco créé un pom.xml avec l'ensemble des dépendances ;o) ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le second fichier permet de créer l'ensemble des déclarations des dépendances trouvées. Elles sont ensuite facilement intégrables dans un fichier pom.xml&lt;/span&gt;&lt;br /&gt;Ce fichier regroupe l'ensemble des déclarations du type :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alfresco-core-3.3&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Toutes les dépendances ont un scope TEST&lt;/span&gt;. En effet Alfresco possède déjà l'ensemble de ses bibliothèques. Il n'est donc pas nécessaire de les ajouter lors de la création de notre AMP. Par contre on en aura besoin pour tester le module.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Maintenant comment utiliser ses dépendances ?&lt;/span&gt;&lt;br /&gt;Un point fort de Maven est sa capacité d'héritage entre artifact(plugin). Ainsi un artifact peut dépendre d'un autre par héritage comme c'est un peu le cas pour les classes Java.&lt;br /&gt;&lt;br /&gt;Dans cette optique, l'une des idées est de considérer le SDK Alfresco comme étant le père de notre projet d'AMP. Ainsi toutes les dépendances du SDK seront aussi disponibles pour le projet fils. Si en plus on joue sur les scopes de chacune des dépendances alors on arrive à avoir un système assez précis.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2. Création du projet Super Pom Alfresco SDK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Création d'un projet Maven 2&lt;/span&gt;&lt;br /&gt;Via une ligne de commande :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn archetype:create -DgroupId=fr.opensourceecm -DartifactId=alf-sdk -Dpackagename=fr.opensourceecm.alf.sdk&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;je crée l'ensemble de l'arborescence d'un projet Maven 2 de type jar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Nettoyage&lt;/span&gt;&lt;br /&gt;Je supprime les sous-répertoires des répertoires &lt;span style="font-weight: bold;"&gt;src/main/java&lt;/span&gt; et &lt;span style="font-weight: bold;"&gt;src/test/java&lt;/span&gt; afin de supprimer les classes par défaut générées.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Modification du pom&lt;/span&gt;&lt;br /&gt;Maintenant je reprends les valeurs du fichier maven-dependencies.txt et je les ajoute entre les balises depedencies.&lt;br /&gt;Je modifie le pom.xml pour créer l'artifact : &lt;span style="font-weight: bold;"&gt;fr.opensourceecm:alf-sdk:pom:3.3C.&lt;/span&gt;&lt;br /&gt;Sachant que ce projet va devenir un projet parent, celui ci doit automatiquement être de package pom.&lt;br /&gt;Finalement je rajoute la configuration des plugins pour l'étape de build.&lt;br /&gt;On obtient ainsi un fichier du type :&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;br /&gt;&lt;groupid&gt;fr.opensourceecm&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alf-sdk&lt;/artifactid&gt;&lt;br /&gt;&lt;packaging&gt;pom&lt;/packaging&gt;&lt;br /&gt;&lt;version&gt;3.3C&lt;/version&gt;&lt;br /&gt;&lt;name&gt;Maven - Alfresco SDK 3.3C&lt;/name&gt;&lt;br /&gt;&lt;description&gt;Super POM Maven Alfresco SDK 3.3C &lt;/description&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- REPOSITORY --&gt;&lt;br /&gt;&lt;repositories&gt;&lt;br /&gt;&lt;repository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public-snapshots&lt;/url&gt;&lt;br /&gt;&lt;snapshots&gt;&lt;br /&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;br /&gt;&lt;updatepolicy&gt;daily&lt;/updatepolicy&gt;&lt;br /&gt;&lt;/snapshots&gt;&lt;br /&gt;&lt;/repository&gt;&lt;br /&gt;&lt;repository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;&lt;br /&gt;&lt;/repository&gt;&lt;br /&gt;&lt;/repositories&gt;&lt;br /&gt;&lt;pluginrepositories&gt;&lt;br /&gt;&lt;pluginrepository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;&lt;br /&gt;&lt;/pluginrepository&gt;&lt;br /&gt;&lt;pluginrepository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://repository.sourcesense.com/nexus/content/groups/public-snapshots&lt;/url&gt;&lt;br /&gt;&lt;snapshots&gt;&lt;br /&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;br /&gt;&lt;updatepolicy&gt;daily&lt;/updatepolicy&gt;&lt;br /&gt;&lt;/snapshots&gt;&lt;br /&gt;&lt;/pluginrepository&gt;&lt;br /&gt;&lt;/pluginrepositories&gt;&lt;br /&gt;&lt;br /&gt;&lt;dependencies&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alfresco-core-3.3&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alfresco-deployment-3.3&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;...&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;mysql-connector-java-5.1.7-bin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;dom4j-1.6.1&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;ehcache-core-2.0.0&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;...&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;org.springframework.beans-3.0.0&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;org.springframework.context-3.0.0&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/dependencies&gt;&lt;br /&gt;&lt;br /&gt;&lt;build&gt;&lt;br /&gt;&lt;resources&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/resources&lt;/directory&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/config&lt;/directory&gt;&lt;br /&gt;&lt;targetpath&gt;alfresco/module/${groupId}.${artifactId}&lt;/targetpath&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;/resources&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugins&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.apache.maven.plugins&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-compiler-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;2.2&lt;/version&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;source&gt;1.6&lt;br /&gt;&lt;target&gt;1.6&lt;/target&gt;&lt;br /&gt;&lt;/source&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.maven.plugin&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-amp-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.0.1-SNAPSHOT&lt;/version&gt;&lt;br /&gt;&lt;extensions&gt;true&lt;/extensions&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;archive&gt;&lt;br /&gt;&lt;addmavendescriptor&gt;false&lt;/addmavendescriptor&gt;&lt;br /&gt;&lt;/archive&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/plugins&gt;&lt;br /&gt;&lt;br /&gt;&lt;/build&gt;&lt;br /&gt;&lt;/project&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;4. Installation et déploiement du projet&lt;/span&gt;&lt;br /&gt;Une simple commande maven suffit maintenant pour créer notre artefact;&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Dans notre repository, nous avons désormais accès au module &lt;span style="font-weight: bold;"&gt;fr.opensourceecm:alf-sdk:pom:3.3C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Remarque Importante ! &lt;/span&gt;&lt;br /&gt;Si vous utilisez la version 3.3C (comme moi ici), il manque un jar important dans les dépendances : &lt;span style="font-weight: bold;"&gt;config.jar&lt;/span&gt;. Cette référence contient l'ensemble des fichiers de configuration d'Alfresco. Il est donc important de l'avoir! Pour information dans le SDK de la version 3.3, il s'agit d'un répertoire et non d'un jar. Il faut donc créer un jar de ce répertoire pour ensuite le mettre en tant que dépendance dans notre pom.xml.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;dependency&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.sdk&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alfresco-config&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3&lt;/version&gt;&lt;br /&gt;&lt;classifier&gt;community&lt;/classifier&gt;&lt;br /&gt;&lt;scope&gt;test&lt;/scope&gt;&lt;br /&gt;&lt;/dependency&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Mise à jour du projet AMP alf-amp-osecm&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Modification du pom.xml&lt;/span&gt;&lt;br /&gt;Maintenant, nous pouvons modifier le fichier pom.xml de notre fichier pour prendre en compte le parent. Il est à noter que l'on a ajouté le bloc &lt;span style="font-weight: bold;"&gt;parent&lt;/span&gt; en premier pour définir l'héritage.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt;&lt;parent&gt;&lt;br /&gt;&lt;groupid&gt;fr.opensourceecm&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alf-sdk&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.3C&lt;/version&gt;&lt;br /&gt;&lt;/parent&gt;&lt;br /&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;br /&gt;&lt;artifactid&gt;alf-amp-osecm&lt;/artifactid&gt;&lt;br /&gt;&lt;packaging&gt;amp&lt;/packaging&gt;&lt;br /&gt;&lt;version&gt;0.0.2&lt;/version&gt;&lt;br /&gt;&lt;name&gt;alf-amp-bdj&lt;/name&gt;&lt;br /&gt;&lt;description&gt;Open Source ECM - Extension&lt;/description&gt;&lt;br /&gt;&lt;/project&gt;&lt;br /&gt;&lt;/pre&gt;On s'aperçoit désormais que le pom devient beaucoup plus court. Les informations concernant les dépendances et les plugins à mettre à utiliser lors du build ont été hérités du projet SDK. C'est cela la magie de l'héritage!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Création de l'AMP&lt;/span&gt;&lt;br /&gt;Maintenant nous avons tout pour créer notre module. Il n'y a plus qu'à lancer la commande :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn clean package&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;On peut ainsi retrouver dans le répertoire &lt;span style="font-weight: bold;"&gt;target&lt;/span&gt; de notre projet, le fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.2.amp&lt;/span&gt; qui sera alors possible d'intégrer dans Alfresco.war.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Intégration&lt;/span&gt;&lt;br /&gt;Effectuez un copier/coller du fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.2.amp&lt;/span&gt; vers le répertoire amps du répertoire d'installation d'un Alfresco.&lt;br /&gt;Lancer ensuite le script d'installation des amps dans le répertoire d'installation d'un Alfresco : &lt;span style="font-weight: bold;"&gt;apply_amps.bat&lt;/span&gt;&lt;br /&gt;A la fin de celui ci, vous avez un nouveau alfresco.war mis à jour avec votre module.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Lancer Alfresco&lt;/span&gt;&lt;br /&gt;Vous pouvez maintenant lancer Alfresco et vérifier l'intégration du module.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voici selon moi, comment on peut faire un peu plus de Maven avec Alfresco.&lt;br /&gt;&lt;br /&gt;Dans le prochain post, on explorera comment mettre en place des tests avec Maven.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PS : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-sdk sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/2zpgm3fcag"&gt;http://www.box.net/shared/2zpgm3fcag&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-sdk-osecm (pour la création des fichiers de dépendances) sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/fe6ftxeb4y"&gt;http://www.box.net/shared/fe6ftxeb4y&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-amp-osecm sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/s966vj1xqz"&gt;http://www.box.net/shared/s966vj1xqz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-1216891725727722922?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ZvU-I6IJRp4:pkAmXFbelqw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=ZvU-I6IJRp4:pkAmXFbelqw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=ZvU-I6IJRp4:pkAmXFbelqw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/ZvU-I6IJRp4/maven-alfresco-sdk-dependances-et.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-sdk-dependances-et.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-2532396226160844896</guid><pubDate>Sat, 10 Apr 2010 13:09:00 +0000</pubDate><atom:updated>2010-04-19T22:34:25.658+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Maven</category><title>Maven + Alfresco : Création d'un AMP</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s1600/AlfrescoMaven.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s320/AlfrescoMaven.PNG" alt="" id="BLOGGER_PHOTO_ID_5458774770008729346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bonjour à tous,&lt;br /&gt;&lt;br /&gt;Récemment je viens de terminer l'excellent livre sur Maven écrit par &lt;a href="http://twitter.com/aheritier"&gt;A.Heritier&lt;/a&gt; et &lt;a href="http://twitter.com/ndeloof"&gt;N.De Loof&lt;/a&gt;.&lt;br /&gt;C'est le genre de livre que j'aime beaucoup car il ne s'agit pas simplement d'un catalogue de fonctions mais bien une mise en situation! Et cela ça change tout! Donc si vous ne l'avez pas encore, je vous conseille de l'acheter à cette &lt;a href="http://www.pearson.fr/livre/?GCOI=27440100730370"&gt;adresse&lt;/a&gt;  ou dans tout autre bonne librairie qui possède un rayon Technologie/Informatique.&lt;br /&gt;&lt;br /&gt;Je m'écarte... ce que j'aimerai aborder avec vous aujourd'hui c'est l'intégration de &lt;a href="http://maven.apache.org/"&gt;Maven &lt;/a&gt;et &lt;a href="http://www.alfresco.com/"&gt;Alfresco&lt;/a&gt;.&lt;br /&gt;Je pense qu'il est temps de partager une petite réflexion sur le sujet en plusieurs posts.&lt;br /&gt;&lt;br /&gt;Si vous vous y connaissez un petit peu (sur Maven et Alfresco), vous savez qu'il existe déjà quelque chose sur le sujet.&lt;br /&gt;En effet lorsque l'on va à cette &lt;a href="http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven"&gt;adresse,&lt;/a&gt; on retrouve l'ensemble des informations pour mettre en place Alfresco via Maven. La documentation n'est pas forcément très claire aux premiers abords mais après un petit temps, on commence à comprendre tous les tenants et aboutissants.&lt;br /&gt;&lt;br /&gt;Prenons un exemple,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Je veux créer un AMP pour ajouter mon modèle de données dans Alfresco via Maven.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans ma boite à outils, j'ai à disposition le plugin : &lt;a href="http://maven.alfresco.com/nexus/content/repositories/alfresco-docs/maven-alfresco-lifecycle/plugins/maven-amp-plugin/index.html"&gt;maven-amp-plugin&lt;/a&gt; ainsi que l'archetype &lt;a href="http://maven.alfresco.com/nexus/content/repositories/alfresco-docs/maven-alfresco-lifecycle/maven-alfresco-archetypes/maven-alfresco-amp-archetype/index.html"&gt;maven-alfresco-amp-archetype&lt;/a&gt;.&lt;br /&gt;Pour l'instant je ne vais utiliser que le plugin pour partir un peu "From scratch".&lt;br /&gt;&lt;br /&gt;En pré-requis bien entendu, j'ai installé un &lt;a href="http://www.eclipse.org/"&gt;Eclipse &lt;/a&gt;3.5, un &lt;a href="http://maven.apache.org/"&gt;Maven &lt;/a&gt;2.2. J'ai défini les variables d'environnements MAVEN_HOME et j'ai configuré mon workspace Eclipse avec la commande&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn -Declipse.workspace=. eclipse:configure-workspace&lt;br /&gt;&lt;/pre&gt;dans le répertoire d'installtion d'Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Procédure de création &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1. Création d'un projet Maven 2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Via une ligne de commande :&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;mvn archetype:create -DgroupId=fr.opensourceecm -DartifactId=alf-amp-osecm -Dpackagename=fr.opensourceecm.alf.amp.osecm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;je crée l'ensemble de l'arborescence d'un projet Maven 2 de type &lt;span style="font-weight: bold;"&gt;jar&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2. Nettoyage&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Je supprime les sous-répertoires des répertoires src/main/java et src/test/java afin de supprimer les classes par défaut générées.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;3. Ajout du modèle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dans le répertoire &lt;span style="font-weight: bold;"&gt;src/main/config/model&lt;/span&gt;, j'ajoute mon modèle de données : &lt;span style="font-weight: bold;"&gt;openSourceEcmModele.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Vous pouvez prendre en exemple le fichier sample "customModel.xml" d'une installation Alfresco dans le répertoire tomcat\shared\classes\alfresco\extension &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;4. Ajout du web-client-config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dans le répertoire &lt;span style="font-weight: bold;"&gt;src/main/config/ui&lt;/span&gt;, j'ajoute la configuration du client web : &lt;span style="font-weight: bold;"&gt;openSourceEcm-web-client-config.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Vous pouvez prendre en exemple le fichier sample "web-client-config-custom.xml.unicode.sample" d'une installation Alfresco dans le répertoire tomcat\shared\classes\alfresco\extension &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0); font-style: italic;"&gt;REMARQUES&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;Au préalable, on aura vérifié que les deux fichiers précédents sont bien formatés et valides en utilisant les principes des modèles dynamiques : &lt;/span&gt;&lt;a style="color: rgb(255, 0, 0); font-style: italic;" href="http://wiki.alfresco.com/wiki/Dynamic_Models"&gt;http://wiki.alfresco.com/wiki/Dynamic_Models&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;5. Ajout module-context.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dans le répertoire &lt;span style="font-weight: bold;"&gt;src/main/config&lt;/span&gt;, je crée le fichier &lt;span style="font-weight: bold;"&gt;module-context.xml&lt;/span&gt;. Via ce fichier, je définis les beans spring pour prendre en compte mon modèle et la configuration de l'interface graphique.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans&gt;&lt;br /&gt;&lt;bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" on="dictionaryBootstrap"&gt;&lt;br /&gt;&lt;property name="models"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;&lt;value&gt;alfresco/module/${groupId}.${artifactId}/model/openSourceEcmModele.xml&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;br /&gt;&lt;bean id="ds_web.configBootstrap" class="org.alfresco.web.config.WebClientConfigBootstrap" method="init"&gt;&lt;br /&gt;&lt;property name="configs"&gt;&lt;br /&gt;&lt;list&gt;&lt;br /&gt;&lt;value&gt;classpath:alfresco/module/${groupId}.${artifactId}/ui/openSourceEcm-web-client-config.xml&lt;/value&gt;&lt;br /&gt;&lt;/list&gt;&lt;br /&gt;&lt;/property&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;6. Ajout du Module.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ce fichier est nécessaire pour identifier le module et ses détails lors de son installation par le &lt;a href="http://dev.alfresco.com/resource/docs/java/repository/org/alfresco/service/cmr/module/ModuleService.html"&gt;&lt;span style="font-weight: bold;"&gt;ModuleService&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Il reprend ici les valeurs définies dans le &lt;span style="font-weight: bold;"&gt;pom.xml&lt;/span&gt; du projet.&lt;br /&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;module.id=${pom.groupId}.${pom.artifactId}&lt;br /&gt;module.title=${pom.name}&lt;br /&gt;module.description=${pom.description}&lt;br /&gt;module.version=${pom.version}&lt;br /&gt;module.repo.version.min=3.3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;7. Modification du pom.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ce fichier est l'unité de travail de Maven. Il s'agit d'un fichier XML qui contient les informations et la configuration du projet utilisé par Maven pour le construire. Il contient aussi les valeurs par défauts des projets.&lt;br /&gt;&lt;pre class="brush: xml"&gt;&lt;br /&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;&lt;br /&gt;&lt;modelversion&gt;4.0.0&lt;/modelversion&gt;&lt;br /&gt;&lt;groupid&gt;fr.opensourceecm&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;alf-amp-osecm&lt;/artifactid&gt;&lt;br /&gt;&lt;packaging&gt;amp&lt;/packaging&gt;&lt;br /&gt;&lt;version&gt;0.0.1&lt;/version&gt;&lt;br /&gt;&lt;name&gt;alf-amp-bdj&lt;/name&gt;&lt;br /&gt;&lt;description&gt;Open Source ECM - Extension&lt;/description&gt;&lt;br /&gt;&lt;br /&gt;&lt;repositories&gt;&lt;br /&gt;&lt;repository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public-snapshots&lt;/url&gt;&lt;br /&gt;&lt;snapshots&gt;&lt;br /&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;br /&gt;&lt;updatepolicy&gt;daily&lt;/updatepolicy&gt;&lt;br /&gt;&lt;/snapshots&gt;&lt;br /&gt;&lt;/repository&gt;&lt;br /&gt;&lt;repository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;&lt;br /&gt;&lt;/repository&gt;&lt;br /&gt;&lt;/repositories&gt;&lt;br /&gt;&lt;pluginrepositories&gt;&lt;br /&gt;&lt;pluginrepository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;&lt;br /&gt;&lt;/pluginrepository&gt;&lt;br /&gt;&lt;pluginrepository&gt;&lt;br /&gt;&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;&lt;br /&gt;&lt;url&gt;http://repository.sourcesense.com/nexus/content/groups/public-snapshots&lt;/url&gt;&lt;br /&gt;&lt;snapshots&gt;&lt;br /&gt;&lt;enabled&gt;true&lt;/enabled&gt;&lt;br /&gt;&lt;updatepolicy&gt;daily&lt;/updatepolicy&gt;&lt;br /&gt;&lt;/snapshots&gt;&lt;br /&gt;&lt;/pluginrepository&gt;&lt;br /&gt;&lt;/pluginrepositories&gt;&lt;br /&gt;&lt;br /&gt;&lt;build&gt;&lt;br /&gt;&lt;resources&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/resources&lt;/directory&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;resource&gt;&lt;br /&gt;&lt;filtering&gt;true&lt;/filtering&gt;&lt;br /&gt;&lt;directory&gt;src/main/config&lt;/directory&gt;&lt;br /&gt;&lt;targetpath&gt;alfresco/module/${groupId}.${artifactId}&lt;/targetpath&gt;&lt;br /&gt;&lt;/resource&gt;&lt;br /&gt;&lt;/resources&gt;&lt;br /&gt;&lt;br /&gt;&lt;plugins&gt;&lt;br /&gt;&lt;plugin&gt;&lt;br /&gt;&lt;groupid&gt;org.alfresco.maven.plugin&lt;/groupid&gt;&lt;br /&gt;&lt;artifactid&gt;maven-amp-plugin&lt;/artifactid&gt;&lt;br /&gt;&lt;version&gt;3.0.1-SNAPSHOT&lt;/version&gt;&lt;br /&gt;&lt;extensions&gt;true&lt;/extensions&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;archive&gt;&lt;br /&gt;&lt;addmavendescriptor&gt;false&lt;/addmavendescriptor&gt;&lt;br /&gt;&lt;/archive&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;br /&gt;&lt;/plugins&gt;&lt;br /&gt;&lt;br /&gt;&lt;/build&gt;&lt;br /&gt;&lt;/project&gt;&lt;br /&gt;&lt;/pre&gt;On note ici la présence du plugin maven-amp-plugin en tant que dépendance. Il permet d'effectuer le packaging du projet en AMP (Cf. balises &lt;span style="font-weight: bold;"&gt;&amp;lt;packaging&gt;amp&amp;lt;/packaging&gt;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Pour trouver la dépendance maven-amp-plugin, on ajoute les balises &lt;span style="font-weight: bold;"&gt;&amp;lt;repositories&gt;&lt;/span&gt;. Elles permettent à Maven de récupérer les différentes dépendances.&lt;br /&gt;&lt;br /&gt;On note aussi la présence des balises &lt;span style="font-weight: bold;"&gt;&amp;lt;resource&gt;&lt;/span&gt; et &lt;span style="font-weight: bold;"&gt;&amp;lt;filtering&gt;true&amp;lt;/filtering&gt;&lt;/span&gt; qui permettent de &lt;span style="font-weight: bold;"&gt;mettre à jour les valeurs ${...} &lt;/span&gt;par les valeurs définies dans le pom.xml.&lt;br /&gt;Par exemple, dans notre cas la valeur de &lt;span style="font-weight: bold;"&gt;module.version=${pom.version}&lt;/span&gt; dans le module.properties va être remplacés par la valeur &lt;span style="font-weight: bold;"&gt;&amp;lt;version&gt;0.0.1&amp;lt;/version&gt;&lt;/span&gt; dans le pom.xml. Utile pour définir une seule fois les valeurs des variables.&lt;repositories&gt;&lt;repositories&gt;&lt;resource&gt;&lt;repositories&gt;&lt;resource&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;8. Compilation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Maintenant nous avons tout pour créer notre module. Il n'y a plus qu'à lancer la commande :&lt;pre class="brush: plain"&gt;mvn clean package&lt;br /&gt;&lt;/pre&gt;On peut ainsi retrouver dans le répertoire target de notre projet, le fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.1.amp&lt;/span&gt; qui sera alors possible d'intégrer dans Alfresco.war.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;9. Intégration&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Effectuez un copier/coller du fichier &lt;span style="font-weight: bold;"&gt;alf-amp-osecm-0.0.1.amp&lt;/span&gt; vers le répertoire amps du répertoire d'installation d'un Alfresco.&lt;br /&gt;&lt;br /&gt;Lancez ensuite le script d'installation des amps dans le répertoire d'installation d'un Alfresco : &lt;span style="font-weight: bold;"&gt;apply_amps.bat&lt;/span&gt; A la fin de celui ci, vous avez un nouveau alfresco.war mis à jour avec votre module.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;10. Lancer Alfresco&lt;/span&gt;&lt;br /&gt;Vous pouvez maintenant lancer Alfresco et vérifier l'intégration du module.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voici selon moi, l'exemple le plus simple de création d'un AMP pour Alfresco.&lt;br /&gt;&lt;br /&gt;Dans le prochain post, on explorera comment gérer les dépendances.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PS : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'ensemble des sources du projet alf-amp-osecm sont téléchargeables à cette adresse : &lt;a href="http://www.box.net/shared/tvkc3olink"&gt;http://www.box.net/shared/tvkc3olink&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-2532396226160844896?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=w8LMVmXR5DM:Y1yud8Xwjqg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=w8LMVmXR5DM:Y1yud8Xwjqg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=w8LMVmXR5DM:Y1yud8Xwjqg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/w8LMVmXR5DM/maven-alfresco-creation-dun-amp.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/S8F2u0M8JwI/AAAAAAAAAxQ/x0yv4w6f7UY/s72-c/AlfrescoMaven.PNG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2010/04/maven-alfresco-creation-dun-amp.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-7308515390791547492</guid><pubDate>Tue, 01 Dec 2009 08:14:00 +0000</pubDate><atom:updated>2009-12-03T16:23:47.093+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Nuxeo</category><title>Nuxeo en 2009</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HuDWht5cbyc/SxWGh3RixMI/AAAAAAAAAxE/CYOK418QDK0/s1600/nuxeo_logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 113px;" src="http://1.bp.blogspot.com/_HuDWht5cbyc/SxWGh3RixMI/AAAAAAAAAxE/CYOK418QDK0/s320/nuxeo_logo.png" alt="" id="BLOGGER_PHOTO_ID_5410378443686855874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Cela faisait un petit temps que je ne vous avait pas fait part de nouvelles à propos de Nuxeo sur ce blog. Je vais essayer de me rattraper un peu...&lt;br /&gt;&lt;br /&gt;Faisons un petit retour sur les différents faits marquant en 2009.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo 5.3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Courant octobre, Nuxeo a annoncé la disponibilité de sa nouvelle version de Nuxeo DM : la &lt;span style="font-weight: bold;"&gt;5.3&lt;/span&gt;.&lt;br /&gt;Cette version est la plus aboutie que Nuxeo nous ai donné de voir. Plus riche fonctionnellement, elle permet de couvrir des besoins plus complexe et plus vaste.&lt;br /&gt;&lt;br /&gt;Parmi la liste des nouvelles fonctionnalités, j'en retiendrai deux.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open Social&lt;/span&gt; : Lorsque l'on discute avec des "clients", on retrouve souvent la demande d'un "portail". Je mets bien le terme "portail" entre guillemets car comme le terme ECM, portail peut tout dire et rien dire en même temps. Ici je parle du portail version gadget/widget à la Google ou la Netvibes. Il s'agit de pouvoir agencer sur une seule et même page un ensemble de petits carrés  afin de former une mosaïque répondant au besoin fonctionnel du client. En d'autre terme comment au sein de mon application puis je aggréger des contenus et des applications provenant de sources différentes (et si cela ressemble à du Google alors c'est encore mieux!!!)&lt;br /&gt;&lt;br /&gt;Pour assouvir ce besoin, Nuxeo a intégré &lt;a href="http://www.opensocial.org/"&gt;http://www.opensocial.org/&lt;/a&gt; La Référence (standard de facto) en terme de création d'application composite. Nuxeo DM devient ainsi aussi bien client que serveur de gadgets Open Social. Pensez y donc lorsque vous voudrez ajouter la fameuse boite Météo.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Publication distante et fédérée&lt;/span&gt; : Il s'agit ici d'un besoin plus orienté technique mais &lt;span&gt;&lt;span id="x_role_document"    style="font-family:Arial;font-size:85%;color:#000000;"&gt;ô&lt;/span&gt;&lt;/span&gt; combien important pour tout intégrateur ou grande entreprise. Pour comprendre l'utilité, prenons l'exemple d'une entreprise qui possède 2 sites distants (géographiquement et fonctionnellement). L'un des sites est le siège tandis que l'autre site est un site de production. Au niveau du siège, l'équipe de développement des produits crée l'ensemble de la documentation des nouveaux produits (schéma du produit, instructions de fabrication, manuel d'utilisation...) et le stocke/partage ensuite au sein de sa base documentaire dans la solution de gestion de contenus. L'équipe de production quant à elle utilise la documentation et faute de documentation le site de production peut ne pas fonctionner correctement. Pour éviter ce genre d'imprévu, on va créer un mode "maitre-esclave" entre la solution centrale du siège et une solution locale de production. Entre ces deux sites, il y aura une circulation et une distribution des informations garantissant ainsi une disponibilité des données. &lt;/li&gt;&lt;/ul&gt;Vous pouvez retrouver l'annonce à l'adresse suivante  &lt;a href="http://www.nuxeo.com/fr/societe/actualites/nuxeo-dm-53"&gt;http://www.nuxeo.com/fr/societe/actualites/nuxeo-dm-53&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si vous préférez la vidéo, vous pouvez retrouver un webinar présentant les fonctionnalités Nuxeo à l'adresse suivante :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.nuxeo.com/fr/societe/evenements/webinar_nuxeo_dm_53" target="_blank"&gt;http://www.nuxeo.com/fr/&lt;wbr&gt;societe/evenements/webinar_&lt;wbr&gt;nuxeo_dm_53&lt;/a&gt; (Français)&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.nuxeo.com/en/about/events/webinar_nuxeo_dm_53" target="_blank"&gt;http://www.nuxeo.com/en/&lt;wbr&gt;about/events/webinar_nuxeo_dm_&lt;wbr&gt;53&lt;/a&gt; (Anglais)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo et le marketing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Depuis un peu plus d'un an maintenant et pour accompagner son essor international, Nuxeo a amélioré considérablement sa présence marketing. En d'autre terme, comment promouvoir et diffuser les différentes offres de la société vers ces clients.&lt;br /&gt;&lt;br /&gt;Concrétement cela se traduit par plus d'évènements aussi bien sur la toile via des webinars, des vidéos, des présentations ou de la participation à des réseaux sociaux que dans des &lt;a href="http://www.nuxeo.com/fr/societe/evenements"&gt;meetings&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A noter : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo World&lt;/span&gt; &lt;a href="http://www.nuxeo.com/fr/societe/actualites/nuxeo-world-2010"&gt;http://www.nuxeo.com/fr/societe/actualites/nuxeo-world-2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'un des points d'orgue de cette politique fut la nomination de &lt;span style="font-weight: bold;"&gt;Cheryl McKinnon&lt;/span&gt; en tant que &lt;span style="font-weight: bold;"&gt;responsable marketing&lt;/span&gt; ou CMO (Chief Marketing Officer en Anglais). Vous me direz oui et alors ? Je vous répondrai qu'elle était d'une part Directrice du Program management-Enterprise 2.0 chez Open Text (éditeur de solutions "propriétaire" dans le monde de la gestion de contenu et l'un des leaders dans ce marché... et donc concurrent de Nuxeo) et d'autre part elle est connue et reconnue dans la communauté ECM internationale. Si vous vouliez une nouvelle preuve de la montée de la gestion documentaire open source, je crois que vous en avez une nouvelle ;-)&lt;br /&gt;&lt;br /&gt;Nb : Si vous voulez suivre Cheryl McKinnon&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Son blog: &lt;a href="http://candyandaspirin.blogspot.com/" target="_blank"&gt;http://candyandaspirin.blogspot.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Nuxeo Blog :&lt;a href="http://blogs.nuxeo.com/cmckinnon/"&gt; http://blogs.nuxeo.com/cmckinnon/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Twitter : &lt;a href="http://twitter.com/CherylMcKinnon"&gt;http://twitter.com/CherylMcKinnon&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les trois axes de conquête&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Au cours de 2009, on a constaté que Nuxeo s'oriente suivant 3 axes (que je considère comme majeure)&lt;br /&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;La recherche sémantique&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Apache Chemistry et CMIS&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo Cloud&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;La recherche sémantique&lt;/span&gt;&lt;br /&gt;Pour être franc, je ne suis pas loin d'être un expert dans la &lt;a href="http://fr.wikipedia.org/wiki/S%C3%A9mantique"&gt;matière &lt;/a&gt;mais je sais &lt;span&gt;&lt;span id="x_role_document"    style="font-family:Arial;font-size:85%;color:#000000;"&gt;ô &lt;/span&gt;&lt;/span&gt;combien il est important d'apporter de l'intelligence aux données que l'on stocke dans un système de gestion de contenus.&lt;br /&gt;&lt;br /&gt;Pour vous faire une idée de l'intégration de cette composante dans Nuxeo, je vais vous renvoyer vers les différentes ressources disponibles. Elles sont constituées &lt;span style="font-weight: bold;"&gt;essentiellement par le travail d'Olivier Grisel&lt;/span&gt; de chez Nuxeo, et &lt;span style="font-weight: bold;"&gt;Yerbabuena Software&lt;/span&gt; qui a développé le premier module Nuxeo dans ce domaine.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Article&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.nuxeo.com/dev/semantic/" target="_blank"&gt;Nuxeo Blogs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2644&amp;amp;blogid=14"&gt;ComputerWorld&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2644&amp;amp;blogid=14" target="_blank"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Vidéos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://vimeo.com/channels/chtijug#7544566"&gt;Présentation d'Olivier Grisel à propos de Nuxeo et de la Semantic lors du Chti'jug (présentation ppt)&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Présentation et évolution du module Sémantique pour Nuxeo par Yerbabuena Software&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.yerbabuenasoftware.com/2009/08/nuxeo-thinks-itself-semantics-for-nuxeo.html"&gt;Nuxeo Thinks itself: Semantics for Nuxeo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.yerbabuenasoftware.com/2009/08/semantics-for-nuxeo-nti-second-demo.html"&gt;Semantics For Nuxeo (NTI) : Second demo released&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.yerbabuenasoftware.com/2009/09/yerbabuena-has-published-third-version.html"&gt;Semantics For Nuxeo (NTI) - Third demo implemented&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.yerbabuenasoftware.com/2009/10/nuxeo-nti-demo-available.html"&gt;Nuxeo NTI demo available&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.yerbabuenasoftware.com/2009/11/semantics-for-nuxeo-nti-fourth-demo.html"&gt;Semantics For Nuxeo (NTI) - Fourth demo implemented&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Nb : Si vous voulez suivre Olivier Grisel : &lt;/span&gt;&lt;a style="font-style: italic;" href="http://twitter.com/ogrisel"&gt;http://twitter.com/ogrisel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;"&gt;Apache Chemistry et CMIS&lt;/span&gt;&lt;br /&gt;Nuxeo a lancé maintenant depuis plusieurs mois l'initiative Chemistry : &lt;a href="http://incubator.apache.org/chemistry/"&gt;http://incubator.apache.org/chemistry/&lt;/a&gt;. Cette initiative tente à devenir l’implémentation open source de référence pour le standard CMIS. Au vue de la fin prochaine de la &lt;a href="http://www.cmswire.com/cms/enterprise-cms/content-management-interoperability-speccmis-ready-for-public-review-005649.php"&gt;revue publique&lt;/a&gt; de ce futur standard, on peut se douter que cette partie va prendre de plus en plus d'importance dans les prochains mois et va contribuer au savoir faire de Nuxeo.&lt;br /&gt;&lt;br /&gt;A noter au passage le très bon article sur CMIS sur le blog &lt;a href="http://jonontech.com/"&gt;jonontech.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jonontech.com/2009/11/26/cmis-jcr-and-osgi-for-idiots/"&gt;http://jonontech.com/2009/11/26/cmis-jcr-and-osgi-for-idiots/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo Cloud&lt;/span&gt;&lt;br /&gt;Vous voulez simplement utiliser Nuxeo sans vous préoccuper de l'infrastructure technique à mettre en place ? Vous voulez une offre distribuée capable de monter en charge facilement ? Alors n'hésitez pas à adopter Nuxeo Cloud, l'offre d'ECM dans les nuages par Nuxeo. Pour plus d'informations :&lt;a href="http://www.nuxeo.com/fr/societe/actualites/nuxeo_annonce_nuxeo_document_management_cloud_edition_loffre_saas_de_sa_ged_collaborative"&gt; http://www.nuxeo.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Et demain ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Le &lt;a href="http://wordofpie.com/2009/12/01/nuxeo-comes-courting/"&gt;dernier post&lt;/a&gt; de &lt;a href="http://www.open-source-ecm.com/2009/09/interview-laurence-hart-senior.html"&gt;Laurence Hart&lt;/a&gt; sur son blog &lt;a href="http://wordofpie.com/"&gt;wordofpie.com&lt;/a&gt; nous renseigne sur les principaux axes d'évolution de l'offre Nuxeo. On retrouve l'axe Archivage (Record Management) et la constitution d'un catalogue d'offre applicative (Gestion de courriers, DAM, Cloud...). On voit ici encore s'étendre le périmètre fonctionnel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voila mesdames, mesdemoiselles et messieurs tout ce que je pouvais résumer sur l'état actuel de l'offre Nuxeo. Je reste à votre disposition pour de plus amples informations et pour partager les différentes nouveautés de Nuxeo.&lt;br /&gt;&lt;br /&gt;Alors à très vite ! &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-7308515390791547492?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=9rm1WZM2Oks:xaJwYhZLaqY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=9rm1WZM2Oks:xaJwYhZLaqY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=9rm1WZM2Oks:xaJwYhZLaqY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/9rm1WZM2Oks/nuxeo-en-2009.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HuDWht5cbyc/SxWGh3RixMI/AAAAAAAAAxE/CYOK418QDK0/s72-c/nuxeo_logo.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/12/nuxeo-en-2009.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-5668897014307161865</guid><pubDate>Fri, 27 Nov 2009 07:59:00 +0000</pubDate><atom:updated>2009-11-27T10:20:49.197+01:00</atom:updated><title>Open Source ECM V2</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jonkie.ch/index.html"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 128px; height: 128px;" src="http://jonkie.ch/img/thumb/tb-tux_peintre.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Comme vous avez pu le constater, &lt;a href="http://www.opensourceecm.fr/"&gt;http://www.opensourceecm.fr/&lt;/a&gt; a changé de look!&lt;br /&gt;&lt;br /&gt;Plus clair, plus spacieux, plus blanc, plus simple, plus collaboratif... en d'autre termes plus mieux !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Les nouveautés &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La présentation des articles passent en mode &lt;span style="font-weight: bold;"&gt;"magazine"&lt;/span&gt;. Sur la page d'accueil il est désormais possible de visualiser les derniers articles publiés sur le blog. Pour aller plus loin, il suffit de cliquer sur le bouton &lt;span style="font-weight: bold;"&gt;"Lire la suite"&lt;/span&gt; pour visualiser l'ensemble de l'article.&lt;br /&gt;&lt;br /&gt;Une &lt;span style="font-weight: bold;"&gt;barre de menu&lt;/span&gt; est apparue! Cruel manque dans mon précédent blog, cette barre va me permettre de créer des liens plus simple et rapide vers un aspect particulier de mon blog. Les 3 sujet sont pour l'instant "&lt;a href="http://www.opensourceecm.fr/2009/04/open-source-ecm-this-is-my-way.html"&gt;A Propos&lt;/a&gt;", "&lt;a href="http://www.opensourceecm.fr/search/label/Interview"&gt;Mes Interviews&lt;/a&gt;", "&lt;a href="http://www.opensourceecm.fr/search/label/Pr%C3%A9sentation"&gt;Mes Présentations&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;A droite de la barre de menu (cette fois ci bien intégré), on retrouve un champ de &lt;span style="font-weight: bold;"&gt;"recherche rapide"&lt;/span&gt;. Utile n'est il pas ?&lt;br /&gt;&lt;br /&gt;Une &lt;span style="font-weight: bold;"&gt;nouvelle mascotte&lt;/span&gt; a fait aussi son apparition!! &lt;span style="font-weight: bold;"&gt;Tuxitecte &lt;/span&gt;de son petit prénom nous arrive du site &lt;a href="http://tux.crystalxp.net/fr.id.13668-tuxitecte.html"&gt;&lt;span style="font-weight: bold;"&gt;http://tux.crystalxp.net/fr.id.13668-tuxitecte.html&lt;/span&gt;&lt;/a&gt; et a été crée par          &lt;a bitly="BITLY_PROCESSED" href="http://igloo.crystalxp.net/kami23"&gt;kami23&lt;/a&gt; sous licence creative commons. On peut retrouver ses oeuvres sur le site &lt;a href="http://jonkie.ch/index.html"&gt;http://jonkie.ch/index.htm&lt;/a&gt;&lt;a href="http://jonkie.ch/index.html"&gt;l&lt;/a&gt;Merci Kami23 !&lt;br /&gt;&lt;br /&gt;Dans la rubrique 2.0, vous pouvez retrouver l'ensemble de &lt;span style="font-weight: bold;"&gt;mes espaces de partage et de "social networking"&lt;/span&gt; dans la rubrique &lt;span style="font-weight: bold;"&gt;Mon Univers.&lt;/span&gt; Dans cette même rubrique n'hésitez pas à vous abonner aux &lt;span style="font-weight: bold;"&gt;flux RSS&lt;/span&gt; sous &lt;span style="font-weight: bold;"&gt;forme de flux&lt;/span&gt; ou sous &lt;span style="font-weight: bold;"&gt;forme d'email&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Les &lt;span style="font-weight: bold;"&gt;catégories &lt;/span&gt;sont passées en mode &lt;span style="font-weight: bold;"&gt;"nuage"&lt;/span&gt; pour une meilleure lisibilité. On s'aperçoit alors très vite de mes centres d'intérêts. ^^&lt;br /&gt;&lt;br /&gt;Chaque article est maintenant &lt;span style="font-weight: bold;"&gt;"retweetable"&lt;/span&gt;. Sur mon ancienne version j'avais essayé des indicateurs Dzone et Digg mais je me suis vite aperçu que ces indicateurs (pour le contenu de ce blog) n'etaient pas forcément très convaincants...&lt;br /&gt;&lt;br /&gt;La&lt;span style="font-weight: bold;"&gt; création des commentaires&lt;/span&gt; devient maintenant beaucoup plus simple et plus clair. En faisant un petit état des lieux de mon ancien blog, je pense que le manque de simplicité a sans doute été un frein... J'espère que maintenant ce manque sera maintenant comblé. Affaire à suivre...&lt;br /&gt;&lt;br /&gt;Chaque article possède désormais le fameux &lt;span style="font-weight: bold;"&gt;"5 star ratings"&lt;/span&gt;. Je ne sais pas si pour vous c'est un réflexe de noter mais pour moi j'essaie au possible de mettre un retour sur chaque article qui en possède un. Si cela fonctionne, ces petites étoiles me permettront d'orienter un peu la constitution de mes articles.&lt;br /&gt;&lt;br /&gt;Chaque article possède aussi les différents liens vers les "&lt;span style="font-weight: bold;"&gt;favoris&lt;/span&gt;" des réseaux connus.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Voilà je crois que j'ai fait le tour du propriétaire... Et pour finir quelques citations qui me tiennent à cœur et que je partage dans ce blog...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;La connaissance est la seule chose qui s'accroit lorsqu'on la partage.&lt;br /&gt;&lt;br /&gt;La connaissance, c'est  partager le savoir qui nous  fait grandir.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Donc don't hesitate! ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-5668897014307161865?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=mr4fTUMH-mc:R1nJ_P7LEfw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=mr4fTUMH-mc:R1nJ_P7LEfw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=mr4fTUMH-mc:R1nJ_P7LEfw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/mr4fTUMH-mc/open-source-ecm-v2.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/11/open-source-ecm-v2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-2559197354175774336</guid><pubDate>Mon, 23 Nov 2009 19:36:00 +0000</pubDate><atom:updated>2009-11-25T09:57:28.996+01:00</atom:updated><title>Comment choisir sa solution de gestion de contenus ?</title><description>Bonjour tout le monde,&lt;br /&gt;&lt;br /&gt;Le sujet du jour, si vous le voulez bien, sera consacré à un éternel problème:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Comment choisir sa solution *CM (Gestion de Contenus)?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(* représentant une lettre de votre choix mais communément un E ou W)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Cette question sous-entend de nombreuses questions, comprend de nombreuses méthodologies et est propre à chaque contexte projet. En d'autres termes il n'est pas facile (voire impossible) de standardiser une seule et unique approche du problème. Néanmoins  il est possible d'éviter les principaux écueils et d'utiliser les meilleures pratiques. C'est ce que nous allons essayer de voir par la suite grâce à une série de règles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Remarque : L'ensemble des règles sont issus des différents retours d'expérience que je cite en référence à la fin de ce post. Elle n'envisage que moi et ne saurait être le remède miracle pour choisir sa solution..&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 1 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Quels sont mes besoins ?&lt;/span&gt;&lt;br /&gt;Dois-je rappeler qu'il s'agit de la base... Sans une définition &lt;span style="font-weight: bold;"&gt;LITTERALE &lt;/span&gt;des besoins, sans des cas d'utilisations &lt;span style="font-weight: bold;"&gt;SCHEMATISES&lt;/span&gt; avec des explications &lt;span style="font-weight: bold;"&gt;LITTERALE&lt;/span&gt;, sans une &lt;span style="font-weight: bold;"&gt;HISTOIRE &lt;/span&gt;des demandes fonctionnelles est il nécessaire de démarrer un projet qui aura pour conséquence le choix d'une solution inadaptée ?&lt;br /&gt;On parle bien ici du fameux &lt;span style="font-weight: bold;"&gt;QUOI&lt;/span&gt; pour &lt;span style="font-weight: bold;"&gt;Quel est le futur cadre de mon travail ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans les projets de gestion documentaire, il faut identifier les types de documents que le système devra gérer. Quels sont leurs formats,  leurs tailles moyennes, leurs fréquences de création, de modification, de suppression. Qui est responsable de ces données...?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 2 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Quelles sont mes contraintes techniques ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Suivant la recommandation de mes urbanistes je dois pouvoir récupérer des informations provenant d'une application de mon SI. Existe t il un connecteur avec cette application ou quels sont les moyens envisagés dans la solution susceptible de récupérer ces informations ?&lt;br /&gt;Suivant les directives de mes architectes, ma future solution doit être basée sur une architecture comprenant des EJB3 et doit pouvoir être installé sur un socle Linux Ubuntu.&lt;br /&gt;Le service d'exploitation a besoin de surveiller la future application via JMX.&lt;/blockquote&gt;Lorsque ce genre de contraintes est connu en amont alors il est beaucoup plus simple (aussi bien pour le client que pour le fournisseur) de choisir une solution adaptée. Ces contraintes peuvent ainsi constituer une liste de MUST-HAVE qui pourrait être discriminant lors d'une comparaison d'offres. A vous de placer le curseur sur l'importance des critères (en sachant bien évidemment que rares sont les solutions remplissant tous les critères )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 3 : &lt;/span&gt;&lt;a href="http://raf-proverbes.blogspot.com/2007/12/les-petits-ruisseaux-font-les-grandes.html" class="l" onmousedown="return clk(this.href,'','','res','3','','0CBEQFjAC')"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Les petits ruisseaux font les grandes rivières&lt;/span&gt;&lt;br /&gt;En partant de ce principe ou du fameux KISS (Keep It Simple Stupid), il vaux mieux commencer simplement, rapidement et humblement pour ensuite vérifier, valider et voir recommencer afin dans un second temps d'étoffer les fonctionnalités offertes. Cette approche permet d'avoir un retour l'utilisateur final plus rapide et améliore ainsi l'adhésion au projet et donc à l'outil.&lt;br /&gt;&lt;br /&gt;Dans le domaine du développement on appelle cela le développement Agile ;o)&lt;span class="__wave_paste" __wave_annotations="" __wave_xml="Dans le domaine du développement on appelle cela le développement Agile ;o)"&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 4 : Pour choisir une solution, la grille de notation tu banniras ! &lt;/span&gt;&lt;br /&gt;Pour avoir pratiqué l'exercice aussi bien en tant que consultant qu'en temps qu'utilisateur les grilles ne servent en fait... pas à grand chose. Sauf à prouver et à dire ce que vous voulez!&lt;br /&gt;&lt;br /&gt;Pour ceux qui n'en aurait jamais vu, voici un petit descriptif :&lt;br /&gt;&lt;br /&gt;Il s'agit en général d'un fichier Excel avec une liste de critères regroupés en famille, qui eux même sont regroupés en groupe, qui eux même sont regroupés en catégorie. Ils  Chaque critère possède ensuite une pondération. Celle ci est parfois aussi envisagée pour les familles, les groupes et les catégories... Cette liste constitue l'axe des Y (de haut en bas).&lt;br /&gt;Ensuite sur l'axe des X (gauche à droite), on va ajouter les différentes solutions que l'on veut soumettre au traitement de la matrice.&lt;br /&gt;L'intersection des lignes de critères avec la colonne de la solution est ensuite complétée par une combinaison de note comprise entre 0 et 5.&lt;br /&gt;Au final en bas de la feuille Excel, il y a la note finale. Résultant de la moyenne des produits entre pondérations et notes, cette note au combien symbolique est le salut pour le responsable du choix de solution puisqu'elle indique l'heureux vainqueur incontestable!&lt;br /&gt;&lt;br /&gt;Dis comme cela c'est simple non ? :o)&lt;br /&gt;&lt;br /&gt;Le principal reproche de cette pratique vient de la "partialité" lors du choix des critères, de la pondération et de la note.&lt;br /&gt;&lt;br /&gt;Exemple :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Partons du besoin : &lt;/span&gt;&lt;br /&gt;Les équipes techniques (conceptrice de nos produits) ont besoin de pouvoir partager leurs bonnes pratiques de manière collaborative.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Critère envisageables : &lt;/span&gt;&lt;br /&gt;Intégration d'un wiki.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Réponses possibles : &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Réponse d'un consultant : Pour la solution X, il existe une possibilité d'intégrer une solution de Wiki via l'API du système de GED.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Réponse d'un éditeur : La solution Y, Une de nos fonctionnalités permet de gérer un système de wiki.&lt;/li&gt;&lt;li&gt;Réponse d'un intégrateur : Avec un peu de code, il est possible de créer un système de wiki simple que l'on pourra brancher au système de GED de la solution Z.&lt;/li&gt;&lt;/ul&gt;Maintenant je vous laisse libre de mettre une note de 0 à 4.&lt;br /&gt;&lt;br /&gt;Au fait avez vous pensez à demander quelle est la syntaxe du moteur ? Votre équipe technique voudra-t-elle écrire en apprenant qu'un mot entre le symbole ' indique un italique, avec [ qu'il s'agit d'un lien... ou bien voudriez vous plutôt un éditeur de texte simple ou riche, avec l'intégration de médias comme des images...?&lt;br /&gt;Ensuite avez vous pensez à comment sont stockés ces contenus ? Comment ils peuvent être réutilisés, partagés et indexés ? et j'en passe...&lt;br /&gt;&lt;br /&gt;Maintenant mettriez vous la même note ?&lt;br /&gt;&lt;br /&gt;Voilà en substance les limites du système matriciel...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 5 : Pour demander le choix d'une solution dans un appel d'offre la grille de critères tu banniras! &lt;/span&gt;&lt;br /&gt;Corollaire du point précédent, si tu ne veux pas que les réponses données soient fausse, alors ne demande pas de remplir une grille. Simple isn't it...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 6 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Avec qui ai je envie de travailler ?&lt;/span&gt;&lt;br /&gt;Règle simple mais pas toujours appliqué. N'est-il pas plus simple de travailler avec des personnes que l'on connait et avec qui on a noué des liens de confiance, de respect, d'honnêteté et d'efficacité ?&lt;br /&gt;&lt;br /&gt;N'hésitez donc pas à rencontrer les différentes personnes qui vont intervenir aussi bien dans la phase de choix, de conception que celle de réalisation. Ceux sont ces personnes qui sont avant tout garantes de la réussite de votre projet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 7 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Vous connaissez votre budget ? Alors dites-le!&lt;br /&gt;&lt;/span&gt;Je sais que ce choix peut paraitre osé suivant les projets, mais il va vous permettre de gagner du temps ! D'une part parce qu'il vous permettra de savoir qui sont les fournisseurs réellement intéressés par le projet, d'autres part il vous permettra de choisir la gamme de produit pouvant répondre à votre problématique.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Remarque : Parlant souvent de solutions open-source, je tiens à rappeler qu'&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;une solution Open Source N'est PAS GRATUITE!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 8 : &lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Open Source ou Propriétaire même combat ou dit autrement aucun préjugé tu dois avoir!&lt;/span&gt;&lt;br /&gt;Bien que je sois un fervent supporter de l'open source, le propriétaire n'est pas à exclure du choix d'une solution (et vice-versa!). Dans le choix d'une solution seul compte &lt;span style="font-weight: bold;"&gt;votre besoin (et votre budget...)!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Si ce besoin est mieux couvert par une solution propriétaire et que celle ci entre dans le budget fixé, pourquoi se priver ?&lt;/span&gt; &lt;span&gt;(et vice-versa!).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 9 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Un prototype tu demanderas!&lt;/span&gt;&lt;br /&gt;Parfois dans les critères de sélection, on trouve la mention : "Expérience utilisatrice à 2.0", ou "Ergonomie et Experience Enrichie". Si vous n'avez jamais installé le produit ou utilisé le produit comment pouvez vous vous fiez à une note ou à une description. C'est dans ces moments la que l'on constate l'utilité d'un prototype.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Petit rappel : Un prototype ne consiste pas à faire en quelques jours ce que le projet demande de faire en plusieurs mois.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Le but d'un prototype est de montrer les forces et faiblesses d'un produit sur un cas d'utilisation particulier. En outre, il vous permettra de voir le degré de maitrise de la solution par un intégrateur, ou le degré d'adaptabilité d'un produit par un éditeur. Ce n'est pas à l'éditeur de montrer ce que le produit sait faire mais bien au produit de montrer ce qu'il sait faire dans votre contexte. Et si le prototype "plante" ce n'est pas grave, il montre au contraire sur quoi il faut réellement travailler.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Règle n° 10 : &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Je n'y comprends rien...&lt;/span&gt;&lt;br /&gt;Vous avez du mal à comprendre les principes régissant un projet de gestion documentaire. Demandez de l'aide tout simplement !&lt;br /&gt;&lt;br /&gt;Voilà en quelques points ma vision de comment choisir sa solution de gestion de contenus.&lt;br /&gt;&lt;br /&gt;L'ensemble de cet article n'aurait été possible sans les innombrables articles traitant du sujet sur le web. Voici quelques morceaux choisis : &lt;span class="__wave_paste" __wave_annotations="" __wave_xml="L'ensemble de cet article n'aurait été possible sans les innombrables articles traitant du sujet sur le web. Voici quelques morceaux choisis : "&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[FR] BPMBulletin : &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.bpmbulletin.com/2009/11/23/5-facteurs-cles-de-succes-pour-mettre-en-oeuvre-une-application-ecm-bpm/"&gt;http://www.bpmbulletin.com/2009/11/23/5-facteurs-cles-de-succes-pour-mettre-en-oeuvre-une-application-ecm-bpm/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[ENG] BIG MEN ON CONTENT&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://bigmenoncontent.com/2009/11/03/8-dimensions-of-cms-technical-evaluation/"&gt;http://bigmenoncontent.com/2009/11/03/8-dimensions-of-cms-technical-evaluation/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[ENG] BLEND INTERACTIVE &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blendinteractive.com/blog/business/getting-good-rfp-response/"&gt;http://blendinteractive.com/blog/business/getting-good-rfp-response/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[ENG] CMS WATCH &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cmswatch.com/Trends/1657-Beyond-the-RFP"&gt;http://www.cmswatch.com/Trends/1657-Beyond-the-RFP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cmswatch.com/Feature/97-Implementation-Choices"&gt;http://www.cmswatch.com/Feature/97-Implementation-Choices&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[ENG] CONTENT HERE&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(My favourite!)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.contenthere.net/2008/11/leading-requirements.html"&gt;http://www.contenthere.net/2008/11/leading-requirements.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.contenthere.net/2007/05/how-to-select-a-cms.html"&gt;http://www.contenthere.net/2007/05/how-to-select-a-cms.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.contenthere.net/2007/05/how-to-select-a-cms.html"&gt;http://www.contenthere.net/2009/11/when-it-is-not-all-about-the-software.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.contenthere.net/2008/02/the-rfp-is-dead-long-live-the-rfp.html"&gt;http://www.contenthere.net/2008/02/the-rfp-is-dead-long-live-the-rfp.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.contenthere.net/2008/02/to-tell-or-not-to-tell.html"&gt;http://www.contenthere.net/2008/02/to-tell-or-not-to-tell.html&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[ENG] JON ON TECH&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(A lire absolument !)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jonontech.com/2009/04/12/which-comes-first-the-crew-or-the-cms/"&gt;http://jonontech.com/2009/04/12/which-comes-first-the-crew-or-the-cms/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-2559197354175774336?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=UNzXObOYOkU:f5XHL3iYg6E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=UNzXObOYOkU:f5XHL3iYg6E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=UNzXObOYOkU:f5XHL3iYg6E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/UNzXObOYOkU/comment-choisir-sa-solution-de-gestion.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>2</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/11/comment-choisir-sa-solution-de-gestion.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-1442176209743653765</guid><pubDate>Tue, 17 Nov 2009 10:59:00 +0000</pubDate><atom:updated>2009-11-23T22:49:21.434+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Stratégie</category><category domain="http://www.blogger.com/atom/ns#">ECM</category><category domain="http://www.blogger.com/atom/ns#">Technologies</category><category domain="http://www.blogger.com/atom/ns#">wave</category><title>Wave &amp; ECM : Mes impressions</title><description>Bonjour tout le monde!&lt;br /&gt;&lt;br /&gt;Si vous ne vivez pas dans une autre planète, vous avez sans doute entendu parler du phénomène ou de la vague&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;G&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;O&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;O&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;G&lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;LE&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;W&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;A&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;V&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;E&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt; Ayant obtenu le précieux sésame depuis quelques semaines, j'ai pu tester l'outil et me faire une opinion.&lt;br /&gt;&lt;br /&gt;Je ne vais pas vous faire une n-ieme présentation sur le sujet. Les ressources ne manquent pas.&lt;br /&gt;Non aujourd'hui je vais simplement vous faire part de mes récentes pensées sur les relations qui existent entre l'ECM ou CM en général avec Google Wave... Google wave va t il écraser l'ECM ou bien va t il l'épouser ? Mouton à cinq pattes ou réelle avancée technologique ?&lt;br /&gt;&lt;span style="font-size:130%;"&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Collaboration et communication&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Tout d'abord Google Wave est comme&lt;a href="http://wave.google.com/help/wave/about.html"&gt; sa définition&lt;/a&gt; le dit :&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Google Wave is an online tool for real-time communication and collaboration. A wave can be both a conversation and a document where people can discuss and work together using richly formatted text, photos, videos, maps, and more.&lt;/blockquote&gt;un outil qui permet d'échanger de l'information (communiquer quoi...) entre une ou plusieurs personnes de manière synchrone (interactive) ou asynchrone (statique)...&lt;br /&gt;&lt;br /&gt;Faisons un petit état des lieux. Dans la catégorie des outils de collaboration et de communication   il existe :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Courrier_%C3%A9lectronique"&gt;E-Mail&lt;/a&gt; : Il s'agit d'un service de transfert de messages envoyés par un système de messagerie électronique via un réseau informatique (principalement Internet) dans la boîte aux lettres électronique d’un destinataire choisi par l’émetteur. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.futura-sciences.com/fr/definition/t/internet-2/d/forums_1892/"&gt;Forums &lt;/a&gt;: Lieu d'échange où les internautes posent ou répondent à une question donnée. Les différentes contributions, accessibles à tout à chacun, forment un fil de discussion (thread en anglais). Chaque forum de discussion se consacre à un thème précis. &lt;/li&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Messagerie_instantan%C3%A9e"&gt;Messagerie Instantanée&lt;/a&gt; : permet l'échange instantané de messages textuels entre plusieurs ordinateurs connectés au même réseau informatique, et plus communément celui d'Internet. Contrairement au courrier électronique, ce moyen de communication est caractérisé par le fait que les messages s'affichent en quasi-temps-réel et permettent un dialogue interactif. &lt;/li&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Liste_de_diffusion"&gt;Mailling List&lt;/a&gt; : est une utilisation spécifique du courrier électronique qui permet le publipostage d'informations aux utilisateurs qui y sont inscrits.&lt;/li&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Podcast"&gt;Podcast &lt;/a&gt;: le podcasting permet aux utilisateurs l'écoute ou le téléchargement automatique d'émissions audio ou vidéo pour les baladeurs numériques en vue d'une écoute immédiate ou ultérieure.&lt;/li&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Wiki"&gt;Wiki &lt;/a&gt;: Il s'agit d'un site Internet qui offre aux utilisateurs la possibilité de procéder à l'édition des pages du site.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Edition collaborative de document : Ensemble d'outils permettant de créer de manière conjointe au sein d'un groupe un ou plusieurs documents.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Maintenant mettez le tout dans une seule et même application, ajoutez y une forte dose de &lt;a href="http://fr.wikipedia.org/wiki/Application_composite"&gt;Mashup&lt;/a&gt; à base de widgets, secouez le tout et vous obtiendrez un &lt;span style="font-weight: bold;"&gt;Google Shake à la sauce collaborative&lt;/span&gt; c'est à dire &lt;span style="font-weight: bold;"&gt;Google Wave!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Google Wave : Un Outil de Collaboration Génétiquement Modifié.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Voilà ce qu'il ressort lorsque l'on utilise Google Wave. Cet OVNI est impossible à ranger dans une case et c'est bien cela qui étonne et qui dérange en même temps la plupart des utilisateurs. Du déjà vu pour certains, une révolution pour d'autres. Et vous comment le voyez vous ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span&gt;Google Wave&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : One ring to rule them all ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Faisons une comparaison avec le téléphone portable. Il y a 10 ans, le téléphone portable servait à ... Téléphoner! Ensuite il nous a permit d'envoyer des SMS, des MMS, des E-Mails... Il s'est transformé en lecteur de musique portable, puis album de photos, puis salle de cinéma... De nos jours il nous sert à nous localiser, à aller sur internet ou encore à jouer... Eh oui il existe une application pour à peu près tout!&lt;br /&gt;&lt;br /&gt;Et bien on peut comparer Google Wave à un téléphone portable de Xe génération pour les moyens de communication. Il va nous permettre de faire tout un tas de trucs plus géniaux (ou pas suivant les idées...) entre toi et moi (pourquoi pas!) ou entre toi et nous (j'ai des copains aussi!) ou entre vous et nous (parce que toi aussi tu as des amis) ou au sein d'une communauté maintenant, demain ou encore plus tard.&lt;br /&gt;&lt;br /&gt;Dans la modélisation de contenu on appellerait cela un contenu générique ou primaire(Google a-t-il mis un noeud dans le patrimoine génétique d'une Wave... Mystère...) capable de s'adapter et d'être adapté.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span&gt;Alors Google Wave&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : ECM Killer ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Et bien au vu de son patrimoine génétique... Ma réponse est clairement NON! &lt;span style="font-size:78%;"&gt;(Après je peux clairement me tromper...) &lt;/span&gt;&lt;br /&gt;Il s'agit au contraire d'un très prometteur PLUS (dans le sens + ) pour rendre la gestion de contenu plus simple(?). En effet l'intérêt d'une wave c'est qu'il&lt;br /&gt;&lt;ul&gt;&lt;li&gt;n'est pas répliqué sur chacun des clients (comme dans chaque boite aux lettres dans le cas des e-mails)&lt;/li&gt;&lt;li&gt;est partageable facilement (on peut facilement dire qui a le droit ou pas d'être dans une wave)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;est classifiable et donc indexable et donc trouvable (c'est quand même le métier de google à la base de retrouver...)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;est modifiable à souhait! (tout le monde peut mettre sa petite touche personnelle)&lt;/li&gt;&lt;li&gt;peut être synchrone et/ou asynchrone (tu n'es pas là... tant pis je te laisse un message. Tu es là alors on peut aller plus vite!)&lt;/li&gt;&lt;li&gt;gère les versions (Playback... j'aimerai bien voir qui a ajouté quoi à quel moment)&lt;/li&gt;&lt;li&gt;est deployable aussi bien chez un fournisseur que chez moi à l'abri derrière mon firewall!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Google wave a pris certains principes fondateurs de la gestion de contenu (versionning, catégorisation, edition collaborative, gestion des utilisateurs...) mais n'est pas en soit un "outil de gestion de contenu" (comme je l'ai dis précédemment, on ne peut le mettre dans une case...) . Sa matière première est le contenu! Content is everywhere and is everything... Wave permet de créer, diffuser l'information facilement et simplement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Google Wave en entreprise ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Google Wave va bien entendu attérir en entreprise comme la plupart des outils Google. Qui ne s'est jamais servi d'un Gmail, d'un Google maps, d'un Google reader ou de Google tout court dans un cadre professionnel ? (Oui bon on exclut ceux qui n'ont pas Internet au travail.) Par contre cela ne sera pas pour tout de suite.. D'une part parce qu'il s'agit d'une phase de Beta (une vrai de vrai), d'autre part parce qu'il faut que tout le monde commence à domestiquer le monstre pour en faire fidèle un compagnon puis enfin parce qu'il faut inventer de nouvelles pratiques basées (ou pas) sur les anciennes bonnes pratiques.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Qui va en profiter ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tout d'abord &lt;span style="font-weight: bold;"&gt;les petits &lt;/span&gt;seront encore les plus chanceux pour une raison simple.&lt;br /&gt;Pourquoi investir dans un outil de wiki + messagerie instantanée + e-mail + outil de collaboration + forum + ... alors qu'il me suffit de connaitre simplement un outil et qui, de plus, me permet de m'abstraire  de son infrastructure informatique...(ou pas suivant les méthodes de déploiement que l'on aura choisi.)  Une offre PME/PMI devrait être vite disponible comme c'est déjà le cas pour les Google Apps.&lt;br /&gt;&lt;br /&gt;Ensuite &lt;span style="font-weight: bold;"&gt;les créateurs d'apps&lt;/span&gt;&lt;br /&gt;Comme pour l'Iphone, Faceboox et autres moyens de communication dans le vent, on va voir apparaitre (et c'est déjà le cas) plein de gadgets, widgets et autres add-ons pour enrichir notre expérience utilisatrice. Il est à parier que de nouveaux clients vont aussi apparaître.&lt;br /&gt;&lt;br /&gt;Après &lt;span style="font-weight: bold;"&gt;les intégrateurs tiers&lt;/span&gt;.&lt;br /&gt;Une première intégration envisageable sera l'archivage des waves c'est à dire comment garder à long terme un échange d'informations entre une ou plusieurs personnes. Cela s'avérera moins gourmand en volumétrique que pour les e-mails mais sans doute plus complexe car intégrant plus de sources de données externes.&lt;br /&gt;&lt;br /&gt;Les autres intégrations seront celles que l'on voit récursivement c'est à dire intégration avec l'existant (outils bureautique, outils de gestion de contenus bien sur, applications métiers, système de sécurité...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Et puis nous&lt;/span&gt;... Parce que nous sommes à l'origine de tout.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Finalement&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Autrefois Windows offrait tous les services grâce à un système d'exploitation + des logiciels.&lt;br /&gt;&lt;br /&gt;Maintenant Google offre tous les services grâce à Internet et des Apps.&lt;br /&gt;&lt;br /&gt;Cela devient de plus en plus visible et palpable. Impressionnant pour un intégrateur tel que moi, normal pour des utilisateurs lambda... C'est aussi cela la magie de l'informatique !&lt;br /&gt;&lt;br /&gt;Merci de m'avoir lu et à très bientôt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;PS : Il me reste 2 invitations Google Wave... Les 2 premiers à poster un commentaire seront les heureux élus! &lt;/span&gt;&lt;span style="font-style: italic;"&gt;C'est aussi cela la magie des waves. La chasse à l'invitation...&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-1442176209743653765?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=Ap9yX4CL-kI:LRl9VUNEfO8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=Ap9yX4CL-kI:LRl9VUNEfO8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=Ap9yX4CL-kI:LRl9VUNEfO8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/Ap9yX4CL-kI/wave-ecm-mes-impressions.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>5</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/11/wave-ecm-mes-impressions.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-6232887940756080668</guid><pubDate>Fri, 30 Oct 2009 11:02:00 +0000</pubDate><atom:updated>2009-11-02T08:48:30.527+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Présentation</category><category domain="http://www.blogger.com/atom/ns#">Nuxeo</category><category domain="http://www.blogger.com/atom/ns#">OpenSource</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">Editeur</category><category domain="http://www.blogger.com/atom/ns#">drupal</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">ECM</category><category domain="http://www.blogger.com/atom/ns#">KnowledgeTree</category><title>Ma famille de solutions Open Source ECM</title><description>Hello tout le monde,&lt;br /&gt;&lt;br /&gt;Ci-dessous vous pouvez retrouver un ensemble de présentations pour apprendre comment installer une petite collection de solution Open Source ECM sur des environnements virtuels.&lt;br /&gt;A la fin de chaque présentation, vous pouvez retrouver un ensemble de liens vers chaque aspect de la solution.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;PS : Ces installations servent de base pour des tests et ne seraient en aucun cas une base pour une mise en production...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mettre en place son environnement virtuel&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21823447/VMWARE-ENG-How-To-Simple-install-and-configure-an-Ubuntu-Virtual-Server"&gt;Ubuntu 9.04&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Installation&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Simple &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21822580/VMWARE-ENG-How-To-Simple-install-Alfresco-3-2R-CE-on-an-Ubuntu-Virtual-Server"&gt;Alfresco&lt;/a&gt;&lt;/li&gt;&lt;li&gt;EzPublish (Work in progress)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Drupal (Work in progress)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21822668/VMWARE-ENG-How-To-Simple-install-GateIn-on-an-Ubuntu-Virtual-Server"&gt;GateIn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21822836/VMWARE-ENG-How-To-Simple-install-Jahia-on-an-Ubuntu-Virtual-Server"&gt;Jahia&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21822924/VMWARE-ENG-How-To-Simple-install-KnowledgeTree-on-an-Ubuntu-Virtual-Server"&gt;KnowledgeTree&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribd.com/doc/21823169/VMWARE-ENG-How-To-Simple-install-Nuxeo-5-3-DM-on-an-Ubuntu-Virtual-Server"&gt;Nuxeo&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Installation Avancée&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Alfresco (Work in progress)&lt;/li&gt;&lt;li&gt;Nuxeo (Work in progress)&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Dans un futur plus ou moins proche, j'essaierai de partager d'autres présentations sur certains aspects comme le clustering, connexion LDAP, Intégration Continue etc...&lt;br /&gt;&lt;br /&gt;Si vous avez des retours ou des liens n'hésitez surtout pas!&lt;br /&gt;Bonne  installation !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-6232887940756080668?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=-8i3UySAnfQ:D0Rri8wxsho:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=-8i3UySAnfQ:D0Rri8wxsho:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=-8i3UySAnfQ:D0Rri8wxsho:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/-8i3UySAnfQ/ma-famille-de-solutions-open-source-ecm.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>3</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/10/ma-famille-de-solutions-open-source-ecm.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-3407321578475348398</guid><pubDate>Mon, 17 Aug 2009 16:21:00 +0000</pubDate><atom:updated>2009-08-18T13:03:56.323+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interview</category><category domain="http://www.blogger.com/atom/ns#">ECM</category><category domain="http://www.blogger.com/atom/ns#">Portail</category><category domain="http://www.blogger.com/atom/ns#">WCM</category><category domain="http://www.blogger.com/atom/ns#">Solutions</category><title>Interview : Julien Viet, Product Manager eXo platform SAS</title><description>Bonjour chers lecteurs et lectrices,&lt;br /&gt;&lt;br /&gt;Aujourd’hui je vais de nouveau vous présenter un voisin du Sud de la France avec qui je vais aborder le sujet des portails d'entreprise et l'écosystème s'y attachant.&lt;br /&gt;&lt;br /&gt;Aujourd'hui j'ai donc l'honneur et le privilège d'interviewer &lt;b&gt;Julien Viet, product manager au sein de la société eXo platform SAS et l'une des références communautaire sur les projets de portails d'entreprise.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bonjour Julien,&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;En premier, un grand merci de m'accorder un peu de votre temps pour répondre à cette interview et pour partager votre vision des portails, de la gestion de contenu et du monde open-source à travers ce post.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Commençons tout d'abord par les présentations. Serait-il possible de vous connaître un peu plus ? Quel est votre métier et quelles sont vos responsabilités actuellement au sein de la société eXo Platform ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    Mon poste actuel est Chef de Produit chez eXo Platform où je m'occupe spécialement du portail qui est à la base de l'offre d'eXo Platform. Mon métier est à mi chemin entre le partie marketing du produit qui consiste à définir les fonctionnalités du produit et sa réalisation technique pas nos équipes de développement. Je collabore en amont avec le avec le chef produit principal avec lequel nous définissons les besoins du portail et son évolution et en aval avec le chef de projet portail qui se charge de son implémentation.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Quel a été votre parcours professionnel pour arriver à ce poste ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Mon parcours professionnel s'est toujours orienté grâce à des opportunités qui se sont offertes à moi au bon moment.&lt;br /&gt;&lt;br /&gt;Après un premier et second universitaire dans les mathématiques et informatique, j'ai intégré une école d'ingénieur (INT Telecom) et pendant la dernière année d'étude j'ai découvert Java 2 Enterprise Edition et le coté technique m'a fasciné tout e suite, c'est à dire que je voulais savoir comment la plateforme entière fonctionnait. Je me suis donc orienté naturellement vers l'open source et le serveur d'application JBoss qui m'a permis de découvrir et de comprendre le middleware en général.&lt;br /&gt;&lt;br /&gt;Je suis passé ensuite contributeur sur le serveur et en 2003 j'ai été embauché pas JBoss Group Europe, à l'époque la structure était toute jeune, une quinzaine d'employés, j'étais parmi les 7 employés initiaux de JBoss Group Europe fondé par Sacha Labourey. En 2004 j'ai commencé à écrire un prototype de portail et de fil en aiguille le projet JBoss Portal a été crée.&lt;br /&gt;&lt;br /&gt;En 2008, je voulais m'orienter vers de nouvelles perspectives et donc j'ai accepté un poste à peu près équivalent chez eXo Platform, ma motivation principale étant de me retrouver dans une infrastructure où le portail est au cœur de l'offre produit, contrairement à JBoss où le portail était une couche assez éloignée du cœur de métier. Je désirais aussi avoir une expérience produit plus aboutie et moins technique.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Vous avez toujours intégré des sociétés dîtes open-source. Pour les jeunes qui me lisent et qui ne connaissent pas forcément le monde de l'entreprise, existe-t-il des différences entre des sociétés/éditeurs open-source et leurs équivalentes propriétaires en terme travail jour après jour ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Je pense que fondamentalement l'objectif est le même, à savoir créer un produit. Les principales différences concernent le modèle économique de l'entreprise ainsi que le mode de collaboration, mais ceci n'est pas une généralité. Dans mon cas, le modèle économique de l'entreprise a été basé sur la souscription et le mode de travail distribué.&lt;/blockquote&gt;&lt;b&gt;Maintenant intéressons nous à la société eXo Platform. Tout d'abord qu'est ce qu'un portail selon la vision d'eXo Platform et quelle est votre vision ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;eXo Platform considère le portail comme la plateforme qui permet à un écosysteme d'applications d'être déployé au cœur de l'entreprise. Les applications peuvent aussi bien être des applications développées par eXo comme par exemple la suite collaborative eXo CS, des applications d'entreprise écrites en Java ou des gadgets opensocial qui consomment des services REST. Le but du portail est d'intégrer toutes ces technologies afin que l'utilisateur puisse les utiliser dans un portail unique. Le portail fournit divers services utilisés par ces applications telle que l'agrégation de contenu, la gestion de l'identité, l'aspect social.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;Pouvez-vous nous en dire plus concernant les différentes solutions et les différents produits d'eXo (eXo Portal, eXo WebOs, eXo ECM, eXo CS…) ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Comme expliqué précédemment, le portail est l'offre de base qui sert plateforme au déploiement des autres produits eXo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;    eXo WebOS&lt;/b&gt;, basé sur le portail, offre une vue orienté bureau des applications qui est utilisé quand l'utilisateur a besoin de se retrouver dans un environnement de ce type auquel il est habitué.&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;eXo DMS&lt;/b&gt; est l'outil de gestion documentaire basé sur eXo JCR qui est notre implémentation de la spécification Java Content Repository.&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;eXo WCM&lt;/b&gt; est l'offre CMS d'eXo basé sur le portail et sur le DMS, le portail s'occupant de la partie visuelle et le DMS se chargeant naturellement de la gestion des sites avec notamment la gestion des versions de sites, du mode prévisualisation. La combinaison du portail et du DMS font que WCM est un outil puissant et très abouti.&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;eXo CS&lt;/b&gt; est la suite collaborative qui comprend un client mail, un calendrier, un carnet d'adresse et un outil de chat. Les calendrier et carnets d'adresse pouvant être partagés entre les utilisateurs.&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;eXo KS&lt;/b&gt; est la suite de gestion de connaissance qui fournit un forum et une foire aux questions.&lt;br /&gt;&lt;br /&gt;  Enfin nous avons finalement &lt;b&gt;eXo Social &lt;/b&gt;qui fournit un support transverse de fonctions sociales aux applications, comme le graphe social, la notion d'espace collaboratif.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;Comment qualifiez-vous ces produits ? L'ensemble des composants constitue t il un portail d'agrégation d'un ensemble de composants,  une plateforme, une solution verticale spécialisée... ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    Nous fournissons avant tout une plateforme avec comme objectif principal la collaboration et la gestion de documents. Certains éditeurs reprennent nos produits et créent des solutions verticales basées dessus.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;Quels sont les dépendances entre ces différents produits ? Faut-il posséder un eXo Portal pour avoir un ou plusieurs produits annexes ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  Oui, eXo Portal est la plateforme au sens littéral du terme.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Récemment, eXo Platform et JBoss ont communiqué sur le "mariage" des projets eXo Portal et JBoss Portal. Connaissant vos relations avec ces 2 sociétés (vous avez été leader JBoss Portal avant d'intégrer eXo Platform), on se doute de votre forte implication à ce projet. Pouvez-vous nous en parler un peu plus ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    J'en ai un peu parlé sur le blog d'eXo Platform (&lt;a title="http://blog.exoplatform.org/2009/06/10/exo-jboss-partnership/" href="http://blog.exoplatform.org/2009/06/10/exo-jboss-partnership/" id="hw4g"&gt;http://blog.exoplatform.org/2009/06/10/exo-jboss-partnership/&lt;/a&gt;) et dans une interview des cast codeurs (&lt;a title="http://blog.exoplatform.org/2009/06/22/cast-codeurs-french-interview-of-julien-viet-exo-and-thomas-heute-rhjboss/" href="http://blog.exoplatform.org/2009/06/22/cast-codeurs-french-interview-of-julien-viet-exo-and-thomas-heute-rhjboss/" id="g0v8"&gt;http://blog.exoplatform.org/2009/06/22/cast-codeurs-french-interview-of-julien-viet-exo-and-thomas-heute-rhjboss/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;  L'intérêt principal de la collaboration provient de l'orthogonalité des deux entreprises. JBoss est une entreprise qui fait du middleware et eXo de l'applicatif. Pour JBoss, le portail est quasiment tout en haut dans sa pile produit et pour eXo au contraire c'est la base de tous les produits. Le rapprochement entre les deux entreprises s'est donc fait naturellement et petit à petit, chacune y voyant surtout des intérêts. Un des points importants dans le partenariat est l'aspect humain avec plusieurs équipe qui doivent collaborer, mon passage de JBoss à eXo joue certainement un rôle afin que la collaboration des équipes se déroule sans problème. Thomas Heute est le co-lead du projet et est mon alter ego chez Red Hat. Au final nous collaborons sur le portail afin de créer le meilleur portail.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Quelles sont les principaux changements et répercussions à prévoir sur la gamme des solutions eXo cités précédemment ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    Pour eXo cela ne change pas beaucoup de chose en terme produit, la seule différence étant plutôt la gestion du projet qui est faite en collaboration avec Red Hat. &lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;On constate sur le marché des portails dits « traditionnels » qu'ils intègrent de plus en plus des modules de gestion de contenus. S'agit-il d'une évolution logique ? Les portails vont ils rentrer dans le domaine fonctionnel de l'ECM ou seront ils la plateforme de base qui permettra d'agréger des applications hétérogènes ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Je le pense certainement, en général les portails fournissent du contenu mais en général plutôt orienté web via des CMS ce qui est souvent insuffisant pour des besoins de gestion documentaire pur. Un des points fort d'eXo Platform est d'avoir deux produits distincts, le portail et le DMS, mais qui sont parfaitement intégrés  aussi bien en termes de service que d'interface utilisateur. A mon avis c'est la seule solution de ce type sur le marché du portail et de l'ECM. Il est ainsi possible de fournir par le portail, l'application DMS ainsi que d'autres applications grâce à la technologie des portlets.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;Quels sont les avantages de cette approche par rapport à des acteurs dits « pure player ECM » ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    Si on regarde les éditeurs ECM purs, on se rend compte qu'ils ont l'ambition de fournir les même services que les portails sans toutefois y parvenir sur le point de vue technologique. Ces éditeurs comprennent l'aspect fonctionnel du portail mais pas la nature middleware du portail et cet aspect d'agrégation assez technique. Souvent ils négligent le standard Portlet (JSR286) et fournissent l'intégration de composant par une technologie propriétaire. La première conséquence est que l'utilisateur couple ses applications au produit et ensuite ces technologies n'ont pas la degré de maturité du standard Portlet. Le standard Portlet a été conçu pour l'agrégation d'applications hétérogènes.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;On parle de plus en plus de la confrontation entre le monde open source et le monde propriétaire.  Est-il possible de comparer une solution telle que la votre et des solutions Propriétaire ? Existe-t-il un écart ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    Du fait de la nature à la carte de l'offre produit d'eXo, il est possible de confronter nos offres à différent types de solutions. Nous adressons naturellement le marché du portail, de la gestion documentaire, du collaboratif, du CMS et du tout intégré à la sharepoint.&lt;/blockquote&gt;&lt;b&gt;Parlons maintenant un peu d'histoire. Dans votre carrière comment avez-vous constaté l'évolution du marché des portails ? &lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt; En fait je suis arrivé sur le marché du portail un peu tard et mon premier produit JBoss Portal était un outsider, ceci ne m'a pas empêché de le placer dans le top 3 des portails open source Java (avec notamment eXo Portal). A cette époque il y avait 7 ou 8 portails open source mais la plupart d'entre eux aujourd'hui ont disparu ou alors n'ont plus un développement très actif, cela vient du fait que derrière chaque portail open source présent encore aujourd'hui il y a une entreprise, c'est le modèle open source professionnel, longtemps évangélisé par Marc Fleury.&lt;br /&gt;&lt;br /&gt;  Du coté propriétaire il y a eu énormément de consolidation aussi, notamment par le biais de rachats je crois qu'aujourd'hui Oracle possède 4 ou 5 portails... Au final clairement aujourd'hui il y a eu une grosse consolidation du marché, de manière similaire à ce qui s'est passé pour les serveurs d'application.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;En tant que membre de la communauté open source faîtes vous parti d’une communauté de référence comme les Java User Group... ? Avez-vous réalisé des publications ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;    Avec plusieurs personnes de Marseille nous sommes en train de fonder le MarsJUG, nous serons actifs dès septembre 2009. Les deux années précédentes ont tout simplement été énormes à ce niveau là avec l'explosion du nombre de JUG en France, l'initiative étant partie de Paris avec Antonio Goncalves qui a fondé le Paris JUG. Quand aux publications, je n'ai rien publié de manière formelle, mon blog même s'il n'est pas très actif me sert à véhiculer mes idées.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pour finir sur une note annexe, quels sont vos blogs, liens et Twitter préférés sur l'informatique en général ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    Il y a quelques années je lisais pas mal d'articles sur TheServerSide, OnJava et autres mais depuis que Java est devenu très mature, ces sites n'offrent plus beaucoup d'articles novateurs. Je lis pas mal de blogs mais je tombe rarement sur des blogs qui sont des mines d'or d'information. Il me semble que les articles techniques intéressants se font de plus en plus rare et ça me désole, il y a pas mal de blog intéressants que je lit même si la plupart des gens intéressants semblent avoir de moins en moins de temps pour publier:&lt;/blockquote&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Le très récent mais incontournable podcast Les Cast Codeurs fait pas des potes (&lt;a title="http://lescastcodeurs.com/" href="http://lescastcodeurs.com/" id="cgpc"&gt;http://lescastcodeurs.com/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Le fameux Bile Blog qui m'a fait souvent mourir de rire, plus très actif non plus (&lt;a title="http://www.bileblog.org/" href="http://www.bileblog.org/" id="lj2t"&gt;http://www.bileblog.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Le blog d'un ami qui a un projet très intéressant appelé Envers qui permet de versionner des objets persistants (&lt;a title="http://www.warski.org/blog/" href="http://www.warski.org/blog/" id="rx0-"&gt;http://www.warski.org/blog/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Le blog de Romain Guy qui publie des articles techniques intéressant et aussi de superbes photos, étant moi même passionné de photo (&lt;a title="http://www.curious-creature.org/" href="http://www.curious-creature.org/" id="es3g"&gt;http://www.curious-creature.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Manageability, un blog assez technique mais plus très actif (&lt;a title="http://www.manageability.org/" href="http://www.manageability.org/" id="n69u"&gt;http://www.manageability.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;La newsletter des Java Specialist qui publie des articles très intéressants et ce depuis de nombreuses années (&lt;a href="http://www.javaspecialists.eu/archive/archive.jsp" target="_blank"&gt;http://www.javaspecialists.eu/archive/archive.jsp&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;    Au final je me rends compte que peu de contenu intéressant est publié de nos jours. Je suis ouvert à toute suggestion de lecture si vos lecteurs m'en proposent. Après je lis pas mal de blog sur la cuisine et le retro gaming pour la détente :-) .&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;Un dernier mot avant de se quitter ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Comme j'ai la possibilité de m'exprimer voici quelques pensées je vais faire un j'aime/j'aime pas à la ciel mon mardi:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;j'aime l'open source&lt;/li&gt;&lt;li&gt;j'aime la maturité à laquelle sont parvenues les plateformes Java SE et Java EE&lt;/li&gt;&lt;li&gt;je n'aime pas les langages dynamiques&lt;/li&gt;&lt;li&gt;je n'aime pas les fluents interfaces, ça frise le ridicule&lt;/li&gt;&lt;li&gt;j'aime les commentaires de code source qui disent du mal d'autre frameworks&lt;/li&gt;&lt;li&gt;je n'aime pas les solutions et frameworks simplistes (style Prevayler ou Picocontainer)&lt;/li&gt;&lt;li&gt;je n'aime pas qu'on me dise que l'injection de dépendance est révolutionnaire, au final ce n'est qu'un modèle de programmation pratique&lt;/li&gt;&lt;li&gt;je n'aime pas que l'on juge la qualité d'un produit sur la taille de ses jars, aujourd'hui on a des disques durs de l'ordre du tera octets et mon ordinateur portable à 4go de mémoire vive, alors qu'un jar fasse 100ko ou 1mo ca ne change pas grand chose tant qu'il le fait bien&lt;/li&gt;&lt;li&gt;je n'aime pas les frameworks qui utilisent Class.forName, ça montre une incompréhension de la plateforme Java&lt;/li&gt;&lt;li&gt;je n'aime pas les frameworks qui ne fournissent une API couplée à l'implémentation&lt;/li&gt;&lt;li&gt;j'aime lire du beau code&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Merci pour toutes ces questions très pertinentes et à bientôt!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Merci encore pour cette interview et bonne continuation sur la route d'un monde ECM Open Source ! &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Vous pouvez retrouver toutes les informations sur l'offre eXoPlatform  à l'adresse suivante : &lt;a title="http://www.exoplatform.com/" href="http://www.exoplatform.com/" id="brkc"&gt;http://www.exoplatform.com/&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;et bien entendu Julien Viet sur son espace personnel : &lt;a title="http://www.julienviet.com/" href="http://www.julienviet.com/" id="nq3q"&gt;http://www.julienviet.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS : Vous pouvez télécharger l'interview à l'adresse &lt;a href="http://www.scribd.com/doc/18717050/Open-Source-ECM-Interview-FR-Julien-Viet-eXo-SAS"&gt;http://www.scribd.com/doc/18717050/Open-Source-ECM-Interview-FR-Julien-Viet-eXo-SAS&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-3407321578475348398?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=3QiWxZJm3qs:PpFfC53i5sw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=3QiWxZJm3qs:PpFfC53i5sw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=3QiWxZJm3qs:PpFfC53i5sw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/3QiWxZJm3qs/interview-julien-viet-product-manager.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>1</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/08/interview-julien-viet-product-manager.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-6857972227548766995</guid><pubDate>Thu, 13 Aug 2009 11:04:00 +0000</pubDate><atom:updated>2009-08-13T13:10:32.531+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Présentation</category><category domain="http://www.blogger.com/atom/ns#">CMIS</category><category domain="http://www.blogger.com/atom/ns#">English Version</category><title>CMIS-SQL : Tutorial et Presentation</title><description>Bonjour à tous !&lt;br /&gt;&lt;br /&gt;Sur mon blog anglais, j'ai publié une présentation sur l'utilisation du nouveau langage de requête &lt;span style="font-weight: bold;"&gt;CMIS-SQL.&lt;/span&gt; Ce petit tutorial se veut simple mais assez complet pour vous donner l'ensemble des informations nécessaires pour que vous aussi vous puissiez tester ce langage.&lt;br /&gt;&lt;br /&gt;Pour visualiser la présentation, je vous invite à consulter mon post anglais à cette adresse :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.open-source-ecm.com/2009/08/cmis-tutorial-cmis-sql.html"&gt;http://www.open-source-ecm.com/2009/08/cmis-tutorial-cmis-sql.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Si vous aussi vous avez des informations ou des observations avec CMIS-SQL, n'hésitez pas à les partager.&lt;br /&gt;&lt;br /&gt;Bonne viusalisation et A la prochaine !&lt;br /&gt;&lt;br /&gt;PS : Si vous avez besoin d'une traduction...&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-6857972227548766995?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=RGQBx17RqxE:dEQyoqqUVTg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=RGQBx17RqxE:dEQyoqqUVTg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=RGQBx17RqxE:dEQyoqqUVTg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/RGQBx17RqxE/cmis-sql-tutorial-et-presentation.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/08/cmis-sql-tutorial-et-presentation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-4466025387854946510</guid><pubDate>Mon, 20 Jul 2009 12:36:00 +0000</pubDate><atom:updated>2009-07-21T14:52:01.911+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Nuxeo</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><title>Nuxeo Tips : Installation et Parametrage</title><description>Bonjour à tous !&lt;br /&gt;&lt;br /&gt;Je profite d'un petit temps mort pour vous parler de Nuxeo!&lt;br /&gt;&lt;br /&gt;En effet, ayant eu l'opportunité d'installer, paramétrer et personnaliser cette solution dans un environnement windows, je me suis dis qu'il était bon de partager certaines informations avec vous.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;Installer Nuxeo&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Comment installer Nuxeo ?&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;Par défaut, utilisez l'installeur de Nuxeo 5.2 que l'on peut retrouver en téléchargement &lt;a href="http://www.nuxeo.com/downloads/"&gt;http://www.nuxeo.com/downloads/&lt;/a&gt;&lt;br /&gt;Cet assistant permet d'avoir une très bonne base de départ. Il intègre en outre Nuxeo Shell (un vrai petit bijou pour les administrateurs!). Néanmoins il faut savoir qu'il embarque une base de données légère (Derby). Cette base est fâite pour les environnements de démonstrations, développements ou expérimentations. Il ne s'agit pas d'une base de production! Il faut donc paramétrer Nuxeo pour une autre BDD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Comment paramétrer Nuxeo avec une base de données PostgreSQL ?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Pour les explications pas à pas, jetez un oeil à la FAQ : &lt;a href="http://www.nuxeo.org/xwiki/bin/view/FAQ/"&gt;http://www.nuxeo.org/xwiki/bin/view/FAQ/&lt;/a&gt; Rubrique Administration&lt;br /&gt;Vous pouvez avoir plus d'informations dans le Nuxeo-Book &lt;a href="http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html"&gt;http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html&lt;/a&gt; ou Admin Book : &lt;a href="http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html"&gt;http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Et si vous êtes vraiment fainéant ... Télécharger les fichiers de configuration par défaut ci-dessous pour une configuration Nuxeo/PostgreSQL/VCS : A VENIR ;o)&lt;br /&gt;PS : N'hésitez pas à lire le README.txt qui vous expliquera comment faire.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Quelles sont les configurations Nuxeo pour un environnement de Production ?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pour la partie Nuxeo, les informations se trouvent &lt;a href="http://www.nuxeo.org/xwiki/bin/view/Main/NuxeoProdSetup/"&gt;http://www.nuxeo.org/xwiki/bin/view/Main/NuxeoProdSetup/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pour la partie PostgreSQL, les informations sont là : &lt;a href="http://www.nuxeo.org/xwiki/bin/view/FAQ/PostgreSQLSettings/"&gt;http://www.nuxeo.org/xwiki/bin/view/FAQ/PostgreSQLSettings/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vous avez maintenant une bonne base pour démarrer une mise en production au niveau système en tout cas. Il faut maintenant prendre en compte la partie fonctionnelle c'est à dire les différentes fonctionnalités que l'on veut ou non voir apparaitre. Pour cela intéressons nous aux possibilités offertes de paramétrer Nuxeo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Paramétrer Nuxeo&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Petite introduction&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Comme j'ai coutume de le dire, dans les solutions d'ECM Open Source, il y a 3 types d'approches possibles.&lt;br /&gt;&lt;div class="post-body entry-content"&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;L'approche Utilisateur&lt;/strong&gt; : L'utilisateur ne sait que cliquer sur des boutons (Ce n'est pas un reproche ou une insulte mais c'est bien caricaturé par contre...) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;L'approche Administrateur : &lt;/strong&gt;L'administateur sait utiliser et modifier des fichiers humainement compréhensibles (XML, Properties, txt) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;L'approche Developpeur/Intégrateur :&lt;/strong&gt; Le développeur est omniscient et omnipotent. Il comprend et connait tout surtout la programmation.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;Dans notre cas on va s'intéresser uniquement au &lt;strong&gt;niveau administrateur&lt;/strong&gt;. En effet beaucoup de fonctionnalités sont paramétrables par des fichiers XML dans Nuxeo.&lt;br /&gt;&lt;br /&gt;Pour illustrer ce niveau, je vous propose le cas d'utilisation suivant : Je souhaite augmenter le nombre de document affichés dans une espace. Par défaut cette valeur est fixée à 10. Si l'espace contient plus de 10 documents, alors la page de présentation va créer une pagination automatique de 10 en 10. Pour des questions de visibilité, je souhaite maintenant que cette valeur soit de 25.&lt;br /&gt;&lt;br /&gt;Voyons voir quelles sont les approches possibles pour répondre à ce besoin&lt;br /&gt;&lt;br /&gt;Tout d'abord dans une installation Nuxeo, il y a 3 répertoires à retenir pour un administrateur : &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\System&lt;/strong&gt;&lt;br /&gt;Il s'agit du répertoire qui contient l'ensemble du coeur de l'application Nuxeo. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\plugins&lt;/strong&gt;&lt;br /&gt;Ce répertoire contient l'ensemble des modules addons/plugins/extensions qui ne font pas partie du coeur Nuxeo. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\config&lt;/strong&gt;&lt;br /&gt;Il s'agit du répertoire qui contient l'ensemble des fichiers de configuration. &lt;/li&gt;&lt;/ul&gt;Ces 3 répertoires vont illustrer les 3 façons de paramétrer Nuxeo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Le répertoire System&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Si vous avez jeté un œil à Nuxeo de près ou de loin, vous avez remarqué que la majorité des fichiers sont des fichiers .jar. Pour ceux qui ne connaissent pas ce format de fichier, un petit tour sur wikipedia s'impose : &lt;a href="http://fr.wikipedia.org/wiki/Jar"&gt;http://fr.wikipedia.org/wiki/Jar&lt;/a&gt; Pour faire simple, il s'agit d'un ZIP pour tout ce qui touche au langage de programmation JAVA. Pourquoi je m'attarde dessus ? Eh bien tout simplement comme il s'agit d'un ZIP, on peut ouvrir ce ZIP avec un outil comme winZip, 7-zip etc... et donc... On peut modifier le contenu de ce ZIP !&lt;br /&gt;&lt;br /&gt;Le jar qui nous intéresse est : &lt;strong&gt;nuxeo-platform-webapp-core-5.2.0.jar&lt;br /&gt;&lt;/strong&gt;Il se situe dans une installation standard au niveau du répertoire : &lt;strong&gt;NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\&lt;/strong&gt;&lt;br /&gt;Ouvrez le (avec 7-zip dans mon cas) et recherchez le fichier OSGI-INF/querymodel-contrib.xml. Editez (ou faites une extraction) le fichier et remplacer la valeur 10 par 25 dans le bloc suivant :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_HuDWht5cbyc/SmW3P5WogDI/AAAAAAAAAvU/t5oQKkZGLcQ/s1600-h/nuxeo-methode-system.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5360892415176114226" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 126px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_HuDWht5cbyc/SmW3P5WogDI/AAAAAAAAAvU/t5oQKkZGLcQ/s400/nuxeo-methode-system.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sauvegardez le fichier (ou importer le dans le .jar).&lt;br /&gt;&lt;br /&gt;Vous pouvez maintenant redémarrer Nuxeo, importer plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.&lt;br /&gt;Il faudra attendre le 26e document pour la voir apparaitre! &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Passons maintenant à la seconde méthode : &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Le répertoire Config&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Comme vous pouvez le voir, ce répertoire se compose essentiellement de fichier de configuration sous format .xml. Le premier but de ce répertoire est de configurer les principaux paramètres de l'application. Or c'est un peu ce que nous voulons faire : Paramétrer le nombre d'élément affiché dans un espace. Tout d'abord si vous avez testé la méthode précédente, il faut supprimer vos modifications. Ensuite créez un fichier &lt;strong&gt;ui-configuration-config.xml&lt;/strong&gt; (le nom n'importe pas sauf la partie &lt;strong&gt;-config.xml&lt;/strong&gt; qui doit rester inchangée) dans le répertoire config et ajouter le bloc ci-dessous :&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_HuDWht5cbyc/SmW29kM6UEI/AAAAAAAAAvM/pw8IsF5sXik/s1600-h/nuxeo-methode-config.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5360892100260548674" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 236px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_HuDWht5cbyc/SmW29kM6UEI/AAAAAAAAAvM/pw8IsF5sXik/s400/nuxeo-methode-config.png" border="0" /&gt;&lt;/a&gt;La partie la plus importante réside dans la balise &lt;strong&gt;&lt;require&gt;&lt;/require&gt;&lt;/strong&gt;&lt;require&gt;. Dans cette balise on va identifier le composant défini par défaut (que l'on a vu dans la précédent méthode) Ainsi comme nous avons ce composant, nous pouvons "surcharger"/"remplacer" les données par défaut.&lt;br /&gt;&lt;br /&gt;Vous pouvez maintenant redémarrer Nuxeo, importez plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.&lt;br /&gt;&lt;br /&gt;Vous venez juste d'apprendre une méthode qui marche pour la plupart des fonctionnalités par défaut de Nuxeo.&lt;br /&gt;&lt;br /&gt;Si on devait avoir un &lt;strong&gt;mode opératoire (la recette de cuisine),&lt;/strong&gt; cela serait le suivant :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Explorez les fichiers .jar du répertoire system (avec votre utilitaire de zip : 7zip pour moi...). &lt;/li&gt;&lt;li&gt;Interessez vous particulièrement aux répertoires OSGI-INF et aux fichiers xml à l'intérieur (surtout les fichiers finissant par &lt;strong&gt;-contrib.xml&lt;/strong&gt;)&lt;/li&gt;&lt;li&gt;Prenez le bloc qui vous interesse et retenez le nom du composant (2e ligne du fichier -contrib.xml en général sous la forme : &lt;component name="com.opensourceecm.nuxeo.configuration"&gt;). &lt;/component&gt;&lt;/li&gt;&lt;li&gt;Créer votre fichier &lt;strong&gt;-config.xml&lt;/strong&gt; dans le repertoire &lt;strong&gt;config&lt;/strong&gt;. &lt;/li&gt;&lt;li&gt;Insérez le bloc dans le fichier et modifiez les données par défaut. &lt;/li&gt;&lt;li&gt;N'oubliez pas de respecter la validité du fichier xml et de déclarer que c'est un fichier .xml&lt;/li&gt;&lt;li&gt;Rédémarrez votre instance de Nuxeo. &lt;/li&gt;&lt;li&gt;Vous pouvez servir, c'est prêt! :o) &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Finalement la dernière méthode&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Le répertoire Plugins &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Cette méthode (la plus préconisée par Nuxeo) est celle qui est la plus évolutive, modulaire mais aussi la plus compliquée! (On ne peut jamais tout avoir surtout en informatique...). Je ne vais pas renter dans les détails avec cette approche car elle est très bien documentée. Pour rappel, si vous êtes interessé par le sujet, je vous conseille de lire l'ébauche de livre Nuxeo à cette adresse : &lt;a href="http://www.nuxeo.org/static/dev-tutorial/"&gt;http://www.nuxeo.org/static/dev-tutorial/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'un des reproches à cette méthode est qu'il n'est pas donné à tout le monde d'installer et configurer Eclipse, JDK, Maven etc... Il s'agit d'une tâche parfois complexe qui peut prendre pas mal de temps...et donc d'argent.&lt;br /&gt;&lt;br /&gt;Si on reprend l'exemple précédent est il judicieux d'installer un environnement de développement ? La réponse risque fortement d'être non. Par contre, je veux ajouter et modifier de nombreux composants ainsi qu'étendre une fonctionnalité Nuxeo, alors oui l'installation d'un environnement est de mise. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Comme souvent : Tout dépend du besoin!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;Conclusion&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Pour simplifier voici mes recommandations (pour gagner du temps!) : &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Banissez la modification d'un .jar appartenant au répertoire system!!!!&lt;/strong&gt; Parfois Cela parait etre la solution la plus simple mais il s'agit la solution la moins rentable sur le long terme.&lt;br /&gt;Et dans le monde de l'opensource il faut savoir être évolutif par la suite (migration, upgrade...). Le seul cas possible envisageable concerne la suppression d'une fonctionnalité. Si vous avez identifié une fonctionnalité qui ne vous interesse pas, il peut s'avérer utile de supprimer les jar associés (Accélération du démarrage de l'application...) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Si vous voulez modifier un paramètre par défaut d'un composant Nuxeo, choisissez la méthode basé sur le répertoire de configuration.&lt;/strong&gt; Elle sera à long terme, la meilleure des méthodes.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Si vous devez modifier un composant Nuxeo + ajouter des fichiers (.java, images, définition d'un workflow) ou ajouter un composant, privilégiez la méthode plugins. &lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Pour la suite, il ne reste plus qu'à être curieux, d'avoir du temps et de naviguer dans les profondeurs des jars de Nuxeo !&lt;br /&gt;&lt;br /&gt;Bon voyage et à la prochaine fois ! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-4466025387854946510?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=WPBrSrLMHZE:lBPU6jxifoY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=WPBrSrLMHZE:lBPU6jxifoY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=WPBrSrLMHZE:lBPU6jxifoY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/WPBrSrLMHZE/nuxeo-tips-installation-et-parametrage.html</link><author>noreply@blogger.com (JM.Pascal)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HuDWht5cbyc/SmW3P5WogDI/AAAAAAAAAvU/t5oQKkZGLcQ/s72-c/nuxeo-methode-system.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/07/nuxeo-tips-installation-et-parametrage.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-3179823973339473174</guid><pubDate>Tue, 30 Jun 2009 07:48:00 +0000</pubDate><atom:updated>2009-07-02T18:33:02.763+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Integrateur</category><category domain="http://www.blogger.com/atom/ns#">Juridique</category><category domain="http://www.blogger.com/atom/ns#">Interview</category><title>Interview : Benjamin Jean, juriste spécialisé en Propriété Intellectuelle au sein du groupe Linagora et promoteur du libre</title><description>&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;Bonjour tout le monde !&lt;/p&gt;&lt;div&gt;  &lt;/div&gt;&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;Aujourd'hui, je publie une interview un peu différente. En effet, mes interviews sont généralement orientées vers le métier, les hommes ou la technique. Or lorsque l'on parle de solution d'open source on parle aussi de licence libre et lorsque l'on parle de solution informatique on parle aussi de propriété intellectuelle. Ceux sont ces aspects fondamentaux : le juridique et le légal que nous allons découvrir avec cette interview.&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;Pour nous expliquer ces différents axes qui prennent une part de plus en plus importante, j'ai l'honneur et le plaisir d'interviewer &lt;b&gt;Benjamin Jean, &lt;/b&gt;&lt;b&gt; juriste&lt;/b&gt;&lt;b&gt; spécialisé en Propriété Intellectuelle&lt;/b&gt;&lt;b&gt; au sein du groupe Linagora et promoteur du libre !&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Bonjour Benjamin,&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Je tenais avant tout à vous remercier de m'accorder un peu de votre temps pour répondre à cette interview et pour partager votre expertise dans le domaine du juridique.&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Comme d'habitude dans mes interviews ma première question sera sur vous. Pouvez vous nous parler un peu de vous, présenter votre métier et votre rôle au sein de Linagora ?&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;      &lt;blockquote&gt;Bonjour Jean-Marie,&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;C'est un réel plaisir de participer à cet interview et, ainsi, de donner un aperçu rapide de ce que peut être le métier de juriste dans une &lt;a href="http://fr.wikipedia.org/wiki/SS2L"&gt;SS2L&lt;/a&gt; (Société Spécialisée en Logiciels Libres – éditeur, intégrateur, etc.). Peut-être pourrais-je ainsi créer des vocations (pour un poste aussi intéressant que qu'accaparant...) ou surtout aider les différents services (l'équipe technique, les commerciaux, etc.) à cohabiter.&lt;br /&gt;&lt;br /&gt;Au sein de &lt;a href="http://www.linagora.com/"&gt;Linagora&lt;/a&gt;, je suis en charge de toutes les problématiques de propriété intellectuelle et plus spécialement des sujets relatifs à l'usage de &lt;span style="font-weight: bold;"&gt;Licence FLOS (Free Libre Open Source)&lt;/span&gt;. Traverse, cette responsabilité m'amène à intervenir dans la quasi-totalité des engagements contractuels de la société. Enfin, et à l'instar de tout juriste d'entreprise, j'ai un rôle de prévision, gestion et résolution de conflits – mes positions sont principalement consultatives, mais leur niveau d'expertise fait qu'elles sont généralement suivies.&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Pouvons nous en apprendre plus sur le métier et les services que Linagora offre ?&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Initialement Société de Services spécialisée dans les Logiciels Libres, LINAGORA a étendu son activité, en offrant dorénavant : de la formation, de l'assistance et du consulting dans tous les domaines liés au FLOSS (transfert de compétences, mise en place de gouvernance open source, appréhension des différentes licences, élaboration de schéma directeur OS, etc.).&lt;br /&gt;&lt;br /&gt;Reconnue comme leader et experte en matière logiciels libres et open source, la société cherche à renforcer son activité d'expertise et mettre en valeur l'excellence de ces compétences. L'offre juridique en fait partie ;-)&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Quel est le lien entre la propriété intellectuelle et le domaine informatique ? N'existe t il pas une distorsion de terme entre propriété intellectuelle et libre ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Il existe un « &lt;span style="font-weight: bold;"&gt;droit de l'informatique&lt;/span&gt; », qui inclut notamment des notions de Propriété Intellectuelle, néanmoins cette dernière est plus large et les deux domaines se rejoignent uniquement dans leur vision de l'informatique comme vecteur de création : l'informatique et Internet ne sont que support et moyen de diffusion de biens susceptibles d'appréhension par les droits de propriété intellectuelle.&lt;br /&gt;&lt;br /&gt;Quant à la seconde question : il peut sembler en effet étrange d'associer les termes « Libre » et « Propriété Intellectuelle ». Un objet sujet d'appropriation peut-il être libre – c'est-à-dire à la disposition de tous –, alors que la propriété est au contraire fondée sur le monopole ? Pour la plupart des biens corporels (table, chaise, etc.), l'objet ne le permet pas (car il est rival – c’est à dire qu'il empêche l'usage par les autres – et souvent consomptible – le bien se détruit progressivement par son usage) ; en revanche, on s'aperçoit que la seule limitation, en ce qui concerne les biens immatériels, réside dans la décision du titulaire de droits. Ainsi, et c'est là le mécanisme sous-jacent aux licences FLOS, il suffit que le titulaire de droits – le « propriétaire » de la création – décide de partager l'exploitation et la jouissance qu'il contrôle sur cette dernière.&lt;br /&gt;&lt;br /&gt;Le principe du copyleft repose plus encore sur la Propriété Intellectuelle puisqu'en l'absence d'un contrôle sur son logiciel, comment un auteur pourrait-il forcer celui qui modifie son programme à mettre à disposition cette version modifiée dans les mêmes conditions ?&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Quels sont les organismes de référence dans le domaine du juridique en informatique ? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;C'est une question difficile : il n'y a pas de « référence » dans le domaine, tout au plus quelques organismes plus pertinents que d'autres. Parallèlement à la pratique de nombreux cabinets d'avocats spécialisés dans l'informatique et la propriété intellectuelle, différents organismes gouvernementaux réfléchissant (&lt;a href="http://www.cspla.culture.gouv.fr/"&gt;CSPLA&lt;/a&gt; notamment) sur ces problématiques. On peut noter au passage qu'il est intéressant de constater que de nombreuses initiatives communautaires se mettent en place pour combler le manque en la matière (je pense à des initiatives comme Grocklaw, l'&lt;a href="http://www.opensource.org/"&gt;OSI&lt;/a&gt;, &lt;a href="https://fossbazaar.org/"&gt;Fossbazaar&lt;/a&gt;, etc. aux États-Unis, ou l'&lt;a href="http://www.osor.eu/"&gt;OSOR&lt;/a&gt;, &lt;a href="http://www.venividilibri.org/"&gt;Veni, Vidi, Libri&lt;/a&gt; ou &lt;a href="http://www.cecill.info/"&gt;CeCILL&lt;/a&gt; en Europe).&lt;br /&gt;&lt;br /&gt;Par ailleurs, ces groupements, communautés, qui cherchent (gracieusement) et souvent afin de mutualiser, vulgariser et faire progresser le domaine scientifique afférent, sont très souvent tout à fait avertis des enjeux liés à l'usage des licences libres et, par là, en avance dans leur appréhension.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Maintenant essayons de découvrir ensemble les différents aspects du juridique dans le domaine de l'open source. En effet suivant le point de vue, nous n'avons pas la même vision des choses! &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;En premier, j'ai cru comprendre dans l'une de vos présentations qu'il existe une différence entre la notion d'open source et de logiciel libre. Pouvez vous nous résumer la différence d'un point de vue juridique ?&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;J'essaie systématiquement de mettre mes interventions en ligne sur le Blog de l'association VVL et je suis ravi d'apprendre que cette mise à disposition permet une plus large diffusion !&lt;br /&gt;&lt;br /&gt;Pour commencer (et d'après moi), les deux notions sont assez proches. Ainsi, les licences libres répondent à une finalité alors que les licences open source répondent à des critères précis :&lt;br /&gt;&lt;br /&gt;conformément à la définition de la FSF, un logiciel sera dit libre si l'utilisateur dispose effectivement des libertés :&lt;ol&gt;&lt;li&gt;d'exécuter / utiliser le programme ;&lt;/li&gt;&lt;li&gt;d'étudier et d'adapter le programme ;&lt;/li&gt;&lt;li&gt;de redistribuer des copies ;&lt;/li&gt;&lt;li&gt;de modifier et de publier ses modifications.&lt;/li&gt;&lt;/ol&gt;de son côté, l'&lt;a href="http://www.opensource.org/docs/definition.php"&gt;Open Source Definition&lt;/a&gt;, afin d'établir une définition plus pragmatique , claire (moins sujette à interprétation) détaille dans l' « Open Source Definition » les 10 critères qui confèrent automatiquement à une licence la qualité d'Open Source :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;la libre redistribution du logiciel — elle ne peut, par exemple, exiger le paiement d'une redevance supplémentaire ;&lt;/li&gt;&lt;li&gt;le code source doit être fourni ou être accessible ;&lt;/li&gt;&lt;li&gt;les dérivés des œuvres doivent être permis ;&lt;/li&gt;&lt;li&gt;l'intégrité du code doit être préservée — un tiers ne peut pas s'approprier le travail d'un autre et les contributions de chacun sont clairement attribuées (les modifications peuvent n'être éventuellement distribuées que sous forme de patch, séparément : distinguo que ne tolère pas la FSF) ;&lt;/li&gt;&lt;li&gt;pas de discrimination entre les personnes ou les groupes — toute personne détentrice d'une copie du logiciel bénéficie des termes de la licence tant qu'il s'y conforme lui-même ;&lt;/li&gt;&lt;li&gt;pas de discrimination entre les domaines d'application — la licence se limite à la propriété intellectuelle : elle ne peut en aucun cas réguler d'autre domaine « politique » ;&lt;/li&gt;&lt;li&gt;la licence s'applique sans dépendre d'autres contrats — on ne peut par exemple pas ajouter un NDA lors de la cession du logiciel ;&lt;/li&gt;&lt;li&gt;la licence ne doit pas être propre à un produit — elle est attachée au code et non à un logiciel particulier : une brique peut resservir dans un logiciel différent, voire concurrent ;&lt;/li&gt;&lt;li&gt;la licence d'un logiciel ne doit pas s'étendre à un autre — je précise au passage que la large étendue de la GPL (et c'est la raison pour laquelle certains utilisent le terme de viralité ou de contamination) est conforme à ce critère puisqu'elle ne s'étend qu'au programme envisagé comme un tout ;&lt;/li&gt;&lt;li&gt;la licence doit être neutre technologiquement — c'est-à-dire ne pas dépendre d'une technologie.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;Une solution open source ou un logiciel libre n'est donc pas une solution gratuite ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Effectivement, les licences sont gracieuses (tout titulaire de copie – ou utilisateur pour certaines licences – bénéficie automatiquement des droits que confèrent la licence), mais la mise à disposition du logiciel peut, elle, être gracieuse ou payante – c'est d'ailleurs pour cette raison que l'on entend souvent qu'un logiciel n'est gratuit qu'une fois qu'il a été payé...&lt;br /&gt;&lt;br /&gt;Ainsi, le Libre ne se positionne pas sur le caractère commercial ou non de l'usage des oeuvres – j'ai pour habitude de dire qu'il est a-économique –, ce qui permet aux sociétés d'élaborer divers business model et aux communautés de concevoir de multiples systèmes contributifs.&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Prenons un cas concret, je suis développeur et j'aimerai savoir si cette bibliothèque (ce framework) que je viens de télécharger est open source. Quels sont les réflèxes que je dois avoir ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Pour commencer, il est utile de vérifier sur le site du logiciel : la licence utilisée – et éventuellement les limitations qui lui sont apportées ; ensuite la FAQ si celle-ci existe ; et enfin toute autre information précisant les conditions d'exploitation (notamment en matière de marque).&lt;br /&gt;&lt;br /&gt;En cas de doute ou si les mentions ne sont pas présentes sur le site, il est alors nécessaire de jeter un œil aux sources afin d'y trouver : un descriptif des différentes briques et licences si le projet est basé sur d'autres briques open source ; les licences portant sur le tout et éventuellement les limitations apportées ; au sein des en-têtes, toute information utile.&lt;br /&gt;&lt;br /&gt;Une fois que l'on connaît avec certitude la licence utilisée, l'idéal est bien sûr de la lire, mais certains sites économisent ici du temps aux développeurs (j'invite en revanche les juristes à ne pas se passer de la lecture des Licences Libres) : la présence de la licence sur le site de la &lt;a href="http://www.fsf.org/"&gt;FSF&lt;/a&gt; (à la page « licences compatibles ») ou de l'&lt;a href="http://www.opensource.org/"&gt;OSI&lt;/a&gt; (sur la page listant les licences certifiées) ; et – un peu de promotions ne fait jamais de mal – certains sites comme celui de Veni, Vidi, Libri offrent des analyses et descriptions desdites licences afin de mutualiser leurs connaissances.&lt;br /&gt;&lt;br /&gt;Enfin, si on s'aperçoit, suite à cette phase de vérification, que les sources supposées open source ne le sont pas en réalité, alors il ne faut pas hésiter à communiquer sur ce fait : ce sera un gain de temps pour tous et cela incitera peut-être ceux qui n'auraient pas fait de recherches suffisantes à se renseigner plus précisément, voire à leur faire changer la politique en matière de licences.&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Combien de licences libres existent ils à l'heure actuelle ?&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;Plus de 80 d'après l'OSI, plus de de 50 sur le site de la FSF, plus de 4000 pour des logiciels d'audit de code comme Black Duck ou Fossology...&lt;br /&gt;&lt;br /&gt;En vérité, ce chiffre doit être relativisé : contrairement aux premières années où les licences ne s'influençaient que très peu les unes les autres, on s'aperçoit que la multiplication des licences n'a pu se faire que grâce à une inspiration très forte des licences préexistantes. Pour cette raison, on ne dénombre qu'un faible nombre de licences véritablement différentes (étant entendu que deux licences très proches ne sont pas nécessairement compatible : une licence qui copierait la dimension hégémonique de la GNU GPL serait de facto incompatible avec cette dernière – deux hégémonies étant difficilement conciliables...).&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;Pouvez vous nous présenter les 2/3 principales licences libres ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Le choix de ces trois licences dépend véritablement de ce que l'on veut différencier (le copyleft ; les droits concernés, etc.). Pour faire la transition avec la question précédente, je vais prendre une distinction classique : &lt;span style="font-weight: bold;"&gt;GPL / MPL / Apache&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;La GNU GPL&lt;/span&gt; est (donc) la licence la plus hégémonique qui soit : tout logiciel qui est dérivé d'un autre licencié sous GNU GPL doit être distribué (au moins) sous la même licence. Une brève description : elle s'étend au logiciel comme un tout (ce qui devrait inclure les logiciels liés statiquement comme dynamiquement) ; sa dernière version homogénéise ses obligations à l'ensemble des droits exclusifs (droit d'auteur, brevet, signes distinctifs, etc.) ; et ses rédacteurs apprécient la compatibilité d'une licence comme sa faculté à permettre la redistribution sous GNU GPL (ce qui n'est pas anodin).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;La MPL&lt;/span&gt; est une licence que j'appelle modulaire. Pour la comprendre, il suffit d'avoir à l'esprit le logiciel Firefox pour lequel elle a été rédigée : tout fichier intégrant du code de Firefox sous MPL doit être distribué sous MPL ; tout fichier, même associé étroitement aux autres, qui ne contient aucun code sous MPL peut être diffusé sous n'importe quelle licence. On le voit, la principale principale entre la MPL et la GPL est l'étendue de leur copyleft : c'est notamment cet écart qui a causé leur incompatibilité et, ainsi, à justifier le triple licencing de Firefox sous MPL/GNU GPL/GNU LGPL (utilisateur et développeur choisissent la licence qu'ils veulent respecter et bénéficie donc des droits que celles-ci leur procurent).&lt;br /&gt;&lt;br /&gt;Enfin, &lt;span style="font-weight: bold;"&gt;la licence Apache&lt;/span&gt; est une licence permissive, dans le sens qu'elle n'oblige pas une licence particulière pour la redistribution du logiciel ou de son dérivé (qui peut donc devenir propriétaire). Néanmoins, elle soumet le licencié à un certain nombre d'obligations (notamment en matière de brevets) qui empêchent sa redistribution sous n'importe qu'elle autre licence (à l'inverse d'une licence comme la BSD qui limite tellement peu la redistribution que toute substitution de ses termes par ceux d'une autre licence se fait conformément à ces derniers).&lt;br /&gt;Voilà pour une rapide description. Néanmoins, il faut faire attention à ne pas se contenter d'une telle classification : d'autres critères sont aussi très importants (les domaines des licences, les licences qui appréhendent la problématique du SaaS, etc.).&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;On entend souvent parler de la notion de viralité des solutions GPL. Quels sont les contraintes et les avantages de cette licence ? Je crois qu'il faut uniquement faire attention à la notion de distribution ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Plus que de « viralité », j'ai pour habitude de parler de réciprocité (ou de copyleft : double jeu de mots à partir de copyright) : il s'agit en effet du pot commun que décrit parfaitement Eben Moglen (chacun est libre d'y puiser, mais avec l'obligation ensuite d'y reverser ses contributions).&lt;br /&gt;&lt;br /&gt;Le copyleft est le mécanisme, la clause qui, contractuellement, assurent cette pérennité des libertés attachées au logiciel : autant le licencié d'une licence copyleft doit simplement veiller à ne pas obliger mois les licenciés subséquents s'il ne veut pas prendre en charge leurs actes ; autant le licencié d'une licence copyleft doit conserver et les obligations et les droits de la licence originale (usuellement en contraignant à l'utilisation de la même licence, mais d'autres mécanismes existent).&lt;br /&gt;&lt;br /&gt;Enfin, un grand oui pour la notion de distribution. Toutes les licences ont une clause qui définit leur « élément déclencheur » : le moment à partir duquel la licence produit ses effets contraignants vis-à-vis du licencié (licence en matière de droit d'auteur, brevet, etc.). Pour la GNU GPL, et les nombreuses licences qu'elle a influencées, la notion de distribution était suffisante pour s'assurer que tout détenteur d'une copie du logiciel pourrait en jouir librement. Mais les technologies ont rapidement évolué et il est dorénavant possible de permettre la jouissance des fonctionnalités offerte d'un logiciel libre sans distribuer physiquement ce dernier (Google est le meilleur exemple d'une société qui utilise du Libre pour fournir des prestations sans pour autant reverser son propre code ; le logiciel de bureautique OpenOffice.org avait aussi été fourni de cette façon). Certaines licences (OSL, CSPAL, EUPL, Affero GPL, etc.) sont donc venues assimiler cet usage à une distribution de façon à permettre à l’utilisateur d'un logiciel de bénéficier des mêmes libertés que celles auparavant offertes au seul détenteur.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;La notion de distribution peut elle etre mise en cause dans le cadre d'une société de services en informatique ?&lt;/b&gt; &lt;b&gt;En tant qu'intégrateur, les SSII qui "distribuent"des solutions open source modifiés doivent elles automatiquement redistribuer leurs contributions ou bien sont elles considérées comme travaillant en interne pour le client ?&lt;br /&gt;&lt;/b&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;Question tout à fait pertinente, sachant que la GNU GPL v3 va délimiter clairement cette exception (sous réserve d'une série de conditions, notamment l'usage d'un NDA entre le client et son prestataire).&lt;br /&gt;&lt;br /&gt;Ainsi, cette exception mise à part, il semble logique de considérer qu'il y ait bien une distribution. Mais la situation (de fait et contractuelle) est telle que seul le client (en tant que seul détenteur d'une copie du logiciel sous Licence Libre) bénéficie de la licence, et, ainsi, le laissant seul maître de la redistribution qu'il souhaiterait ensuite faire du logiciel offert (en revanche, le prestataire n'a pas le choix et doit livrer le logiciel conformément à la licence).&lt;br /&gt;&lt;br /&gt;Donc, contractuellement, la licence est suivie d'effets, mais, en pratique, il faut attendre la première mise à disposition publique du logiciel pour qu'il débute sa vie de logiciel libre.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;L'un des intêret de l'open source est bien entendu de pouvoir regarder et "copier" les bonnes pratiques. &lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt; Existe t il des contraintes quand il s'agit de reprendre/s'inspirer/modifier un code source ? Par la suite est il possible de modifier la license associé à ce code (d'un code GPL vers un code LGPL par exemple) ?&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Il y a deux choses : l'intérêt de l'accès au code source (partage de bonnes pratiques, intérêt scientifique, rendre le logiciel plus communiquant, etc.) ; et l'intérêt de la licence libre qui permet de bénéficier de l'exploitation du travail que constitue ce code (pour le copier, modifier, mixer, distribuer, etc.). Ainsi,  la licence conditionnant les droits nécessaires à cette exploitation du code, il n'est pas possible de les dissocier des contraintes attachées : en matière de brevet, marque, licence pour la redistribution, mention des auteurs, etc.&lt;br /&gt;&lt;br /&gt;Techniquement, il n'est pas possible de modifier la licence, puisque cela reviendrait à changer les conditions d'exploitation de la licence, chose que seul l'auteur est habilité à faire. En revanche, le licencié peut parfaitement distribuer une  brique logiciel sous une licence différente de celle d'origine, dès lors qu'il respecte ainsi la licence d'origine (si un logiciel est distribué sous une licence du type BSD, il est tout à fait possible de reprendre la brique et la distribuer sous GPL – tout en laissant la mention de la BSD attaché au Code – puisque l'on respecte ainsi la BSD). En ce qui concerne la possibilité de distribuer sous GNU LGPL un code originairement sous GNU GPL : cela est impossible puisqu'une distribution sous GNU LGPL ne respecterait pas les termes de la GPL (la GNU LGPL autorise des liaisons que ne permet pas la GNU GPL) – et qu'il n'y a pas non plus de permission expresse (comme celle que l'on retrouve de la GNU LGPL vers la GNU GPL).&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Finalement les licences libres vont elles devenir les nouveaux standards et supplanter les licences propriétaires ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;Je n'ai sur ce point aucune certitude, ayant tendance à penser qu'un modèle mixte/hybride caractérisera l'industrie du logiciel de demain : la plus grande majorité des logiciels utiliseront certainement des briques open source – ces derniers étant ensuite distribués sous licence libre, licence propriétaire, ou encore de façon hybride (avec des modules, fonctionnalités ou services – pensons au Cloud – propriétaires).&lt;br /&gt;&lt;br /&gt;En revanche, il me semble intéressant de constater l'impacte des licences libres/open source sur les utilisateurs : ces derniers ne sont plus seulement « consommateurs passifs », mais, bénéficiant de prérogatives plus étendues, auront des responsabilités nouvelles. Ainsi, à mes yeux, on assiste là à un usage équilibré, compris et respecté des droits de propriété intellectuelle (quelque chose de plus citoyen en quelque sorte) – dans une logique bien éloignée de celle que l'on entend actuellement...&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Personnellement, faites-vous partie d'une autre communauté open source? Avez-vous des exemples de participation (Animation, articles, forums...) ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;J'ai en effet différentes casquettes : historique (Framasoft, Dogmazic, Copyleft Attitude, April, Aful, FFII, etc.) et plus liées à mes compétences juridiques (Veni, Vidi, Libri, la FniLL, EOLE, etc.).&lt;br /&gt;&lt;br /&gt;De mon point de vue, le plus important dans ces implications communautaires (et souvent associatives) reste le plaisir de partager et de construire en commun. De ce fait, on est rapidement amené à se spécialiser sur certaines tâches, une bonne répartition de celle-ci assurant un fonctionnement optimum de la structure.&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;Pour finir sur une note annexe, quels sont vos blogs et liens      préférés sur l'informatique et le juridique dans l'informatique en général ?&lt;br /&gt;&lt;/b&gt;&lt;blockquote&gt;La liste est longue et je préfère ne pas donner de liste qui serait forcément partiale.&lt;br /&gt;&lt;br /&gt;Ainsi, pour commencer, je vous conseillerai bien entendu le site de &lt;span style="font-weight: bold;"&gt;Veni, Vidi, Libri&lt;/span&gt; (&lt;a href="http://venividilibri.org/"&gt;http://venividilibri.org&lt;/a&gt;) et son blog (&lt;a href="http://blog.venividilibri.org/"&gt;http://blog.venividilibri.org&lt;/a&gt;), très spécialisés « Licences Libres/open source ». Ensuite, le site de l'OSI référence dorénavant les blogs très pointus de ses membres ; &lt;span style="font-weight: bold;"&gt;FOSSBazaar &lt;/span&gt;(&lt;a href="https://fossbazaar.org/"&gt;https://fossbazaar.org/&lt;/a&gt;) mutualise les expériences de nombreuses sociétés du secteur ; et, enfin, je peux aussi vous inviter à suivre les actualités sur le site du cycle de conférences E&lt;span style="font-weight: bold;"&gt;OLE (European OpenSource &amp;amp; Free Software Law Event&lt;/span&gt;) (&lt;a href="http://eolevent.eu/"&gt;http://eolevent.eu/&lt;/a&gt;), vous y trouverez de très bonnes informations.&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;Un dernier mot avant de      se quitter ?&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;Enfin, pour ceux qui s'intéressent  à ses sujets, je ne peux que les conseiller la prochaine conférence EOLE, qui se tiendra le 13 octobre prochain au Parlement Européen : un programme et des intervenants de grande qualité, un lieu de prestige et des partenaires de qualité, j'en attends le plus grand bien !&lt;br /&gt;&lt;br /&gt;Merci pour l'interview ! C'est un plaisir d'échanger autour de ces problématiques, qui deviendront de plus en plus comprises et maitrisées par tout un chacun.&lt;br /&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Merci encore pour cette interview et bonne continuation sur la route d'un monde Open Source ! &lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Vous pouvez retrouver toutes les informations sur la société Linagora à l'adresse suivante :&lt;a href="http://www.linagora.com/" target="_blank"&gt; http://www.linagora.com&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Et vous pouvez retrouver Benjamin Jean à travers ces nombreuses contribution sur &lt;a href="http://www.venividilibri.org/" target="_blank"&gt;http://www.venividilibri.org&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;b&gt;Vous pouvez télécharger l'interview à cette addresse : &lt;a href="http://www.scribd.com/doc/16951653/Open-Source-ECM-Interview-FR-Benjamin-Jean-Linagora"&gt;http://www.scribd.com/doc/16951653/Open-Source-ECM-Interview-FR-Benjamin-Jean-Linagora&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-3179823973339473174?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=7RYqi_2Cr4E:Yb-PFxe_zFo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=7RYqi_2Cr4E:Yb-PFxe_zFo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=7RYqi_2Cr4E:Yb-PFxe_zFo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/7RYqi_2Cr4E/interview-benjamin-jean-juriste.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>1</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/06/interview-benjamin-jean-juriste.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-2775355303802885558</guid><pubDate>Thu, 18 Jun 2009 22:00:00 +0000</pubDate><atom:updated>2009-06-19T10:43:31.038+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Integrateur</category><category domain="http://www.blogger.com/atom/ns#">Interview</category><title>Interview : Remi Moebs, Senior Manager dans le domaine de l'ECM à Sopra Group</title><description>Fervents lecteurs de mon blog, je vais vous présenter un ensemble d'interviews sur les acteurs du monde l'ECM Open Source (Intégrateur, utilisateur, développeur, éditeur, consultant....) . Ces interviews ont pour but de connaitre la personne, le métier qu'il pratique, la société dans laquelle il évolue, l'écosystème qui l'entoure et la gestion de contenus (ECM)! Il s'agit d'un autre regard porté sur le monde de l'ECM.&lt;br /&gt;&lt;br /&gt;Tout un programme que nous allons aborder en quelques questions avec chacun des invités.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Mon invité du jour est &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Remi Moebs, Senior Manager dans le domaine de l'ECM à Sopra Group (Société Partenaire de l’année 2009 Alfresco).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Bonjour Remi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pour commencer, je tenais à vous remercier de m'accorder un peu de votre temps afin de répondre à cette interview.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dans un premier temps, Senior Manager … Comment définiriez-vous votre rôle ? Quels sont vos missions et vos domaines de compétences ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Animation d'un réseau de consultants autour des solutions Portail, GED, collaboratif, Architecture, SOA, JEE&lt;br /&gt;Agitateur technologique et intrapreneur depuis l'arrivée des technos Web&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;     Depuis combien de temps êtes vous dans les domaines de la GED / gestion de contenus / ECM ?&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;Depuis 12 ans&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;blockquote&gt;&lt;/blockquote&gt;     &lt;span style="font-weight: bold;"&gt;Serait-il possible d'en savoir plus sur la société Sopra Group ? Quelles sont les solutions disponibles proposées par la société dans le domaine de l’ECM ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Sopra est un intégrateur global qui intervient sur tous types de solutions : Vignette, ATG, SharePoint, Alfresco, ...&lt;br /&gt;La Division Business Consulting contient une Practice ACS (Architecture and Collaborative Solutions) qui adresse l'expertise technique et solutions&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;     &lt;span style="font-weight: bold;"&gt;Peut-on connaitre quelques unes des expériences projets ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Un exemple intéressant car appliqué à nous-mêmes : Sopra Group a mis en oeuvre un portail de capitalisation et de gestion des connaissances pour les 12000 collaborateurs du groupe, basé sur la plateforme Alfresco, c'est la première réalisation à l'origine du partenariat&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Récemment nous assistons à la consolidation du marché des logiciels et des technologies avec le rachat successif de Sun par Oracle et de Vignette par Open Text. Il va donc être plus facile de choisir une solution ! Quel est votre avis sur cette évolution du marché ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Une consolidation progressive du domaine pourrait simplifier la vie des consultants et des décideurs !&lt;br /&gt;Le marché ECM/Portail est extrêmement satellisé ce qui rend les choix difficiles, surtout quant à la pérennité de la solution retenue&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comment définiriez-vous la place des éditeurs open-source dans cette consolidation ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Il y a une place à prendre, l'Open Source progresse partout et le mouvement est encore plus fort en france, reste à trouver le bon modèle : éditeur Open Source ou communautaire&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Au vu de votre expérience, vous avez connu les prémices et la montée en puissance de l’open-source… Comment définiriez-vous l’évolution du domaine de la GED/ECM avec le recul ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;On revient finalement vers la simplicité et les fonctions essentielles, après avoir peut-être équipé les utilisateurs avec des solutions lourdes, chères et complexes&lt;br /&gt;L'Open Source permet également un meilleur respect des standards et permet une interconnexion facilitée avec les applis de surface desktop ou webtop&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lors de l’Alfresco Meetup à Paris, vous avez reçu le titre : « Alfresco Partenaire de l’année ». Comment définiriez vous votre relation avec Alfresco et vos impressions sur la solution ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Sopra Group est un early adopter de la solution, convaincu de la qualité fonctionnelle et technique du modèle, la roadmap Alfresco est très réactive et visionnaire, ce qui nous plait bien.&lt;br /&gt;Depuis, nous avons beaucoup de projets à notre actif sur tous les modules et fortement capitalisé, d'où le succès logique sur cet award, Sopra Group est maintenant intégrateur de référence de la solution&lt;br /&gt;Alfresco reste quand même un produit assez technique, plutôt une brique à embarquer et à rhabiller le plus souvent, son point faible pourrait être l'interface&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;     &lt;span style="font-weight: bold;"&gt;Faites vous parti d’une communauté de référence sur le sujet de l’ECM/GED ? En connaissez vous d’autres ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Pour le moment, juste membre du groupe Facbook des utilisateurs Alfresco &lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pour finir sur une note annexe, quels sont vos blogs et liens préférés sur l'informatique en général ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;mon préféré, ma bible quotidienne : Netvibes&lt;br /&gt;autre grande source d'idées et de nouveaux usages : FING&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Un dernier mot avant de se quitter ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Mon grand credo de consultant : raisonner besoin avant de raisonner solution, çà reste trop rare&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Merci encore pour cette interview et bonne continuation sur la route d'un monde ECM Open Source !&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Vous pouvez retrouver toutes les informations sur &lt;b&gt;Sopra Group &lt;/b&gt;à l'adresse suivante : &lt;a href="http://www.sopragroup.fr/" target="_blank"&gt;http://www.sopragroup.fr/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-2775355303802885558?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=2SazIAcMubA:leqkY5hfD1Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=2SazIAcMubA:leqkY5hfD1Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=2SazIAcMubA:leqkY5hfD1Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/2SazIAcMubA/interview-remi-moebs-senior-manager.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>1</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/06/interview-remi-moebs-senior-manager.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-3854067335766821868</guid><pubDate>Tue, 16 Jun 2009 07:10:00 +0000</pubDate><atom:updated>2009-06-30T11:45:37.368+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interview</category><category domain="http://www.blogger.com/atom/ns#">Framework</category><category domain="http://www.blogger.com/atom/ns#">Technologies</category><title>Interview : Nicolas De Loof, Architecte Software Solution à Capgemini Rennes</title><description>Bonjour tout le monde !&lt;br /&gt;&lt;br /&gt;Aujourd’hui je vais faire un peu un écart sur ma ligne éditrice. En effet nous n’allons pas parler de gestion de contenu MAIS de l’écosystème Java. En effet, nombres d’entre vous ont remarqué que Java est l’un des langages de programmation (avec PHP, .NET…) les plus utilisés dans les solutions d’ECM Open Source. J2EE, JavaBeans, Spring, Hibernate, EJB3, OSGI, serveur d’application… Les références technologiques et techniques ne manquent pas lorsque l’on soulève le capot de Nuxeo, Alfresco, eXoPlatform, Jahia… Or que connaissons nous de Java ? De sa communauté ? De ses règles ? Des liens avec l’open-source ? Du rachat de Sun par Oracle ? C’est un peu tous ces points que je vais aborder avec mon invité du jour.&lt;br /&gt;&lt;br /&gt;J’ai donc le plaisir d’interviewer aujourd’hui&lt;span style="font-weight: bold;"&gt; Nicolas De Loof, architecte Java à Capgemini Rennes, commiter Maven et Président du BreizhJug (Association des utilisateurs de Java pour la Bretagne).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Bonjour Nicolas,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pour commencer, je tenais à vous remercier d’avoir accepté mon invitation pour partager vos connaissances sur le vaste univers du monde Java.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Je suis &lt;span style="font-weight: bold;"&gt;"Architecte Software Solution"&lt;/span&gt; si on considère la nomenclature Capgemini. Je travaille surtout en mode support / coaching / veille techno.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Support&lt;/span&gt;, car je suis référent en interne sur de nombreuses technos Java. J'interviens donc aussi bien en conseil sur des avant-ventes que pour faire marcher les projets&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Coaching &lt;/span&gt;pour faire tourner les équipes autour des bonnes pratiques de dev, par exemple l'intégration continue, le bon usage d'eclipse, mais aussi des micro-formations sur les design-patterns ou les frameworks à connaître&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Veille technologique&lt;/span&gt; en tâche de fond (même si parfois ca prend le dessus sur le reste). J'applique en gros la règle "google" du 20% de temps sur des devs libres. C'est par ce biais que j'ai intégré l'équipe Maven et appris à connaître de nombreux outils opensource, ainsi qu'à développer mes propres bidouilles que l'on utilise maintenant en production.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En résumé, quel a été votre parcours professionnel pour arriver à ce poste ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Je suis rentré chez Cap Telecom Rennes en 97, après mon service militaire, et j'y  suis resté depuis. Il faut croire que je m'y plais ! J'ai rapidement développé un rôle d'électron libre sur les projets Java, ma curiosité maladive m'obligeant à installer en douce sur les projets des frameworks opensource encore tout chauds - j'ai ainsi fait du Struts 0.5 et du Spring 1.0RC2. Bizarement (ou heureusement) cette attitude de geek et le fait que ça se passe plutôt bien m'a valu une bonne réputation en interne et la confiance de mes supérieurs. Il semble que je sois plus rentable quand on me lâche la bride que quand on veut me forcer à faire un truc que j'aime pas ;).&lt;br /&gt;&lt;br /&gt;Dans ce cadre, j'ai beaucoup participé aux listes de discussion Struts puis Maven, sujet sur lequel je me suis attardé pour le boulot, proposant quelques patches et surtout en contribuant au développement d'Archiva dont le support de Maven1 était indispensable pour mes "vieux" projets. J'ai alors été invité fin 2007 comme membre de l'équipe de dev Maven.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Maintenant, intéressons nous à Java. Quand avez-vous  programmé votre première ligne de code en Java ? Quelle a été la version de Java et que pensiez-vous à l’époque de ce langage de programmation ?  &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;J'ai commencé avec Java fin 1999 par une format Valtech sur le sujet dans le cadre d'un projet à démarrer. Rien de très croustillant ou de visionnaire donc. Par contre, j'ai tout de suite apprécié la supériorité de ce langage par rapport au C en terme de dynamique opensource. Sur les projets C à Cap on utilise très peu (pour ne pas dire "pas") de librairie opensource. Une fois que j'ai mis un orteil dans le monde communautaire qui foisonne autour de Java je n'ai jamais pu en sortir. Je ne sais pas si l'opensource C tourne aussi bien, mais Java est une plateforme de rêve pour les bidouilleurs. Le codage est réellement facile (je pense à la syntaxe qui masque les pointeurs) même pour des non-experts et on arrive donc rapidement à concevoir des petits outils rigolos. Et avec l'expérience on découvre les API de réflexion puis l'instrumentation du bytecode et rapidement on arrive à faire des choses étonnantes.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Quelles ont été les principales étapes de l’évolution de Java ?  &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Si on laisse de côté les prémices de java 1.0, Java n'a commencé à être un langage réputé qu'avec Java 1.2 et la compilation "Just In Time".&lt;br /&gt;&lt;br /&gt;La seconde grande étape a été l'arrivée de la norme Java EE. Aussi critiquable qu'elle soit, elle a implanté Java sur les serveurs de manière massive - amusant si on considère que la cible (loupée) de Java était le desktop.&lt;br /&gt;&lt;br /&gt;Après cette date, les versions de Java (1.3, 1.4) n'ont fait en résumé que compléter la plateforme avec des API qui étaient jusqu'ici optionnelles. La troisième grande étape a été Java5, une vraie révolution dans la syntaxe du langage. Tous les frameworks n'en tirent pas encore partie, mais le bénéfice est flagrant.&lt;br /&gt;&lt;br /&gt;La dernière étape clé est le repositionnement de Java comme plateforme pour le bytecode, et plus comme langage de programmation isolé. Le succès de Groovy, jRuby, Jython et compagnie montre que d'autres langages ont leur place dans cet écosystème.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;De nos jours, comment définiriez-vous Java et quels sont les principaux courants d’influence (EJB3, SpringSource...) existants ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Java est avant tout un écosystème autour d'une machine virtuelle. Le langage en lui même continue d'évoluer mais importe peu finalement. On peut même faire du PHP sur la JVM ! Le développement des normes Java au sein du Java Community Process s'est également largement ouvert. Au début très corporate, il s'est trouvé confronté à des initiatives libres et indépendantes, dont Spring fàce à JEE est la plus notoire. Aujourd'hui, SpringSource soutien une norme créée en dehors du JCP (@Inject, JSR330) qui a été acceptée en quelques mois pour JEE6, impensable il y a encore 6 mois. Java n'est définitivement plus piloté par des IBM ou des Oracle, mais bien par une communauté très active et très exigeante. Par ailleurs, le monde opensource a démontre qu'une norme c'est bien, mais qu'une implémentation intelligente et qui marche est bien plus rapidement acceptée. Spring ou Struts ont eu un succès démesuré si on considère que ce sont des outils indépendants. JSF et JEE font pitié a côté.&lt;br /&gt;&lt;br /&gt;Je dirais donc qu'il n'y a PAS de courant d'influence dans Java, mais une sélection naturelle par la communauté de ce qui apporte de la valeur à un instant "t". Des acteurs comme JBoss sont tentés de normaliser leurs outils (Seam), cela ne leur apporte pas plus d'utilisateurs. Par contre des projets bien ficelés comme Apache CXF trouvent de très nombreux supporters. C'est très rafraichissant de voir qu'un bon outil libre arrive à se faire une place à côté de mastodontes de l'industrie, et c'est une force de la communauté Java.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Au fait java est Open-Source ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Toutes les évolutions de Java se sont faites sous le contrôle de SUN mais surtout sous la pression de la communauté et de l'opensource. Le passage de Java en GPL a fait beaucoup de bruit, et c'est une excellente chose. Je pense que si Java était né en 2009 il aurait été depuis le début sous une licence libre, les mentalités ayant beaucoup évolué depuis. La prochaine grande étape est Java 7 dont les évolutions dans la syntaxe sont ouvertes au suggestions de la communauté, ce qui montre que le pilotage de Java est désormais libéré.&lt;br /&gt;&lt;br /&gt;Le monde Java est très friand d'opensource, et réclamait l'ouverture de Java depuis belle lurette. Le cas de GWT (Google Web Toolkit) est par exemple significatif. Avant la version 1.4, seul le runtime était libre, le "compilo" étant sous license Google. L'intérêt était alors réel mais sans grand succès. Avec le passage en full opensource de la version 1.4 GWT a explosé.&lt;br /&gt;&lt;br /&gt;Contrairement à d'autres communautés, le monde Java baigne énormément dans l'opensource et a tendance à repousser les outils propriétaires, quelle que soit leurs qualité. Le JDL lui-même n'a pas pu échapper longtemps à ce rouleau compresseur, SUN étant parfois accusé de vouloir conserver à tout pris la mainmise sur Java. Cette ouverture est une preuve que Java vit très au delà des labos de SUN aujourd'hui.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Comment percevez-vous le rachat de Sun par Oracle dans le domaine des technologies Java ? Abandon des projets comme GlassFish ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;C'est un gros sujet d'inquiétude. Oracle n'a pas racheté SUN pour Java mais pour compléter son offre (et sans doute aussi pour des questions de rentabilité financière).  Difficile de savoir si Oracle poursuivra la politique de SUN en termes d'investissement sur les outils et les projets libres. GlassFish bien sûr, qui fait concurrence avec OAS et Weblogic, mais aussi Metro, Netbeans, etc. Le passage en GPL est en même temps une garantie, mais sans industriel pour le soutenir financièrement Java risquerait de tourner au ralenti et de s'appauvrir.&lt;br /&gt;&lt;br /&gt;Wait and see...&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Parlons maintenant de l’association BreizhJug. Pouvez-vous nous présenter le but de cette association et si on devait généraliser quel est le but d’un JUG (Java User Group) ?  &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;J'ai découvert le concept de JUG en allant à la conférence SpringOne 06 organisé par le JUG belge. L'idée est d'animer une communauté locale autour de Java, avec le soutien de SUN mais de manière libre et indépendante. Dans la majorité des cas cela se traduit par l'organisation de conférences gratuites sur des thèmes techniques. J'ai crée le JUG Rennais après le succès du lancement du ParisJUG suivi du ToursJUG. La liste des JUGs français s'est depuis largement étoffée (14 à ce jour), ratrapant le retard que la France avait sur le sujet avec nos voisins européens.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Pourquoi avez-vous décidé de monter cette association et quelles sont les personnes qui participent au projet ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;J'ai monté le JUG dans le but de faire autre chose que juste coder dans l'ombre. Je voulais partager un verre avec des gens passionnés pour discuter de ClassLoaders (des gars vraiment très bizarres). Je voulais profiter d'une bonne dynamique pour avoir chez moi un équivalent (à l'échelle) des conférences JavaPolis. Je voulais renforcer les liens que j'avais tissés "online" avec quelques personnes influentes du monde Java. Je voulais aussi sans doute me faire mousser un peu en devenant le "JUG-leader" de Rennes. De ce point de vue c'est une réussite, et j'ai rencontré des gens passionnés, passionnants et désormais des habitués fidèles du JUG et ses meilleurs ambassadeurs.&lt;br /&gt;&lt;br /&gt;Le déclic a été très clairement ma visite à SpringOne. J'ai pris conscience de ce que peut être une communauté Java et ce qu'on arrive à faire avec relativement peu de moyens et de personnes. Depuis je suis le premier à encourager des confrères français à monter un JUG dans leur ville, quitte à faire "petit et pas cher et on verra bien".&lt;br /&gt;&lt;br /&gt;J'ai impliqué des collègues dans cette démarche pour m'épauler et trouver du soutien auprès du Granit, une association locale de promotion des technos et de deux sponsors : Orange Business Services et ... Capgemini ! OBS a été très moteur en animant eux-même trois sessions de grande qualité. D'ailleurs, s'ils le veulent bien, j'aimerais reconduire le sponsoring l'année prochaine ;)&lt;br /&gt;&lt;br /&gt;J'ai personnellement animé la session d'octobre en présentant Maven. C'est une expérience très stressante mais super enrichissante. J'encourage tout développeur qui participe à un outil opensource, même de loin, ou qui veut partager un retour d'expérience sur un outil à contacter son JUG local. Il y sera très probablement bien accueilli (nous cherchons toujours du monde). Présente son travail devant un public de 60 personnes ne met pas tout le monde à l'aise mais c'est tellement gratifiant que ça vaut le coup de s'en donner la peine.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Quels sont les prochains rendez-vous de l’association ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;La saison est close après 11 sessions riches et très suivies (de 50 à 90 participants, ce qui est énorme pour Rennes par rapport à nos prévisions). La deuxième saison repart en septembre, avec 3 sujets déjà programmés : Spring3, JEE6 et JPA2.&lt;br /&gt;&lt;br /&gt;Nous allons aussi tenter de faire bouger la communauté locale en organisant des quickies, sessions de 20/30 minutes ou un "local" vient présenter son petit projet perso, un outil ou une pratique qu'il a expérimenté. Nous allons aussi publier nos sessions en vidéo sur Parleys.com grâce au soutien du BEJug.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Dans une note annexe, grâce à vous j’ai découvert il y a un temps le site JavaBlackbelt. Que pensez-vous de ce site et de quelle couleur est votre JavaBelt ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;J'ai fait mumuse avec JavaBlackBelt jusqu'à ma ceinture marron. C'est un système original mais très discutable. Les questions sont souvent en dehors de la réalité de la pratique de développement, voir pas à jour par rapport aux versions actuelles des frameworks. J'ai plus appris en proposant des questions ou en en corrigeant pour gagner des points. La "gratuité" des premières ceintures n'est pas une bonne idée à mon avis de ce point de vue. Pour résumer, c'est un site sympa mais je ne m'en préoccupe plus et je ne donne pas une grande valeur aux ceintures obtenues.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Pour finir sur une note annexe, quels sont vos blogs, twitter et liens préférés sur l'informatique en général ?&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Le meilleur blog, c'est &lt;a href="http://blog.loof.fr/"&gt;blog.loof.fr&lt;/a&gt; - plus sérieusement, je suis de près les blogs de Didier Girard (&lt;a href="http://www.application-servers.com/"&gt;application-servers.com&lt;/a&gt; et &lt;a href="http://www.ongwt.com/"&gt;onGwt.com&lt;/a&gt;) qui a longtemps été ma mine d'information. Les blogs de quelques petits camarades sont aussi très bons, comme celui d'Arnaud Héritier (&lt;a href="http://blog.aheritier.net/"&gt;blog.aheritier.net&lt;/a&gt;). Je ne suis pas un gros utilisateur de twitter même si je me prête un peu au jeu pour voir. Je tire l'essentiel des listes de discutions "classiques" des projets apache.&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Un dernier mot avant de se quitter ? &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;J'ai appris bien plus en participant à des communautés en ligne, en essayant d'expliquer à d'autres ce que j'avais cru comprendre, et en lisant les réponses de personnes plus expérimentées. Je n'ai jamais trouvé aussi enrichissant dans une formation "classique". J'encourage tout les développeurs à s'impliquer dans ce genre de communauté. Cela prend bien sur un peu de temps chaque jour, mais le bénéfice est réel. Je ne serais pas à ma place sans la liste de diffusion de Struts, qui m'a fait découvrir Maven puis Spring.&lt;br /&gt;&lt;br /&gt;Passer de l'autre côté du miroir en devenant soi-même "producteur" d'opensource nécessite du temps libre et une plus forte implication, mais c'est une expérience très gratifiante (je suis assez fier de mon eMail nicolas@apache.org). Chacun peut le faire à son échelle, la première chose à envisager est d'ouvrir ses petits outils internes à la communauté. Je pense en particulier aux plugins Maven qu'on a tendance à conserver "en interne" alors qu'il est si simple de les "officialiser" dans le projet Mojo (mojo.codehaus.org).&lt;br /&gt;&lt;br /&gt;Enfin, pour ceux qui manquent de temps, essayez tout de même de vous dégager une soirée par mois pour participer au JUG local. Ces soirées sont d'excellentes ouvertures sur ce qui se fait ailleurs et l'occasion de rencontrer des gens passionnants. On peut aussi y comparer les pratiques et découvrir que ce qu'on croyait gravé dans le marbre n'est qu'une (mauvaise ?) habitude. Java est l'une des rares plateforme qui propose une approche communautaire aussi développée, ce serait dommage de passer à côté de cette dimension.&lt;br /&gt;&lt;br /&gt;Merci d'avoir pensé à moi pour cette interview :)&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Merci encore pour cette interview et bonne continuation sur la route d'un monde ECM Open Source basé sur des technologies Java  !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vous pouvez retrouver toutes les informations sur Capgemini à l'adresse suivante : &lt;a href="http://www.fr.capgemini.com/"&gt;http://www.fr.capgemini.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Intéressé par le BreizhJug ? Toutes les informations sont disponibles sur le site de l’association : &lt;a href="http://www.breizhjug.org/"&gt;http://www.breizhjug.org/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Et vous pouvez finalement retrouver Nicolas De Loof sur son blog : &lt;a href="http://blog.loof.fr/"&gt;http://blog.loof.fr/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS : Cette interview est disponible en téléchargement à cette addresse : &lt;a href="http://www.scribd.com/doc/16469260/Open-Source-ECM-Interview-FR-Nicolas-De-Loof-Capgemini-"&gt;http://www.scribd.com/doc/16469260/Open-Source-ECM-Interview-FR-Nicolas-De-Loof-Capgemini-&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-3854067335766821868?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=kycyrL1fKJc:RIMNAplnoxI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=kycyrL1fKJc:RIMNAplnoxI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=kycyrL1fKJc:RIMNAplnoxI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/kycyrL1fKJc/interview-nicolas-de-loof-architecte.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>4</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/06/interview-nicolas-de-loof-architecte.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-674431626480511185</guid><pubDate>Fri, 12 Jun 2009 12:26:00 +0000</pubDate><atom:updated>2009-06-12T15:53:47.920+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">twitter</category><title>Capgemini &amp; Sogeti sur Twitter</title><description>Après ma liste de compte Twitter sur les sociétés liées à l'&lt;a href="http://www.open-source-ecm.com/2009/03/twitter-new-way-to-follow-ecm-news.html"&gt;ECM&lt;/a&gt;, je vais créer ma liste de compte Twitter sur Capgemini et Sogeti.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Capgemini&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini  &lt;/span&gt;: &lt;a href="http://twitter.com/Capgemini"&gt;http://twitter.com/Capgemini&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini North America (Us/Canada)&lt;/span&gt; : &lt;a href="http://twitter.com/CapgeminiNA"&gt;http://twitter.com/CapgeminiNA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Cloud, Global &lt;/span&gt;&lt;span style="font-weight: bold;" class="fn"&gt;Center of Excellence&lt;/span&gt; : &lt;a href="http://twitter.com/Capgemini_cloud"&gt;http://twitter.com/Capgemini_cloud&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Outsourcing&lt;/span&gt; : &lt;a href="http://twitter.com/CapgeminiOS"&gt;http://twitter.com/CapgeminiOS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Espagna&lt;/span&gt; : &lt;a href="http://twitter.com/capgemini_es"&gt;http://twitter.com/capgemini_es&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Espagna&lt;/span&gt; : &lt;a href="http://twitter.com/capgemini_rrhh"&gt;http://twitter.com/capgemini_rrhh&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini OutSourcing UK&lt;/span&gt; : &lt;a href="http://twitter.com/osukcto"&gt;http://twitter.com/osukcto&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Norway&lt;/span&gt; : &lt;a href="http://twitter.com/CapgeminiNorge"&gt;http://twitter.com/CapgeminiNorge&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini FR ADC Toulouse&lt;/span&gt; : &lt;a href="http://twitter.com/ADC_Toulouse"&gt;http://twitter.com/ADC_Toulouse&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini UK Public Relation&lt;/span&gt; : &lt;a href="http://twitter.com/CapgeminiUKPR"&gt;http://twitter.com/CapgeminiUKPR&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Netherlands Global Services&lt;/span&gt; : &lt;a href="http://twitter.com/CapgeminiGSCAPS"&gt;http://twitter.com/CapgeminiGSCAPS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Capgemini Group &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Si vous travaillez @ Capgemini, je ne serais trop vous recommander de rejoindre d'une part le groupe Twitter (si vous avez un compte Twitter) à l'adresse suivante : &lt;a href="http://twittgroups.com/group/capgemini"&gt;http://twittgroups.com/group/capgemini&lt;/a&gt; et de rejoindre &lt;a href="http://www.yammer.com/"&gt;http://www.yammer.com&lt;/a&gt; (vous avez besoin d'une adresse @capgemini.com par contre) pour une expérience collaborative basée sur le principe du micro-blogging.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Sogeti&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti France :&lt;/span&gt; &lt;a href="http://twitter.com/sogeti_fr"&gt;http://twitter.com/sogeti_fr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti NetherLands :&lt;/span&gt; &lt;a href="http://twitter.com/sogeti_nl"&gt;http://twitter.com/sogeti_nl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti NetherLands  High Tech : &lt;/span&gt;&lt;a href="http://twitter.com/sogeti_nl_ht"&gt;http://twitter.com/sogeti_nl_ht&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti USA&lt;/span&gt; : &lt;a href="http://twitter.com/sogeti_usa"&gt;http://twitter.com/sogeti_usa&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti Espagna :&lt;/span&gt; &lt;a href="http://twitter.com/sogeti_es"&gt;http://twitter.com/sogeti_es&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sogeti SAP Ireland &lt;/span&gt;: &lt;a href="http://twitter.com/SAP_IN_IRELAND"&gt;http://twitter.com/SAP_IN_IRELAND&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Bien entendu cette liste va évoluer au fur et à mesure des différentes découvertes, créations et suppressions. Vous pouvez aussi aider à l'élaboration de la liste en laissant un commentaire ou via un tweet via mon twitter :o) &lt;span style="font-size:78%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;a style="font-weight: bold;" href="http://twitter.com/jeanmariepascal"&gt;http://twitter.com/jeanmariepascal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-674431626480511185?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=s3Gr7aZVLyw:bifejGm9Rz4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=s3Gr7aZVLyw:bifejGm9Rz4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=s3Gr7aZVLyw:bifejGm9Rz4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/s3Gr7aZVLyw/twitter-capgemini-sogeti.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/06/twitter-capgemini-sogeti.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-8944432400301583176</guid><pubDate>Tue, 02 Jun 2009 12:48:00 +0000</pubDate><atom:updated>2009-06-08T10:01:11.443+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">drupal</category><title>Drupal : listing des ressources</title><description>Bonjour,&lt;br /&gt;&lt;br /&gt;Durant les prochaines semaines qui viennent, je vais sans doute parler un peu plus de la solution open-source Drupal. En effet, mon travail actuel (et futur) me permet de découvrir et de pratiquer cette solution communautaire et comme d'habitude je vais essayer de vous faire partager mes découvertes.&lt;br /&gt;&lt;br /&gt;Aujourd'hui je vais commencer le listing des ressources parlant de DRUPAL.&lt;br /&gt;&lt;br /&gt;Quels sont donc les sites à consulter ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Site Internet&lt;/span&gt;&lt;br /&gt;&lt;a href="http://drupal.org"&gt;http://drupal.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blog&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ineation.com/"&gt;http://ineation.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.drupalcoder.com/"&gt;http://www.drupalcoder.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Site Internet Communautaire&lt;/span&gt;&lt;br /&gt;&lt;a href="http://drupalfr.org/"&gt;http://drupalfr.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://association.drupal.org/"&gt;http://association.drupal.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tutorial Video&lt;/span&gt;&lt;br /&gt;&lt;a href="http://biboo.net/"&gt;http://biboo.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les livres&lt;/span&gt;&lt;br /&gt;&lt;a href="http://bigbooksearch.com/books/Drupal"&gt;http://bigbooksearch.com/books/Drupal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les liens incontournables&lt;/span&gt;&lt;br /&gt;&lt;a href="http://drupal.org/project/modules"&gt;http://drupal.org/project/modules&lt;/a&gt;&lt;br /&gt;&lt;a href="http://drupal.org/project/themes"&gt;http://drupal.org/project/themes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://api.drupal.org/"&gt;http://api.drupal.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://drupalmodules.com/"&gt;http://drupalmodules.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bien entendu si vous avez d'autres liens je suis preneur ! :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-8944432400301583176?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=hDlHqHPLWso:dMiNd9IvuAs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=hDlHqHPLWso:dMiNd9IvuAs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=hDlHqHPLWso:dMiNd9IvuAs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/hDlHqHPLWso/drupal-listing-des-ressources.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>0</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/06/drupal-listing-des-ressources.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-7829518531765386858</guid><pubDate>Fri, 15 May 2009 14:24:00 +0000</pubDate><atom:updated>2009-05-19T12:13:45.605+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Divers</category><category domain="http://www.blogger.com/atom/ns#">Outils</category><category domain="http://www.blogger.com/atom/ns#">Stratégie</category><category domain="http://www.blogger.com/atom/ns#">ECM</category><category domain="http://www.blogger.com/atom/ns#">Technologies</category><title>Evolution de la gestion de contenu : Idées et Pensées</title><description>Aujourd'hui j'aimerai vous faire part d'une de mes récentes réflexions philosophico-technologico-fonctionnelles dans le monde de la gestion de contenus et plus particulièrement dans le domaine de la création de contenus...&lt;br /&gt;&lt;br /&gt;Le thème du jour (si vous le voulez bien) porte sur &lt;span style="font-weight: bold;"&gt;l'évolution des bonnes pratiques de la création de contenu...&lt;/span&gt; Pour cela je m'aiderai d'une comparaison avec le monde du développement informatique (oui oui... je parle de coder!  ^^ )&lt;br /&gt;&lt;br /&gt;Donc si je devais poser une problématique : &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Comment la production de contenu peut elle s'inspirer de la production de code logiciel ?&lt;br /&gt;La production de contenu va t elle prendre la même voie et adopter les mêmes principes ?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Tout d'abord un constat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dans le monde de l'information non-structuré (c.a.d dans le monde fonctionnel en général...)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Les utilisateurs utilisent des outils bureautiques (MS-Office, Open Office...) pour créer la grande majorité du contenu (Rapport, documentation, manuel, formulaire...) de l'entreprise.&lt;/li&gt;&lt;li&gt;Ils stockent l'information en local sur leur ordinateur (disque dur).&lt;/li&gt;&lt;li&gt;Ils partagent le contenu via des partages réseaux (disques durs partagés dans un réseau informatique) ou via une pièce jointe dans un e-mail.&lt;/li&gt;&lt;li&gt;Parfois les contenus seront regroupés, fusionnés avec d'autres contenus pour former par exemple une campagne publicitaire multilingue, une réponse à appel d'offre, un manuel de montage d'un meuble, un livret, un catalogue...&lt;/li&gt;&lt;li&gt;Une des bonnes pratiques de la création de contenus consiste à créer un template pour pouvoir réutiliser soit le style du document (powerpoint template), soit le contenu (modéle de document word...)&lt;/li&gt;&lt;li&gt;Pour partager ces modèles, on publie le fichier dans un répertoire partagé ou un site internet&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dans le monde de l'information technique (développement informatique par exemple)&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Les développeurs utilisent des outils de développement (Eclipse, Visual Studio...) pour créer la grande majorité du code (fichier .java .c ....) d'un projet informatique.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ils stockent les fichiers en local sur leur ordinateur (disque dur)&lt;/li&gt;&lt;li&gt;Ils partagent le code via un système de gestion de version (SVN, Hg, CVS...).&lt;/li&gt;&lt;li&gt;Avec l'ensemble du code, les développeurs constituent un projet qui sera ensuite compilé via des environnements de BUILD automatisé (Intégration Continue... Maven...) pour produire un logiciel (de manière générale).&lt;/li&gt;&lt;li&gt;Lorsque le code peut resservir, les développeurs regroupent ce code dans des bibliothéques. (.NET, Java, Spring...) Cette bibliothéque pourra ensuite servir dans du nouveau code.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pour partager la bibliothèque, ils le publient dans un système de gestion de répertoire ou un site internet.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Maintenant essayez de jouer au jeu des 7 erreurs...c'est à dire essayez de trouver les différences qui existent entre les deux mondes... Vous avez 5 minutes...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bon pour aller un peu plus vite...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Ma vision&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je pense que les bonnes pratiques et principes acquis via la développement informatique (ou autre) vont être de plus en plus utilisés dans la rédaction de la documentation en entreprise.&lt;br /&gt;&lt;br /&gt;Je m'explique...&lt;br /&gt;&lt;br /&gt;Comme vous avez pu le constater, il existe des différences dans la façon de créer/partager/modifier du contenu entre le fonctionnel et le technique.&lt;br /&gt;&lt;br /&gt;On a assisté à l'évolution dans l'informatique&lt;br /&gt;&lt;ul&gt;&lt;li&gt;code en local&lt;/li&gt;&lt;li&gt;code partagé&lt;br /&gt;&lt;/li&gt;&lt;li&gt;code partagé par un système de gestion de version&lt;br /&gt;&lt;/li&gt;&lt;li&gt;code partagé par un système de gestion de code standardisé&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;On assiste dans la création de contenu d'entreprise :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;fichier local&lt;br /&gt;&lt;/li&gt;&lt;li&gt;fichier partagé&lt;br /&gt;&lt;/li&gt;&lt;li&gt;fichier dans un système de gestion de contenu&lt;/li&gt;&lt;li&gt;fichier dans un système de gestion de composants&lt;/li&gt;&lt;/ul&gt;En d'autre terme, la gestion de contenu va connaitre (et connait déjà... il ne faut pas que je dise trop de bêtises quand même...) la même évolution qu'a connu la programmation avec l'approche orientée objet et le principe de l'intégration continue !&lt;br /&gt;&lt;br /&gt;On essaie d'appliquer dans le contenu les principes bien connus comme :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Write Once, Deploy Everywhere&lt;/span&gt; (Ecrire une fois, déployer/distribuer n'importe où et n'importe comment)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Stop Reinventing the Wheel&lt;/span&gt; (Arreter de réinventer la roue !)&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;On essaie aussi de créer et d'utiliser des outils comme&lt;br /&gt;&lt;ul&gt;&lt;li&gt;un outil de gestion de configuration "multi-dimensionnel" c'est à dire savoir que telle publication rassemble tel composant dans telle version, et la configuration de publication était la suivante, etc...&lt;/li&gt;&lt;li&gt;une plateforme de génération et de création d'un programme documentaire au vu de la modification d'une partie des composants&lt;/li&gt;&lt;li&gt;L'éditeur intégré ou non à des outils bureautique&lt;/li&gt;&lt;li&gt;UN système cohérent pour tous les assembler ;o)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Quels sont les gains d'une telle approche ? &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Prenons l'exemple typique d'une réponse à un appel d'offre.&lt;br /&gt;&lt;br /&gt;Pour ceux qui ne connaissent pas voici le principe.&lt;br /&gt;&lt;blockquote&gt;Un appel d’offres est une procédure par laquelle un acheteur potentiel demande à différents offreurs de faire une proposition commerciale chiffrée en réponse à la formulation détaillée (cahier des charges) de son besoin (produit ou service). Bien entendu l'ensemble des échanges entre les parties est généralement effectué avec des documents sous format bureautique (imprimés ou non). La réponse à l'appel d'offre est la proposition technique et commerciale sous format bureautique.&lt;/blockquote&gt;&lt;br /&gt;Donc déterminons la différence entre une société A qui posséderait un outil de gestion de composants et une société B qui le ferait comme d'habitude.&lt;br /&gt;&lt;br /&gt;Tout d'abord d'un point de vue fonctionnel,&lt;br /&gt;La société A a pris l'habitude de créer des composants. Elle a donc à sa disposition un catalogue  &lt;ul&gt;&lt;li&gt;des références clientes&lt;/li&gt;&lt;li&gt;des architecture et méthodologie&lt;/li&gt;&lt;li&gt;propositions commerciales&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ressources disponibles&lt;br /&gt;&lt;/li&gt;&lt;li&gt;feuilles de styles&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; L'utilisateur responsable de la réponse aura simplement à assembler les principaux composants (jusqu'à 80% du document) en quelques clics et travailler sur les derniers 20% (le coeur même du métier...)&lt;br /&gt;&lt;br /&gt;La société B ne possède pas un tel système. Le responsable de l'appel d'offre doit alors rechercher dans ses anciens documents un exemple qui lui servira de modèle de départ (sur le fond mais aussi sur la forme!). Il devra ensuite faire beaucoup de copier-coller, vérifier les différentes informations, éventuellement les mettre à jour ou demander à les mettre à jour...&lt;br /&gt;Et généralement il s'aperçoit à quelques heures de la date butoir qu'il a oublié de prendre le bon format ou la dernière référence...&lt;br /&gt;&lt;br /&gt;On peut conclure au vu de cet exemple rapide que les gains sont multiples :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gain de temps,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gain d'argent (car le temps c'est de l'argent !),&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gain de modularité,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gain d'efficacité...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Comment s'appelle ce système ? &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je ne sais pas s'il existe encore un véritable acronyme mais le terme CCMS pour &lt;span style="font-weight: bold;"&gt;Component Content Management System  (CCMS)&lt;/span&gt; est celui qui s'en rapproche le plus!&lt;br /&gt;Donc n'hésitez pas à vous renseigner sur le sujet! (Et moi aussi par la même occasion....)&lt;br /&gt;&lt;br /&gt;A quand l'acronyme&lt;span style="font-weight: bold;"&gt; ECCMS (Enterprise Content Management System)...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je tenais à remercier &lt;a href="http://www.componize.com/"&gt;&lt;span style="font-weight: bold;"&gt;Componize.com&lt;/span&gt;&lt;/a&gt; (et plus particulièrement le staff cf. Interview &lt;a href="http://www.opensourceecm.fr/2009/02/herve-quiroz-lead-architect-componize.html"&gt;H.Quiroz&lt;/a&gt;) pour avoir pris du temps pour m'expliquer cette tendance dans la gestion de contenu. N'hésitez surtout pas à essayer leur solution et à demander plus d'informations ! Cela vaut le détour.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Remarque &lt;/span&gt;&lt;br /&gt;Le seul petit soucis que je vois à l'adoption d'un tel système reste et restera les interfaces graphiques et donc l'expérience utilisateur. L'homme (et la femme) restent et resteront la clef la plus importante...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Merci à tous et à toutes et n'hésitez pas à réagir!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-7829518531765386858?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=V1OadiUzzCk:ys2yz9WzNwY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=V1OadiUzzCk:ys2yz9WzNwY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=V1OadiUzzCk:ys2yz9WzNwY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/V1OadiUzzCk/evolution-de-la-gestion-de-contenu.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>1</thr:total><feedburner:origLink>http://www.opensourceecm.fr/2009/05/evolution-de-la-gestion-de-contenu.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-3813388620638462252</guid><pubDate>Tue, 05 May 2009 16:10:00 +0000</pubDate><atom:updated>2009-05-15T15:28:29.091+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><category domain="http://www.blogger.com/atom/ns#">Evènement</category><category domain="http://www.blogger.com/atom/ns#">Actualité</category><title>Alfresco Meetup Paris : Impressions et Compte Rendu</title><description>Bonjour tout le monde !&lt;br /&gt;&lt;br /&gt;Le jeudi 30.04, lors d'une tournée de 15 dates à travers le monde entier,  j'ai assisté à Paris à&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;l'&lt;span style="font-weight: bold;"&gt;Alfresco Meetup&lt;/span&gt;. Compte Rendu et Impressions...&lt;br /&gt;&lt;br /&gt;Tout d'abord replaçons le planning : la journée s'est divisée en 2 parties.&lt;br /&gt;Une partie Alfresco "Crew" (Matinée) et une partie Partenaires (après-midi).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Alfresco Morning&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;La première séance de présentation a été consacrée à ...........?  Alfresco bien sur!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Présentée par Denis Dorval Vice-Président EMEA Alfresco, la session était consacrée à Alfresco, l'ECM et le marché de l'ECM en général. &lt;/span&gt;&lt;br /&gt;Je ne vais pas trop rentrer dans les détails mais néanmoins on peut noter les principaux points suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Une personne qui utilise Alfresco est appelée : "Alfrescan(s)" (je ne savais pas que j'avais aussi ce nom là ;o)  )&lt;/li&gt;&lt;li&gt;La communauté Alfresco représente 90 000 personnes dans le monde. &lt;/li&gt;&lt;li&gt;La France est la 2e communauté après les USA.&lt;/li&gt;&lt;li&gt;Alfresco a gagné 270 clients, 90 partenaires et 18 OEM en 2008.&lt;/li&gt;&lt;li&gt;2009 est l'année de l'acceptation de l'open source.&lt;/li&gt;&lt;li&gt;2009 continue d'être une année de consolidation du marché du logiciel.&lt;/li&gt;&lt;li&gt;Plus d'une dizaine de clients gèrent plus de 10 millions de documents avec Alfresco.&lt;/li&gt;&lt;li&gt;Adobe (avec le service acrobat.com) gère le plus grand nombre de documents avec Alfresco :  &lt;span style="color: rgb(0, 0, 0);"&gt;+ de 120 millions de documents&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Alfresco vise le MILLIARD de documents.&lt;/li&gt;&lt;/ul&gt;Pour le reste je vous invite à consulter les supports de présentation à cette adresse : &lt;a href="http://share.alfresco.com/share/page/site/community/documentlibrary#path=%2FCommunity%20Conference%20Presentations%2FMeetups%20Worlwide%2FEMEA%20Meetups%2FFrance%20Meetup&amp;amp;page=1"&gt;Présentations Alfresco&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ensuite un exposé (très enrichissant!) sur un cas client intitulé :  EADS (Astrium &amp;amp; EPS) solution RH sans papier ou Projet UBIC (Atol CD/Astrium).&lt;/span&gt;&lt;br /&gt;Au cours de cette présentation, on a pu observer comment on pouvait dématérialiser l'ensemble des processus RH d'une grande entreprise telle qu'Astrium (Et EADS sans doute dans le futur).&lt;br /&gt;Quelques chiffres et mots clés en passant :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;2008 &lt;/span&gt;: Lancement du projet&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;600000 &lt;/span&gt;: nombre de documents dans un premier temps, &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;10 millions&lt;/span&gt; : nombre de documents gérés à terme.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Alfresco 2.2E, GWT, Linux Red Hat, Oracle 10g, JBPM, WebDav, Webscripts&lt;/span&gt; : Principaux composants de l'architecture et de l'application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Pour en savoir plus, la vidéo de démonstration de l'application à cette adresse : &lt;a href="http://www.atolcd.com/ubic-demo-flash.html"&gt;http://www.atolcd.com/ubic-demo-flash.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Au final, Ubic va devenir un plug-in que l'on pourra ajouter au sein d'Alfresco pour la gestion de la documentation RH. Ce projet sera aussi bien supporté par Astrium que par Atol CD.&lt;br /&gt;&lt;br /&gt;Pour en savoir plus sur le projet UBIC : &lt;a href="http://www.atolcd.com/btn-ll/alfresco-ecm-ged/personnalisation-avancee.html"&gt;http://www.atolcd.com/btn-ll/alfresco-ecm-ged/personnalisation-avancee.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pour conclure la matinée, nous avons eu le droit à la présentation d'Alfresco 3.1 et au delà grâce à M.Farman, Director of Product Management chez Alfresco.&lt;/span&gt;&lt;br /&gt;Les points importants à retenir :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gestion du Record Management : Passage de la certification DOD5015.2 en septembre 2009&lt;/li&gt;&lt;li&gt;Gestion et archivage des e-mails. (&lt;span style="font-weight: bold;"&gt;Un MUST-SEE!!!&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Implémentation du protocole IMAP et création des Virtualized Repository (&lt;span style="font-weight: bold;"&gt;Un MUST-SEE!!!&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Alfresco SURF ne signifie.... RIEN! (toujours bon à savoir...) &lt;/li&gt;&lt;li&gt;Ajout d'outils d'administration pour les clients Alfresco Enterprise (Enterprise Only Capabilities : clustering, monitoring...)&lt;/li&gt;&lt;li&gt;Share Forms Service&lt;/li&gt;&lt;li&gt;Web Delivery Runtime&lt;/li&gt;&lt;li&gt;Alfresco Query Language (basé sur CMIS + Extensions Alfresco)&lt;/li&gt;&lt;li&gt;Index Consistency Check&lt;/li&gt;&lt;li&gt;Alfresco Mobile (Exemple : Intégration d'un client graphique basé sur les services Alfresco sur l'IPhone)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Pour résumer, Alfresco continue d'étendre sa toile sur le périmètre du cycle de vie des documents d'entreprise. Ces 2 prochaines cibles sont les e-mails et l'archivage légal. Ces 2 aspects sont fortement attendus tellement elles deviennent de plus en plus prédominante pour les responsables fonctionnels. Pour pouvoir supporter la montée en charge inévitable et inéluctable, les clients Enterprise pourront bénéficier d'outils pour gérer les clusters de serveur Alfresco!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Partners Afternoon&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;L'après midi a été consacré à des présentations techniques de la part des partenaires Alfresco. Petit tour d'horizon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;NB : A noter la remise d'un trophée "Alfresco : Partenaire de l'année" pour Sopra Group : &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.sopragroup.fr/"&gt;http://www.sopragroup.fr/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Componize et sa solution de gestion de documentation XML.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;En tant que voisin, j'ai enfin pu découvrir cette solution!! Elle se base sur le principe de création documentaire par composants.&lt;br /&gt;En effet lorsque nous créons des documents bureautiques (et techniques!!), par défaut nous créons des documents par composants sans nous en rendre compte.&lt;br /&gt;Un paragraphe est un composant d'un chapitre.&lt;br /&gt;Un chapitre est un composant d'un livre.&lt;br /&gt;Un livre est un composant d'une bibliothèque&lt;br /&gt;etc...&lt;br /&gt;&lt;br /&gt;Et souvent, on remarque que ces composants sont les mêmes suivant les documents que l'on crée! Or lorsque l'on veut modifier une version de ce composant, on est obligé de repasser sur l'ensemble des documents qui possédent ce composant!! Perte de temps garantie!&lt;br /&gt;Pour optimiser cette gestion, on utilise un outil comme Componize !&lt;br /&gt;&lt;br /&gt;Pour plus d'informations : &lt;a href="http://www.componize.com/overview/overview-home.html"&gt;http://www.componize.com/overview/overview-home.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Xenit et son intégration CAStor.&lt;/span&gt;&lt;br /&gt;Tout d'abord si vous ne connaissez pas CAStor par Caringo, je vous recommande de faire un tour ici : &lt;a href="http://www.caringo.com/products_castor.html"&gt;http://www.caringo.com/products_castor.html&lt;/a&gt;&lt;br /&gt;Maintenant faites le lien avec un système de gestion de contenus comme Alfresco via le module CAStor développé par Xenit et vous obtiendrez une solution capable de gérer facilement plusieurs millions de documents sans soucis avec une scalabilité et une haute performance garantie!&lt;br /&gt;Impressionnant !&lt;br /&gt;&lt;br /&gt;Pour plus d'informations sur Xenit : &lt;a href="http://www.xenit.eu/"&gt;http://www.xenit.eu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;OpenWide et sa migration de données avec un ETL (Talend)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Généralement, lorsque l'on commence un projet d'ECM, on possède un existant documentaire. Or il faut trouver un moyen de pouvoir transferer cet existant vers Alfresco.&lt;br /&gt;Comment ? Via un ETL (Talend dans notre cas) et le composant d'intégration développé par OpenWide. Celui ci permet de créer et d'intégrer les contenus au sein d'Alfresco via des "jobs" (procédures automatisées).&lt;br /&gt;&lt;br /&gt;Pour plus d'informations sur OpenWide : &lt;a href="http://www.openwide.fr/"&gt;http://www.openwide.fr/&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Atol CD et ses applications basées sur SURF :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;JSF est mort, vive REST! Tel est un peu le slogan de cette présentation qui nous explique comment créer une nouvelle expérience utilisateur avec Alfresco.&lt;br /&gt;&lt;br /&gt;Pour plus d'informations sur la présentation : &lt;a href="http://www.atolcd.com/fileadmin/Publications/Alfresco_Meetup_RIA_et_SURF.pdf"&gt;http://www.atolcd.com/fileadmin/Publications/Alfresco_Meetup_RIA_et_SURF.pdf&lt;/a&gt;&lt;br /&gt;Pour plus d'information sur Atol CD :  &lt;a href="http://www.atolcd.com/"&gt;http://www.atolcd.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;BlueXML et sa création de Workflow&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Comment générer 1200 lignes de codes pour la création et le paramètrage d'un workflow dans Alfresco en l'espace de quelques minutes ?&lt;br /&gt;La réponse est simple : Utiliser l'outil graphique BlueXML !&lt;br /&gt;Cet outil, basé sur Eclipse, permet via drag&amp;amp;drop(et formulaires) de créer l'ensemble des fichiers nécessaires pour la mise en place d'un workflow Alfresco.&lt;br /&gt;Le rêve de tous développeurs !&lt;br /&gt;&lt;br /&gt;Pour plus d'informations sur BlueXML :&lt;a href="http://www.bluexml.com/v2/alfresco-generator/"&gt; http://www.bluexml.com/v2/alfresco-generator/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;Au final &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tout d'abord comme son logo l'indique, on peut comparer Alfresco à une fleur qui a évolué dans son écosystème (la gestion de contenu).&lt;br /&gt;Dans cet ecosystème, il a rencontré&lt;br /&gt;&lt;ul&gt;&lt;li&gt;des abeilles (OEM) qui ont créé leurs miels (solution) à partir du pollen de la fleur (Alfresco...)&lt;/li&gt;&lt;li&gt;des fleuristes (Intégrateurs) qui ont utilisé la fleur (Alfresco...) pour créer des compositions (Solutions spécifiques)&lt;/li&gt;&lt;li&gt;des horticulteurs (Partenaires/Intégrateur/Communauté) qui ont pris la fleur pour la faire évoluer (Alfresco...) afin de la rendre encore plus forte.&lt;/li&gt;&lt;li&gt;des passionnés (Communauté) qui ont pris la fleur parce qu'ils la trouvaient belle.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ensuite, pour vivre heureux, vivons caché. Cett maxime correspond bien à la tendance de fond des intégrateurs et partenaires Alfresco.&lt;br /&gt;Ils délaissent de plus en plus l'interface historique basée sur la technologie JSF pour passer à des interfaces plus réactives et plus dans la mouvence 2.0.&lt;br /&gt;Au revoir Java, Bonjour Java..script! (J'exagère mais l'idée est là...)&lt;br /&gt;&lt;br /&gt;Finalement on notera au passage la continuation d'un principe fondateur d'Alfresco : s'intégrer de manière transparente aux outils que l'utilisateur connait et utilise tous les jours!&lt;br /&gt;Hier CIFS pour le partage de documents dans un répertoire Windows. Aujourd'hui l'intégration avec la suite Windows Office via Sharepoint. Demain IMAP pour le partage et la gestion des emails dans Outlook...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Et moi dans tout cela ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pour ma première participation à un évènement Alfresco (ma deuxième pour un évènement communautaire), je pense que j'ai des progrès à faire au niveau du Networking entre les sessions :o)&lt;br /&gt;Il faut que j'améliore mon côté "commercial".&lt;br /&gt;&lt;br /&gt;Ensuite je confirme totalement mon intérêt  pour l'intégration de systèmes d'informations (de contenus).&lt;br /&gt;En effet, si vous avez bien lu l'ensemble de cet article vous pouvez avec Alfresco :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gérer de la documentation et vos e-mails(Alfresco ECM)&lt;/li&gt;&lt;li&gt;Faire du collaboratif (Alfresco Share)&lt;/li&gt;&lt;li&gt;Créer et gérer des sites Web (Alfresco WCM)&lt;/li&gt;&lt;li&gt;Gérer de la documentation XML et technique (Componize)&lt;/li&gt;&lt;li&gt;Répartir vos données en haute disponibilité (CAStor - Xenit) avec des outils intégrés (Enterprise Only Capabilities)&lt;/li&gt;&lt;li&gt;Intégrer des données existantes via un ETL (Talend - OpenWide)&lt;/li&gt;&lt;li&gt;Créer des interfaces riches (Alfresco SURF) pour des besoins métiers spécifiques&lt;/li&gt;&lt;li&gt;Créer des workflows de manière simple et intuitive (BlueXML)&lt;/li&gt;&lt;li&gt;Archiver le tout (Alfresco RM)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Et quelles sont les personnes qui peuvent faire ce travail ?&lt;br /&gt;&lt;br /&gt;Les Intégrateurs (dont je fais parti...) !!!&lt;br /&gt;&lt;br /&gt;Finalement, quand j'étais jeune j'aimais beaucoup jouer aux Lego... Je crois que je vais continuer dans cette voie...&lt;br /&gt;&lt;br /&gt;Comme vous pouvez le constater, la route est encore longue.&lt;br /&gt;&lt;br /&gt;Merci pour tout. Et à très bientôt!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS : Vous pouvez retrouver les quelques photos que j'ai prises durant l'évènement  à l'adresse suivante : &lt;a style="font-weight: bold;" href="http://www.flickr.com/photos/36931301@N03/sets/72157617655796047/"&gt;http://www.flickr.com/photos/36931301@N03/sets/72157617655796047/&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-3813388620638462252?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=j5FV4BqwNzo:I0OEJhNkjdA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=j5FV4BqwNzo:I0OEJhNkjdA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=j5FV4BqwNzo:I0OEJhNkjdA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/j5FV4BqwNzo/alfresco-meetup-paris-impressions-et.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>2</thr:total><enclosure url="http://www.atolcd.com/fileadmin/Publications/Alfresco_Meetup_RIA_et_SURF.pdf" length="341839" type="application/pdf" /><feedburner:origLink>http://www.opensourceecm.fr/2009/05/alfresco-meetup-paris-impressions-et.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-4836906795445701403</guid><pubDate>Wed, 15 Apr 2009 10:07:00 +0000</pubDate><atom:updated>2009-04-15T12:08:57.657+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Présentation</category><category domain="http://www.blogger.com/atom/ns#">Outils</category><category domain="http://www.blogger.com/atom/ns#">Alfresco</category><title>Installer Alfresco 3 sur une Ubuntu 8.10 VMWare</title><description>&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;Bonjour tout le monde !&lt;br /&gt;&lt;br /&gt;Comme tout bon informaticien, il m’arrive parfois  d’utiliser des images VMWare pour réaliser une instance de test ou de  démonstration pour tel ou tel produit. Or je n’ai pas forcément le temps de télécharger et  graver les images ISO des systèmes d’exploitation pour ensuite créer une image  VM.&lt;br /&gt;Je recherchais donc un moyen de pouvoir récupérer les  images VMWare puis de les utiliser directement sans pour autant avoir un VMWare  Workstation installé sur mon poste. Je possède un disque dur de 320Go et une connexion  internet ADSL.&lt;br /&gt;&lt;br /&gt;J’ai donc opté pour récupérer les images sur des sites  comme&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.thoughtpolice.co.uk/vmware/"&gt;http://www.thoughtpolice.co.uk/vmware/ &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vmware.pouf.org/"&gt;http://vmware.pouf.org/     &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Puis de les utiliser avec VMWare  Player &lt;a href="http://www.vmware.com/products/player/"&gt;http://www.vmware.com/products/player/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Tout cela pour 0€ net d’impôt et en toute  légalité !&lt;br /&gt;&lt;br /&gt;Pour vous démontrer l’utilisation de cette combinaison,  je vous invite à suivre mes notes sur l’installation d’un Alfresco 3 Stable sur  une image VMWare Ubuntu 8.10.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1284589"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/JM.Pascal/utiliser-vm-ware-pour-linstallation-alfresco?type=powerpoint" title="[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco"&gt;[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vmwareinstallationalfresco-090414033241-phpapp01&amp;amp;stripped_title=utiliser-vm-ware-pour-linstallation-alfresco"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vmwareinstallationalfresco-090414033241-phpapp01&amp;amp;stripped_title=utiliser-vm-ware-pour-linstallation-alfresco" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/JM.Pascal"&gt;Pascal Jean marie&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-4836906795445701403?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=dMX9C9dju-g:FQLlS8_3Hus:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=dMX9C9dju-g:FQLlS8_3Hus:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=dMX9C9dju-g:FQLlS8_3Hus:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/dMX9C9dju-g/installer-alfresco-3-sur-une-ubuntu-810.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>1</thr:total><enclosure url="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vmwareinstallationalfresco-090414033241-phpapp01&amp;amp;stripped_title=utiliser-vm-ware-pour-linstallation-alfresco" length="121655" type="application/x-shockwave-flash" /><feedburner:origLink>http://www.opensourceecm.fr/2009/04/installer-alfresco-3-sur-une-ubuntu-810.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754249220006084747.post-2403251714739605505</guid><pubDate>Thu, 02 Apr 2009 13:17:00 +0000</pubDate><atom:updated>2009-04-02T15:19:20.260+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Divers</category><category domain="http://www.blogger.com/atom/ns#">Présentation</category><category domain="http://www.blogger.com/atom/ns#">Contribution</category><category domain="http://www.blogger.com/atom/ns#">web social</category><title>Open Source ECM : This is my way...</title><description>&lt;div style="width: 425px; text-align: left;" id="__ss_1232886"&gt;Juste un conseil : Regardez la présentation ^^&lt;br /&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/JM.Pascal/jmpascal-this-is-my-way?type=powerpoint" title="JM.PASCAL - This is my way..."&gt;JM.PASCAL - This is my way...&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ecmjmpascal-myjob-090401092210-phpapp01&amp;amp;stripped_title=jmpascal-this-is-my-way"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ecmjmpascal-myjob-090401092210-phpapp01&amp;amp;stripped_title=jmpascal-this-is-my-way" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/JM.Pascal"&gt;Pascal Jean marie&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2754249220006084747-2403251714739605505?l=www.opensourceecm.fr' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=jc_foMQSrig:aDwr_zQoBsI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?i=jc_foMQSrig:aDwr_zQoBsI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?a=jc_foMQSrig:aDwr_zQoBsI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SurLaRouteDunMondeEcm?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/SurLaRouteDunMondeEcm/~3/jc_foMQSrig/open-source-ecm-this-is-my-way.html</link><author>noreply@blogger.com (JM.Pascal)</author><thr:total>0</thr:total><enclosure url="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ecmjmpascal-myjob-090401092210-phpapp01&amp;amp;stripped_title=jmpascal-this-is-my-way" length="121655" type="application/x-shockwave-flash" /><feedburner:origLink>http://www.opensourceecm.fr/2009/04/open-source-ecm-this-is-my-way.html</feedburner:origLink></item><language>en-us</language></channel></rss>

