Skip to content

Commit 300f07a

Browse files
Merge pull request #312 from mbeddr/merge/MPS-2024.1
Merge maintenance/MPS-2023.2 into maintenance/MPS-2024.1
2 parents 0c9288f + 02fecb8 commit 300f07a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+376
-1740
lines changed

build.gradle

Lines changed: 91 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ plugins {
1010
id 'co.riiid.gradle' version '0.4.2'
1111

1212
id 'de.itemis.mps.gradle.launcher' version '2.5.2.+'
13+
14+
id 'org.cyclonedx.bom' version '2.2.0'
1315
}
1416

1517
ext.jbrVers = '17.0.11-b1207.30'
@@ -48,15 +50,42 @@ if (ciBuild) {
4850
version = "$major.$minor-SNAPSHOT"
4951
}
5052

53+
group = 'org.mpsqa'
54+
5155
configurations {
5256
mps
53-
languageLibs
5457
// includes also junit tasks support
5558
antLib
59+
60+
plantuml { transitive = false }
61+
baseLib { transitive = false }
62+
treemap { transitive = false }
63+
jacoco { transitive = false }
5664
}
5765

5866
dependencies {
5967
mps "com.jetbrains:mps:$mpsVersion"
68+
69+
plantuml "net.sourceforge.plantuml:plantuml-asl:1.2023.13"
70+
71+
baseLib "org.apache.commons:commons-lang3:3.3.2"
72+
baseLib "commons-cli:commons-cli:1.5.0"
73+
baseLib "commons-io:commons-io:2.6"
74+
75+
treemap "net.sf.jtreemap:jtreemap:1.1.3"
76+
treemap "net.sf.jtreemap:ktreemap:1.1.0-atlassian-01"
77+
78+
def asmVersion = "9.2"
79+
def jacocoVersion = "0.8.7"
80+
81+
jacoco "org.ow2.asm:asm:$asmVersion"
82+
jacoco "org.ow2.asm:asm-commons:$asmVersion"
83+
jacoco "org.ow2.asm:asm-tree:$asmVersion"
84+
jacoco "org.jacoco:org.jacoco.agent:$jacocoVersion"
85+
jacoco "org.jacoco:org.jacoco.ant:$jacocoVersion"
86+
jacoco "org.jacoco:org.jacoco.core:$jacocoVersion"
87+
jacoco "org.jacoco:org.jacoco.report:$jacocoVersion"
88+
6089
antLib "org.apache.ant:ant-junit:1.10.15"
6190
antLib "org.jacoco:org.jacoco.ant:0.8.12"
6291
}
@@ -72,6 +101,9 @@ repositories {
72101
maven {
73102
url 'https://artifacts.itemis.cloud/repository/maven-mps/'
74103
}
104+
maven {
105+
url 'https://packages.atlassian.com/maven-public/'
106+
}
75107
mavenCentral()
76108
}
77109

