diff --git a/its/out.dump b/its/out.dump deleted file mode 100644 index e46bf45..0000000 --- a/its/out.dump +++ /dev/null @@ -1,288 +0,0 @@ -#Generated by sonar-runner -#Tue Nov 25 23:10:48 CET 2014 -2_1.sonarRunner.dumpToFile=out.dump -env.DESKTOP_SESSION=default -file.encoding.pkg=sun.io -1_1.sonar.host.url=http\://localhost\:42856/sonar -2_1.sonar.links.issue= -1_1.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -1_2.sonar.sources=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a2/src/main -1_2.sonarRunner.dumpToFile=out.dump -2_1.sonar.sources=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b1/src/main -java.home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre -2.sonar.links.ci= -sonar.modules=1,2 -sonar.projectKey=com.sonarsource.it.samples\:multi-modules-sample -1_2.sonar.links.homepage= -2.sonar.projectVersion=1.0-SNAPSHOT -sonar.embeddedDatabase.port=45042 -env.DISPLAY=\:0 -env.XDG_VTNR=1 -2.sonar.links.homepage= -2_1.sonar.links.ci= -java.awt.headless=true -classworlds.conf=/usr/share/maven/bin/m2.conf -2_2.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b2/target/sonar -java.endorsed.dirs=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/endorsed -2.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/target/sonar -env.LOGNAME=julien -env.GS_LIB= -1_1.sonar.links.issue= -2_1.sonar.jdbc.driverClassName=org.h2.Driver -env.XDG_SEAT=seat0 -2_1.sonar.host.url=http\://localhost\:42856/sonar -1.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -env.KDE_SESSION_UID=1000 -env.SESSION_MANAGER=local/unix\:@/tmp/.ICE-unix/1822,unix/unix\:/tmp/.ICE-unix/1822 -2.sonar.moduleKey=com.sonarsource.it.samples\:module_b -env.KDEDIRS=/usr -sun.os.patch.level=unknown -2.sonar.links.scm= -java.vendor.url=http\://java.oracle.com/ -env.SONAR_IT_SOURCES=/home/julien/Prog/Tests/it-sources/ -1_1.sonar.jdbc.driverClassName=org.h2.Driver -1_2.sonar.projectVersion=1.0-SNAPSHOT -java.version=1.7.0_71 -2_1.sonar.jdbc.password=sonar -env.ANDROID_HOME=/home/julien/Prog/Softs/android-sdk/ -env.MAVEN_OPTS=-Djava.awt.headless\=true -sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -2.sonar.host.url=http\://localhost\:42856/sonar -java.vendor.url.bug=http\://bugreport.sun.com/bugreport/ -1.sonar.language=java -env.XDG_MENU_PREFIX=kde4- -1.sonar.jdbc.dialect=h2 -sonarRunner.app=Maven -env.XDG_DATA_DIRS=/usr/share/kde-settings/kde-profile/default/share\:/usr/local/share\:/usr/share -1_1.sonar.links.homepage= -1.sonar.projectVersion=1.0-SNAPSHOT -1.sonar.projectName=Module A -2.sonar.jdbc.username=sonar -user.name=julien -env.LANG=fr_FR.UTF-8 -1.sonar.links.homepage= -env.CVS_RSH=ssh -sun.io.unicode.encoding=UnicodeLittle -sun.jnu.encoding=UTF-8 -env.DBUS_SESSION_BUS_ADDRESS=unix\:abstract\=/tmp/dbus-E0wo0ow6Oo,guid\=d6021db9e576f37abae50ab554743137 -1_1.sonar.moduleKey=com.sonarsource.it.samples\:module_a1 -java.runtime.name=OpenJDK Runtime Environment -1_1.sonar.links.scm= -env.SSH_ASKPASS=/usr/bin/ksshaskpass -sonar.projectName=Sonar \:\: Integration Tests \:\: Multi-modules Sample -java.specification.name=Java Platform API Specification -sonar.links.ci= -user.timezone= -env.LESSOPEN=||/usr/bin/lesspipe.sh %s -1.sonar.jdbc.username=sonar -1.sonar.sources= -2_2.sonar.embeddedDatabase.port=45042 -path.separator=\: -1_1.sonar.projectVersion=1.0-SNAPSHOT -2_1.sonar.embeddedDatabase.port=45042 -sonar.jdbc.dialect=h2 -2.sonarRunner.dumpToFile=out.dump -env.XMODIFIERS=@im\=none -file.encoding=UTF-8 -1_2.sonar.jdbc.username=sonar -env.HOME=/home/julien -sun.java.command=org.codehaus.plexus.classworlds.launcher.Launcher org.codehaus.mojo\:sonar-maven-plugin\:2.5-SNAPSHOT\:sonar -B -e -f /home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/pom.xml -Dsonar.jdbc.password\=sonar -Dsonar.host.url\=http\://localhost\:42856/sonar -Dsonar.embeddedDatabase.port\=45042 -Dsonar.jdbc.dialect\=h2 -Dsonar.jdbc.username\=sonar -DsonarRunner.dumpToFile\=out.dump -Dsonar.jdbc.url\=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -Dsonar.jdbc.driverClassName\=org.h2.Driver -sonar.jdbc.driverClassName=org.h2.Driver -1.sonar.modules=1_1,1_2 -1_1.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a1/target -1_1.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -sonarRunner.appVersion=3.1.1 -2.sonar.links.scm_dev= -1.sonar.links.issue= -env.GTK_RC_FILES=/etc/gtk/gtkrc\:/home/julien/.gtkrc\:/home/julien/.kde/share/config/gtkrc -2_2.sonar.projectName=Sub-module B2 -sonar.moduleKey=com.sonarsource.it.samples\:multi-modules-sample -sonar.links.scm= -env.HOSTNAME=laptopjh.sonarsource.com -2_2.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -1_1.sonar.jdbc.username=sonar -1_2.sonar.links.ci= -java.io.tmpdir=/tmp -sonar.links.issue= -user.language=fr -env.HISTCONTROL=ignoredups -line.separator=\n -2.sonar.jdbc.dialect=h2 -sonar.host.url=http\://localhost\:42856/sonar -2_2.sonar.sources=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b2/src/main -1_1.sonar.language=java -2_1.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -env.SSH_AGENT_PID=1706 -env.HISTSIZE=1000 -2_2.sonar.jdbc.username=sonar -2_2.sonarRunner.dumpToFile=out.dump -1_2.sonar.links.scm_dev= -java.vm.info=mixed mode -java.vm.specification.name=Java Virtual Machine Specification -sonar.jdbc.password=sonar -env.M2_HOME=/usr/share/maven -2_2.sonar.links.homepage= -2.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -2_1.sonar.jdbc.dialect=h2 -sonar.projectVersion=1.0-SNAPSHOT -2_1.sonar.jdbc.username=sonar -1_2.sonar.moduleKey=com.sonarsource.it.samples\:module_a2 -1_2.sonar.links.scm= -1_2.sonar.host.url=http\://localhost\:42856/sonar -1.sonar.links.scm_dev= -1_1.sonar.links.scm_dev= -sonar.links.homepage= -1.sonar.jdbc.driverClassName=org.h2.Driver -2.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b -1_2.sonar.projectName=Sub-module A2 -2_1.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b1/target -1_2.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -java.awt.printerjob=sun.print.PSPrinterJob -env.DM_CONTROL=/var/run/xdmctl -1_2.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a2/target -2_2.sonar.projectVersion=1.0-SNAPSHOT -2_2.sonar.links.ci= -sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/target -2_2.sonar.links.issue= -2_1.sonar.language=java -1_2.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a2 -2.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -os.name=Linux -2_1.sonar.links.homepage= -java.specification.vendor=Oracle Corporation -env.TERM=dumb -java.vm.name=OpenJDK 64-Bit Server VM -1_1.sonar.jdbc.dialect=h2 -1_1.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a1/target/sonar -env.QT_IM_MODULE=xim -sonar.mojoUseRunner=true -env.KDE_SESSION_VERSION=4 -java.library.path=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../lib/amd64\:/usr/java/jdk1.6.0_45/jre/lib/amd64/server\:/usr/java/jdk1.6.0_45/jre/lib/amd64\:/usr/java/jdk1.6.0_45/jre/../lib/amd64\:/usr/java/packages/lib/amd64\:/usr/lib64\:/lib64\:/lib\:/usr/lib -env.PATH=/home/julien/Prog/Softs/play-2.2.1/\:/usr/lib64/qt-3.3/bin\:/usr/local/bin\:/usr/bin\:/bin\:/usr/games\:/usr/local/sbin\:/usr/sbin\:/home/julien/Prog/Softs/mavens/\:/home/julien/Prog/Softs/sbt/bin\:/home/julien/Prog/Softs/groovy/bin\:/home/julien/Prog/Softs/android-sdk//tools\:/home/julien/Prog/Softs/android-sdk//platform-tools\:/home/julien/Prog/Softs/ant/bin/\:/home/julien/Prog/sonar-developer-toolset/git/\:/home/julien/.local/bin\:/home/julien/bin -2.sonar.language=java -2_2.sonar.links.scm_dev= -1_2.sonar.links.issue= -2.sonar.projectName=Module B -2_2.sonar.jdbc.driverClassName=org.h2.Driver -java.class.version=51.0 -env.SHLVL=3 -env.LD_LIBRARY_PATH=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../lib/amd64\:/usr/java/jdk1.6.0_45/jre/lib/amd64/server\:/usr/java/jdk1.6.0_45/jre/lib/amd64\:/usr/java/jdk1.6.0_45/jre/../lib/amd64 -2.sonar.modules=2_1,2_2 -2_1.sonar.moduleKey=com.sonarsource.it.samples\:module_b1 -2_2.sonar.host.url=http\://localhost\:42856/sonar -1_2.sonar.jdbc.driverClassName=org.h2.Driver -2_1.sonar.links.scm= -sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -2_2.sonar.jdbc.dialect=h2 -2_1.sonar.projectVersion=1.0-SNAPSHOT -env.KDE_MULTIHEAD=false -2_1.sonar.links.scm_dev= -env.SWT_GTK3=0 -2.sonar.sources= -1_1.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a1 -1.sonar.links.ci= -1.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/target -sun.boot.library.path=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64 -2_2.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b2/target -env.PLAY_HOME=/home/julien/Prog/Softs/play-2.2.1/ -1.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a -sun.management.compiler=HotSpot 64-Bit Tiered Compilers -java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment -sonar.language=java -env.USER=julien -2.sonar.embeddedDatabase.port=45042 -env.GTK_IM_MODULE=gtk-im-context-simple -env.ORCHESTRATOR_CONFIG_URL=file\:///home/julien/Prog/Tests/orchestrator.properties -1_1.sonarRunner.dumpToFile=out.dump -1.sonar.embeddedDatabase.port=45042 -2.sonar.links.issue= -1_2.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -env.QT_PLUGIN_PATH=/home/julien/.kde/lib64/kde4/plugins/\:/usr/lib64/kde4/plugins/ -java.vm.specification.version=1.7 -env.KDE_IS_PRELINKED=1 -1_2.sonar.jdbc.dialect=h2 -1_1.sonar.sources=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a1/src/main -1_2.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/module_a2/target/sonar -env.NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat -awt.toolkit=sun.awt.X11.XToolkit -sun.cpu.isalist= -2.sonar.projectBuildDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/target -java.ext.dirs=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/ext\:/usr/java/packages/lib/ext -os.version=3.17.3-200.fc20.x86_64 -1.sonar.host.url=http\://localhost\:42856/sonar -env.XDG_CURRENT_DESKTOP=KDE -user.home=/home/julien -sonarRunner.dumpToFile=out.dump -java.vm.vendor=Oracle Corporation -env.KDE_FULL_SESSION=true -env.JAVA_HOME=/usr/lib/jvm/java -env.XDG_SESSION_ID=1 -env.XAUTHORITY=/tmp/kde-julien/xauth-1000-_0 -sonar.jdbc.username=sonar -user.dir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven -env.WINDOWPATH=1 -env.XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt -env.MAIL=/var/spool/mail/julien -2.sonar.jdbc.password=sonar -1.sonar.moduleKey=com.sonarsource.it.samples\:module_a -env.PWD=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven -env.LIBOVERLAY_SCROLLBAR=0 -sonar.sourceEncoding=UTF-8 -sun.cpu.endian=little -env.GTK2_RC_FILES=/etc/gtk-2.0/gtkrc\:/home/julien/.gtkrc-2.0\:/home/julien/.gtkrc-2.0-kde4\:/home/julien/.kde/share/config/gtkrc-2.0 -env.QTLIB=/usr/lib64/qt-3.3/lib -java.vm.version=24.65-b04 -1_2.sonar.language=java -org.slf4j.simpleLogger.defaultLogLevel=info -java.class.path=/usr/share/maven/boot/plexus-classworlds.jar -2_2.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -env.XCURSOR_THEME=Adwaita -1.sonar.jdbc.password=sonar -env.QTDIR=/usr/lib64/qt-3.3 -os.arch=amd64 -maven.build.version=Apache Maven 3.1.1 (NON-CANONICAL_2013-11-08_14-32_mockbuild; 2013-11-08 15\:32\:41+0100) -2_2.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b2 -sun.java.launcher=SUN_STANDARD -env.QT_GRAPHICSSYSTEM_CHECKED=1 -1_2.sonar.jdbc.password=sonar -sonarRunner.maskRules=MASK|org.slf4j.LoggerFactory,UNMASK|org.slf4j.Logger,UNMASK|org.slf4j.ILoggerFactory,MASK|org.slf4j.,MASK|ch.qos.logback.,MASK|org.sonar.,MASK|com.google.common,UNMASK| -env.IMSETTINGS_INTEGRATE_DESKTOP=yes -1.sonar.links.scm= -sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/target/sonar -2_1.sonar.maven.projectDependencies=[{"k"\:"junit\:junit","v"\:"3.8.1","s"\:"test","d"\:[]}] -java.vm.specification.vendor=Oracle Corporation -1.sonarRunner.dumpToFile=out.dump -sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources -file.separator=/ -2_1.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b1/target/sonar -2_2.sonar.moduleKey=com.sonarsource.it.samples\:module_b2 -2_2.sonar.links.scm= -java.runtime.version=1.7.0_71-mockbuild_2014_10_15_17_02-b00 -1.sonar.working.directory=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_a/target/sonar -2_1.sonar.projectName=Sub-module B1 -2.sonar.jdbc.driverClassName=org.h2.Driver -sun.boot.class.path=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/resources.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/rt.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/sunrsasign.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/jsse.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/jce.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/charsets.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/rhino.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/jfr.jar\:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/classes -env.XDM_MANAGED=method\=classic,auto -env.SSH_AUTH_SOCK=/tmp/ssh-za9000htclwL/agent.1543 -2_2.sonar.language=java -1_1.sonar.links.ci= -env.XDG_RUNTIME_DIR=/run/user/1000 -maven.version=3.1.1 -1_1.sonar.jdbc.password=sonar -env.QTINC=/usr/lib64/qt-3.3/include -user.country=FR -env.SHELL=/bin/bash -maven.home=/usr/share/maven -1_2.sonar.embeddedDatabase.port=45042 -1_1.sonar.projectName=Sub-module A1 -1_1.sonar.embeddedDatabase.port=45042 -java.vendor=Oracle Corporation -2_2.sonar.jdbc.password=sonar -sonar.links.scm_dev= -env.GPG_AGENT_INFO=/home/julien/.gnupg/S.gpg-agent\:1731\:1 -2_1.sonar.projectBaseDir=/home/julien/Prog/Projects/its/sonar-tests-core/it-sonar-maven/projects/maven/multi-modules-override-sources/module_b/module_b1 -env.IMSETTINGS_MODULE=none -sonar.sources= -java.specification.version=1.7 -1.sonar.jdbc.url=jdbc\:h2\:tcp\://localhost\:45042/sonar;USER\=sonar;PASSWORD\=sonar -sun.arch.data.model=64 diff --git a/its/projects/maven/maven-global-properties/pom.xml b/its/projects/maven/maven-global-properties/pom.xml new file mode 100644 index 0000000..f3d6882 --- /dev/null +++ b/its/projects/maven/maven-global-properties/pom.xml @@ -0,0 +1,35 @@ + + 4.0.0 + com.sonarsource.it.samples + sonar-host-url + 1.0-SNAPSHOT + + + http://dummy-url.org + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.5 + 1.5 + + + + + + + + junit + junit + 4.5 + test + + + + diff --git a/its/src/test/java/com/sonar/maven/it/ItUtils.java b/its/src/test/java/com/sonar/maven/it/ItUtils.java index 4a0e68a..3f3b8cc 100644 --- a/its/src/test/java/com/sonar/maven/it/ItUtils.java +++ b/its/src/test/java/com/sonar/maven/it/ItUtils.java @@ -19,8 +19,21 @@ */ package com.sonar.maven.it; -import java.io.File; import org.apache.commons.io.FileUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import java.io.File; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Map; public final class ItUtils { @@ -49,4 +62,38 @@ public static File locateProjectPom(String projectName) { return new File(locateProjectDir(projectName), "pom.xml"); } + /** + * Creates a settings xml with a sonar profile, containing all the given properties + */ + public static String createSettingsXml(Map props) throws Exception { + DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = docBuilder.newDocument(); + + Element settings = doc.createElement("settings"); + Element profiles = doc.createElement("profiles"); + Element profile = doc.createElement("profile"); + + Element id = doc.createElement("id"); + id.setTextContent("sonar"); + + Element properties = doc.createElement("properties"); + + for (Map.Entry e : props.entrySet()) { + Element el = doc.createElement(e.getKey()); + el.setTextContent(e.getValue()); + properties.appendChild(el); + } + + profile.appendChild(id); + profile.appendChild(properties); + profiles.appendChild(profile); + settings.appendChild(profiles); + doc.appendChild(settings); + + Writer writer = new StringWriter(); + Transformer tf = TransformerFactory.newInstance().newTransformer(); + tf.transform(new DOMSource(doc), new StreamResult(writer)); + return writer.toString(); + } + } diff --git a/its/src/test/java/com/sonar/maven/it/suite/MavenTest.java b/its/src/test/java/com/sonar/maven/it/suite/MavenTest.java index c64185d..c2eb536 100644 --- a/its/src/test/java/com/sonar/maven/it/suite/MavenTest.java +++ b/its/src/test/java/com/sonar/maven/it/suite/MavenTest.java @@ -19,15 +19,20 @@ */ package com.sonar.maven.it.suite; +import org.apache.commons.io.FileUtils; +import com.sonar.orchestrator.build.BuildRunner; import com.sonar.maven.it.ItUtils; import com.sonar.orchestrator.build.BuildResult; import com.sonar.orchestrator.build.MavenBuild; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; +import java.util.Map; import java.util.Properties; + import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Rule; @@ -36,7 +41,6 @@ import org.sonar.wsclient.Sonar; import org.sonar.wsclient.services.Resource; import org.sonar.wsclient.services.ResourceQuery; - import static org.fest.assertions.Assertions.assertThat; import static org.junit.Assume.assumeFalse; import static org.junit.Assume.assumeTrue; @@ -51,6 +55,43 @@ public void deleteData() { orchestrator.resetData(); } + @Test + /** + * See MSONAR-129 + */ + public void useUserPropertiesGlobalConfig() throws Exception { + BuildRunner runner = new BuildRunner(orchestrator.getConfiguration(), orchestrator.getDatabase()); + MavenBuild build = MavenBuild.create(ItUtils.locateProjectPom("maven/maven-only-test-dir")) + .setGoals(cleanSonarGoal()); + + File settingsXml = temp.newFile(); + Map props = orchestrator.getDatabase().getSonarProperties(); + props.put("sonar.host.url", orchestrator.getServer().getUrl()); + FileUtils.write(settingsXml, ItUtils.createSettingsXml(props)); + + build.addArgument("--settings=" + settingsXml.getAbsolutePath()); + build.addArgument("-Psonar"); + // we build without sonarqube server settings, it will need to fetch it from the profile defined in the settings xml file + BuildResult result = runner.run(null, build); + + assertThat(result.getLogs()).contains(orchestrator.getServer().getUrl()); + } + + @Test + /** + * See MSONAR-129 + */ + public void supportSonarHostURLParam() { + BuildRunner runner = new BuildRunner(orchestrator.getConfiguration(), orchestrator.getDatabase()); + MavenBuild build = MavenBuild.create(ItUtils.locateProjectPom("maven/maven-global-properties")) + .setGoals(cleanSonarGoal()); + + BuildResult result = runner.runQuietly(null, build); + + assertThat(result.isSuccess()).isFalse(); + assertThat(result.getLogs()).contains("http://dummy-url.org"); + } + @Test public void shouldSupportJarWithoutSources() { MavenBuild build = MavenBuild.create(ItUtils.locateProjectPom("maven/project-with-module-without-sources")) @@ -68,7 +109,7 @@ public void shouldSupportJarWithoutSources() { Resource subProject = orchestrator.getServer().getWsClient().find(ResourceQuery.create("com.sonarsource.it.samples.project-with-module-without-sources:without-sources")); assertThat(subProject).isNotNull(); } - + /** * See SONAR-594 */ diff --git a/src/main/java/org/codehaus/mojo/sonar/SonarMojo.java b/src/main/java/org/codehaus/mojo/sonar/SonarMojo.java index 16dfe1a..7f94a38 100644 --- a/src/main/java/org/codehaus/mojo/sonar/SonarMojo.java +++ b/src/main/java/org/codehaus/mojo/sonar/SonarMojo.java @@ -67,12 +67,6 @@ public class SonarMojo @Parameter( defaultValue = "${session}", readonly = true ) private MavenSession session; - /** - * Sonar host URL. - */ - @Parameter( property = "sonar.host.url", defaultValue = "http://localhost:9000", alias = "sonar.host.url" ) - private String sonarHostURL; - /** * Set this to 'true' to skip analysis. * diff --git a/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerBootstrapper.java b/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerBootstrapper.java index 530179e..75d2a60 100644 --- a/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerBootstrapper.java +++ b/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerBootstrapper.java @@ -73,9 +73,6 @@ public void execute() { try { - Properties props = collectProperties(); - checkDumpToFile( props ); - applyMasks(); runner.start(); serverVersion = runner.serverVersion(); @@ -99,7 +96,7 @@ public void execute() runner.setGlobalProperty( "sonar.verbose", "true" ); } - runner.runAnalysis( props ); + runner.runAnalysis( collectProperties() ); runner.stop(); } catch ( Exception e ) diff --git a/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactory.java b/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactory.java index 2885ca1..731b1d3 100644 --- a/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactory.java +++ b/src/main/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactory.java @@ -1,10 +1,11 @@ package org.codehaus.mojo.sonar.bootstrap; +import org.apache.maven.execution.MavenSession; import org.apache.maven.rtinfo.RuntimeInformation; - -import org.sonar.runner.api.LogOutput; import org.sonar.runner.api.EmbeddedRunner; -import org.apache.maven.execution.MavenSession; +import org.sonar.runner.api.LogOutput; + +import java.util.Properties; public class RunnerFactory { @@ -30,7 +31,9 @@ public EmbeddedRunner create() { EmbeddedRunner runner = EmbeddedRunner.create( logOutput ); runner.setApp( "Maven", runtimeInformation.getMavenVersion() ); - runner.addGlobalProperties( session.getSystemProperties() ); + + runner.addGlobalProperties( createGlobalProperties() ); + // Secret property to manage backward compatibility on SQ side (see ProjectScanContainer) runner.setGlobalProperty( "sonar.mojoUseRunner", "true" ); if ( debugEnabled ) @@ -40,4 +43,13 @@ public EmbeddedRunner create() return runner; } + + private Properties createGlobalProperties() + { + Properties p = new Properties(); + p.putAll( session.getTopLevelProject().getProperties() ); + p.putAll( session.getSystemProperties() ); + p.putAll( session.getUserProperties() ); + return p; + } } diff --git a/src/test/java/org/codehaus/mojo/sonar/SonarMojoTest.java b/src/test/java/org/codehaus/mojo/sonar/SonarMojoTest.java index 124e0b6..af398cb 100644 --- a/src/test/java/org/codehaus/mojo/sonar/SonarMojoTest.java +++ b/src/test/java/org/codehaus/mojo/sonar/SonarMojoTest.java @@ -45,7 +45,6 @@ import java.util.Properties; import static org.mockito.Mockito.atLeastOnce; - import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.mock; @@ -82,7 +81,10 @@ public void executeMojo() throws Exception { File baseDir = executeProject( "sample-project", temp.newFile() ); - assertPropsContains( entry( "sonar.projectKey", "org.codehaus.sonar:sample-project" ) ); + + // passed in the properties of the profile and project + assertGlobalPropsContains( entry( "sonar.host.url1", "http://myserver:9000" ) ); + assertGlobalPropsContains( entry( "sonar.host.url2", "http://myserver:9000" ) ); } @Test @@ -209,6 +211,12 @@ private void assertPropsContains( MapAssert.Entry... entries ) assertThat( readProps( "target/dump.properties" ) ).includes( entries ); } + private void assertGlobalPropsContains( MapAssert.Entry... entries ) + throws FileNotFoundException, IOException + { + assertThat( readProps( "target/dump.properties.global" ) ).includes( entries ); + } + private Properties readProps( String filePath ) throws FileNotFoundException, IOException { diff --git a/src/test/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactoryTest.java b/src/test/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactoryTest.java new file mode 100644 index 0000000..cb39d8f --- /dev/null +++ b/src/test/java/org/codehaus/mojo/sonar/bootstrap/RunnerFactoryTest.java @@ -0,0 +1,77 @@ +package org.codehaus.mojo.sonar.bootstrap; + +import org.apache.maven.execution.MavenSession; +import org.apache.maven.project.MavenProject; +import org.apache.maven.rtinfo.RuntimeInformation; +import org.junit.Before; +import org.junit.Test; +import org.sonar.runner.api.EmbeddedRunner; +import org.sonar.runner.api.LogOutput; + +import java.util.Properties; + +import static org.fest.assertions.Assertions.assertThat; +import static org.fest.assertions.MapAssert.entry; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RunnerFactoryTest +{ + private LogOutput logOutput; + + private RuntimeInformation runtimeInformation; + + private MavenSession mavenSession; + + private MavenProject rootProject; + + @Before + public void setUp() + { + logOutput = mock( LogOutput.class ); + runtimeInformation = mock( RuntimeInformation.class ); + mavenSession = mock( MavenSession.class ); + rootProject = mock( MavenProject.class ); + + Properties system = new Properties(); + system.put( "system", "value" ); + Properties user = new Properties(); + user.put( "user", "value" ); + Properties root = new Properties(); + root.put( "root", "value" ); + + when( runtimeInformation.getMavenVersion() ).thenReturn( "1.0" ); + when( mavenSession.getSystemProperties() ).thenReturn( system ); + when( mavenSession.getUserProperties() ).thenReturn( user ); + when( rootProject.getProperties() ).thenReturn( root ); + when( mavenSession.getTopLevelProject() ).thenReturn( rootProject ); + } + + @Test + public void testProperties() + { + RunnerFactory factory = new RunnerFactory( logOutput, false, runtimeInformation, mavenSession ); + EmbeddedRunner runner = factory.create(); + verify( mavenSession ).getUserProperties(); + verify( mavenSession ).getSystemProperties(); + verify( rootProject ).getProperties(); + + assertThat( runner.globalProperties() ).includes( entry( "system", "value" ), entry( "user", "value" ), + entry( "root", "value" ) ); + assertThat( runner.globalProperties() ).includes( entry( "sonar.mojoUseRunner", "true" ) ); + } + + @Test + public void testDebug() + { + RunnerFactory factoryDebug = new RunnerFactory( logOutput, true, runtimeInformation, mavenSession ); + RunnerFactory factory = new RunnerFactory( logOutput, false, runtimeInformation, mavenSession ); + + EmbeddedRunner runnerDebug = factoryDebug.create(); + EmbeddedRunner runner = factory.create(); + + assertThat( runnerDebug.globalProperties() ).includes( entry( "sonar.verbose", "true" ) ); + assertThat( runner.globalProperties() ).excludes( entry( "sonar.verbose", "true" ) ); + } +} diff --git a/src/test/resources/org/codehaus/mojo/sonar/SonarMojoTest/sample-project/pom.xml b/src/test/resources/org/codehaus/mojo/sonar/SonarMojoTest/sample-project/pom.xml index 298eb6c..ecf805d 100644 --- a/src/test/resources/org/codehaus/mojo/sonar/SonarMojoTest/sample-project/pom.xml +++ b/src/test/resources/org/codehaus/mojo/sonar/SonarMojoTest/sample-project/pom.xml @@ -10,6 +10,7 @@ target/dump.properties + http://myserver:9000 @@ -31,9 +32,19 @@ sonar-maven-plugin - - + + + + sonar + + true + + + http://myserver:9000 + + +