Skip to content

Commit 89cac5f

Browse files
committed
use data class for all bundled depedencies
1 parent 2190f07 commit 89cac5f

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

build.gradle

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import de.itemis.mps.gradle.*
22
import de.itemis.mps.gradle.tasks.MpsMigrate
33
import de.itemis.mps.gradle.tasks.Remigrate
44
import de.itemis.mps.gradle.downloadJBR.DownloadJbrForPlatform
5+
import groovy.transform.TupleConstructor
56
import groovy.xml.XmlSlurper
67
import java.time.LocalDate
78
import java.time.format.DateTimeFormatter
@@ -143,38 +144,52 @@ dependencies {
143144
junitAnt 'org.apache.ant:ant-junit:1.10.6'
144145
}
145146

147+
@TupleConstructor
148+
class BundledDep {
149+
String name
150+
List<String> entries
151+
String libSolutionName
152+
Closure configClosure = { transitive = false }
153+
// in case a legacy dependency has a broken artifact name, e.g. w/o extension
154+
String jarNameOverride
155+
String getConfigName() {
156+
name + '_bundled'
157+
}
158+
String getResolveTaskName() {
159+
'resolve_' + this.configName
160+
}
161+
BundledDep overrideArtifactName(String artifactName) {
162+
this.jarNameOverride = artifactName
163+
this
164+
}
165+
}
166+
146167
def bundledDeps = [
147-
['pcollections', 'org.pcollections:pcollections:4.0.1', 'org.iets3.core.expr.base.collections.stubs'],
148-
['bigMath', 'ch.obermuhlner:big-math:2.3.2', 'org.iets3.core.expr.math.interpreter'],
149-
['functionalJava', 'org.functionaljava:functionaljava:4.8.1', 'org.iets3.core.expr.genjava.functionalJava'],
150-
['cpsSuite', 'io.takari.junit:takari-cpsuite:1.2.7', 'org.iets3.opensource.build.gentests.rt', 'takari-cpsuite.jar']
168+
new BundledDep('pcollections', ['org.pcollections:pcollections:4.0.1'], 'org.iets3.core.expr.base.collections.stubs'),
169+
new BundledDep('bigMath', ['ch.obermuhlner:big-math:2.3.2'], 'org.iets3.core.expr.math.interpreter'),
170+
new BundledDep('functionalJava', ['org.functionaljava:functionaljava:4.8.1'], 'org.iets3.core.expr.genjava.functionalJava'),
171+
new BundledDep('cpsSuite', ['io.takari.junit:takari-cpsuite:1.2.7'], 'org.iets3.opensource.build.gentests.rt').overrideArtifactName('takari-cpsuite.jar')
151172
]
152173

153-
bundledDeps.each { bundledDep ->
154-
def depName = bundledDep[0] + '_bundled'
155-
def depNotation = bundledDep[1]
156-
def bundledSolutionName = bundledDep[2]
157-
// in case a dependency has a broken artifact name, e.g. w/o extension
158-
def jarNameOverride = bundledDep[3]
159-
174+
bundledDeps.each { dep ->
160175
configurations {
161-
create(depName)
176+
create(dep.configName)
162177
}
163178
dependencies {
164-
add(depName, depNotation) {
165-
transitive = false
179+
dep.entries.each {entry ->
180+
add(dep.configName, entry, dep.configClosure)
166181
}
167182
}
168-
tasks.create("resolve_$depName", Sync.class) {
169-
from configurations.getByName(depName)
170-
into file("code/languages/org.iets3.opensource/solutions/$bundledSolutionName/lib")
183+
tasks.create(dep.resolveTaskName, Sync.class) {
184+
from configurations.getByName(dep.configName)
185+
into file("code/languages/org.iets3.opensource/solutions/${dep.libSolutionName}/lib")
171186

172187
// Strip version numbers from file names
173188
rename { filename ->
174-
def ra = configurations.getByName(depName).resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
189+
def ra = configurations.getByName(dep.configName).resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
175190
String finalName
176-
if (jarNameOverride != null) {
177-
finalName = jarNameOverride
191+
if (dep.jarNameOverride != null) {
192+
finalName = dep.jarNameOverride
178193
} else if (ra.classifier != null) {
179194
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
180195
} else {
@@ -202,7 +217,7 @@ task resolveLanguageLibs(type: Sync) {
202217
}
203218

204219
task resolveDependencies(dependsOn: ['downloadJbr', resolveMps, resolveLanguageLibs])
205-
resolveDependencies.dependsOn << tasks.findAll {it.name.endsWith('_bundled') }
220+
resolveDependencies.dependsOn << bundledDeps.collect {it.resolveTaskName }
206221

207222
ext.mpsHomeDir = resolveMps.destinationDir
208223

0 commit comments

Comments
 (0)