From: Duarte Meneses
Date: Thu, 16 Jul 2015 11:51:30 +0000 (+0200)
Subject: merge it-sonar-runner and update groupId
X-Git-Tag: 2.5-rc1~66
X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=73b46e381ff0a7a0b3bc280ac45de592e547513a;p=sonar-scanner-cli.git
merge it-sonar-runner and update groupId
---
diff --git a/.travis.yml b/.travis.yml
index 2469bf0..c7f2d88 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,16 @@ jdk:
install: true
script: ./travis.sh
+env:
+ - TESTS=CI
+ - TESTS=IT-DEV
+
+matrix:
+ fast_finish: true
+
cache:
directories:
- '$HOME/.m2/repository'
+
+notifications:
+ email: false
diff --git a/it/pom.xml b/it/pom.xml
new file mode 100644
index 0000000..4ed6ea7
--- /dev/null
+++ b/it/pom.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+
+ org.sonarsource.parent
+ parent
+ 23
+
+
+
+ com.sonarsource.it
+ it-sonar-runner
+ 1.0-SNAPSHOT
+ SonarSource :: IT :: SonarQube Runner
+ 2009
+
+
+ SonarSource
+ http://www.sonarsource.com
+
+
+
+ 3.7
+ -server
+
+
+
+
+
+ com.sonarsource.orchestrator
+ sonar-orchestrator
+ 3.3-SNAPSHOT
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+ org.codehaus.sonar
+ sonar-ws-client
+ ${sonar.buildVersion}
+ test
+
+
+ org.easytesting
+ fest-assert
+ 1.4
+ test
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/SonarRunnerTestSuite.java
+
+
+
+
+
+
+
+
diff --git a/it/projects/bad-source-dirs/sonar-project.properties b/it/projects/bad-source-dirs/sonar-project.properties
new file mode 100644
index 0000000..55ff5ab
--- /dev/null
+++ b/it/projects/bad-source-dirs/sonar-project.properties
@@ -0,0 +1,6 @@
+sonar.projectKey=bad-source-dirs
+sonar.projectName=Bad Source Dirs
+sonar.projectDescription=Bad Source Dirs
+sonar.projectVersion=1.0
+
+sonar.sources=src,bad
diff --git a/it/projects/bad-source-dirs/src/Hello.java b/it/projects/bad-source-dirs/src/Hello.java
new file mode 100644
index 0000000..1291f40
--- /dev/null
+++ b/it/projects/bad-source-dirs/src/Hello.java
@@ -0,0 +1,7 @@
+public class Hello {
+
+ public void hello() {
+ int i=356;
+ if (true) i=5658;
+ }
+}
diff --git a/it/projects/basedir-with-source/Hello.java b/it/projects/basedir-with-source/Hello.java
new file mode 100644
index 0000000..1291f40
--- /dev/null
+++ b/it/projects/basedir-with-source/Hello.java
@@ -0,0 +1,7 @@
+public class Hello {
+
+ public void hello() {
+ int i=356;
+ if (true) i=5658;
+ }
+}
diff --git a/it/projects/basedir-with-source/sonar-project.properties b/it/projects/basedir-with-source/sonar-project.properties
new file mode 100644
index 0000000..e5a74f8
--- /dev/null
+++ b/it/projects/basedir-with-source/sonar-project.properties
@@ -0,0 +1,7 @@
+# Note that the format of project key is still groupId:artifactId in order to support test with sonar 2.6.
+sonar.projectKey=java:basedir-with-source
+sonar.projectName=Basedir with source
+sonar.projectDescription=The base directory contains sources (see the parameter 'sources')
+sonar.projectVersion=1.0
+
+sonar.sources=.
diff --git a/it/projects/java-bytecode/.sonar/findbugs-include.xml b/it/projects/java-bytecode/.sonar/findbugs-include.xml
new file mode 100644
index 0000000..d4846f0
--- /dev/null
+++ b/it/projects/java-bytecode/.sonar/findbugs-include.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/it/projects/java-bytecode/.sonar/findbugs-result.xml b/it/projects/java-bytecode/.sonar/findbugs-result.xml
new file mode 100644
index 0000000..0ae2961
--- /dev/null
+++ b/it/projects/java-bytecode/.sonar/findbugs-result.xml
@@ -0,0 +1,69 @@
+
+
+
+
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/src/HasFindbugsViolation.java
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/build/classes/HasFindbugsViolation.class
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/build/classes
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/lib/deprecated.jar
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/.sonar/findbugs/annotations.jar
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/.sonar/findbugs/jsr305.jar
+ /home/duartem/git/sonar-tests-core/it-sonar-runner/projects/java-bytecode/.sonar
+
+
+ Method invokes System.exit(...)
+ HasFindbugsViolation.use() invokes System.exit(...), which shuts down the entire virtual machine
+
+
+ At HasFindbugsViolation.java:[lines 1-12]
+
+ In class HasFindbugsViolation
+
+
+
+ In method HasFindbugsViolation.use()
+
+
+ At HasFindbugsViolation.java:[line 7]
+
+
+
+ Bad practice
+
+
+ Method invokes System.exit(...)
+ Invoking System.exit shuts down the entire Java virtual machine. This
+ should only been done when it is appropriate. Such calls make it
+ hard or impossible for your code to be invoked by other code.
+ Consider throwing a RuntimeException instead.
+
+ ]]>
+
+
+ Dubious method used
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/it/projects/java-bytecode/build.xml b/it/projects/java-bytecode/build.xml
new file mode 100644
index 0000000..d24c2b8
--- /dev/null
+++ b/it/projects/java-bytecode/build.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/it/projects/java-bytecode/build/classes/HasFindbugsViolation.class b/it/projects/java-bytecode/build/classes/HasFindbugsViolation.class
new file mode 100644
index 0000000..f482325
Binary files /dev/null and b/it/projects/java-bytecode/build/classes/HasFindbugsViolation.class differ
diff --git a/it/projects/java-bytecode/lib/deprecated.jar b/it/projects/java-bytecode/lib/deprecated.jar
new file mode 100644
index 0000000..65e3be9
Binary files /dev/null and b/it/projects/java-bytecode/lib/deprecated.jar differ
diff --git a/it/projects/java-bytecode/sonar-project.properties b/it/projects/java-bytecode/sonar-project.properties
new file mode 100644
index 0000000..cf6eb18
--- /dev/null
+++ b/it/projects/java-bytecode/sonar-project.properties
@@ -0,0 +1,9 @@
+# Note that the format of project key is still groupId:artifactId in order to support test with sonar 2.6.
+sonar.projectKey=java:bytecode
+sonar.projectName=Java Bytecode Sample
+sonar.projectVersion=1.0
+sonar.profile=With Findbugs
+
+sonar.sources=src
+sonar.binaries=build/classes
+sonar.libraries=lib/*.jar
diff --git a/it/projects/java-bytecode/src/HasFindbugsViolation.java b/it/projects/java-bytecode/src/HasFindbugsViolation.java
new file mode 100644
index 0000000..c68f54f
--- /dev/null
+++ b/it/projects/java-bytecode/src/HasFindbugsViolation.java
@@ -0,0 +1,13 @@
+public class HasFindbugsViolation {
+
+ private String field;
+
+ public void use() {
+ new DeprecatedExample().deprecatedMethod(); // violation of squid rule: CallToDeprecatedMethod
+ System.exit(33); // violation on findbugs rule: DM_EXIT
+ }
+
+ public void useFieldForLcom4() {
+ System.out.println(field);
+ }
+}
diff --git a/it/projects/java-sample/sonar-project.properties b/it/projects/java-sample/sonar-project.properties
new file mode 100644
index 0000000..0414efd
--- /dev/null
+++ b/it/projects/java-sample/sonar-project.properties
@@ -0,0 +1,7 @@
+# Note that the format of project key is still groupId:artifactId in order to support test with sonar 2.6.
+sonar.projectKey=java:sample
+sonar.projectName=Java Sample, with comma
+sonar.projectDescription=This is a Java sample
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
diff --git a/it/projects/java-sample/src/basic/Hello.java b/it/projects/java-sample/src/basic/Hello.java
new file mode 100644
index 0000000..b9db5a0
--- /dev/null
+++ b/it/projects/java-sample/src/basic/Hello.java
@@ -0,0 +1,9 @@
+package basic;
+
+public class Hello {
+
+ public void hello() {
+ int i=356;
+ if (true) i=5658;
+ }
+}
diff --git a/it/projects/java-sample/src/basic/World.java b/it/projects/java-sample/src/basic/World.java
new file mode 100644
index 0000000..c65d91c
--- /dev/null
+++ b/it/projects/java-sample/src/basic/World.java
@@ -0,0 +1,8 @@
+package basic;
+
+public final class World {
+
+ public void world() {
+ System.out.println("hello world");
+ }
+}
diff --git a/it/projects/multi-module/advanced/using-config-file-prop/module1/src/Hello.java b/it/projects/multi-module/advanced/using-config-file-prop/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/advanced/using-config-file-prop/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/advanced/using-config-file-prop/module1/temp/generated-sonar-project.properties b/it/projects/multi-module/advanced/using-config-file-prop/module1/temp/generated-sonar-project.properties
new file mode 100644
index 0000000..81dd0e0
--- /dev/null
+++ b/it/projects/multi-module/advanced/using-config-file-prop/module1/temp/generated-sonar-project.properties
@@ -0,0 +1,2 @@
+sonar.projectName=Module 1
+sonar.projectBaseDir=..
diff --git a/it/projects/multi-module/advanced/using-config-file-prop/module2/src/Hello.java b/it/projects/multi-module/advanced/using-config-file-prop/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/advanced/using-config-file-prop/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/advanced/using-config-file-prop/module2/temp/generated-sonar-project.properties b/it/projects/multi-module/advanced/using-config-file-prop/module2/temp/generated-sonar-project.properties
new file mode 100644
index 0000000..0b0e342
--- /dev/null
+++ b/it/projects/multi-module/advanced/using-config-file-prop/module2/temp/generated-sonar-project.properties
@@ -0,0 +1,2 @@
+sonar.projectName=Module 2
+sonar.projectBaseDir=..
\ No newline at end of file
diff --git a/it/projects/multi-module/advanced/using-config-file-prop/sonar-project.properties b/it/projects/multi-module/advanced/using-config-file-prop/sonar-project.properties
new file mode 100644
index 0000000..448cf40
--- /dev/null
+++ b/it/projects/multi-module/advanced/using-config-file-prop/sonar-project.properties
@@ -0,0 +1,10 @@
+sonar.projectKey=using-config-file-prop
+sonar.projectName=Advanced use case - mostly used by the Ant task
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module2
+
+module1.sonar.projectConfigFile=module1/temp/generated-sonar-project.properties
+module2.sonar.projectConfigFile=module2/temp/generated-sonar-project.properties
diff --git a/it/projects/multi-module/customization/deep-path-for-modules/modules/module1/src/Hello.java b/it/projects/multi-module/customization/deep-path-for-modules/modules/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/deep-path-for-modules/modules/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/deep-path-for-modules/modules/module2/src/Hello.java b/it/projects/multi-module/customization/deep-path-for-modules/modules/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/deep-path-for-modules/modules/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/deep-path-for-modules/sonar-project.properties b/it/projects/multi-module/customization/deep-path-for-modules/sonar-project.properties
new file mode 100644
index 0000000..e366eaa
--- /dev/null
+++ b/it/projects/multi-module/customization/deep-path-for-modules/sonar-project.properties
@@ -0,0 +1,13 @@
+sonar.projectKey=deep-path-for-modules
+sonar.projectName=Project with deep path for modules
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=mod1,mod2
+
+mod1.sonar.projectBaseDir=modules/module1
+mod1.sonar.projectName=Module 1
+
+mod2.sonar.projectBaseDir=modules/module2
+mod2.sonar.projectName=Module 2
\ No newline at end of file
diff --git a/it/projects/multi-module/customization/module-path-with-space/my module 1/src/Hello.java b/it/projects/multi-module/customization/module-path-with-space/my module 1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/module-path-with-space/my module 1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/module-path-with-space/my module 2/src/Hello.java b/it/projects/multi-module/customization/module-path-with-space/my module 2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/module-path-with-space/my module 2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/module-path-with-space/sonar-project.properties b/it/projects/multi-module/customization/module-path-with-space/sonar-project.properties
new file mode 100644
index 0000000..4a2c774
--- /dev/null
+++ b/it/projects/multi-module/customization/module-path-with-space/sonar-project.properties
@@ -0,0 +1,14 @@
+sonar.projectKey=module-path-with-space
+sonar.projectName=Project with module path that contain spaces
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module2
+
+# module1 and module2 are located in a path that differs from their id AND that contains a space
+module1.sonar.projectName=Module 1
+module1.sonar.projectBaseDir=my module 1
+
+module2.sonar.projectName=Module 2
+module2.sonar.projectBaseDir=my module 2
diff --git a/it/projects/multi-module/customization/overwriting-parent-properties/module1/src1/Hello.java b/it/projects/multi-module/customization/overwriting-parent-properties/module1/src1/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/overwriting-parent-properties/module1/src1/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/overwriting-parent-properties/module2/sonar-project.properties b/it/projects/multi-module/customization/overwriting-parent-properties/module2/sonar-project.properties
new file mode 100644
index 0000000..19d46fb
--- /dev/null
+++ b/it/projects/multi-module/customization/overwriting-parent-properties/module2/sonar-project.properties
@@ -0,0 +1,4 @@
+sonar.projectKey=module2-new-key
+sonar.projectName=Module 2
+sonar.projectDescription=Description of module 2
+sonar.sources=src2
diff --git a/it/projects/multi-module/customization/overwriting-parent-properties/module2/src2/Hello.java b/it/projects/multi-module/customization/overwriting-parent-properties/module2/src2/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/customization/overwriting-parent-properties/module2/src2/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/customization/overwriting-parent-properties/sonar-project.properties b/it/projects/multi-module/customization/overwriting-parent-properties/sonar-project.properties
new file mode 100644
index 0000000..b2dff8d
--- /dev/null
+++ b/it/projects/multi-module/customization/overwriting-parent-properties/sonar-project.properties
@@ -0,0 +1,16 @@
+sonar.projectKey=overwriting-parent-properties
+sonar.projectName=Project with modules that overwrite properties
+sonar.projectVersion=1.2.3
+sonar.projectDescription=Description of root project
+
+sonar.sources=src
+
+sonar.modules=module1,module2
+
+# For module 1, we overwrite properties here
+module1.sonar.projectKey=module1-new-key
+module1.sonar.projectName=Module 1
+module1.sonar.projectDescription=Description of module 1
+module1.sonar.sources=src1
+
+# For module 2, we do it in the "sonar-project.properties" defined in the module
diff --git a/it/projects/multi-module/failures/unexisting-base-dir/module1/src/Hello.java b/it/projects/multi-module/failures/unexisting-base-dir/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-base-dir/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/failures/unexisting-base-dir/module2/src/Hello.java b/it/projects/multi-module/failures/unexisting-base-dir/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-base-dir/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/failures/unexisting-base-dir/sonar-project.properties b/it/projects/multi-module/failures/unexisting-base-dir/sonar-project.properties
new file mode 100644
index 0000000..8bb89b7
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-base-dir/sonar-project.properties
@@ -0,0 +1,10 @@
+sonar.projectKey=unexisting-base-dir
+sonar.projectName=Project with unexisting base directory for module
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module3
+
+module1.sonar.projectName=Module 1
+module3.sonar.projectName=Module 3
diff --git a/it/projects/multi-module/failures/unexisting-config-file/module1/src/Hello.java b/it/projects/multi-module/failures/unexisting-config-file/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-config-file/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/failures/unexisting-config-file/module1/temp/empty-dir.txt b/it/projects/multi-module/failures/unexisting-config-file/module1/temp/empty-dir.txt
new file mode 100644
index 0000000..0026da6
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-config-file/module1/temp/empty-dir.txt
@@ -0,0 +1 @@
+File to be sure that SVN keeps this "empty" directory
\ No newline at end of file
diff --git a/it/projects/multi-module/failures/unexisting-config-file/module2/src/Hello.java b/it/projects/multi-module/failures/unexisting-config-file/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-config-file/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/failures/unexisting-config-file/module2/temp/generated-sonar-project.properties b/it/projects/multi-module/failures/unexisting-config-file/module2/temp/generated-sonar-project.properties
new file mode 100644
index 0000000..0b0e342
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-config-file/module2/temp/generated-sonar-project.properties
@@ -0,0 +1,2 @@
+sonar.projectName=Module 2
+sonar.projectBaseDir=..
\ No newline at end of file
diff --git a/it/projects/multi-module/failures/unexisting-config-file/sonar-project.properties b/it/projects/multi-module/failures/unexisting-config-file/sonar-project.properties
new file mode 100644
index 0000000..d3f7d6e
--- /dev/null
+++ b/it/projects/multi-module/failures/unexisting-config-file/sonar-project.properties
@@ -0,0 +1,10 @@
+sonar.projectKey=unexisting-config-file
+sonar.projectName=Project using an unexisting config file
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module2
+
+module1.sonar.projectConfigFile=module1/temp/generated-sonar-project.properties
+module2.sonar.projectConfigFile=module2/temp/generated-sonar-project.properties
diff --git a/it/projects/multi-module/multi-language/sonar-project.properties b/it/projects/multi-module/multi-language/sonar-project.properties
new file mode 100644
index 0000000..3598e57
--- /dev/null
+++ b/it/projects/multi-module/multi-language/sonar-project.properties
@@ -0,0 +1,14 @@
+sonar.projectKey=multi-language
+sonar.projectName=Simplest multi-language project
+sonar.projectVersion=1.2.3
+
+
+sonar.modules=java-module,js-module
+
+java-module.sonar.language=java
+java-module.sonar.projectBaseDir=.
+java-module.sonar.sources=src/main/java
+
+js-module.sonar.language=js
+js-module.sonar.projectBaseDir=.
+js-module.sonar.sources=src/main/js
diff --git a/it/projects/multi-module/multi-language/src/main/java/Hello.java b/it/projects/multi-module/multi-language/src/main/java/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/multi-language/src/main/java/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/multi-language/src/main/js/Hello.js b/it/projects/multi-module/multi-language/src/main/js/Hello.js
new file mode 100644
index 0000000..2096104
--- /dev/null
+++ b/it/projects/multi-module/multi-language/src/main/js/Hello.js
@@ -0,0 +1,3 @@
+function hello() {
+ alert("Hello World");
+}
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/sonar-project.properties b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/sonar-project.properties
new file mode 100644
index 0000000..f5e701d
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/sonar-project.properties
@@ -0,0 +1,2 @@
+# no need to set the "sonar.projectKey": it defaults to the module ID ('module1')
+# no need to set the "sonar.projectName": it defaults to the module ID ('module1')
\ No newline at end of file
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/src/Hello.java b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/sonar-project.properties b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/sonar-project.properties
new file mode 100644
index 0000000..93a6c21
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/sonar-project.properties
@@ -0,0 +1,3 @@
+# here, we overwrite "sonar.projectKey" and "sonar.projectName" for 'module2'
+sonar.projectKey=overridden-key-for-module2
+sonar.projectName=Module 2
\ No newline at end of file
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/src/Hello.java b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/sonar-project.properties b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/sonar-project.properties
new file mode 100644
index 0000000..6bfae93
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/sonar-project.properties
@@ -0,0 +1,7 @@
+sonar.projectKey=simplest-with-props-each-module
+sonar.projectName=Simplest multi-module project with properties set on each module
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module2
\ No newline at end of file
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-each-module/src/placeholder.txt b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/src/placeholder.txt
new file mode 100644
index 0000000..1a5bdeb
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-each-module/src/placeholder.txt
@@ -0,0 +1 @@
+The root module contains a src folder but it will not be analysed (SONARPLUGINS-2295) and a warning will be displayed.
\ No newline at end of file
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-root/module1/src/Hello.java b/it/projects/multi-module/simplest/simplest-with-props-on-root/module1/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-root/module1/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-root/module2/src/Hello.java b/it/projects/multi-module/simplest/simplest-with-props-on-root/module2/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-root/module2/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/multi-module/simplest/simplest-with-props-on-root/sonar-project.properties b/it/projects/multi-module/simplest/simplest-with-props-on-root/sonar-project.properties
new file mode 100644
index 0000000..a3488b8
--- /dev/null
+++ b/it/projects/multi-module/simplest/simplest-with-props-on-root/sonar-project.properties
@@ -0,0 +1,11 @@
+sonar.projectKey=simplest-with-props-on-root
+sonar.projectName=Simplest multi-module project with all properties set on the root project
+sonar.projectVersion=1.2.3
+
+sonar.sources=src
+
+sonar.modules=module1,module2
+
+# no need to set the "sonar.projectBaseDir": it also defaults to /
+# no need to set the "sonar.projectKey": it defaults to the module ID ('module1')
+# no need to set the "sonar.projectName": it defaults to the module ID ('module1')
\ No newline at end of file
diff --git a/it/projects/override-working-dir/sonar-project.properties b/it/projects/override-working-dir/sonar-project.properties
new file mode 100644
index 0000000..fc08f05
--- /dev/null
+++ b/it/projects/override-working-dir/sonar-project.properties
@@ -0,0 +1,5 @@
+sonar.projectKey=override-working-dir
+sonar.projectName=Override working dir
+sonar.projectVersion=1.0-SNAPSHOT
+
+sonar.sources=src
diff --git a/it/projects/override-working-dir/src/Hello.java b/it/projects/override-working-dir/src/Hello.java
new file mode 100644
index 0000000..1291f40
--- /dev/null
+++ b/it/projects/override-working-dir/src/Hello.java
@@ -0,0 +1,7 @@
+public class Hello {
+
+ public void hello() {
+ int i=356;
+ if (true) i=5658;
+ }
+}
diff --git a/it/projects/using-deprecated-props/build/Hello.class b/it/projects/using-deprecated-props/build/Hello.class
new file mode 100644
index 0000000..48df723
Binary files /dev/null and b/it/projects/using-deprecated-props/build/Hello.class differ
diff --git a/it/projects/using-deprecated-props/lib/deprecated.jar b/it/projects/using-deprecated-props/lib/deprecated.jar
new file mode 100644
index 0000000..65e3be9
Binary files /dev/null and b/it/projects/using-deprecated-props/lib/deprecated.jar differ
diff --git a/it/projects/using-deprecated-props/sonar-project.properties b/it/projects/using-deprecated-props/sonar-project.properties
new file mode 100644
index 0000000..628eaf7
--- /dev/null
+++ b/it/projects/using-deprecated-props/sonar-project.properties
@@ -0,0 +1,8 @@
+sonar.projectKey=using-deprecated-props
+sonar.projectName=Deprecated Props
+sonar.projectVersion=1.2.3
+
+sources=src
+tests=tests
+binaries=build
+libraries=lib/*.jar
diff --git a/it/projects/using-deprecated-props/src/Hello.java b/it/projects/using-deprecated-props/src/Hello.java
new file mode 100644
index 0000000..8a94806
--- /dev/null
+++ b/it/projects/using-deprecated-props/src/Hello.java
@@ -0,0 +1,2 @@
+public class Hello {
+}
diff --git a/it/projects/using-deprecated-props/tests/HelloTest.java b/it/projects/using-deprecated-props/tests/HelloTest.java
new file mode 100644
index 0000000..7cb87ed
--- /dev/null
+++ b/it/projects/using-deprecated-props/tests/HelloTest.java
@@ -0,0 +1,2 @@
+public class HelloTest {
+}
diff --git a/it/src/test/java/com/sonar/runner/it/CacheTest.java b/it/src/test/java/com/sonar/runner/it/CacheTest.java
new file mode 100644
index 0000000..788b82c
--- /dev/null
+++ b/it/src/test/java/com/sonar/runner/it/CacheTest.java
@@ -0,0 +1,68 @@
+/*
+ * SonarSource :: IT :: SonarQube Runner
+ * Copyright (C) 2009 SonarSource
+ * sonarqube@googlegroups.com
+ *
+ * This program 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.
+ *
+ * This program 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 02
+ */
+package com.sonar.runner.it;
+
+import com.sonar.orchestrator.build.BuildFailureException;
+
+import com.sonar.orchestrator.locator.ResourceLocation;
+import com.sonar.orchestrator.build.BuildResult;
+import com.sonar.orchestrator.build.SonarRunner;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.*;
+import static org.junit.Assume.assumeTrue;
+
+public class CacheTest extends RunnerTestCase {
+ @Test
+ public void testOffline() {
+ assumeTrue(orchestrator.getServer().version().isGreaterThanOrEquals("5.2"));
+ orchestrator.getServer().restoreProfile(ResourceLocation.create("/sonar-way-profile.xml"));
+
+ SonarRunner build = createRunner(true);
+ BuildResult result = orchestrator.executeBuild(build);
+ stopServer();
+
+ build = createRunner(false);
+ try {
+ result = orchestrator.executeBuild(build, false);
+ } catch (BuildFailureException e) {
+ // expected
+ }
+
+ build = createRunner(true);
+ result = orchestrator.executeBuild(build, false);
+ assertTrue(result.isSuccess());
+ }
+
+ private SonarRunner createRunner(boolean enableOffline) {
+ SonarRunner runner = newRunner(new File("projects/java-sample"))
+ .setProperty("sonar.analysis.mode", "preview")
+ .setProfile("sonar-way");
+
+ if (enableOffline) {
+ runner.setProperty("sonar.enableOffline", "true");
+ }
+
+ return runner;
+ }
+
+}
diff --git a/it/src/test/java/com/sonar/runner/it/JavaTest.java b/it/src/test/java/com/sonar/runner/it/JavaTest.java
new file mode 100644
index 0000000..23cc3a4
--- /dev/null
+++ b/it/src/test/java/com/sonar/runner/it/JavaTest.java
@@ -0,0 +1,263 @@
+/*
+ * SonarSource :: IT :: SonarQube Runner
+ * Copyright (C) 2009 SonarSource
+ * sonarqube@googlegroups.com
+ *
+ * This program 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.
+ *
+ * This program 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 02
+ */
+package com.sonar.runner.it;
+
+import com.sonar.orchestrator.build.BuildResult;
+import com.sonar.orchestrator.build.SonarRunner;
+import com.sonar.orchestrator.locator.ResourceLocation;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.sonar.wsclient.issue.Issue;
+import org.sonar.wsclient.issue.IssueQuery;
+import org.sonar.wsclient.services.Resource;
+import org.sonar.wsclient.services.ResourceQuery;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import static org.fest.assertions.Assertions.assertThat;
+import static org.junit.Assume.assumeTrue;
+
+public class JavaTest extends RunnerTestCase {
+
+ @Rule
+ public TemporaryFolder temp = new TemporaryFolder();
+
+ /**
+ * No bytecode, only sources
+ */
+ @Test
+ public void scan_java_sources() {
+ orchestrator.getServer().restoreProfile(ResourceLocation.create("/sonar-way-profile.xml"));
+
+ SonarRunner build = newRunner(new File("projects/java-sample"))
+ .setProperty("sonar.verbose", "true")
+ .addArguments("-e", "-X")
+ .setProfile("sonar-way");
+ // SONARPLUGINS-3061
+ // Add a trailing slash
+ build.setProperty("sonar.host.url", orchestrator.getServer().getUrl() + "/");
+ orchestrator.executeBuild(build);
+
+ Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:sample").setMetrics("files", "ncloc", "classes", "lcom4", "violations"));
+ // SONARPLUGINS-2399
+ assertThat(project.getName()).isEqualTo("Java Sample, with comma");
+ assertThat(project.getDescription()).isEqualTo("This is a Java sample");
+ assertThat(project.getVersion()).isEqualTo("1.2.3");
+ if (!orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
+ assertThat(project.getLanguage()).isEqualTo("java");
+ }
+ assertThat(project.getMeasureIntValue("files")).isEqualTo(2);
+ assertThat(project.getMeasureIntValue("classes")).isEqualTo(2);
+ assertThat(project.getMeasureIntValue("ncloc")).isGreaterThan(10);
+ assertThat(project.getMeasureIntValue("lcom4")).isNull(); // no bytecode
+ if (orchestrator.getServer().version().isGreaterThanOrEquals("3.7")) {
+ // the squid rules enabled in sonar-way-profile do not exist in SQ 3.0
+ assertThat(project.getMeasureIntValue("violations")).isGreaterThan(0);
+ }
+
+ Resource file = orchestrator.getServer().getWsClient()
+ .find(new ResourceQuery(helloFileKey()).setMetrics("files", "ncloc", "classes", "lcom4", "violations"));
+ if (orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
+ assertThat(file.getName()).isEqualTo("Hello.java");
+ } else {
+ assertThat(file.getName()).isEqualTo("Hello");
+ assertThat(file.getMeasureIntValue("lcom4")).isNull(); // no bytecode
+ }
+ assertThat(file.getMeasureIntValue("ncloc")).isEqualTo(7);
+ if (orchestrator.getServer().version().isGreaterThanOrEquals("3.7")) {
+ // the squid rules enabled in sonar-way-profile do not exist in SQ 3.0
+ assertThat(file.getMeasureIntValue("violations")).isGreaterThan(0);
+ }
+ }
+
+ @Test
+ public void scan_java_sources_and_bytecode() {
+ orchestrator.getServer().restoreProfile(ResourceLocation.create("/requires-bytecode-profile.xml"));
+ SonarRunner build = newRunner(new File("projects/java-bytecode")).setProfile("requires-bytecode");
+ orchestrator.executeBuild(build);
+
+ Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:bytecode").setMetrics("lcom4", "violations"));
+ assertThat(project.getName()).isEqualTo("Java Bytecode Sample");
+ if (!orchestrator.getServer().version().isGreaterThanOrEquals("4.1")) {
+ // SONAR-4853 LCOM4 is no more computed on SQ 4.1
+ assertThat(project.getMeasureIntValue("lcom4")).isGreaterThanOrEqualTo(1);
+ }
+ // the squid rules enabled in sonar-way-profile do not exist in SQ 3.0
+ assertThat(project.getMeasureIntValue("violations")).isGreaterThan(0);
+
+ Resource file = orchestrator.getServer().getWsClient().find(new ResourceQuery(findbugsFileKey()).setMetrics("lcom4", "violations"));
+ assertThat(file.getMeasureIntValue("violations")).isGreaterThan(0);
+
+ // findbugs is executed on bytecode
+ List issues = orchestrator.getServer().wsClient().issueClient().find(IssueQuery.create().componentRoots("java:bytecode").rules("findbugs:DM_EXIT")).list();
+ assertThat(issues).hasSize(1);
+ assertThat(issues.get(0).ruleKey()).isEqualTo("findbugs:DM_EXIT");
+
+ // Squid performs analysis of dependencies
+ issues = orchestrator.getServer().wsClient().issueClient().find(IssueQuery.create().componentRoots("java:bytecode").rules("squid:CallToDeprecatedMethod")).list();
+ assertThat(issues).hasSize(1);
+ assertThat(issues.get(0).ruleKey()).isEqualTo("squid:CallToDeprecatedMethod");
+ }
+
+ @Test
+ public void basedir_contains_java_sources() {
+ orchestrator.getServer().restoreProfile(ResourceLocation.create("/sonar-way-profile.xml"));
+ SonarRunner build = newRunner(new File("projects/basedir-with-source")).setProfile("sonar-way");
+ orchestrator.executeBuild(build);
+
+ Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:basedir-with-source").setMetrics("files", "ncloc"));
+ assertThat(project.getMeasureIntValue("files")).isEqualTo(1);
+ assertThat(project.getMeasureIntValue("ncloc")).isGreaterThan(1);
+ }
+
+ /**
+ * Replace the maven format groupId:artifactId by a single key
+ */
+ @Test
+ public void should_support_simple_project_keys() {
+ orchestrator.getServer().restoreProfile(ResourceLocation.create("/sonar-way-profile.xml"));
+ SonarRunner build = newRunner(new File("projects/java-sample"))
+ .setProjectKey("SAMPLE")
+ .setProfile("sonar-way");
+ orchestrator.executeBuild(build);
+
+ Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("SAMPLE").setMetrics("files", "ncloc"));
+ assertThat(project.getMeasureIntValue("files")).isEqualTo(2);
+ assertThat(project.getMeasureIntValue("ncloc")).isGreaterThan(1);
+ }
+
+ /**
+ * SONARPLUGINS-1230
+ */
+ @Test
+ public void should_override_working_dir_with_relative_path() {
+ SonarRunner build = newRunner(new File("projects/override-working-dir"))
+ .setProperty("sonar.working.directory", ".overridden-relative-sonar");
+ orchestrator.executeBuild(build);
+
+ assertThat(new File("projects/override-working-dir/.sonar")).doesNotExist();
+ assertThat(new File("projects/override-working-dir/.overridden-relative-sonar")).exists().isDirectory();
+ }
+
+ /**
+ * SONARPLUGINS-1230
+ */
+ @Test
+ public void should_override_working_dir_with_absolute_path() {
+ File projectHome = new File("projects/override-working-dir");
+ SonarRunner build = newRunner(projectHome)
+ .setProperty("sonar.working.directory", new File(projectHome, ".overridden-absolute-sonar").getAbsolutePath());
+ orchestrator.executeBuild(build);
+
+ assertThat(new File("projects/override-working-dir/.sonar")).doesNotExist();
+ assertThat(new File("projects/override-working-dir/.overridden-absolute-sonar")).exists().isDirectory();
+ }
+
+ /**
+ * SONARPLUGINS-1856
+ */
+ @Test
+ public void should_fail_if_source_dir_does_not_exist() {
+ SonarRunner build = newRunner(new File("projects/bad-source-dirs"));
+
+ BuildResult result = orchestrator.executeBuildQuietly(build);
+ assertThat(result.getStatus()).isNotEqualTo(0);
+ // with the following message
+ assertThat(result.getLogs()).contains("The folder 'bad' does not exist for 'bad-source-dirs'");
+ }
+
+ /**
+ * SONARPLUGINS-2203
+ */
+ @Test
+ public void should_log_message_when_deprecated_properties_are_used() {
+ assumeTrue(!orchestrator.getServer().version().isGreaterThanOrEquals("4.3"));
+ SonarRunner build = newRunner(new File("projects/using-deprecated-props"));
+
+ BuildResult result = orchestrator.executeBuild(build);
+ String logs = result.getLogs();
+ assertThat(logs).contains("/!\\ The 'sources' property is deprecated and is replaced by 'sonar.sources'. Don't forget to update your files.");
+ assertThat(logs).contains("/!\\ The 'tests' property is deprecated and is replaced by 'sonar.tests'. Don't forget to update your files.");
+ assertThat(logs).contains("/!\\ The 'binaries' property is deprecated and is replaced by 'sonar.binaries'. Don't forget to update your files.");
+ assertThat(logs).contains("/!\\ The 'libraries' property is deprecated and is replaced by 'sonar.libraries'. Don't forget to update your files.");
+ }
+
+ /**
+ * SONARPLUGINS-2256
+ */
+ @Test
+ public void should_warn_when_analysis_is_platform_dependent() {
+ SonarRunner build = newRunner(new File("projects/java-sample"))
+ // ORCH-243
+ .setSourceEncoding("");
+ String log = orchestrator.executeBuild(build).getLogs();
+
+ // Note: we can't really check the locale value and the charset because the ones used during the Sonar analysis may not be the ones
+ // used to launch the tests. But we can check that the analysis is platform dependent (i.e. "sonar.sourceEncoding" hasn't been set).
+ assertThat(log).contains("Default locale:");
+ assertThat(log).contains(", source code encoding:");
+ assertThat(log).contains("(analysis is platform dependent)");
+ }
+
+ @Test
+ public void should_fail_if_unable_to_connect() {
+ SonarRunner build = newRunner(new File("projects/java-sample"))
+ .setProperty("sonar.host.url", "http://foo");
+
+ BuildResult result = orchestrator.executeBuildQuietly(build);
+ // expect build failure
+ assertThat(result.getStatus()).isNotEqualTo(0);
+ // with the following message
+ assertThat(result.getLogs()).contains("ERROR: Sonar server 'http://foo' can not be reached");
+ }
+
+ // SONARPLUGINS-3574
+ @Test
+ public void run_from_external_location() throws IOException {
+ File tempDir = temp.newFolder();
+ SonarRunner build = newRunner(tempDir)
+ .setProperty("sonar.projectBaseDir", new File("projects/java-sample").getAbsolutePath())
+ .addArguments("-e");
+ orchestrator.executeBuild(build);
+
+ Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:sample").setMetrics("files", "ncloc", "classes", "lcom4", "violations"));
+ assertThat(project.getDescription()).isEqualTo("This is a Java sample");
+ assertThat(project.getVersion()).isEqualTo("1.2.3");
+ }
+
+ private String findbugsFileKey() {
+ if (orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
+ return "java:bytecode:src/HasFindbugsViolation.java";
+ } else {
+ return "java:bytecode:[default].HasFindbugsViolation";
+ }
+ }
+
+ private String helloFileKey() {
+ if (orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
+ return "java:sample:src/basic/Hello.java";
+ } else {
+ return "java:sample:basic.Hello";
+ }
+ }
+}
diff --git a/it/src/test/java/com/sonar/runner/it/MultimoduleTest.java b/it/src/test/java/com/sonar/runner/it/MultimoduleTest.java
new file mode 100644
index 0000000..35dc8d9
--- /dev/null
+++ b/it/src/test/java/com/sonar/runner/it/MultimoduleTest.java
@@ -0,0 +1,249 @@
+/*
+ * SonarSource :: IT :: SonarQube Runner
+ * Copyright (C) 2009 SonarSource
+ * sonarqube@googlegroups.com
+ *
+ * This program 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.
+ *
+ * This program 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 02
+ */
+package com.sonar.runner.it;
+
+import com.sonar.orchestrator.build.BuildResult;
+import com.sonar.orchestrator.build.SonarRunner;
+import org.junit.Test;
+import org.sonar.wsclient.services.Resource;
+import org.sonar.wsclient.services.ResourceQuery;
+
+import java.io.File;
+
+import static org.fest.assertions.Assertions.assertThat;
+import static org.junit.Assume.assumeTrue;
+
+public class MultimoduleTest extends RunnerTestCase {
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_simplest_with_props_on_root() {
+ SonarRunner build = newRunner(new File("projects/multi-module/simplest/simplest-with-props-on-root"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("simplest-with-props-on-root");
+ assertThat(rootProject.getName()).isEqualTo("Simplest multi-module project with all properties set on the root project");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("simplest-with-props-on-root:module1");
+ assertThat(module1.getName()).isEqualTo("module1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("simplest-with-props-on-root:module2");
+ assertThat(module2.getName()).isEqualTo("module2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+
+ // And verify that the working directories are all located in the root folder
+ File workDir = new File("projects/multi-module/simplest/simplest-with-props-on-root/.sonar");
+ assertThat(workDir).exists();
+ assertThat(new File(workDir, "simplest-with-props-on-root_module1")).exists();
+ assertThat(new File(workDir, "simplest-with-props-on-root_module2")).exists();
+ assertThat(new File("projects/multi-module/simplest/simplest-with-props-on-root/module1/.sonar")).doesNotExist();
+ assertThat(new File("projects/multi-module/simplest/simplest-with-props-on-root/module2/.sonar")).doesNotExist();
+ }
+
+ /**
+ * SONARPLUGINS-2421
+ */
+ @Test
+ public void test_multi_language_with_same_projectdir() {
+ SonarRunner build = newRunner(new File("projects/multi-module/multi-language"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("multi-language");
+ assertThat(rootProject.getName()).isEqualTo("Simplest multi-language project");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("multi-language:java-module");
+ assertThat(module1.getName()).isEqualTo("java-module");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("multi-language:js-module");
+ assertThat(module2.getName()).isEqualTo("js-module");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_simplest_with_props_on_each_module() {
+ SonarRunner build = newRunner(new File("projects/multi-module/simplest/simplest-with-props-on-each-module"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("simplest-with-props-each-module");
+ assertThat(rootProject.getName()).isEqualTo("Simplest multi-module project with properties set on each module");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("simplest-with-props-each-module:module1");
+ assertThat(module1.getName()).isEqualTo("module1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("simplest-with-props-each-module:overridden-key-for-module2");
+ assertThat(module2.getName()).isEqualTo("Module 2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ }
+
+ /**
+ * SONARPLUGINS-2295
+ */
+ @Test
+ public void test_warning_when_source_folder_on_root_module() {
+ SonarRunner build = newRunner(new File("projects/multi-module/simplest/simplest-with-props-on-each-module"));
+
+ assertThat(orchestrator.executeBuild(build).getLogs()).contains("/!\\ A multi-module project can't have source folders");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_deep_path_for_modules() {
+ SonarRunner build = newRunner(new File("projects/multi-module/customization/deep-path-for-modules"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("deep-path-for-modules");
+ assertThat(rootProject.getName()).isEqualTo("Project with deep path for modules");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("deep-path-for-modules:mod1");
+ assertThat(module1.getName()).isEqualTo("Module 1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("deep-path-for-modules:mod2");
+ assertThat(module2.getName()).isEqualTo("Module 2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_module_path_with_space() {
+ SonarRunner build = newRunner(new File("projects/multi-module/customization/module-path-with-space"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("module-path-with-space");
+ assertThat(rootProject.getName()).isEqualTo("Project with module path that contain spaces");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("module-path-with-space:module1");
+ assertThat(module1.getName()).isEqualTo("Module 1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("module-path-with-space:module2");
+ assertThat(module2.getName()).isEqualTo("Module 2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_overwriting_parent_properties() {
+ SonarRunner build = newRunner(new File("projects/multi-module/customization/overwriting-parent-properties"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("overwriting-parent-properties");
+ assertThat(rootProject.getName()).isEqualTo("Project with modules that overwrite properties");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+ assertThat(rootProject.getDescription()).isEqualTo("Description of root project");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("overwriting-parent-properties:module1-new-key");
+ assertThat(module1.getName()).isEqualTo("Module 1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+ assertThat(module1.getDescription()).isEqualTo("Description of module 1");
+
+ Resource module2 = findResource("overwriting-parent-properties:module2-new-key");
+ assertThat(module2.getName()).isEqualTo("Module 2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ assertThat(module2.getDescription()).isEqualTo("Description of module 2");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void test_using_config_file_property() {
+ SonarRunner build = newRunner(new File("projects/multi-module/advanced/using-config-file-prop"));
+
+ orchestrator.executeBuild(build);
+
+ Resource rootProject = findResource("using-config-file-prop");
+ assertThat(rootProject.getName()).isEqualTo("Advanced use case - mostly used by the Ant task");
+ assertThat(rootProject.getVersion()).isEqualTo("1.2.3");
+
+ // Verify that we have the modules
+ Resource module1 = findResource("using-config-file-prop:module1");
+ assertThat(module1.getName()).isEqualTo("Module 1");
+ assertThat(module1.getVersion()).isEqualTo("1.2.3");
+
+ Resource module2 = findResource("using-config-file-prop:module2");
+ assertThat(module2.getName()).isEqualTo("Module 2");
+ assertThat(module2.getVersion()).isEqualTo("1.2.3");
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void should_fail_if_unexisting_base_dir() {
+ SonarRunner build = newRunner(new File("projects/multi-module/failures/unexisting-base-dir"));
+
+ BuildResult result = orchestrator.executeBuildQuietly(build);
+ // expect build failure
+ assertThat(result.getStatus()).isNotEqualTo(0);
+ // with the following message
+ assertThat(result.getLogs()).contains("The base directory of the module 'module3' does not exist");
+
+ }
+
+ /**
+ * SONARPLUGINS-2202
+ */
+ @Test
+ public void should_fail_if_unexisting_config_file() {
+ SonarRunner build = newRunner(new File("projects/multi-module/failures/unexisting-config-file"));
+
+ BuildResult result = orchestrator.executeBuildQuietly(build);
+ // expect build failure
+ assertThat(result.getStatus()).isNotEqualTo(0);
+ // with the following message
+ assertThat(result.getLogs()).contains("The properties file of the module 'module1' does not exist");
+ }
+
+ private Resource findResource(String resourceKey) {
+ return orchestrator.getServer().getWsClient().find(new ResourceQuery(resourceKey));
+ }
+}
diff --git a/it/src/test/java/com/sonar/runner/it/RunnerTestCase.java b/it/src/test/java/com/sonar/runner/it/RunnerTestCase.java
new file mode 100644
index 0000000..bd308c4
--- /dev/null
+++ b/it/src/test/java/com/sonar/runner/it/RunnerTestCase.java
@@ -0,0 +1,69 @@
+/*
+ * SonarSource :: IT :: SonarQube Runner
+ * Copyright (C) 2009 SonarSource
+ * sonarqube@googlegroups.com
+ *
+ * This program 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.
+ *
+ * This program 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 02
+ */
+package com.sonar.runner.it;
+
+import com.sonar.orchestrator.version.Version;
+
+import com.sonar.orchestrator.Orchestrator;
+import com.sonar.orchestrator.OrchestratorBuilder;
+import com.sonar.orchestrator.build.SonarRunner;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.rules.ExpectedException;
+
+import java.io.File;
+
+public abstract class RunnerTestCase {
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ public static Orchestrator orchestrator = null;
+
+ @BeforeClass
+ public static void startServer() {
+ OrchestratorBuilder builder = Orchestrator.builderEnv()
+ // TODO Java projects should be replaced by Xoo projects
+ .setOrchestratorProperty("javaVersion", "LATEST_RELEASE")
+ .addPlugin("java")
+ .setOrchestratorProperty("findbugsVersion", "LATEST_RELEASE")
+ .addPlugin("findbugs")
+ .setOrchestratorProperty("javascriptVersion", "LATEST_RELEASE")
+ .addPlugin("javascript");
+
+ orchestrator = builder.build();
+ orchestrator.start();
+ }
+
+ @AfterClass
+ public static void stopServer() {
+ if (orchestrator != null) {
+ orchestrator.stop();
+ }
+ }
+
+ SonarRunner newRunner(File baseDir, String... keyValueProperties) {
+ SonarRunner runner = SonarRunner.create(baseDir, keyValueProperties);
+ String runnerVersion = Version.create(orchestrator.getConfiguration().getString("sonarRunner.version")).toString();
+ runner.setRunnerVersion(runnerVersion);
+ return runner;
+ }
+}
diff --git a/it/src/test/java/com/sonar/runner/it/SonarRunnerTestSuite.java b/it/src/test/java/com/sonar/runner/it/SonarRunnerTestSuite.java
new file mode 100644
index 0000000..e33768d
--- /dev/null
+++ b/it/src/test/java/com/sonar/runner/it/SonarRunnerTestSuite.java
@@ -0,0 +1,30 @@
+/*
+ * SonarSource :: IT :: SonarQube Runner
+ * Copyright (C) 2009 SonarSource
+ * sonarqube@googlegroups.com
+ *
+ * This program 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.
+ *
+ * This program 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 02
+ */
+package com.sonar.runner.it;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({JavaTest.class, MultimoduleTest.class})
+public class SonarRunnerTestSuite {
+
+}
diff --git a/it/src/test/resources/requires-bytecode-profile.xml b/it/src/test/resources/requires-bytecode-profile.xml
new file mode 100644
index 0000000..284596f
--- /dev/null
+++ b/it/src/test/resources/requires-bytecode-profile.xml
@@ -0,0 +1,17 @@
+
+
+ requires-bytecode
+ java
+
+
+ squid
+ CallToDeprecatedMethod
+ MINOR
+
+
+ findbugs
+ DM_EXIT
+ MAJOR
+
+
+
\ No newline at end of file
diff --git a/it/src/test/resources/sonar-way-profile.xml b/it/src/test/resources/sonar-way-profile.xml
new file mode 100644
index 0000000..a5b203d
--- /dev/null
+++ b/it/src/test/resources/sonar-way-profile.xml
@@ -0,0 +1,691 @@
+
+
+ sonar-way
+ java
+
+
+ common-java
+ DuplicatedBlocks
+ MAJOR
+
+
+ common-java
+ InsufficientBranchCoverage
+ MAJOR
+
+
+ minimumBranchCoverageRatio
+ 65.0
+
+
+
+
+ squid
+ S00105
+ MINOR
+
+
+ squid
+ MethodCyclomaticComplexity
+ MAJOR
+
+
+ max
+ 10
+
+
+
+
+ squid
+ ClassCyclomaticComplexity
+ MAJOR
+
+
+ max
+ 200
+
+
+
+
+ squid
+ CommentedOutCodeLine
+ MAJOR
+
+
+ squid
+ S00108
+ MAJOR
+
+
+ squid
+ S00107
+ MAJOR
+
+
+ maximumMethodParameters
+ 7
+
+
+
+
+ squid
+ S00112
+ MAJOR
+
+
+ squid
+ S00100
+ MAJOR
+
+
+ format
+ ^[a-z][a-zA-Z0-9]*$
+
+
+
+
+ squid
+ S00101
+ MAJOR
+
+
+ format
+ ^[A-Z][a-zA-Z0-9]*$
+
+
+
+
+ squid
+ S00114
+ MAJOR
+
+
+ format
+ ^[A-Z][a-zA-Z0-9]*$
+
+
+
+
+ squid
+ S00115
+ MAJOR
+
+
+ format
+ ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
+
+
+
+
+ squid
+ S00116
+ MAJOR
+
+
+ format
+ ^[a-z][a-zA-Z0-9]*$
+
+
+
+
+ squid
+ S00117
+ MAJOR
+
+
+ format
+ ^[a-z][a-zA-Z0-9]*$
+
+
+
+
+ squid
+ S00119
+ MAJOR
+
+
+ format
+ ^[A-Z]$
+
+
+
+
+ squid
+ S00120
+ MAJOR
+
+
+ format
+ ^[a-z]+(\.[a-z][a-z0-9]*)*$
+
+
+
+
+ squid
+ S00121
+ MAJOR
+
+
+ squid
+ S00122
+ MAJOR
+
+
+ squid
+ RightCurlyBraceSameLineAsNextBlockCheck
+ MAJOR
+
+
+ squid
+ RightCurlyBraceStartLineCheck
+ MAJOR
+
+
+ squid
+ LeftCurlyBraceEndLineCheck
+ MAJOR
+
+
+ squid
+ UselessParenthesesCheck
+ MAJOR
+
+
+ squid
+ ObjectFinalizeCheck
+ CRITICAL
+
+
+ squid
+ ObjectFinalizeOverridenCheck
+ CRITICAL
+
+
+ squid
+ ObjectFinalizeOverridenCallsSuperFinalizeCheck
+ BLOCKER
+
+
+ squid
+ ClassVariableVisibilityCheck
+ MAJOR
+
+
+ squid
+ ForLoopCounterChangedCheck
+ MAJOR
+
+
+ squid
+ LabelsShouldNotBeUsedCheck
+ MAJOR
+
+
+ squid
+ SwitchLastCaseIsDefaultCheck
+ MAJOR
+
+
+ squid
+ EmptyStatementUsageCheck
+ MAJOR
+
+
+ squid
+ ModifiersOrderCheck
+ MINOR
+
+
+ squid
+ AssignmentInSubExpressionCheck
+ MAJOR
+
+
+ squid
+ StringEqualityComparisonCheck
+ CRITICAL
+
+
+ squid
+ TrailingCommentCheck
+ MINOR
+
+
+ legalCommentPattern
+ ^\s*+[^\s]++$
+
+
+
+
+ squid
+ UselessImportCheck
+ MINOR
+
+
+ squid
+ LowerCaseLongSuffixCheck
+ MAJOR
+
+
+ squid
+ MissingDeprecatedCheck
+ MAJOR
+
+
+ squid
+ HiddenFieldCheck
+ MAJOR
+
+
+ squid
+ S1133
+ INFO
+
+
+ squid
+ S1134
+ MAJOR
+
+
+ squid
+ S1135
+ INFO
+
+
+ squid
+ S1118
+ MAJOR
+
+
+ squid
+ S1132
+ MAJOR
+
+
+ squid
+ S1126
+ MAJOR
+
+
+ squid
+ S1125
+ MINOR
+
+
+ squid
+ S1067
+ MAJOR
+
+
+ max
+ 3
+
+
+
+
+ squid
+ S1141
+ MAJOR
+
+
+ squid
+ S1147
+ CRITICAL
+
+
+ squid
+ S1143
+ BLOCKER
+
+
+ squid
+ S1145
+ MAJOR
+
+
+ squid
+ S1157
+ MAJOR
+
+
+ squid
+ S1155
+ MAJOR
+
+
+ squid
+ S1149
+ MAJOR
+
+
+ squid
+ S1171
+ MAJOR
+
+
+ squid
+ S1168
+ MAJOR
+
+
+ squid
+ S1170
+ MAJOR
+
+
+ squid
+ S1163
+ MAJOR
+
+
+ squid
+ S106
+ MAJOR
+
+
+ squid
+ S1165
+ MAJOR
+
+
+ squid
+ S1066
+ MAJOR
+
+
+ squid
+ S134
+ MINOR
+
+
+ max
+ 3
+
+
+
+
+ squid
+ S1181
+ BLOCKER
+
+
+ squid
+ S1150
+ MAJOR
+
+
+ squid
+ S1182
+ MAJOR
+
+
+ squid
+ S1151
+ MAJOR
+
+
+ max
+ 5
+
+
+
+
+ squid
+ S128
+ CRITICAL
+
+
+ squid
+ S1166
+ MAJOR
+
+
+ squid
+ S1190
+ MAJOR
+
+
+ squid
+ S1188
+ MAJOR
+
+
+ max
+ 20
+
+
+
+
+ squid
+ S1191
+ MAJOR
+
+
+
+ squid
+ S135
+ MAJOR
+
+
+ squid
+ S1186
+ MAJOR
+
+
+ squid
+ S1185
+ MINOR
+
+
+ squid
+ S1174
+ MAJOR
+
+
+ squid
+ S1175
+ MAJOR
+
+
+ squid
+ S1153
+ MINOR
+
+
+ squid
+ S1148
+ CRITICAL
+
+
+ squid
+ S1195
+ MINOR
+
+
+ squid
+ S1194
+ MAJOR
+
+
+ squid
+ S1193
+ MAJOR
+
+
+ squid
+ S1192
+ MINOR
+
+
+ squid
+ S1158
+ MAJOR
+
+
+ squid
+ S1215
+ CRITICAL
+
+
+ squid
+ S1197
+ MINOR
+
+
+ squid
+ S1220
+ MAJOR
+
+
+ squid
+ S1221
+ CRITICAL
+
+
+ squid
+ S1199
+ MAJOR
+
+
+ squid
+ S1214
+ MINOR
+
+
+ squid
+ S1201
+ CRITICAL
+
+
+ squid
+ S1210
+ CRITICAL
+
+
+ squid
+ S1206
+ BLOCKER
+
+
+ squid
+ S1219
+ CRITICAL
+
+
+ squid
+ S1301
+ MINOR
+
+
+ squid
+ S1314
+ MAJOR
+
+
+ squid
+ S1226
+ MAJOR
+
+
+ squid
+ S1313
+ MAJOR
+
+
+ squid
+ S1312
+ MAJOR
+
+
+ format
+ LOG(?:GER)?
+
+
+
+
+ squid
+ S1318
+ CRITICAL
+
+
+ squid
+ S1223
+ MAJOR
+
+
+ squid
+ S1319
+ MAJOR
+
+
+ squid
+ S1231
+ MINOR
+
+
+ squid
+ S1444
+ MAJOR
+
+
+ squid
+ S1452
+ MAJOR
+
+
+ squid
+ S1481
+ MAJOR
+
+
+ squid
+ S1068
+ MAJOR
+
+
+ squid
+ S1317
+ MAJOR
+
+
+ squid
+ S1596
+ MAJOR
+
+
+ squid
+ UnusedPrivateMethod
+ MAJOR
+
+
+ squid
+ RedundantThrowsDeclarationCheck
+ MINOR
+
+
+ squid
+ S1160
+ MAJOR
+
+
+ squid
+ S1217
+ CRITICAL
+
+
+ squid
+ S1488
+ MINOR
+
+
+ squid
+ S1602
+ MAJOR
+
+
+ squid
+ S1611
+ MINOR
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2b02cc0..ba1bb66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,12 @@
4.0.0
- org.codehaus.sonar-plugins
+ org.sonarsource.parent
parent
- 19
+ 23
- org.codehaus.sonar.runner
+ org.sonarsource.sonar-runner
sonar-runner
2.5-SNAPSHOT
pom
@@ -14,15 +14,6 @@
http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner
2011
-
-
-
- codehaus-nexus-staging
- Codehaus Release Repository
- https://nexus.codehaus.org/service/local/staging/deploy/maven2/
-
-
-
sonar-runner-api
sonar-runner-batch
diff --git a/sonar-runner-api/pom.xml b/sonar-runner-api/pom.xml
index 6e94115..a1cf3c6 100644
--- a/sonar-runner-api/pom.xml
+++ b/sonar-runner-api/pom.xml
@@ -1,7 +1,7 @@
4.0.0
- org.codehaus.sonar.runner
+ org.sonarsource.sonar-runner
sonar-runner
2.5-SNAPSHOT
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/Dirs.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/Dirs.java
index c592237..a5da52d 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/Dirs.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/Dirs.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/EmbeddedRunner.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/EmbeddedRunner.java
index 21f0862..6b2ae23 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/EmbeddedRunner.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/EmbeddedRunner.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/LogOutput.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/LogOutput.java
index 4dfe94e..71a0c91 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/LogOutput.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/LogOutput.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/ProcessMonitor.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/ProcessMonitor.java
index 8d71214..cc1bcef 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/ProcessMonitor.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/ProcessMonitor.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerProperties.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerProperties.java
index e903d74..0a855b7 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerProperties.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerProperties.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerVersion.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerVersion.java
index 2aa3b97..d91dbf9 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerVersion.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/RunnerVersion.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/ScanProperties.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/ScanProperties.java
index 0ec4f45..8d8154b 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/ScanProperties.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/ScanProperties.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/StdOutLogOutput.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/StdOutLogOutput.java
index 016e614..eac27ce 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/StdOutLogOutput.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/StdOutLogOutput.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/Utils.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/Utils.java
index cef12b4..29ea62e 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/Utils.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/Utils.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/api/package-info.java b/sonar-runner-api/src/main/java/org/sonar/runner/api/package-info.java
index cebd22d..4a62486 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/api/package-info.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/api/package-info.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/InternalProperties.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/InternalProperties.java
index 48c3319..03e7f22 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/InternalProperties.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/InternalProperties.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedClassloader.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedClassloader.java
index d5c52b3..958b1b0 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedClassloader.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedClassloader.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
index 601776d..5c2a590 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherProxy.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherProxy.java
index 411d731..629ca43 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherProxy.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherProxy.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
index 62fc157..f3f88ba 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarExtractor.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarExtractor.java
index c4e3fa7..fee1d10 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarExtractor.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarExtractor.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
index d181f23..262c859 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/RunnerException.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/RunnerException.java
index 9d60947..6d35505 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/RunnerException.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/RunnerException.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
index 291ee30..7abd093 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/TempCleaning.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/TempCleaning.java
index 045e36d..89c07c7 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/TempCleaning.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/TempCleaning.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/VersionUtils.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/VersionUtils.java
index 642f41e..6d9003b 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/VersionUtils.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/VersionUtils.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/package-info.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/package-info.java
index d7ac772..4868737 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/package-info.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/package-info.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/api/DirsTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/api/DirsTest.java
index 3c45b32..0bce312 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/api/DirsTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/api/DirsTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
index 386f669..e838381 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/api/EmbeddedRunnerTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/api/RunnerVersionTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/api/RunnerVersionTest.java
index ca8c651..f78b87c 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/api/RunnerVersionTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/api/RunnerVersionTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/api/UtilsTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/api/UtilsTest.java
index 3d98cf0..653f61f 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/api/UtilsTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/api/UtilsTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedClassloaderTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedClassloaderTest.java
index c1cb9a5..f2a681b 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedClassloaderTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedClassloaderTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
index d9eb613..a186d72 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherFactoryTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherProxyTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherProxyTest.java
index a75bb54..9d47dad 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherProxyTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/IsolatedLauncherProxyTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarDownloaderTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarDownloaderTest.java
index 35e02df..8c6cb6c 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarDownloaderTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarDownloaderTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarExtractorTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarExtractorTest.java
index 8d2c0d7..9de107c 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarExtractorTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarExtractorTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarsTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarsTest.java
index 047d4e7..a772901 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarsTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/JarsTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServer.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServer.java
index 36e5d08..9613132 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServer.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServer.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServerInterceptor.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServerInterceptor.java
index 2cbfc7e..221549d 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServerInterceptor.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/MockHttpServerInterceptor.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/NetworkUtil.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/NetworkUtil.java
index f9bfd83..7ed852a 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/NetworkUtil.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/NetworkUtil.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/ServerConnectionTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/ServerConnectionTest.java
index d926203..20016d8 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/ServerConnectionTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/ServerConnectionTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/TempCleaningTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/TempCleaningTest.java
index 2037a62..1a05e47 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/TempCleaningTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/TempCleaningTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-api/src/test/java/org/sonar/runner/impl/VersionUtilsTest.java b/sonar-runner-api/src/test/java/org/sonar/runner/impl/VersionUtilsTest.java
index e015a26..376ea42 100644
--- a/sonar-runner-api/src/test/java/org/sonar/runner/impl/VersionUtilsTest.java
+++ b/sonar-runner-api/src/test/java/org/sonar/runner/impl/VersionUtilsTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - API
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-batch-interface/pom.xml b/sonar-runner-batch-interface/pom.xml
index 9ccb3b9..6555e66 100644
--- a/sonar-runner-batch-interface/pom.xml
+++ b/sonar-runner-batch-interface/pom.xml
@@ -1,7 +1,7 @@
4.0.0
- org.codehaus.sonar.runner
+ org.sonarsource.sonar-runner
sonar-runner
2.5-SNAPSHOT
diff --git a/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/IsolatedLauncher.java b/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/IsolatedLauncher.java
index 21b0d73..834c11b 100644
--- a/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/IsolatedLauncher.java
+++ b/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/IsolatedLauncher.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - Batch Interface
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/LogOutput.java b/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/LogOutput.java
index f17eb55..5fd3754 100644
--- a/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/LogOutput.java
+++ b/sonar-runner-batch-interface/src/main/java/org/sonar/runner/batch/LogOutput.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - Batch Interface
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-batch/pom.xml b/sonar-runner-batch/pom.xml
index dc57821..e2fd475 100644
--- a/sonar-runner-batch/pom.xml
+++ b/sonar-runner-batch/pom.xml
@@ -1,7 +1,7 @@
4.0.0
- org.codehaus.sonar.runner
+ org.sonarsource.sonar-runner
sonar-runner
2.5-SNAPSHOT
diff --git a/sonar-runner-batch/src/main/java/org/sonar/runner/batch/BatchIsolatedLauncher.java b/sonar-runner-batch/src/main/java/org/sonar/runner/batch/BatchIsolatedLauncher.java
index 4241da4..6b6a710 100644
--- a/sonar-runner-batch/src/main/java/org/sonar/runner/batch/BatchIsolatedLauncher.java
+++ b/sonar-runner-batch/src/main/java/org/sonar/runner/batch/BatchIsolatedLauncher.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - Batch
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-batch/src/main/java/org/sonar/runner/batch/Compatibility.java b/sonar-runner-batch/src/main/java/org/sonar/runner/batch/Compatibility.java
index 88dd0c9..a2d16d0 100644
--- a/sonar-runner-batch/src/main/java/org/sonar/runner/batch/Compatibility.java
+++ b/sonar-runner-batch/src/main/java/org/sonar/runner/batch/Compatibility.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - Batch
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/IsolatedLauncherTest.java b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/IsolatedLauncherTest.java
index 610ff75..62f4435 100644
--- a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/IsolatedLauncherTest.java
+++ b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/IsolatedLauncherTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - Batch
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/assembly.xml b/sonar-runner-cli/assembly.xml
index 70a9969..d438fdf 100644
--- a/sonar-runner-cli/assembly.xml
+++ b/sonar-runner-cli/assembly.xml
@@ -13,7 +13,7 @@
true
true
- org.codehaus.sonar.runner:sonar-runner-api
+ org.sonarsource.sonar-runner:sonar-runner-api
diff --git a/sonar-runner-cli/pom.xml b/sonar-runner-cli/pom.xml
index 2c3d0c1..179b49f 100644
--- a/sonar-runner-cli/pom.xml
+++ b/sonar-runner-cli/pom.xml
@@ -1,7 +1,7 @@
4.0.0
- org.codehaus.sonar.runner
+ org.sonarsource.sonar-runner
sonar-runner
2.5-SNAPSHOT
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Cli.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Cli.java
index 2c79dc8..f1a038b 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Cli.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Cli.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
index e32a06c..68627f7 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Exit.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Exit.java
index 7c2ed3c..6d53dc2 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Exit.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Exit.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Logs.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Logs.java
index a68e282..d69f3fd 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Logs.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Logs.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Main.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Main.java
index 6971bc6..6316122 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Main.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Main.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/RunnerFactory.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/RunnerFactory.java
index 60f6f31..3abe645 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/RunnerFactory.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/RunnerFactory.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Shutdown.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Shutdown.java
index de5341a..3c52bc5 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Shutdown.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Shutdown.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Stats.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Stats.java
index 5089c12..5173137 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Stats.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Stats.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/SystemInfo.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/SystemInfo.java
index 090eafd..1ab1458 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/SystemInfo.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/SystemInfo.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/package-info.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/package-info.java
index f92c312..4a17c31 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/package-info.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/package-info.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/CliTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/CliTest.java
index 9eda2b9..a0332c2 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/CliTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/CliTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
index bfeb23d..9452463 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/MainTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/MainTest.java
index 5b7d8fe..857ed8c 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/MainTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/MainTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/RunnerFactoryTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/RunnerFactoryTest.java
index 29955d3..7ca2688 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/RunnerFactoryTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/RunnerFactoryTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ShutdownTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ShutdownTest.java
index 7e570b1..98a5b85 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ShutdownTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ShutdownTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/StatsTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/StatsTest.java
index 6093b41..ff8fa0b 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/StatsTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/StatsTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/SystemInfoTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/SystemInfoTest.java
index edeffff..8f16d34 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/SystemInfoTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/SystemInfoTest.java
@@ -1,7 +1,7 @@
/*
* SonarQube Runner - CLI - Distribution
* Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
+ * sonarqube@googlegroups.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/travis.sh b/travis.sh
index d7705a7..7f2d537 100755
--- a/travis.sh
+++ b/travis.sh
@@ -3,9 +3,26 @@
set -euo pipefail
function installTravisTools {
- curl -sSL https://raw.githubusercontent.com/sonarsource/travis-utils/v10/install.sh | bash
+ curl -sSL https://raw.githubusercontent.com/sonarsource/travis-utils/v11/install.sh | bash
+ source /tmp/travis-utils/env.sh
}
-installTravisTools
-travis_build_green "SonarSource/sonarqube" "master"
-mvn verify -B -e -V
+case "$TESTS" in
+
+CI)
+ installTravisTools
+ travis_build_green "SonarSource/sonarqube" "master"
+ mvn verify -B -e -V
+ ;;
+
+IT-DEV)
+ cat /etc/hosts
+ rpm -qa | grep glibc
+ installTravisTools
+ mvn install -Dsource.skip=true -Denforcer.skip=true -Danimal.sniffer.skip=true -Dmaven.test.skip=true
+ travis_build_green "SonarSource/sonarqube" "master"
+ cd it
+ mvn -Dsonar.runtimeVersion="DEV" -DsonarRunner.version="2.5-SNAPSHOT" -Dmaven.test.redirectTestOutputToFile=false install
+ ;;
+
+esac