def mainClassName = "ru.gravit.launchserver.LaunchServer"
def mainAgentName = "ru.gravit.launchserver.StarterAgent"

repositories {
	maven {
		url "http://maven.geomajas.org/"
	}
	maven {
		url "https://oss.sonatype.org/content/repositories/snapshots"
	}
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

configurations {
	bundleOnly
	bundle
	hikari
	bundle.extendsFrom bundleOnly
	compileOnly.extendsFrom bundle, hikari
}

jar {
	dependsOn parent.childProjects.Launcher.tasks.build, parent.childProjects.Launcher.tasks.genRuntimeJS, parent.childProjects.Launcher.tasks.jar
	from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
	from(parent.childProjects.Launcher.tasks.jar.archivePath, parent.childProjects.Launcher.tasks.genRuntimeJS.archivePath)
	manifest.attributes("Main-Class": mainClassName,
		"Premain-Class": mainAgentName,
		"Can-Redefine-Classes": "true",
		"Can-Retransform-Classes": "true",
		"Can-Set-Native-Method-Prefix": "true"
	)
}

dependencies {
	compile project(':libLauncher') // pack
	compileOnly 'org.ow2.asm:asm-debug-all:5.0.4'
	bundleOnly 'org.ow2.asm:asm-all:5.0.4'
	bundle 'org.apache.logging.log4j:log4j-core:2.9.0'
	bundle 'mysql:mysql-connector-java:8.0.12'
	bundle 'jline:jline:2.14.6'
	bundle 'net.sf.proguard:proguard-base:6.0.3'
	bundle 'org.bouncycastle:bcpkix-jdk15on:1.49'
	bundle 'org.fusesource.jansi:jansi:1.17.1'
	bundle 'commons-io:commons-io:2.6'
	bundle 'org.javassist:javassist:3.23.1-GA'
	bundle 'io.netty:netty-all:4.1.29.Final'
	
	bundle 'org.slf4j:slf4j-simple:1.7.25'
	bundle 'org.slf4j:slf4j-api:1.7.25'

	hikari 'io.micrometer:micrometer-core:1.0.6'
	hikari('hikari-cp:hikari-cp:2.6.0') {
		exclude group: 'javassist'
		exclude group: 'io.micrometer'
		exclude group: 'org.slf4j'
	}
	
	compileOnly('net.sf.launch4j:launch4j:3.12') { // need user
		exclude group: '*'
	}
	
	//compile 'org.mozilla:rhino:1.7.10' will be module
}

task hikari(type: Copy) {
	into "$buildDir/libs/libraries/hikaricp"
	from configurations.hikari
}

task dumpLibs(type: Copy) {
	dependsOn tasks.hikari
	into "$buildDir/libs/libraries"
	from configurations.bundle
}

build.dependsOn tasks.dumpLibs