Skip to content

Commit

Permalink
simplify Kotlin DSL
Browse files Browse the repository at this point in the history
  • Loading branch information
siordache committed Jan 18, 2019
1 parent 65324e7 commit 4b2454c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 19 deletions.
8 changes: 4 additions & 4 deletions doc/user_guide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,12 @@ import org.beryx.jlink.data.ModuleInfo
...
jlink {
...
mergedModule (delegateClosureOf<ModuleInfo> {
mergedModule {
requires("java.desktop")
requiresTransitive("java.sql")
uses("java.sql.Driver")
provides("java.sql.Driver").with("org.hsqldb.jdbc.JDBCDriver")
})
}
...
}
----
Expand Down Expand Up @@ -214,13 +214,13 @@ import org.beryx.jlink.data.LauncherData
...
jlink {
...
launcher (delegateClosureOf<LauncherData> {
launcher {
name = "my-app"
jvmArgs = listOf("-Dlog4j.debug=true", "-Dlog4j.configurationFile=./log4j2.xml")
args = listOf("--user", "alice")
unixScriptTemplate = file("unixStartScript.txt")
windowsScriptTemplate = file("windowsStartScript.txt")
})
}
...
}
----
Expand Down
13 changes: 5 additions & 8 deletions src/main/groovy/org/beryx/jlink/data/JlinkPluginExtension.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package org.beryx.jlink.data
import groovy.transform.CompileStatic
import groovy.transform.ToString
import org.beryx.jlink.util.Util
import org.gradle.api.Action
import org.gradle.api.Project
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFileProperty
Expand Down Expand Up @@ -113,17 +114,13 @@ class JlinkPluginExtension {
targetPlatforms.get()[name] = new TargetPlatform(name, jdkHome, options)
}

void mergedModule(Closure closure) {
closure.resolveStrategy = Closure.DELEGATE_FIRST
closure.delegate = mergedModuleInfo.get()
void mergedModule(Action<ModuleInfo> action) {
mergedModuleInfo.get().enabled = true
closure()
action.execute(mergedModuleInfo.get())
}

void launcher(Closure closure) {
closure.resolveStrategy = Closure.DELEGATE_FIRST
closure.delegate = launcherData.get()
closure()
void launcher(Action<LauncherData> action) {
action.execute(launcherData.get())
}

private static String getDefaultJavaHome() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package org.beryx.jlink.impl
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
import org.beryx.jlink.data.JdepsUsage
import org.beryx.jlink.data.ModuleInfo
import org.beryx.jlink.data.SuggestMergedModuleInfoTaskData
import org.beryx.jlink.util.JdepsExecutor
import org.beryx.jlink.util.SuggestedMergedModuleInfoBuilder
Expand Down Expand Up @@ -70,9 +69,6 @@ class SuggestMergedModuleInfoTaskImpl extends BaseTaskImpl<SuggestMergedModuleIn
if(td.useJdeps == JdepsUsage.exclusively) return
}
def builder = new SuggestedMergedModuleInfoBuilder(project, td.mergedJarsDir, td.javaHome, td.forceMergedJarPrefixes, td.extraDependenciesPrefixes)
def blockStart = (td.language == ModuleInfo.Language.KOTLIN) ?
'mergedModule (delegateClosureOf<ModuleInfo> {' : 'mergedModule {'
def blockEnd = (td.language == ModuleInfo.Language.KOTLIN) ? '})' : '}'
println "$blockStart\n${builder.moduleInfo.toString(4, td.language)}\n$blockEnd"
println "mergedModule {\n${builder.moduleInfo.toString(4, td.language)}\n}"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,8 @@ class SuggestMergedModuleInfoSpec extends Specification {
}

List<String> getDirectives(String taskOutput, String language) {
def blockStart = (language == 'kotlin') ? 'mergedModule (delegateClosureOf<ModuleInfo> {' : 'mergedModule {'
def blockEnd = (language == 'kotlin') ? '})' : '}'
def blockStart = 'mergedModule {'
def blockEnd = '}'

int startPos = taskOutput.indexOf(blockStart)
assert startPos >= 0
Expand Down

0 comments on commit 4b2454c

Please sign in to comment.