@@ -99,6 +131,7 @@ if (project.skipResolveMps) {
99131
ext.buildScriptClasspath = project.configurations.antLib
100132

101133
def artifactsDir = file("$buildDir/artifacts")
134+
def reportsDir = file("$buildDir/reports")
102135
def dependenciesDir = file("$buildDir/dependencies")
103136

104137

@@ -134,7 +167,35 @@ File scriptFile(String name) {
134167
file("$buildDir/scripts/$name")
135168
}
136169

170+
def createResolveTask(taskName, configurationName, outputDir) {
171+
tasks.register(taskName, Sync) {
172+
from configurations."${configurationName}"
173+
into file(outputDir)
174+
// Strip version numbers from file names
175+
rename { filename ->
176+
def ra = configurations."${configurationName}".resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
177+
String finalName
178+
if (ra.classifier != null) {
179+
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
180+
} else {
181+
finalName = "${ra.name}.${ra.extension}"
182+
}
183+
return finalName
184+
}
185+
}
186+
}
187+
188+
// Define tasks using the reusable function
189+
createResolveTask('resolvePlantUML', 'plantuml', 'code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/lib')
190+
createResolveTask('resolveBaseLibs', 'baseLib', 'code/languages/org.mpsqa.base/solutions/org.mpsqa.base.lib/lib')
191+
createResolveTask('resolveTreeMap', 'treemap', 'code/languages/org.mpsqa.base/solutions/org.mpsqa.treemap.lib/lib')
192+
createResolveTask('resolveJacoco', 'jacoco', 'code/languages/org.mpsqa.testing/solutions/org.mpsqa.testcov.jacoco.rt/lib/lib')
193+
194+
task resolveDependencies(dependsOn: [resolvePlantUML, resolveBaseLibs, resolveTreeMap, resolveJacoco])
195+
196+
137197
def build_allScripts = tasks.register('build_allScripts', BuildLanguages) {
198+
dependsOn resolveDependencies
138199
script scriptFile('build_all_scripts.xml')
139200
}
140201

@@ -219,10 +280,14 @@ task build_allInOne_package(type: BuildLanguages, dependsOn: [build_allScripts])
219280
script scriptFile("build-allInOne-package.xml")
220281
}
221282

222-
task package_mpsqa(type: Zip, dependsOn: build_allInOne_package) {
283+
task package_mpsqa(type: Zip, dependsOn: [build_allInOne_package, cyclonedxBom]) {
223284
archiveBaseName = 'org.mpsqa'
224-
from artifactsDir
225-
include 'org.mpsqa.allInOne/**'
285+
from(artifactsDir) {
286+
include 'org.mpsqa.allInOne/**'
287+
}
288+
from(reportsDir) {
289+
include 'sbom.json'
290+
}
226291
}
227292

228293
task test_clones(type: TestLanguages, dependsOn: build_clones_languages) {
@@ -248,6 +313,15 @@ tasks.register('check_lint', MpsCheck) {
248313
pluginRoots.add(layout.dir(provider { new File(mpsHomeDir, 'plugins/mps-modelchecker') }))
249314
}
250315

316+
cyclonedxBom {
317+
destination = reportsDir
318+
outputName = "sbom"
319+
outputFormat = "json"
320+
includeLicenseText = false
321+
schemaVersion = "1.5"
322+
includeConfigs = ["plantuml","baseLib","treemap","jacoco"]
323+
}
324+
251325
check.dependsOn(tasks.withType(TestLanguages))
252326

253327
assemble.dependsOn(tasks.withType(BuildLanguages))
@@ -280,13 +354,20 @@ publishing {
280354
artifact package_mpsqa
281355
pom.withXml {
282356
def dependenciesNode = asNode().appendNode('dependencies')
283-
configurations.languageLibs.resolvedConfiguration.firstLevelModuleDependencies.each {
284-
def dependencyNode = dependenciesNode.appendNode('dependency')
285-
dependencyNode.appendNode('groupId', it.moduleGroup)
286-
dependencyNode.appendNode('artifactId', it.moduleName)
287-
dependencyNode.appendNode('version', it.moduleVersion)
288-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
357+
def languageLibs = ['plantuml', 'baseLib', 'treemap', 'jacoco']
358+
languageLibs.each { configName ->
359+
def configuration = configurations.findByName(configName)
360+
361+
configuration.resolvedConfiguration.firstLevelModuleDependencies.each {
362+
def dependencyNode = dependenciesNode.appendNode('dependency')
363+
dependencyNode.appendNode('groupId', it.moduleGroup)
364+
dependencyNode.appendNode('artifactId', it.moduleName)
365+
dependencyNode.appendNode('version', it.moduleVersion)
366+
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
367+
dependencyNode.appendNode('scope', 'provided')
368+
}
289369
}
370+
290371
configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each {
291372
def dependencyNode = dependenciesNode.appendNode('dependency')
292373
dependencyNode.appendNode('groupId', it.moduleGroup)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/lib/COPYING

Lines changed: 0 additions & 196 deletions
This file was deleted.

0 commit comments

Comments
 (0)