]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1858: Do not package sonar-plugin dependencies
authorGodin <mandrikov@gmail.com>
Thu, 14 Oct 2010 14:05:35 +0000 (14:05 +0000)
committerGodin <mandrikov@gmail.com>
Thu, 14 Oct 2010 14:05:35 +0000 (14:05 +0000)
subprojects/sonar-update-center/sonar-packaging-maven-plugin/pom.xml
subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/pom.xml [new file with mode: 0644]
subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/src/main/java/org/sonar/plugins/sample/SamplePlugin.java [new file with mode: 0644]
subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/verify.bsh [new file with mode: 0644]
subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/main/java/org/sonar/updatecenter/mavenplugin/SonarPluginMojo.java

index 1a7f33029d3e7bfd6a6fba82c0e8ebacb926c55a..f1f85f33acc4b135c2a3b01821379701a37b75c4 100644 (file)
               </goals>
               <settingsFile>src/it/settings.xml</settingsFile>
               <filterProperties>
-                <sonar.version>2.2</sonar.version>
+                <sonar.version>2.3-SNAPSHOT</sonar.version>
               </filterProperties>
               <!--<debug>true</debug>-->
             </configuration>
diff --git a/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/pom.xml b/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/pom.xml
new file mode 100644 (file)
index 0000000..6551681
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.sonar</groupId>
+  <artifactId>test</artifactId>
+  <version>1.0</version>
+  <packaging>sonar-plugin</packaging>
+
+  <name>Do not package sonar-plugin dependencies</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.sonar</groupId>
+      <artifactId>sonar-plugin-api</artifactId>
+      <version>@sonar.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.sonar.plugins</groupId>
+      <artifactId>sonar-surefire-plugin</artifactId>
+      <version>@sonar.version@</version>
+      <type>sonar-plugin</type>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>@project.groupId@</groupId>
+        <artifactId>@project.artifactId@</artifactId>
+        <version>@project.version@</version>
+        <extensions>true</extensions>
+        <configuration>
+          <pluginClass>org.sonar.plugins.sample.SamplePlugin</pluginClass>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.3.1</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/src/main/java/org/sonar/plugins/sample/SamplePlugin.java b/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/src/main/java/org/sonar/plugins/sample/SamplePlugin.java
new file mode 100644 (file)
index 0000000..31710c3
--- /dev/null
@@ -0,0 +1,30 @@
+package org.sonar.plugins.sample;
+
+import org.sonar.api.Extension;
+import org.sonar.api.Plugin;
+
+import java.util.Collections;
+import java.util.List;
+
+public class SamplePlugin implements Plugin {
+  public String getKey() {
+    return "sample";
+  }
+
+  public String getName() {
+    return "My first Sonar plugin";
+  }
+
+  public String getDescription() {
+    return "You shouldn't expect too much from this plugin.";
+  }
+
+  public List<Class<? extends Extension>> getExtensions() {
+    return Collections.emptyList();
+  }
+
+  @Override
+  public String toString() {
+    return getKey();
+  }
+}
diff --git a/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/verify.bsh b/subprojects/sonar-update-center/sonar-packaging-maven-plugin/src/it/doNotPackageSonarPlugins/verify.bsh
new file mode 100644 (file)
index 0000000..5dff69c
--- /dev/null
@@ -0,0 +1,16 @@
+import java.io.*;
+import java.util.zip.*;
+
+File file = new File( basedir, "target/test-1.0.jar" );
+if (!file.isFile()) {
+  throw new FileNotFoundException( "Could not find generated JAR: " + file );
+}
+
+ZipFile zipFile = new ZipFile(file);
+try {
+  if (zipFile.getEntry("META-INF/lib/")!=null) {
+    throw new FileNotFoundException("The dependency sonar-surefire-plugin must not be copied in the plugin");
+  }
+} finally {
+  zipFile.close();
+}
index 2e54d0d2de4fdcddf36ba6c36d6bb3741056540c..67fa2efa6fce6aab0c9c2c7da59730a2b7f9af12 100644 (file)
@@ -272,14 +272,20 @@ public class SonarPluginMojo extends AbstractSonarPluginMojo {
     return artifact.getArtifactId() + "-" + artifact.getVersion() + "." + artifact.getArtifactHandler().getExtension();
   }
 
-
   private Set<Artifact> getNotProvidedDependencies() throws DependencyTreeBuilderException {
     Set<Artifact> result = new HashSet<Artifact>();
     Set<Artifact> providedArtifacts = getSonarProvidedArtifacts();
     for (Artifact artifact : getIncludedArtifacts()) {
-      if (!Artifact.SCOPE_PROVIDED.equals(artifact.getScope()) && !Artifact.SCOPE_TEST.equals(artifact.getScope()) && !containsArtifact(providedArtifacts, artifact)) {
-        result.add(artifact);
+      if ("sonar-plugin".equals(artifact.getType())) {
+        continue;
+      }
+      if (Artifact.SCOPE_PROVIDED.equals(artifact.getScope()) || Artifact.SCOPE_TEST.equals(artifact.getScope())) {
+        continue;
+      }
+      if (containsArtifact(providedArtifacts, artifact)) {
+        continue;
       }
+      result.add(artifact);
     }
     return result;
   }