-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.gradle
75 lines (61 loc) · 2.41 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
apply plugin: 'application'
sourceCompatibility = 1.8
targetCompatibility = 1.8
mainClassName = 'org.marissa.Main'
repositories {
mavenCentral()
}
configurations {
quasar
capsule
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.+'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'org.slf4j:slf4j-api:1.7.10'
compile 'ch.qos.logback:logback-core:1.1.3'
compile 'ch.qos.logback:logback-classic:1.1.3'
compile 'commons-io:commons-io:2.4'
compile 'rocks.xmpp:xmpp-core-client:0.5.1'
compile 'rocks.xmpp:xmpp-extensions-client:0.5.1'
compile 'rocks.xmpp:xmpp-debug:0.5.0'
compile 'org.apache.httpcomponents:httpclient:4.4.1'
compile 'co.paralleluniverse:quasar-core:0.7.2:jdk8'
quasar 'co.paralleluniverse:quasar-core:0.7.2:jdk8'
capsule 'co.paralleluniverse:capsule:0.4.+'
}
test {
jvmArgs "-javaagent:${configurations.quasar.iterator().next()}"
}
run {
jvmArgs "-javaagent:${configurations.quasar.iterator().next()}", "-Dco.paralleluniverse.fibers.verifyInstrumentation=true" // gradle should makeChannelEvent this simpler, too
}
// converts Gradle dependencies to Capsule dependencies
def getDependencies(config) {
return config.getAllDependencies().collect {
def res = it.group + ':' + it.name + ':' + it.version +
(!it.artifacts.isEmpty() ? ':' + it.artifacts.iterator().next().classifier : '')
if(!it.excludeRules.isEmpty()) {
res += "(" + it.excludeRules.collect { it.group + ':' + it.module }.join(',') + ")"
}
return res
}
}
task capsule(type: Jar, dependsOn: classes) {
archiveName = "marissa-capsule.jar"
from sourceSets.main.output // this way we don't need to extract
from { configurations.capsule.collect { zipTree(it) } }
manifest {
attributes(
'Main-Class' : 'Capsule',
'Application-Class' : mainClassName,
//'Extract-Capsule' : 'false', // no need to extract the capsule
'Min-Java-Version' : '1.8.0',
'JVM-Args' : run.jvmArgs.join(' '),
'System-Properties' : run.systemProperties.collect { k,v -> "$k=$v" }.join(' '),
'Java-Agents' : getDependencies(configurations.quasar).iterator().next(),
'Dependencies': getDependencies(configurations.runtime).join(' ')
)
}
}