From 31131ead58d8a4d303a356ca960f14f8c69bc7ee Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 22 Mar 2016 17:35:24 +0100 Subject: [PATCH] SONAR-7428 Server fail to start if Views, SQALE or Report is installed --- .../plugins/ServerPluginRepository.java | 15 ++++++-- .../plugins/ServerPluginRepositoryTest.java | 31 +++++++++++++++ .../test/projects/fake-report-plugin/pom.xml | 36 ++++++++++++++++++ .../fake-report-plugin/src/BasePlugin.java | 11 ++++++ .../sonar/plugins/testbase/api/BaseApi.java | 6 +++ .../fake-report-plugin-0.1-SNAPSHOT.jar | Bin 0 -> 3411 bytes .../test/projects/fake-sqale-plugin/pom.xml | 36 ++++++++++++++++++ .../fake-sqale-plugin/src/BasePlugin.java | 11 ++++++ .../sonar/plugins/testbase/api/BaseApi.java | 6 +++ .../target/fake-sqale-plugin-0.1-SNAPSHOT.jar | Bin 0 -> 3407 bytes .../test/projects/fake-views-plugin/pom.xml | 36 ++++++++++++++++++ .../fake-views-plugin/src/BasePlugin.java | 31 +++++++++++++++ .../sonar/plugins/testbase/api/BaseApi.java | 6 +++ .../target/fake-views-plugin-0.1-SNAPSHOT.jar | Bin 0 -> 3403 bytes server/sonar-server/src/test/projects/pom.xml | 3 ++ .../target/test-base-plugin-0.2-SNAPSHOT.jar | Bin 3400 -> 3447 bytes .../target/test-base-plugin-0.1-SNAPSHOT.jar | Bin 3400 -> 3447 bytes .../target/test-core-plugin-0.1-SNAPSHOT.jar | Bin 2411 -> 2452 bytes .../test-extend-plugin-0.1-SNAPSHOT.jar | Bin 2480 -> 2522 bytes .../target/test-libs-plugin-0.1-SNAPSHOT.jar | Bin 40096 -> 40139 bytes .../test-require-plugin-0.1-SNAPSHOT.jar | Bin 2576 -> 2622 bytes .../test-requirenew-plugin-0.1-SNAPSHOT.jar | Bin 2643 -> 2689 bytes 22 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 server/sonar-server/src/test/projects/fake-report-plugin/pom.xml create mode 100644 server/sonar-server/src/test/projects/fake-report-plugin/src/BasePlugin.java create mode 100644 server/sonar-server/src/test/projects/fake-report-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java create mode 100644 server/sonar-server/src/test/projects/fake-report-plugin/target/fake-report-plugin-0.1-SNAPSHOT.jar create mode 100644 server/sonar-server/src/test/projects/fake-sqale-plugin/pom.xml create mode 100644 server/sonar-server/src/test/projects/fake-sqale-plugin/src/BasePlugin.java create mode 100644 server/sonar-server/src/test/projects/fake-sqale-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java create mode 100644 server/sonar-server/src/test/projects/fake-sqale-plugin/target/fake-sqale-plugin-0.1-SNAPSHOT.jar create mode 100644 server/sonar-server/src/test/projects/fake-views-plugin/pom.xml create mode 100644 server/sonar-server/src/test/projects/fake-views-plugin/src/BasePlugin.java create mode 100644 server/sonar-server/src/test/projects/fake-views-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java create mode 100644 server/sonar-server/src/test/projects/fake-views-plugin/target/fake-views-plugin-0.1-SNAPSHOT.jar diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java index 66729394485..b11a7854387 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java +++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java @@ -72,7 +72,10 @@ public class ServerPluginRepository implements PluginRepository, Startable { private static final Logger LOG = Loggers.get(ServerPluginRepository.class); private static final String[] JAR_FILE_EXTENSIONS = new String[] {"jar"}; + // List of plugins that are silently removed if installed private static final Set DEFAULT_BLACKLISTED_PLUGINS = ImmutableSet.of("scmactivity", "issuesreport"); + // List of plugins that should prevent the server to finish its startup + private static final Set FORBIDDEN_COMPATIBLE_PLUGINS = ImmutableSet.of("sqale", "report", "views"); private static final Joiner SLASH_JOINER = Joiner.on(" / ").skipNulls(); private final Server server; @@ -157,15 +160,19 @@ public class ServerPluginRepository implements PluginRepository, Startable { } private void registerPluginInfo(PluginInfo info) { - if (blacklistedPluginKeys.contains(info.getKey())) { - LOG.warn("Plugin {} [{}] is blacklisted and is being uninstalled.", info.getName(), info.getKey()); + String pluginKey = info.getKey(); + if (blacklistedPluginKeys.contains(pluginKey)) { + LOG.warn("Plugin {} [{}] is blacklisted and is being uninstalled.", info.getName(), pluginKey); org.sonar.core.util.FileUtils.deleteQuietly(info.getNonNullJarFile()); return; } - PluginInfo existing = pluginInfosByKeys.put(info.getKey(), info); + if (FORBIDDEN_COMPATIBLE_PLUGINS.contains(pluginKey)) { + throw MessageException.of(String.format("Plugin '%s' is no more compatible with this version of SonarQube", pluginKey)); + } + PluginInfo existing = pluginInfosByKeys.put(pluginKey, info); if (existing != null) { throw MessageException.of(format("Found two files for the same plugin [%s]: %s and %s", - info.getKey(), info.getNonNullJarFile().getName(), existing.getNonNullJarFile().getName())); + pluginKey, info.getNonNullJarFile().getName(), existing.getNonNullJarFile().getName())); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/plugins/ServerPluginRepositoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/plugins/ServerPluginRepositoryTest.java index 31ba885dd95..a6173acd317 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/plugins/ServerPluginRepositoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/plugins/ServerPluginRepositoryTest.java @@ -30,6 +30,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.mockito.Mockito; import org.sonar.api.platform.Server; @@ -48,6 +49,9 @@ import static org.mockito.Mockito.when; public class ServerPluginRepositoryTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + @Rule public TemporaryFolder temp = new TemporaryFolder(); @@ -309,6 +313,33 @@ public class ServerPluginRepositoryTest { assertThat(logs.logs()).contains("Plugin Foo [foo] is ignored because entry point class is not defined"); } + @Test + public void fail_when_views_is_installed() throws Exception { + copyTestPluginTo("fake-views-plugin", fs.getInstalledPluginsDir()); + + thrown.expect(MessageException.class); + thrown.expectMessage("Plugin 'views' is no more compatible with this version of SonarQube"); + underTest.start(); + } + + @Test + public void fail_when_sqale_plugin_is_installed() throws Exception { + copyTestPluginTo("fake-sqale-plugin", fs.getInstalledPluginsDir()); + + thrown.expect(MessageException.class); + thrown.expectMessage("Plugin 'sqale' is no more compatible with this version of SonarQube"); + underTest.start(); + } + + @Test + public void fail_when_report_is_installed() throws Exception { + copyTestPluginTo("fake-report-plugin", fs.getInstalledPluginsDir()); + + thrown.expect(MessageException.class); + thrown.expectMessage("Plugin 'report' is no more compatible with this version of SonarQube"); + underTest.start(); + } + /** * Some plugins can only extend the classloader of base plugin, without declaring new extensions. */ diff --git a/server/sonar-server/src/test/projects/fake-report-plugin/pom.xml b/server/sonar-server/src/test/projects/fake-report-plugin/pom.xml new file mode 100644 index 00000000000..72a04dbe04f --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-report-plugin/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + org.sonarsource.sonarqube.tests + fake-report-plugin + 0.1-SNAPSHOT + sonar-plugin + Fake Report Plugin + Fake Report Plugin + + + + org.codehaus.sonar + sonar-plugin-api + 4.5.4 + provided + + + + src + + + org.sonarsource.sonar-packaging-maven-plugin + sonar-packaging-maven-plugin + 1.15 + true + + report + BasePlugin + + + + + + diff --git a/server/sonar-server/src/test/projects/fake-report-plugin/src/BasePlugin.java b/server/sonar-server/src/test/projects/fake-report-plugin/src/BasePlugin.java new file mode 100644 index 00000000000..57b4a5dfb98 --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-report-plugin/src/BasePlugin.java @@ -0,0 +1,11 @@ +import org.sonar.api.SonarPlugin; + +import java.util.Collections; +import java.util.List; + +public class BasePlugin extends SonarPlugin { + + public List getExtensions() { + return Collections.emptyList(); + } +} diff --git a/server/sonar-server/src/test/projects/fake-report-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java b/server/sonar-server/src/test/projects/fake-report-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java new file mode 100644 index 00000000000..356a9c829af --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-report-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java @@ -0,0 +1,6 @@ +package org.sonar.plugins.testbase.api; + +public class BaseApi { + public void doNothing() { + } +} diff --git a/server/sonar-server/src/test/projects/fake-report-plugin/target/fake-report-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/fake-report-plugin/target/fake-report-plugin-0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..6085e44fdcab7eadc2ad1b940fa0ebd64eeea1b4 GIT binary patch literal 3411 zcmWIWW@h1H0D%UNat|;AN^k;cU)K;vT~9wZ{Q#&k4u)EwGE3iQ#>|Wi4C{bc1X-D{ zqo1dnYjB93uUqbfK>ua~k=Fa3Klp3SbGdk)|6q)5agXTLkAOX(*ZScv;qPv~FL-mfEn;-~_v(?zwu2UouM=RClg& zEW1{%?!5WgwVlaQcavv5u&}%!x|q{j{#}MkY~I3yma{C?Usv8`y7f^|#LL4cX#UgF z0YVS6=1;x)`1HZmuCG0$7xwC^n5W(T$Y$c~uE!hWGx((dp5OQ6n!t7bSt#9 z>os?QW6&mx^|>E{i)Z~y_I&ZX=;{0Ke@^G#`5?R?{DpPyMcxOJcdTr^!vlh|FW#2? zbU%05>#&}J(4|v8*h+j+Z*i3P!vqU725_Juhb;?`lV6k$4^~VSpf~}kD9+DIEW)Es z2t{2%PHB2(UNIi^(pc4(q!yPXB^IaR(I}5!V`4!jTr(t*EY`j|Q5cv&W&yDPP_q-z z`~a}~^pbNDi;H6eHu@bl5V6^w>Ez_35Fnr&efmO&dS9E z;k~kG(c*&!l@GM#!lTj(mArkG@)xa2(p$I0Qa$Id^5QQSo8K;YpDfRq89nP^fM{mS zsyX6@@uw=1%IstI_e!qT5iZ`luTfjf`)|sm!WO;1jghhj!p<)O#Dh~qs*kTv&^O)d zm~q`%T5sWgu>*(ILaWT0j@e|Lxh8FO{{NnL^6S68zPl>)p*bwUKmzcp-fZO$z<{d+ z2A~e%&m=Tq?xO3f`mTGc zRs(n2Pl=6$3M&9yk*g=a&{Gr$X3;rAeuJpiG0D z)zAx2C(;c|OUzEyElMrOFDlW6%u`OAt@0m|u{et5=bm z(;9L*@3w)!p5NLmcU`@5nMBymF5qX;on_)SS8T7*m8dl3iCUgNKYm~8;W;fw{iCO~ z_368FWoO)Zv)brZlbO>=*EtJK`W%X;a!2Ysitpckvi(QfIghnh;~$t6TW6s`i=)r6n7E ziaOE*{};CwKi*v4W&C=1_2%p^Ldp4`7}Vyq$H)XjakmOS-#v zGx!EhTT@pPvu>ZAjnE!h-iOmF)7EWSu%z9I_eZ8#~?3*=vIwu^*23V#TFs9)a3W6 zDOc0f`sWv>PKox;5G=eJcX$lR1qOGf5FsD zxLU$(IH+Pm81Bf5;W9#oW38rO_F=E6U^XskTu2rBpw$*40 + + 4.0.0 + org.sonarsource.sonarqube.tests + fake-sqale-plugin + 0.1-SNAPSHOT + sonar-plugin + Fake SQALE Plugin + Fake SQALE Plugin + + + + org.codehaus.sonar + sonar-plugin-api + 4.5.4 + provided + + + + src + + + org.sonarsource.sonar-packaging-maven-plugin + sonar-packaging-maven-plugin + 1.15 + true + + sqale + BasePlugin + + + + + + diff --git a/server/sonar-server/src/test/projects/fake-sqale-plugin/src/BasePlugin.java b/server/sonar-server/src/test/projects/fake-sqale-plugin/src/BasePlugin.java new file mode 100644 index 00000000000..57b4a5dfb98 --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-sqale-plugin/src/BasePlugin.java @@ -0,0 +1,11 @@ +import org.sonar.api.SonarPlugin; + +import java.util.Collections; +import java.util.List; + +public class BasePlugin extends SonarPlugin { + + public List getExtensions() { + return Collections.emptyList(); + } +} diff --git a/server/sonar-server/src/test/projects/fake-sqale-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java b/server/sonar-server/src/test/projects/fake-sqale-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java new file mode 100644 index 00000000000..356a9c829af --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-sqale-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java @@ -0,0 +1,6 @@ +package org.sonar.plugins.testbase.api; + +public class BaseApi { + public void doNothing() { + } +} diff --git a/server/sonar-server/src/test/projects/fake-sqale-plugin/target/fake-sqale-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/fake-sqale-plugin/target/fake-sqale-plugin-0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..b5c99f721b3340945284e2b2bd6e3253a96dd8ea GIT binary patch literal 3407 zcmWIWW@h1H0D%UNat|;AN^k;cU)K;vT~9wZ{Q#&k4u)EwvYKYER2D`ChSfkUf~?Hf z(a+P(H8@1i*DZHKpntQ0Nb7yiAN;lExm-NYf3cl8sxjMGXWuO89g}xOZD3vW|K6t5 z9K(Iz=2Y)1-o>W-J;VA}*RfM>+(HKLs-v&&_x3H0T(nK2IoIIPpj` zTkCM7L$~iHUAcMXlV@G++cN1`*-WPF&um&IO>Z0{_snqfoFJkzFHSABvswF|)sY>m zGfZZ17aU76vtGOQMRKXc|KxK&Zr2#z&3|w?H|8Lt=f_D;zCZE*C%mih8@EWDVs2*2 zZCSzpF>1@!JZ%WK-Nv=Q+WTD7`=9sVp~e6XHRQl$0dn$-(($MOMG8noaeiK65gv6y zDC!DwO4Bp*it(tI#;U#~wYVfHu{afvMtS@i6ALoonjxuVvG(1G!oUL2wDTWVyV$`Q0sUw-Qe z@0CT179TXIe4s5C9+g(8N$Uv7k|0f{C2_nWO>HS=vfZ~L^ESn z%@H?@KUI-bW*@V^S8}zEaPi)KjoM<~e^VwEw&?wBjFdGHc772c9-JCdeSCd_zUf}a zjO)(QdJFf99XPBOT4mOB%qHv1HEFB!|M$F;U;p*>-BqCv%~7-2RlV8DAAkW@2@F6T z!l4feU&n$>NZ|JRpY=LoATcNZ_w#G7*6nK)j}+yZCz>c~Gxh6&H@0uvW-V1y&8*e; zZ(^4}&@Qz9TB_il8Hat+jEpCoU;mw-LEOSaFv0$y%E2iD@tKQnXFC~KM+zN^-W}B9 zxvn>=$ka%KAZ&rjE1u=#yPUuGwk+fO#m{y=%Qfrv#IA{XI8D__ z>a7!_u=S!cqflTE4D4FKBZ}DrjA3 z=)V&ysyQW9XPT|LBy;Gy_g9t^O&i-D^xY6K%so1*@bw|n>b4_$HZV=vw4z9nQ!Yii zsG7mbHFMLi(!DXY`**AFkUR6BtTJt#$?|>K|1U7+M@-6Xytkw5;;ZjpA4PA;iImId zkd#>GdhbcKZSHI%5^;yxS#87&AKnzrn7cG z?>peYt311|L*Vkgz5mO6F5TDRocAWLQsrvo#(SE!qIn9jU6)P^KaG+5CYI7HnN`Zl z!r#E$t-VvMa_LOj(C^v*S(b+;=cON$vshZIIm7UavGIkOxgGMi9&Y|?RaSoUAS*}S zdW*t>AF~%tMk{Szd-l$51}3Q|&VWFT_j<8Qm8%;zVs z6j80{=y;XD$~AZXFB#>VUvh>Sr%HEoqf zIlD!C)QQk-;@TU{&xL87P5ErGch>FAqO)S>ymx*YvHV_S%6p~nU*4;hO=0_Vko!r3 z+ndAN`hFF57{CsquX5i%UJ7C~5ty_$mAxTJ9*HLQbHTFAD7G6{MKhOqSyI~6<$ YvK3LD1$eWvfh^zyLSJA6z2N}y0MO-p4FCWD literal 0 HcmV?d00001 diff --git a/server/sonar-server/src/test/projects/fake-views-plugin/pom.xml b/server/sonar-server/src/test/projects/fake-views-plugin/pom.xml new file mode 100644 index 00000000000..1ef73d2ffda --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-views-plugin/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + org.sonarsource.sonarqube.tests + fake-views-plugin + 0.1-SNAPSHOT + sonar-plugin + Fake Views Plugin + Fake Views Plugin + + + + org.codehaus.sonar + sonar-plugin-api + 4.5.4 + provided + + + + src + + + org.sonarsource.sonar-packaging-maven-plugin + sonar-packaging-maven-plugin + 1.15 + true + + views + BasePlugin + + + + + + diff --git a/server/sonar-server/src/test/projects/fake-views-plugin/src/BasePlugin.java b/server/sonar-server/src/test/projects/fake-views-plugin/src/BasePlugin.java new file mode 100644 index 00000000000..1fc5b5496ba --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-views-plugin/src/BasePlugin.java @@ -0,0 +1,31 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import org.sonar.api.SonarPlugin; + +import java.util.Collections; +import java.util.List; + +public class BasePlugin extends SonarPlugin { + + public List getExtensions() { + return Collections.emptyList(); + } +} diff --git a/server/sonar-server/src/test/projects/fake-views-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java b/server/sonar-server/src/test/projects/fake-views-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java new file mode 100644 index 00000000000..356a9c829af --- /dev/null +++ b/server/sonar-server/src/test/projects/fake-views-plugin/src/org/sonar/plugins/testbase/api/BaseApi.java @@ -0,0 +1,6 @@ +package org.sonar.plugins.testbase.api; + +public class BaseApi { + public void doNothing() { + } +} diff --git a/server/sonar-server/src/test/projects/fake-views-plugin/target/fake-views-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/fake-views-plugin/target/fake-views-plugin-0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..a47d93d94a86e18ceea5b0ad416feda55b466c23 GIT binary patch literal 3403 zcmWIWW@h1H00GsQat|;AN^k;cU)K;vT~9wZ{Q#&k4h9vVGGQknBSuCBhSfkUf~?Hf z(a+P(H8@1i*DZH~e}0pJ#Ig4(HSPDNo9Vvj*~@rLXSS74&-JB^*Du}_y(G4+_P6NS zRffC2{oH$geqQS|_YHjV2O@4}_DL)(3|aLsHfzsB(+qBzqk(oFPYeDXzIc3rN``6) z@2cX)xeaNmbCwIAk~8!zob*oeaptL)pBjx`)p9e>%Q$BjssBpsLRim&KrbO9{rS?FC+3{d%a;CgXU?+!5dy!qMYR2%`{RrB^+zl(6ds;lWc^?K!{cL~J3F^*ow(Q9 z{ZH}CnY*Sc-}#~;TEj2)m$OjBeLpP7FhiCF7-acH>F_|sQ~`<+kc#5`yu>0r>V#0# z737qrXXX{-Q7?^EeMxF@Nm62QDjtpU_%$XLWWqIbfK!s-<<3k|VDgv+!~#IgPC)Ym z!0yva&PgmTjt$u8ci2G0W_zZyvy(!AfCo>GuCsEQ0JEr%pp(|CcWl}cOADu3i2f1v zQDC!c=y$SN-l$-6=W})W^UZ&Me*MSzfTfyGC&%iBQ$q6XV|>ovebR#F8*gDhtl4ZD zR^D{5KSgcb>7PDNw%1I%q|y;`=CbDbr7vGET>3us-~%`DJp$&LGf%vka?rbFU(FRI z?Iou=_}C7=XwEp5%EkRw&4>mHf0^ugOz_qh_Oz`Be0Uc6#(GQ*d@HlRX>Z6E zsl@G4atqvFtYazI;5T(1?|QTTtj%BBu6?$D|4@GY*VlJfg#0syB^gK%Ue%ke`~etr zmB1j>Asqgo5OyrcgamJ||5>ji1`>1fe?PzWYTdp@@kmjgd7_D;HdDVYcw_svZPrpX z)y!Ib|0Z_%1MNclucZp^nQ_=B&B%Dd`SsuV8N@9-1QYBJsvMjm5TCjDcD9p&b)?Xt z=-ojrp6hy}O3t?y^>12n)ACHN=If;;yRJ(c=gi-tex~TP*2A?E{Y*;3GatLIu8H3UxcuG%ayN|1fe9m*P(&fKb=1jJXKP^5}(Z$8$-+i6LThm>1eO2Fe zZ`F#HNj$Ru&3TS1>kW^sVKFvzU!K3<`a{da9(Lmce97O04@hVlCzeOsNt^r=TO99t zOKh{^*6+Nqki*PM{J@Zd7h}1JWvO}al!~cXA5$?f8|s0xVR3$GQF1DTU09lwst3w8 z_%fR#>4v2xW~b_wWu}%F>q0U!+^rl8O2C5Gx2=4~Ctz~80W3m5g*BST2)Py0_=5ag zy^7qN){xlz+Xg%}=hqwj$N*p1<#X) z?s|ICM$Yw91;_52`R1OyVpA`6m$)stZkGV$9d+bTwkGKxwk6? zOU=C?bjkD5-1?@9DM&tt0wcH^YwoVmG5oXa)W9A*SC|NFN^(jV-wRo zfg*>@(3>wRJI#IkmG-mDt#;RNkXu*W!neovx`)Dh*@$kg#a7C`OywJX7EJb;@+xH7 zf%U&1$4p*5QBAS;(v$;xZL_C3pUdcZyrjhDl|tV3ME$9^wyce?c_p5@_k6Ey!In$* z8S^Z{i&6%3X1XzQj1D5Q;Stk?d3XTAmZ@Q)?e_& zoC_uj5ib;it}N8r@}TDSy|x7^U!S?xRCDJ&Zw{VwLDBKZ%>MX$j&8@hjxXcu2%n`L znjJg6x-N%3Zfe$Xqo57apn;D4E z$6lu*boVk7bP7rhi!d28UO{yZ1PCzv|9>19&G3`~tASvi!qg0^gAkg(U}`2*%HwmH zBg|}I`uYFgkrl&bgbc^5LJ-zrucKf#E@@mq4eOva7P76No(p;jhOqSqI~6<$vK3LD U1$eWvfh^zyLSJA6z2E@x0DC=r^8f$< literal 0 HcmV?d00001 diff --git a/server/sonar-server/src/test/projects/pom.xml b/server/sonar-server/src/test/projects/pom.xml index 2ae2bb8b9ec..37338313ac0 100644 --- a/server/sonar-server/src/test/projects/pom.xml +++ b/server/sonar-server/src/test/projects/pom.xml @@ -14,6 +14,9 @@ test-libs-plugin test-require-plugin test-requirenew-plugin + fake-report-plugin + fake-sqale-plugin + fake-views-plugin diff --git a/server/sonar-server/src/test/projects/test-base-plugin-v2/target/test-base-plugin-0.2-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-base-plugin-v2/target/test-base-plugin-0.2-SNAPSHOT.jar index 32ac594aad1241af223daa968c1db05290d2e897..1d4ef5430c7d772d2c34e18e8a57190c2d68a2b3 100644 GIT binary patch delta 2025 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 diff --git a/server/sonar-server/src/test/projects/test-base-plugin/target/test-base-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-base-plugin/target/test-base-plugin-0.1-SNAPSHOT.jar index f943a16b28f4088d0771e3384f22de4aa7c9cbc5..739a22fcdaecab7da14f7eb0bfd4e5badb94e1fa 100644 GIT binary patch delta 2025 zcmX>h^<9cDz?+$civa{YddfT|@+tGV18L{0Cl1RqGBBKHoM`l~|vz1@XMw;i9peeEC}uzuc0bK~7EtIMA-SF1lS%~ef_ zS#t8$mif0fwd$R$nlwS}a@gzx%hWmJ*IrEFy*0^4wkkh8pqS_4-0nB?IvG!Y_BET< zyzq=$xsvci>tYevS7&CLM1<9|c-u^BWjz0LMf%rNmh%xCXRYa8e%*Kdxm7d1teDGh z+Cz0g+7qu>l)&y z>*?pFpPN{gnx_x6QLi{ZFR`dNzqBYh6~ZnoO-j`(Ni8lZMsf|RVUr)SN{V9DIC&$h zlFeO1OD`&qDiB{*y`6;oUM;rsjHcu%z zqSh&`ZXRRtKWEX)SStjQz7K$#2;9IQDEg2<0u`Jpk z<8b`02}h^!c>5%scQPS=j&T_ZiSh|{aJ1D&wat!iIK`R zJBJl#XDJpo*_2l}uSG2tS^jbfOi3*Q3?z+b%9@Ef@E>QGLUUF~i z>eAKbp9;2IGO5x|Q{mGr>%CN3f7|}o=eu0~D}APK^nN0`oa4yK3k~)AyPc;_H0E9) zGtb~j>fhE|jLEipyZ8fzY8V5&8JR?w5ryhx5l&;YQgw1DrwJs#_i{=}Q~*m_NGXBP z2reG>b4ppwf=Yt(B{1uvDglNP903-D$Sk6RPlGgyhEE_3vXcwAcpxro z;F4m}W&(;SPTmU>JIf`-m@)YUmpnuXH@6hiN@k!EJ#A!rP)ijC27V-a{{MeGxq(~G z3tbJU7=r)-hX4NsScxyxCO_mB#xTwSW*P&?xL8t*+sG;v0t;jg25f~M%(6s1$eWvfsEk;LN8zuEzSwz0RW8f;_d(d delta 1836 zcmew^bwY|Sz?+$civa|5wy$=Z$fwMw4Wtj0pOvy^WMD95nrJUwKhZnC*+8J>y~m&S zz2OlL*tR|ro8ACTyK2s%#YhkFBJ7(VUy4Bl$z^s z#OeO+74H;E4cxWXG;z!-}17I|l}cJuX56_)>ux$P@$j;wX* zt(Cg-sOCL8B78yNI=PKejs?tE!KeaZTwv4zGbS;aLIfuliO?e`d=gDvPr!SG4CcE9W^!Ck%c4_R3%G+1D=t^jBjZ!O~qslSm z!p@MRMwNBH=Irx+ccbT;+kd8q6VkPJ`;?u#%I&0euj$a9XG!c4vzyk)$)C_Y=QQ<1 zjLaIDo4^0c)xXbIdha{!?8)=(zqi&$d<@Zgy+dfinF}9&wsT8w{vK5zzWjH3_!sqK z2cOB#aFhF1c&NrW>ZQyn`MbY#o@rPfW?E^mYvulDXTlG~N!|E(ENQi<`HjZXX_FcS zZ``ri`Sj3FgOtm>+b3L04fb$7sUo>!?+2a3pG*G!{hRgo>Br7VW%ZYCzyEOP@8zbW zZOIFTR8A_iTRBfBE_^e>&cIM`7 ze^NaneNJvUvSxK;^Qpc5DiLD&Wleo+>>tIaSPSbEsqgan?o+9&@7n#R%;sivP4%(} zpXi0z3HP?FJ)^jMN%wBglRsC~Pu_9AEl(=)+u9XZdj&suO1-bk?K>m&@N{g0>{js{ znMK_e16=^$Da!d7BHpFH0BL3V)WBlcr{F{_u;!Y zUw7Oww{V-x-e2wCcO(1R@k!Crx>gn?UGuFbt=47#R&c2E%9Jn9XI1X_?Y;44et@?W zr1;=q0Htb~<+@>Yz*N}^#O^p!jLhU74z7ApU`hd&DGm>7{R|&i9b{ReutQ_%me?C& zUzirpJmzrHqmCs%es^`vo>y*-N@<%6-d=d@<``nzu3UaWswZ=Ha5hiOy2BjHuJzu~ zP&>bH_0(yHKmUAM8&gYMR9Q|f^th@iH zM!-IR-$v2!@fj%(Hy>oAJ5aqIMEe7v z_Lj-Nx#S^SIc_PYqs)`nb16=a=9Y{>&+Gh1#{B>PADEwgT|*poJ^kGDa}&!_^H98n zu2};`v(DrT++q%>r3SpLL4*yuA(kkH6oCxER`e9`@W^8pJ#f7YOBzpN*D9}r2u5sa h5!nbu4p4cCX+1b)iUoMHvVm0d0ihl+q*ypXJOEQfv;F`8 diff --git a/server/sonar-server/src/test/projects/test-core-plugin/target/test-core-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-core-plugin/target/test-core-plugin-0.1-SNAPSHOT.jar index 278b459622726916c011acf9243734b3b861c2ca..831cc364b5cd7f44c195751bd6e940981e047b09 100644 GIT binary patch delta 1623 zcmaDYG)0&%z?+$civa{YddfT|@+tGV1L?c6$4dDa85p)PPPCV_viDq=g#t{(*6RyLCdqegS4_IGHNR)e_5+f0FW)T9b&Xr~xuCyi)Au)- zzxGePpZHi&Cby)${@Z$qZBrTVuRLaecI7caXX~IBGGQMI8RdCmWu9(ZBOBUZ zKDA7$-ip0mq3_WPaafRXfP-xFR7M*{7Es_#zRIL21Y&@L6H4eaOn%5NYEhh@msnJs zUs{x$st0BlmL{d@m82Gz6zjvxgG2$cW(TllQLLILALNjbfobJnxb0Kwk?5Fk>K`!H z9&ugVngs3uVCq!y}qkdo*utH zo!@iXnL+EzHSF!#3wM9hYQMEl~`$JRLWU|L5~J(|R*fzvK(> zRc_m~Ip=MRscOpU@&yL#cSJB>Tc+~)xq4CW@rP4S%#mC3=Em>8^>Xj+UGH73uux@BJ@ z&jcDBU|MOiYu!H4Gy7ZChTVyXm1cbT+kY?9n*&zfp58pJcPxIMYWt2{+0LQUb*w< zHj#%D^bc?;uU?>5{UE>LP=LnX)+}z;DA~Zx-t(=!j*6~0G~2l;^<#kgixaa>^KSWM z)?~UqS13!t|H-$I7x_~^d(HC}`MLX@pZSlf1^zzK3$+vOt+bAGaP;iDyd=dUOTRvE z+rrgRd9%Vy?tbq!x%cUo%uLfm_T_A9SyDI4oR`cfb^Euy^3%Jz%1!Cj*Ns=+6Mfx$ z$@^i|CEpKEo;g|0Z*OK6H8?$IW#c5df+WthajB8g@7S*1y>NO3(#McePe)toQ z%w%s)u6or|r@0Op2sm7<-IuiBb&J}*1s7U7R&dK-_~US^Pf=l}l_%G~y`tsqr`P&P zOpHAy_=`X0Zckvywg*mZ$qw&lUEOt2+CoNmMpXXMo;gfMw}nNOZU4L2`u^GvKB>EU zbT@`~E_&?J%KqnfY*mP4u-~CVK7aEksef551s2bVJKC-xxG%t)kx7IZQFu+h$YzXI zdQBE$H-Y3$FLo)$^vS90@-gT+lpmhs1Q`DRU(Uq9;OiRVsO#zHrk|TwmYN65pQ!f0 z)dLy&a1KcGmB|m-#XPWPS9o5>ZI%OyS&Gb{f&+Kn*FiW7TkeOO#jvEY9=}oA3YhVa Xto;!yUYCGUgBaHaV7Q%Q18D;Q>|25f delta 1578 zcmbOt{91@Fz?+$civa|5wy$=Z$fwMw4Wxt3Y_0Sd85m@kCfZBaPxQ_|WFXM;e&Q$j zn)NxBdV#C&D6Ck-FBjyre(J{Q34(7<_yxRNzh1aSx@zvlb8qT)KZ$yKaO)4@HNkG_ z8j2=;W~Jepz0V)Cg!)=b=>OsHklV;kQ-54?bVC?NvpMN~O-u!rl!L0skGbc>(aVt0% zF#Fi-#ec$|TWRQuyKnf;;k7}1y0mWS{D1xDcl@|l$zGr1Z>v#xcJBH!d&@!}Y1nRm zaPt)7nJo_=F=U)Pzu=;BqRQT+$v=GMet)+U{&n<{!1hP#{42iL%P3vcHSVipgas)F z11KmrmonNgvVa12@>V8IK@bBR+)zSe@_QyRgXH{_)QrT^V!h)0yu>2ClGNgoVttr7 zkf=e{WC_y5hpK6EIxI**qKSWF?mwNsN!n~-@5Ootizhcv>22yQK09Z^tbE7Bdj%UA z*Z6u)>*s$W<$qXvqUHT)%lZxFyJhdiy54JlS>je_e`kG7;@RSrYaV+!m^uD^&i&jh z?fupVdVb&Y!oTPryC=qZMw$P&Me;t$wWW+#*Ke`ww)FDb;Gor;H#?v8vwosJZ%#$_ z#;aY@Zw^>_d!FaW$(vL2?9fkxl;VZFPkgUV3ko#yV#`yvnf)ko->;9AJAeJE-?1#k z`qkU=iii8Qq-=cn;esH)&e80I?EAcTf8}M|oTw!8i8UfIMK~p;{10n@1lQ8-0oe;3 z{MoO(HG1Y3RLH#Q!@3Cxk$Wx(T5WijlHXCH7V!vO6!8kyTaGZ}Ozef$oLdd26#$uhwr}6t>;%fOzJf>su`ivRmrk@%UUZ*(BTM zVJI#0$G$0M$`bp6c|FxP9n+c4et7e0s+}EwHM>^AG|S6Os>%;e2u0bR-eh`bZV3PB z+ID8{V;|p1Kf1o=c31T2CjM&azK_Y~MH^$!zdLU}Y38JNA;SF2{|n9rdIXx+IT!>% zDbstkO+g(nS+xSOJNAU4Rxf(Wkqeml9WK`T3BIse$SJb$LTks0?o}7!6x5P=PWa4J zX}x!E*KeD;Vn&uS)~1@=q7v-|8E%Jc%`gN0X zaq%v@G{Kp#iny5zugqhri8*T}Y;}#b=;Wb7&-~}7|NU{SObR%?{aDK*_5glwMkWzv zL;*GV9-A>*2{l=s-6R&|A90hM??S+YKMRNjkh05?#&)2HbAC~3Ku&3TW}aShPGWI! z0Gi228W{ND907*^|Bp}Jz%HkNk#SMfd|{gWfl1U6HA}+tF{&Tn8i5Q;I0s~t6*I^b z^o(7~p`w71vElj{7?w0n#HtUN&nN%q;8(ziYZSfrSh3j|!D+-bg$Y=Quz?f<0IddP AHvj+t diff --git a/server/sonar-server/src/test/projects/test-extend-plugin/target/test-extend-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-extend-plugin/target/test-extend-plugin-0.1-SNAPSHOT.jar index 71dcee704960487f94ff491bd944451e6c7aebb8..2f63c2e652c20c80294aadedd5aaee197f727247 100644 GIT binary patch literal 2522 zcmWIWW@h1H00GaQG7m5VN^k;cU)K;vT~9wZ{Q#&k4h9dPvhy44qSYB07~TW12(mI? zM?X(D*WeI6U$@u^XY&pj2(-MP_=!(@-Bew5hrrs$%U5JIDzScz+IjNQjvam})*|=z z`33R3DlB(1zW**NW2gJ;6Vg)J+GiCP>hx_}^>fOsH7R|!l-ez3nFd)JSr`Avn&Psy zH>UPZL?MuBs?gQwjQHdD#m<*im@@#y4_KGieN&+%5dUwrD5J#jimcA*Qe^Q=pS zC%6oH)KqT!Y`=N=wcd))m&|pSZp>TPvURnWNQT9m)=d?rTZP(>Pj-&|vU`E?9*6dkXoY z^Q5@N75g5&5JwHzLXQvaBEUdh0K`JTfOV}XNzF?M$SF+*g&8* z?{Z7amZgnN5;vpTqRuEx<66d{C|X(`tSzy#aH_?MKcYSgY<3O(PB$_eIQZYcySKNz z{L}O6zu6m%WmpR~h$l3hIJ~c&nd!Szic`GM7Wc=NjmDwgei!;(kL91b+Vs3UN0C?f zs8(XpxuV3^vr4|~)!?Z5c-8H5PNnwgkd)^vcc;AW(rP)?qafA$nEl&{jFqiRHfn4U zWHkltS4=$MYdqT#}NWe-VAMH0!-YiT0(|e1kh&0twe$iY0b! ztqhty*L=&o|CN8+uK)b{O)K=jG%O4;(=b1B;>=AfOU;9)WK6~Sn2Pg@()Eh-^Ad}S z^Gl18Qz7ia(xg&l*JA@|m27Le6DlEN;KdL}{+wb=wU&J0KoaT7e*j_uw(7q?Hlymm{k3V&u zXhg`ZlvpC2}xefVIb*5|6r zAwhwYmPCJh$+YIcKW(F z!n!I^Zk%Bfk=wgARqtaHkyhOPi0`QCTK=jU{kvRiA9id~-9903l9|NOzODM7)=f-^ z-0?utYSU#;cBQKNgI(rkS{4^{3xo?V9e=iG+VoSb|JK<*(A_6_LhMr53#l2~Kln`x z2oid{LsN3ytRu^>Ur1FpUmj>8_iwYwzwHaoPK;Ep+0AVb^!U`ac%@@&%75&So%%if z?Be|0#ql0rS4HGciQ}H`VSeoKZSAKub{30{>J%?y^b&e-Mks3UiB*Pocvt;SuWwKO zA?i|JdHLH5)9;ttqE9cXwf??r=9WcUQ=YVZ%k}VNnrE)Ee%+1IcV{NZoc-R}E?;T! z@At-w@vwXaDfGYC_Axa9Q(Z3*2T(2b6%^$cq!yKArWUK7^5p_n7!D6>{RCfFE$j?h zc%ijp1$X^|oesBroE;`v%@oSylrc< zemuTlcs`h3@*f8`nR>#ARjmS-3)Z&LpASBu%B$!BKd5`&u) zuYDC~*~7U=`19r;0ylwWF(Z=*Gw#|D=xHDjV0h~YqLJ!Gm^SRSBSE;?7qUY-tJMna0vw?`qcaJ~KQ*&Ec^8&QXDz|vadn!BbUYqwoEkZ#0rkd}s zuci|OE-g)8GV`^uw?Iwzt%~>+CexLa7{A7*$6mA6+hh4E^UM8N{e|jN@R^*ZBB|@E%J4_mhz?U%d@86l;Lq}`RVxL=R$E7&g8%! z0)}PJjql4D2WFn*U$M@7owv=kSus4Hrq#J3G1q8 z7S2_B=Xp;2sPPPZ(<9%e8snFTKI)0mI$3q9iphB_O9XJu^=)IVZ8WI5uFT-(drR+PupxEnAj0Hc8x!YKuCfFpX;& zhoWd{d9b#`&cdk{EB=W3D6rWz^gG?iY~bL3|L)%2^72p5um5ImFqUC0*dU(JaN_X3 zc4nsUPAN|DLR;J)TQ(Ypdi!1IcRiMW>T1*T@*G88;iFoKMdykVU(YJ}vR8wn>f=?n z&pDOar$bVnv)rBXx=X9&RF8sG?_>6FCo)#HF4?HDMUd4v^cm-Vv9e1GEEAKqDq0oT z@;J*Z@)j^-WjU_ppSjRzTJScplC;h9?|sO>8sd3Uc<cE-%$!> z6CKZoTyaTCdj3W9$o={? z|I)B9#7yG+$Z0n>u`D$Yp3pHBYhWtQFG|--&QD3rNGvVZE6&eLEYd4UEiNg>V~RBi zrhv@SO$EoXZUH!w;RbUsYaHHeni?grJ}%wNH23X^vZ|leHJL%%qaD8Fo}07t#~II;ck4F0 zMH_@=nd)lU=m}^n%w9Pw^J8sc{66h>H#)Yt{bzbOAzj;AciOqF!cJy2++3fhb*m=i zN*PsGscf&1+2!&qCI9JxdvD7s%7rWQk3H`CQ&ThJ_aR>WrJMS+8IN*&wU4*hX!v^p zYkA@BdOz3tq&K;94;X#g(9iv>{bKLB#J|e6^N-4?rbj54x|P43KI^C74R2=edyzR? zAF)|)I2Uxum}$1Odi;(8JD!_D-}pjex4m9Bv1^i!><#yqHzmTK{<;18=AX}(nEWIeL|y4{r!kelqRO!Yxa_ z9&C8OBzlpkOu)x8x*}7a@Vc!`e%-w%RwY8rzr2a>O~vW`E6SHeKS_J^q+hpETYqZz zpSJ}&xBvL&vu(yUr|k#!lyBeEHfxf|a^I6bS4Gy;@YcS2^2?$t>aHZC{L+u|jb`j= zy&vA{9dPm0zMa@9viabx|H>yqJ%8<m{=TD8C@Js3bGBSoD-H z*C7J|hljO(f-kHVa*8ax(Au%0d)0-wgq&k03dXATNAKO+Rb8{^Ra1+gk=4&zDg4@# zR#YvsHP7tXvMrZy?bc5va&DQ~mpeq0xqM>R_Da1w{=A^J=a9SJ>9eIWd*|JF$fNr5 z2uonPk0ob^<(|Y-zdy6L-tT#G<&&n}gddCn-i%Bl%(&}6pkIMNfZ?qph(@XnVcM|Q zhakluu%uBPNW!%t)s6^@Ats=g>|pI+6XpZUddzYjp&zrL0+nhIAi(hd|6^eJ0Cxeb zjDtBJQ!}WPLueLY#?XwX%)@OesMJH48b*StSj#||Mc7M0m{m&}*HdN@v`j>VHTK+q iuuq(g_~63gF_3+Tyb<8d3N(&^fddHV03-1qmjb14;w_g3p6)nyv&biI2?ml?Sb2P}Jq}^slfZRoc zGfkO7y^|9@9boRO7H7K<_@%o3lG_v23B5ZS)C9RBZQe*7DiFKy*X-`w`S&(C#!jio zRP8P0R$UW&eG$Xt35x^7@|O8|orscq^Y#1!orR3C4d+xBBz~T;^h@P#Da}fWr=_7+ zZw0Mr2{CzM^C+-EQthM8oDGu=GQQh>I`5*$uwUfiMum5C%Af06w>S29$ET9;gymN}CAcz5uGbo`ydBRjNlj8im#G>N-(xT*4 zJuthlG$~cDB(=DtSRZB=B$^R=C-+X36ve7>a{p{8F-Y3rV7Tp5>M?8M^)28I~6 z$@VjFYm%7EH;28xH`F)ywt>Lj=iwapRaI+zPfHleTKQPF9^%<@d3BP0XP55INpo82 z?@twxR&R9B>nywf&TjA3yieVsu@hM%miO45SIe0rc%fBu>b$w>`{mZXSpLST=hLxS z`vWSPGTxrsyz~26$>&>R8qzjRJSsC|qj6n%_2K@T7Ac)4Hct(`z6Pm?K!n9?iJG}!IyRt70(uZza?_Xz3hFMYQAFFIv+QwLZ0(847Q-74Qbc5oc$h@p!Te1+O?V2#3t1J&t87O#^Qa^Jx1pVTjFd_9eQk7k-2nP zpINANu+?+s^aJa@iYJ>b{BFPhPW|2b-L)rvCOI&!|D8HFh?41;i6;W}kEaF;(cpZ)XOo7p zxe2qjt%|yS>T*bJsF--~#`A}6GJVdK6gDX=v#swg5&Qe=hW(~3^QC4@b29ghj@rBG zn)Jfmr*glPE#G{RUz^|R#+(n^TIcZd=&v~R!re4`?HB2bf49~jD2_2q{7|6$Wn1i% zRMok{iRLA%6Eo^po`~1Ixp4P8zF8AKmnyqw_|=OheUXQyYDf;6tlt;V2u#}D3=B*R zexNLYGi6ImuA9MEuX@Ut>yUwf!^2uX!53BwJA)QpXzf_RUB6(b!zDlG1uCU#nibXB z@9gB(?{Z+-BI)+d?oVEL#~LG6Go|aZRy*&$y?xcg<(nVw3geAt)Le4oYEb9D!kVww zmnX^vN9H9@zu@h4QE6!t^Pj(Zd?{?Fj_5oyxT%=`TED~6Lg;i%O^47M?f`E_CJ|;t z`8!#9rZH*(JUM!%sXVAuu$n(RM;KTn&jMlrLzB47_lT0K;3y z4@{Ha&6I`|FTAs)n53B}*Ul23>@Z6fB9;gg`x6Qjvw@T{duK^8_D#MqOHKi!tU)sO z|Nq@nCQqCy>VdTcffqffeuV1>G92I>0fztoIi`XP!x?ER3aG^p1A{wUI|DEr((r2s l6->h5U_weL41Op^=+40F0&udK+%<=XYc?|jgVaorUI1eB_<{fc delta 1806 zcmX@TlWDEPUjsm5ODoI z@e}{OaK28(Eob}O1-I;3vgB@AqcO>lUGU=~=Kd0j0)H_XUU$RSR zZ}svJY1y}3Z`Rz95*|?vMy=@y!ka2ivXyL`Q^K|L<&#}HTQ`Li9MC_yR-vm|KW~oV zedTj1Q)0xXv?iLrakIGFKR@z+{g#I}Zr(Yu%I^7$56lx@-BI{D?>fsVUJmaydW{K8 zhk2J}l?UIQA@gRprqCs^_FkPMGp$rN-;9sLVaHmz_RnHFw>nZM%)? zt^e@u|5LQ%{nDsHbwB-%=6TF7Ia=3kc=_V|np_2A8~cWx?h_g{-+E{(`oH@BW5==Y zbIlJVXV*x0{9>yNDd^r-ye3v_pSe*(%~8p73m*NHJJBTXI5F=)(~l;<3*m(pd)F*i z_>)qoz5R)*)2Rzjbv)P2+V`Cu7B3tOET9P4yqD3I5zLzWk4YUOq{)0Y2*TnD>$774 z#oy#PQ#1uZ3~-D>3605(Q^gFD^HWkY5=)Eqiu3ali}XrTi%W|2VYWbGA6b(nNE08b zrpf(tBqU&3I2iIau68@*@v}69iGjhIZL-2tNlf)J^%c1}Q$z3j-!>4admo?pNpAPj z1~#u=HMK371``r4$HhL+uobf2GAie)sP4_vfa+sR|WKVZ5ff zSp8%NpDN4G_OHVHRaW!VXd;GC&IgBQom#y3PRK_@P3fr?qWmhD1 zb-q5>b2_4%BO`HdmEfhvh835cd}E_TzxurF`8tPjx7a-Xmm0OdKK`u#`11AP;$vca zZ&kF1H!d`m<1Xto`_^!25zD`xt0!c`l>4&-OxWxB{GvixC4a81V7;_Nu};sXv50G@ z^0_Gv6V`}^G2UA#Z=5kHWI^#9zLL*3R=!d3o&7=PlfY|@oinA`XZbiT@^XmL>}r}b z!6df5B=X*mUAO1%yEJ9#MZKfTR@WzaU*UM2xxM*Lm}yfqZ{ek5hd*+#?z7l$v-gIO zcw)}x+224f*QI@*tQSB3lG84?Yp#iC z!5wby*0bj$itScpy_a!UpRsJK*0rrh=~>zjyEpAf?5TZx&g;zfDM=AoZE9- zy8i#-6OO*O(x;lee)M7Y-PaE?_NWW|N_^_bKKt>#YZErkOKhIxwtq!rZtMN7cY5Dt z?>$oDJkNcoVR8cWO9)Jbl3Z7nC$N(|m!xXtSsQoBUC{DM?Z=Ir2Xo|tuqIhI}P zy4%kd{NJx@)O4lR?$A?P|LnzwY;Ntol*y+~%xv|wta&r1|2cmVr|{`g zO}hy{7zF~n8JR?w5hd?rt(nHCMepRSnWpj}k6F#1og)k^jAsF{08$=Z(s*X_zM1ln zQsLoDDJEX#$$w``L-;bYq!=wGo6j*wA@!bFb diff --git a/server/sonar-server/src/test/projects/test-require-plugin/target/test-require-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-require-plugin/target/test-require-plugin-0.1-SNAPSHOT.jar index abf9bbed5eb994e6ec5d6195e8d3cd465f764570..f5fc95f9d0d6248995aa40b5451f9b0507452f9b 100644 GIT binary patch delta 1690 zcmbOrvQLCBz?+$civa{Yd&)c}@+tFq0O`FY4wuy!85q7XPPCVJQVgQ*Opn z1f<-fukQ8ko&Rw4WVU0IQ%_Vrm)?Fr!?P(RGn$U(6kR^%F;U;C8Nk*4^ivWR70shXo}E11JbLuVQRq zWB~>0WIbk0K@bBR%uqsq@;YWQ^Wyxx#G>N-(xT*4JuthlG$~cDB(=DtSRZB_BxaEH zI)n6zV%0l&Bb)T(x6E9Ew|z=IKA#brY|6yIpuxt#;DuL@e0@c3&fE~+{M!aRd!L7M z?7Qu?O-zEx_2`Dg8ym`Wr8dl#B{p7->Gn2M%eJb);_jco%h?760 zjFxi$DX4E>zo~HUQRU_A^~zRX>h_=i_TKj0-3pt7``_n1*DE+3q}ZD}$=S&1?Ri$e z-tYIc&aFxRo)%idS!hscuuN|H&T^+%!%d-1&d&O?<&Vp4lFqZebNNlnjw)KUNyaaUTeb4GL=*ct;rKsF54U;k zmb%EnnRhMW$(e_n{oU&sVJQ`o@MR2ZU7LW(wGW5`@uoV>deu|DT+Ido4i9Vn3?En> zTynJO!J;Xb$}Y+qh<8|dEl{yK$+5Rq_in9CT;ainCq{f1Y9G7{<5{$!N1C&Tv35oI z@2Kzst7wCz>yC6ysp0Wmxg|&bczAVflwshLpJpZ#)utvDOi>E%uh+k`@YIYVp}tM> zvGcco6<2w9XkNg%{CUDP0`URfj7%cTh$3)u7P~Q888~@0yNNs~PtOl|S{V#17XJXT zFj9_O(pW$FAG?w~dM4+Gs}W%M|DSoXJ%^kEx*B~HH3rO+*E5THV9nd`ask!BaQ#4r zGn@mmuoi3>?t(%G;dc%Oi~<906a&MO#(VgUlAm19$*%wkB9z!iF`}9cy~iK+ z``XbD*tR~Jc3iPm#kKWYlx2nR8iCnWidny3XE!}^T5o*GeD~(vf>Cc7qkr*__;xv`;DD$Yf=`A*|OsZPoJsuhV60O6MKWy*)km;pSkmJwY4S zuB;w)xrAnHTkV$lbHAAi z6HpHu1A{XT)$;WfxjAz~Zs*-L;HfqfXD}c0TB~-GgWs6N>xI**qDg;e)StSaTAt&e zy|}));Kbsob5p#ZuQF83-pANldGx5z1~b)}c6Jk@ZE`lTJgG=et?$2=x4oiTxFEmn zu;9!BZ}H~7Y4M?&$m@fIlpgj{rq!w_UANjsywZgK7Xfun$DFs!m@98y*`?5*s0&K z?|4(jtw&AE8$}XYCx#mPn8kZ_i~W%d@M-5-;UFrO*~;`*J&%9Rc8>ptR=#yw@&S48E9JT6eg0p}_>`Br*nexx)}9qtw+eo^xW2F8)|;88 zhn8C#x@Dv!RSSJQ`|ERU?en%PRh7floXrUzi*$*eD#J-@iI0qp~H-- zTcS>EGP@(|`u%KeYwd)sw(0eCdw3O@fj}RzGj0@N2sTeiiwC zXNlpZTiYzRTsw8SQex>^U*)hTA{u2|&9ZjL&p-Utkn4QNwArsa_Rc%;kVo~Ui(o{$ zk0s{=nR^CL|Nd-F`ZMjoifR5I6}trG1H2iTM3@nU-sBo~W3*Cl@?Lfmc~C~3AM&&^ z7+4Vg0b*gGw_spNQJ~oAj1aE0a-K|WC)g=uZ{342Loma05^kSN#k4WM#xWI#>uY$3JTQNMb=ux1}d&F Ut=F8a!NtS109fEev4hkD0DL!&umAu6 diff --git a/server/sonar-server/src/test/projects/test-requirenew-plugin/target/test-requirenew-plugin-0.1-SNAPSHOT.jar b/server/sonar-server/src/test/projects/test-requirenew-plugin/target/test-requirenew-plugin-0.1-SNAPSHOT.jar index 671f69f10f84a83d0c0f63e0b7e9c550d8bffb2c..0dd577fc3607a4fee5916c09204835691a929bbd 100644 GIT binary patch delta 1687 zcmcaC(kRLo;LXg!#Q*}HJ!Kvf`ILD*fOMnFlrCFF1_rr_b~5!7&-xuU5NLTn@e^OQ z`?fh>{C`Z_=EQL;=wgSq(aC8uq||TtEzIwq93XBH`K@O6=FM^3y5BQoE1i;4*IKGf zIeIZ{>-wO{?te0t9(f=o+&_nDxj$3q%U?Tb#ncO|t8TGw zV?MRCV4h#3k!p_1B@_R&ntGFGC%<&5o|&!BQ?=;L@04B*t(L78i`oQzU#fiJ5;mSS z;jY^4cX{%k7U*fcFH!C-IXk7+3Q{Q2qfcL-cmi$(@bVQJ6$?6v7__f*f8LwM{B8~;7b$R`||d3Z#nzs#<%SrZCPb7z^YmCv}4xn6B2%ldQqFz*PFkLnyaZhr!fS`87rdE$tJo<9)KbDGIkCZ7YyHLN!IXqM}R9@ztR^Rd; z-~Zmd#P%-YM5~#PihxhR?~RSdZ}*fNB_1pNo)=oeS$JWkc^jYj&2ooa!%dSlpX~qh z0jeL&s8oM~96UbWAg>yUv6!*@&91+QDw zyjq>al@{s!aVT!wQrp&`^42@<=xymjbDqsJUa>Gh*FrIPQ@R2|b^n9`Zj9B!hr)k}eE z=KI`NW$K|D98UG-yy-llr|X{@IkdUuMmgDx62E>H_W{iCcxJF-m(62*rBG` zVYg(v)~v|ZVVfSZUCq79u)dUu*&;hNR;T4Ci$(XNhNF%msdLmn`X2fz`uNOROVdi# zx!>=9n=NG@-DLc*dTt+YT0G~4YaF2=yJT#p{c7mF@$kgAz-KEmdU!7B^fZ;&-d%Ef zc}~LoGv`!)=>F=c(ZA}|b8Tizp@rnp$|F(ceKIfa3vQhuIr06)7`F)vEic5>uXZYX z_5YKkbi5J&3%T1{Kiod=a3W_j-k?Utz) zi<(|fXfK>!BzQ;s_q+dh+TQdYZ~hb|6Ekn-W$Wm}QuYttysx&01wID@DA4DJJgp1{ z2KpZ$76wL0P-M_M9NP&G{s;8YNUBnA$KIonpd8Q<_*WXr_BpuskI4YMSs zYPrcVEFASAzWKKec=kRI=hzorbc;`d$@S=l#2XvxSiH^Nth&{+`07L(&%Vj^_K}-p zkNaAc>|{}rKY85!(wDORx)=Di2zs4ctm&u3ViY=a!cUuD8-K~{@6Ws0GA-(F+ZCnu zX=!q~Yjo3Fa(?ouJX7^IZ^3lZ2dj)NGt*g(DiLbsBI?3nc`ro^k za^LwB;gP)4M{(AIch8y9k5#`9Ikh(Z`}tKbgp%?%CG^)=jA+yVp8o_0}l+-*JeRyve)$M61`+f3seS zvZhSo3HEndE0prg%&Q@>ZkPMz#;uR*TptK$+LkT28_+#tdXmnXs;e9^ZX+g{eHIZ;KBZ_wkqX|_x@D@$J^K zcB>Lz=Pv?jH51cH(>V7nN_k@QNj06bJaiYU1W(tbvKzwbeDiC~esaSSDI^bMIy-M@ z0;be%hRFgfSkqiA7hk<-??tXd3L*~o|8gasKPBR3aKqUpgn#vczYS++b3Tj>kA3rg z^Y+6J4`liYH0H1!mzS1*%Qewd`B;~9cvtq_^4)RSbr!QaUx$_EuzE2*zTl;LrnKJt z`RyY%iIIAF4xftL*!80)`AF!VbBolR%Bv0;~UBPh)F@JKnGdcr!AI zFe6IN$=leCQH##W-`GuAK>2#IK8F*` z