{"id":181,"date":"2012-04-29T21:57:43","date_gmt":"2012-04-29T20:57:43","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=181"},"modified":"2013-01-05T08:53:08","modified_gmt":"2013-01-05T07:53:08","slug":"sonar-upgrade-2","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/sonar-upgrade-2\/","title":{"rendered":"Sonar Upgrade"},"content":{"rendered":"<p>Cela faisait un moment que nous n&rsquo;avions pas parl\u00e9 de Sonar. J&rsquo;ai \u00e9t\u00e9 un peu occup\u00e9 r\u00e9cemment \u00e0 d\u00e9couvrir de nouveaux territoires (cf. les posts pr\u00e9c\u00e9dents <a title=\"Elasticit\u00e9 des applications\" href=\"http:\/\/qualilogy.com\/fr\/elasticite-des-applications-22\" target=\"_blank\">Elasticit\u00e9 des applications<\/a>, <a title=\"La qualit\u00e9 dans le Cloud\" href=\"http:\/\/qualilogy.com\/fr\/la-qualite-dans-le-cloud\" target=\"_blank\">La qualit\u00e9 dans le Cloud<\/a>) et j&rsquo;ai donc pris du retard dans la mise-\u00e0-jour de de mon environnement Sonar. De surcro\u00eet, il y a une <a title=\"Nouvelle version Sonar 3.0\" href=\"http:\/\/www.sonarsource.org\/sonar-3-0-in-screenshots\/\" target=\"_blank\">nouvelle version 3.0<\/a> avec un tas de nouveaut\u00e9s.<\/p>\n<p>Donc et sans plus attendre, le moment est venu d&rsquo;effectuer un upgrade Sonar.  <!--more--><\/p>\n<p>Notez bien qu&rsquo;il s&rsquo;agit d&rsquo;un upgrade de notre environnement complet, pas simplement d&rsquo;une version Sonar mais \u00e9galement de plugins obsol\u00e8tes ou \u00e0 mettre \u00e0 jour ou de plugins nouveaux \u00e0 ajouter. Pour vous faire une id\u00e9e de mon installation Sonar, vous pouvez vous reporter \u00e0 ce post <a title=\"Sonar Installation\" href=\"http:\/\/qualilogy.com\/fr\/sonar-notre-environnement\" target=\"_blank\">Sonar &#8211; Notre environnement<\/a>.<\/p>\n<p>Nous allons donc commencer par noter :<\/p>\n<ol>\n<li>Les plugins que l\u2019on veut quitter: j\u2019ai test\u00e9 quelques plugins pour lesquels une licence est n\u00e9cessaire et celle-ci est venue \u00e0 expiration. Je vais donc retirer ces plugins.<\/li>\n<li>Les plugins que l\u2019on veut upgrader, pour lesquels existe une nouvelle version.<\/li>\n<li>Les plugins nouveaux que l\u2019on veut installer.<\/li>\n<\/ol>\n<h3><strong>Update Center<\/strong><\/h3>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Sonar_Admin_Login.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1604\" title=\"Sonar_Admin_Login\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Sonar_Admin_Login.jpg\" alt=\"\" width=\"163\" height=\"25\" \/><\/a>Pour ce faire, nous allons aller visiter l&rsquo;Update Center: login admin \/ admin dans Sonar.<\/p>\n<p><a><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1605\" title=\"Sonar_Admin_Login2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Sonar_Admin_Login2.jpg\" alt=\"\" width=\"260\" height=\"30\" \/><\/a><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Sonar_Admin_UpdateCenter.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1609\" title=\"Sonar_Admin_UpdateCenter\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Sonar_Admin_UpdateCenter.jpg\" alt=\"\" width=\"158\" height=\"181\" \/><\/a>Puis &lsquo;Configuration&rsquo; \/ &lsquo;Update Center&rsquo;&#8230;<\/p>\n<p>et dans cet \u00e9cran, nous pouvons voir :<\/p>\n<ul>\n<li>Les plugins install\u00e9s.<\/li>\n<li>Les plugins non install\u00e9s et disponibles \u00e1 l&rsquo;installation.<\/li>\n<li>Les plugins pour lesquels une nouvelle version est disponible.<\/li>\n<li>Toute(s) nouvelle(s) version(s) de Sonar disponible(s).<\/li>\n<\/ul>\n<p>L&rsquo;\u00e9cran ci-dessous montre que 4 updates possibles de plugins, dont l&rsquo;un (le plugin Views) incompatible avec la version Sonar actuelle n\u00e9cessitera au pr\u00e9alable un upgrade Sonar.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPluginUpdate_11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1619\" title=\"SonarPluginUpdate_1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPluginUpdate_11.jpg\" alt=\"\" width=\"1089\" height=\"298\" \/><\/a><\/p>\n<p>La mise \u00e0 jour de mon environnement Sonar va donc consister en :<\/p>\n<ol>\n<li>Suppression de plugins obsol\u00e8tes.<\/li>\n<li>Upgrade de version de plugins existants.<\/li>\n<li>Upgrade de version Sonar.<\/li>\n<li>Upgrage (post-upgrade Sonar) du plugin Views ou ajout de plugins existants.<\/li>\n<\/ol>\n<h3><strong>Suppression de plugins<\/strong><\/h3>\n<p>Afin de supprimer un plugin existant, il suffit de s\u00e9lectionner celui-ci depuis l&rsquo;onglet &lsquo;Installed Plugins&rsquo; afin de voir appara\u00eetre sa description et un bouton &lsquo;Uninstall&rsquo;.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUninstallPlugin2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1621\" title=\"SonarUninstallPlugin2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUninstallPlugin2.jpg\" alt=\"\" width=\"457\" height=\"84\" \/><\/a>Vous pouvez s\u00e9lectionner plusieurs plugins \u00e0 d\u00e9sinstaller.<\/p>\n<p>Il est n\u00e9cessaire de red\u00e9marrer Sonar afin de mettre \u00e0 jour l&rsquo;Update Center. Dans notre environnement, cela passe par un Stop \/ Start de Tomcat.<\/p>\n<p>Tiens, j&rsquo;ai oubli\u00e9 de faire un backup de mon sch\u00e9ma Sonar en base de donn\u00e9es. Profitons que Tomcat est arr\u00eat\u00e9 pour ce faire.<\/p>\n<h3><strong>Backup du sch\u00e9ma Oracle de Sonar<br \/>\n<\/strong><\/h3>\n<p>Je fais mes dumps de sch\u00e9ma en ligne de commandes, avec un export Oracle et les param\u00e8tres suivants :<\/p>\n<ul>\n<li>file : le nom du fichier de dump ;<\/li>\n<li>log : un fichier de log afin de v\u00e9rifier que le dump est correct ;<\/li>\n<li>userid : les param\u00e8tres de connexion \u00e0 mon instance Oracle, pour le sch\u00e9ma \u00e0 backuper. Donc sous la forme user\/password@instance_Oracle (le nom assign\u00e9 \u00e0 la base de donn\u00e9es Oracle).<\/li>\n<\/ul>\n<p>On ne peut pas faire plus simple.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Exp_Sonar1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1624\" title=\"Exp_Sonar1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Exp_Sonar1.jpg\" alt=\"\" width=\"686\" height=\"117\" \/><\/a><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Exp_Sonar2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1625\" title=\"Exp_Sonar2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/Exp_Sonar2.jpg\" alt=\"\" width=\"686\" height=\"106\" \/><\/a>Une fois l&rsquo;export termin\u00e9s sans &lsquo;warnings&rsquo;, je peux voir les fichiers .dmp et .log cr\u00e9\u00e9s dans le r\u00e9pertoire de backup o\u00f9 je me suis positionn\u00e9 afin de lancer la commande &lsquo;EXP&rsquo;.<\/p>\n<p>Start de Tomcat et retour dans l&rsquo;Update Center : les plugins supprim\u00e9s n&rsquo;apparaissent plus dans l&rsquo;onglet &lsquo;Installed Plugins&rsquo;.<\/p>\n<h3><strong>Upgrade de plugins<\/strong><\/h3>\n<p>La mise \u00e0 jour de versions de plugins va se jouer exactement selon le m\u00eame mode op\u00e9ratoire que le pr\u00e9c\u00e9dent.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUpgradeJavascript1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1627\" title=\"SonarUpgradeJavascript1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUpgradeJavascript1.jpg\" alt=\"\" width=\"342\" height=\"58\" \/><\/a>Depuis l&rsquo;onglet &lsquo;Plugin Updates&rsquo;, cliquer sur le bouton d&rsquo;upgrade de versions pour chaque plugin \u00e0 updater.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUpgradePlugins1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1631\" title=\"SonarUpgradePlugins\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarUpgradePlugins1.jpg\" alt=\"\" width=\"421\" height=\"105\" \/><\/a>L\u00e0 encore, on peut mettre-\u00e0-jour plusieurs versions en une seule fois. Puis \u00e0 nouveau Stop \/ Start du serveur Tomcat afin de voir appara\u00eetre les nouvelles versions de plugins dans l&rsquo;Update Center.<\/p>\n<p>Sauf pour le plugin Views qui n\u00e9cessite un upgrade de version Sonar. Ce que nous allons donc faire maintenant.<\/p>\n<h3><strong>Upgrade de version Sonar<\/strong><\/h3>\n<p>La proc\u00e9dure d&rsquo;upgrade est simple et logique, mais je vais syst\u00e9matiquement consulter le <a title=\"Sonar upgrade guide\" href=\"http:\/\/docs.codehaus.org\/display\/SONAR\/Upgrade+guide\" target=\"_blank\">guide d&rsquo;upgrade<\/a>, car il est facile d&rsquo;oublier un point.<\/p>\n<p>Tout d&rsquo;abord, r\u00e9cup\u00e9rer un zip de la version Sonar 3.0 depuis la page de <a title=\"Sonarsource downloads\" href=\"http:\/\/www.sonarsource.org\/downloads\/\" target=\"_blank\">download<\/a>  et extraire celui-ci dans un nouveau r\u00e9pertoire: &lsquo;C:\\Soft\\Sonar\\sonar-3.0&rsquo;, dans mon environnement.<\/p>\n<p>Nous allons ensuite r\u00e9cup\u00e9rer les diff\u00e9rents fichiers sp\u00e9cifiques \u00e0 notre environnement, depuis la version pr\u00e9c\u00e9dente (2.13.1 sur ma machine) vers la nouvelle version. Donc :<\/p>\n<ol>\n<li>Copier les fichiers &lsquo;sonar.properties&rsquo; (de param\u00e8tres d&rsquo;environnement) et &lsquo;wrapper.conf&rsquo; depuis &lsquo;C:\\Soft\\Sonar\\sonar-2.13.1\\conf&rsquo; vers &lsquo;C:\\Soft\\Sonar\\sonar-3.0\\conf&rsquo;.<\/li>\n<li>Copier les fichiers .jar des plugins install\u00e9s dans notre actuel environnement Sonar depuis &lsquo;C:\\Soft\\Sonar\\sonar-2.13.1\\extensions\\plugins&rsquo; vers &lsquo;C:\\Soft\\Sonar\\sonar-3.0\\extensions\\plugins&rsquo;.<\/li>\n<li>Copier le driver &lsquo;C:\\Soft\\Sonar\\sonar-2.13.1\\extensions\\jdbc-driver\\oracle\\ojdbc6.jar&rsquo; vers le r\u00e9pertoire &lsquo;C:\\Soft\\Sonar\\sonar-3.0\\extensions\\jdbc-driver\\oracle&rsquo; (en fonction de la base de donn\u00e9es que vous utilisez).<\/li>\n<li>Cr\u00e9er un nouveau fichier .war \u00e0 installer sous Tomcat, pour cette nouvelle version Sonar. Pour cela, lancer le fichier &lsquo;C:\\Soft\\Sonar\\sonar-3.0\\war\\build-war.bat&rsquo;, qui va cr\u00e9er dans ce m\u00eame r\u00e9pertoire un fichier &lsquo;sonar.war&rsquo;.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarBuildWar.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1638\" title=\"SonarBuildWar\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarBuildWar.jpg\" alt=\"\" width=\"686\" height=\"290\" \/><\/a>Ensuite, je vais installer ce fichier &lsquo;sonar.war&rsquo; sous Tomcat (en prenant soin de backuper au pr\u00e9alable le fichier &lsquo;sonar.war&rsquo; existant).<\/p>\n<p>Note: il est pr\u00e9f\u00e8rable de mettre \u00e0 jour votre environnement avec la suppression ou l&rsquo;update de plugins avant d&rsquo;installer une nouvelle version Sonar puisque (point 2 ci-dessus) nous r\u00e9cup\u00e9rons les fichiers .jar de ces plugins pour les copier dans le r\u00e9pertoire correspondant \u00e0 la nouvelle version Sonar.<\/p>\n<p>Une fois Tomcat relanc\u00e9, je vais g\u00e9n\u00e8ralement avoir le message suivant sous Sonar :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarMaintenance.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1640\" title=\"SonarMaintenance\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarMaintenance.jpg\" alt=\"\" width=\"772\" height=\"78\" \/><\/a>La premi\u00e8re fois, j&rsquo;ai pens\u00e9 que je m&rsquo;y \u00e9tais mal pris ou que j&rsquo;avais oubli\u00e9 quelque chose. C&rsquo;est la raison pour laquelle je consulte syst\u00e9matiquement la proc\u00e9dure d&rsquo;upgrade: il reste un dernier point qui consiste \u00e0 mettre \u00e0 jour la base de donn\u00e9es, depuis la page &lsquo;setup&rsquo; de Sonar. Dans mon environnement: http:\/\/localhost:8888\/sonar\/setup.<\/p>\n<h3><strong>Upgrade (post-upgrade Sonar) \/ ajout de plugins existants<\/strong><\/h3>\n<p>Vous vous rappelez que la derni\u00e8re version du plugin (Views) ne fonctionne qu&rsquo;avec la version 3.0 de Sonar. Celle-ci \u00e9tant maintenant install\u00e9e, nous pouvons donc effectuer cet upgrade.<\/p>\n<p>A nouveau, il faut se connecter en admin pour acc\u00e9der \u00e0 l&rsquo;Update Center et proc\u00e9der \u00e0 cet upgrade depuis l&rsquo;onglet &lsquo;Plugin Updates&rsquo; :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPostUpgrade.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1642\" title=\"SonarPostUpgrade\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPostUpgrade.jpg\" alt=\"\" width=\"787\" height=\"59\" \/><\/a>Je vais \u00e9galement aller dans l&rsquo;onglet &lsquo;Available Plugins&rsquo; et ajouter de nouveaux plugins, comme par exemple les plugins &lsquo;XML&rsquo;, &lsquo;Violation density&rsquo;, &lsquo;Sonar Tab Metrics&rsquo; par exemple.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarNewPlugins.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1644\" title=\"SonarNewPlugins\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarNewPlugins.jpg\" alt=\"\" width=\"463\" height=\"121\" \/><\/a>Le processus est le m\u00eame qu&rsquo;auparavant : Stop \/ Start de Tomcat.<\/p>\n<p>De retour dans l&rsquo;Update Center, je peux maintenant v\u00e9rifier l&rsquo;upgrade du plugin Views et l&rsquo;installation des nouveaux plugins.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPluginInstall.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1646\" title=\"SonarPluginInstall\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/04\/SonarPluginInstall.jpg\" alt=\"\" width=\"860\" height=\"184\" \/><\/a>Et voil\u00e0. Il ne nous reste plus qu&rsquo;\u00e0 relancer une nouvelle analyse de nos projets.<\/p>\n<p>Nous avons vu tous les cas possibles de mise-\u00e0-jour d&rsquo;un environnement Sonar : suppression de plugins, update \/ ajout de plugins et upgrade de versions Sonar.<\/p>\n<p>Vous pouvez adapter facilement ce mode op\u00e9ratoire en fonction de votre propre environnement. N&rsquo;oubliez pas de toujours consulter le guide d&rsquo;upgrade et les release notes.<\/p>\n<p>Je vous laisse appr\u00e9cier toutes ces nouveaut\u00e9s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cela faisait un moment que nous n&rsquo;avions pas parl\u00e9 de Sonar. J&rsquo;ai \u00e9t\u00e9 un peu occup\u00e9 r\u00e9cemment \u00e0 d\u00e9couvrir de nouveaux territoires (cf. les posts pr\u00e9c\u00e9dents Elasticit\u00e9 des applications, La qualit\u00e9 dans le Cloud) et j&rsquo;ai donc pris du retard dans la mise-\u00e0-jour de de mon environnement Sonar. De surcro\u00eet, il y a une nouvelle [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-181","post","type-post","status-publish","format-standard","hentry","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/181"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":2,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":183,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/181\/revisions\/183"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}