aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy29
-rw-r--r--sonar-application/build.gradle29
2 files changed, 37 insertions, 21 deletions
diff --git a/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy b/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy
new file mode 100644
index 00000000000..cb611e90497
--- /dev/null
+++ b/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy
@@ -0,0 +1,29 @@
+package org.sonar.build
+
+import groovy.json.JsonOutput
+import groovy.json.JsonSlurper
+
+class LicenseReader extends FilterReader {
+
+ LicenseReader(Reader fileReader) {
+ super(build(fileReader))
+ }
+
+ private static Reader build(Reader fileReader) {
+ def json = new JsonSlurper().parse(fileReader)
+
+ json.dependencies.each { dependency ->
+ if (dependency.licenses.size() > 1) {
+ def idx = dependency.licenses.findIndexOf { it.name == "Elastic License 2.0" }
+ if (idx >= 0) {
+ dependency.licenses = [dependency.licenses[idx]]
+ }
+ }
+ }
+
+ json.dependencies.sort { it.name }
+
+ def jsonText = JsonOutput.toJson(json)
+ return new StringReader(JsonOutput.prettyPrint(jsonText))
+ }
+}
diff --git a/sonar-application/build.gradle b/sonar-application/build.gradle
index d6da1f90227..54e2ac87de7 100644
--- a/sonar-application/build.gradle
+++ b/sonar-application/build.gradle
@@ -1,6 +1,5 @@
-import groovy.json.JsonOutput
-import groovy.json.JsonSlurper
import org.apache.tools.ant.filters.ReplaceTokens
+import org.sonar.build.LicenseReader
plugins {
id "com.github.hierynomus.license-report"
@@ -133,20 +132,7 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic
into("${archiveDir}/") {
from(tasks.downloadLicenses.outputs) {
include 'dependency-license.json'
- eachFile { jsonFile ->
- def json = new JsonSlurper().parse(jsonFile.file)
- json.dependencies.each { dependency ->
- if (dependency.licenses.size() > 1) {
- def idx = dependency.licenses.findIndexOf { it.name == "Elastic License 2.0" }
- if (idx >= 0) {
- dependency.licenses = [dependency.licenses[idx]]
- }
- }
- }
- json.dependencies.sort { it.name }
- def jsonText = JsonOutput.toJson(json)
- jsonFile.file.text = JsonOutput.prettyPrint(jsonText)
- }
+ filter(LicenseReader)
}
}
}
@@ -275,7 +261,11 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic
}
// Create the empty dir (plugins) required by elasticsearch
into("${archiveDir}/elasticsearch/") {
- from "$buildDir/elasticsearch"
+ // Create the empty dir required by elasticsearch
+ from {
+ new File(buildDir, 'elasticsearch/plugins').mkdirs()
+ "$buildDir/elasticsearch"
+ }
}
into("${archiveDir}/lib/extensions/") {
from configurations.bundledPlugin
@@ -315,10 +305,7 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic
from configurations.shutdowner
}
}
-// Create the empty dir required by elasticsearch
-zip.doFirst {
- new File(buildDir, 'elasticsearch/plugins').mkdirs()
-}
+
// Check the size of the archive
zip.doLast {
def minLength = 320000000