Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use kotlin version for lib directory name #5

Merged
merged 8 commits into from
Jan 4, 2020
72 changes: 34 additions & 38 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,24 +1,21 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

object BuildProps {
const val version = "1.3.60-release-155"
}
val kotlinVersion: String by System.getProperties()

group = "com.compiler.server"
version = "${BuildProps.version}-SNAPSHOT"
version = "compiler-server-$kotlinVersion-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8

val kotlinDependency by configurations.creating
val kotlinJsDependency by configurations.creating
val libJVMFolder: String by System.getProperties()
val libJSFolder: String by System.getProperties()
val kotlinDependency: Configuration by configurations.creating
val kotlinJsDependency: Configuration by configurations.creating
val libJSFolder = "$kotlinVersion-js"

val copyDependencies by tasks.creating(Copy::class) {
from(kotlinDependency)
into(libJVMFolder)
into(kotlinVersion)
}
val copyJSDependencies by tasks.creating(Copy::class) {
from(files(Callable { kotlinJsDependency.map {zipTree(it)} }))
from(files(Callable { kotlinJsDependency.map { zipTree(it)} }))
into(libJSFolder)
}

Expand All @@ -41,49 +38,48 @@ allprojects {
}
}

rootDir.resolve("src/main/resources/application.properties").apply{
rootDir.resolve("src/main/resources/libraries.properties").apply{
println(absolutePath)
parentFile.mkdirs()
writeText("""
kotlin.version=${BuildProps.version}
libraries.folder.jvm=${libJVMFolder}
kotlin.version=${kotlinVersion}
libraries.folder.jvm=${kotlinVersion}
libraries.folder.js=${libJSFolder}
""".trimIndent())
}

dependencies {

kotlinDependency("junit:junit:4.12")
kotlinDependency("org.hamcrest:hamcrest-core:1.3")
kotlinDependency("com.fasterxml.jackson.module:jackson-module-kotlin:2.9.10")
kotlinDependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
kotlinDependency("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
kotlinDependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2") {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
}
kotlinJsDependency("org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion")

implementation("org.springframework.boot:spring-boot-starter-web")
implementation("junit:junit:4.12")
implementation("org.jetbrains.intellij.deps:trove4j:1.0.20181211")
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-script-runtime:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-plugin-ij193:$kotlinVersion") {
isTransitive = false
}
implementation(project(":executors"))

testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.3.2")
with(BuildProps) {
kotlinDependency("junit:junit:4.12")
kotlinDependency("org.hamcrest:hamcrest-core:1.3")
kotlinDependency("com.fasterxml.jackson.module:jackson-module-kotlin:2.9.10")
kotlinDependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version")
kotlinDependency("org.jetbrains.kotlin:kotlin-reflect:$version")
kotlinDependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2") {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
}
kotlinJsDependency("org.jetbrains.kotlin:kotlin-stdlib-js:$version")

compile("org.jetbrains.intellij.deps:trove4j:1.0.20181211")
compile("org.jetbrains.kotlin:kotlin-reflect:$version")
compile("org.jetbrains.kotlin:kotlin-stdlib:$version")
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$version")
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version")
compile("org.jetbrains.kotlin:kotlin-test:$version")
compile("org.jetbrains.kotlin:kotlin-compiler:$version")
compile("org.jetbrains.kotlin:kotlin-script-runtime:$version")
compile("org.jetbrains.kotlin:kotlin-stdlib-js:$version")
compile("org.jetbrains.kotlin:kotlin-plugin-ij193:$version") {
isTransitive = false
}
}
compile(project(":executors"))
}

tasks.withType<KotlinCompile> {
Expand Down
4 changes: 3 additions & 1 deletion executors/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
val kotlinVersion: String by System.getProperties()

plugins {
kotlin("jvm")
}
Expand All @@ -7,5 +9,5 @@ dependencies {
}

tasks.withType<Jar>().getByName("jar") {
destinationDirectory.set(File("../lib"))
destinationDirectory.set(File("../$kotlinVersion"))
}
3 changes: 1 addition & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
systemProp.libJVMFolder=lib
systemProp.libJSFolder=js
systemProp.kotlinVersion=1.3.60-release-155
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.util.prefixIfNot
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component
import java.io.File
import java.nio.file.Files
Expand All @@ -30,7 +31,8 @@ class KotlinCompiler(
private val errorAnalyzer: ErrorAnalyzer,
private val kotlinEnvironment: KotlinEnvironment,
private val javaExecutor: JavaExecutor,
private val librariesFolderProperties: LibrariesFolderProperties
private val librariesFolderProperties: LibrariesFolderProperties,
private val policyFile: File
) {

class Compiled(val files: Map<String, ByteArray> = emptyMap(), val mainClass: String? = null)
Expand Down Expand Up @@ -94,10 +96,10 @@ class KotlinCompiler(
val dirPrefix = if (libDir.isEmpty()) libDir else libDir.prefixIfNot("/")
val sessionId = UUID.randomUUID().toString().replace("-", "")
val outputDir = Paths.get(dir, "generated", sessionId)
val policy = File("executor.policy").readText()
val policy = policyFile.readText()
.replace("%%GENERATED%%", outputDir.toString())
.replace("%%LIB_DIR%%", dir + dirPrefix)
outputDir.resolve("executor.policy").apply { parent.toFile().mkdirs() }.toFile().writeText(policy)
outputDir.resolve(policyFile.name).apply { parent.toFile().mkdirs() }.toFile().writeText(policy)
return OutputDirectory(outputDir, compiled.files.map { (name, bytes) ->
outputDir.resolve(name).let { path ->
path.parent.toFile().mkdirs()
Expand Down Expand Up @@ -125,7 +127,7 @@ class KotlinCompiler(
): List<String> {
val classPaths = (kotlinEnvironment.classpath.map { it.absolutePath } + outputDirectory.path.toAbsolutePath().toString())
.joinToString(":")
val policy = outputDirectory.path.resolve("executor.policy").toAbsolutePath()
val policy = outputDirectory.path.resolve(policyFile.name).toAbsolutePath()
return CommandLineArgument(
classPaths = classPaths,
mainClass = mainClass,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,35 @@ import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.PropertySource
import org.springframework.core.io.ResourceLoader
import org.springframework.format.FormatterRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
import java.io.File

@Configuration
@EnableConfigurationProperties(value = [LibrariesFolderProperties::class])
class ApplicationConfiguration(
@Value("\${kotlin.version}") private val version: String
@Value("\${policy.file}") private val policyFileName: String,
private val resourceLoader: ResourceLoader
) : WebMvcConfigurer {
override fun addFormatters(registry: FormatterRegistry) {
registry.addConverter(ProjectConverter())
}

@Bean
fun versionInfo() = VersionInfo(
version = version,
stdlibVersion = version
)
fun policyFile(): File = resourceLoader.getResource(ResourceLoader.CLASSPATH_URL_PREFIX + policyFileName).file
}

@Configuration
@PropertySource(value = ["libraries.properties"])
@EnableConfigurationProperties(value = [LibrariesFolderProperties::class])
class KotlinLibrariesConfiguration(@Value("\${kotlin.version}") private val version: String) {
@Bean
fun versionInfo() = VersionInfo(version = version, stdlibVersion = version)
}

@ConfigurationProperties(prefix = "libraries.folder")
class LibrariesFolderProperties{
class LibrariesFolderProperties {
lateinit var jvm: String
lateinit var js: String
}
4 changes: 1 addition & 3 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
kotlin.version=1.3.60-release-155
libraries.folder.jvm=lib
libraries.folder.js=js
policy.file=executor.policy
File renamed without changes.
3 changes: 3 additions & 0 deletions src/main/resources/libraries.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
kotlin.version=1.3.60-release-155
libraries.folder.jvm=1.3.60-release-155
libraries.folder.js=1.3.60-release-155-js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest


@SpringBootTest
class CommandLineArgumentsTest {
class CommandLineArgumentsTest : BaseTestClass() {

@Autowired
private lateinit var testRunner: TestProjectRunner
Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/CompletionTest.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class CompletionTest {
class CompletionTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/ConcurrencyRunnerTest.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
Expand All @@ -8,10 +9,8 @@ import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class ConcurrencyRunnerTest {
class ConcurrencyRunnerTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/ConvertToJsRunnerTest.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class ConvertToJsRunnerTest {
class ConvertToJsRunnerTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/CoroutinesRunnerTest.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class CoroutinesRunnerTest {
class CoroutinesRunnerTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/ExceptionInProgramTest.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class ExceptionInProgramTest {
class ExceptionInProgramTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/HighlightTest.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import com.compiler.server.model.ErrorDescriptor
import com.compiler.server.model.ProjectSeveriry
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class HighlightTest {
class HighlightTest : BaseTestClass() {
@Autowired
private lateinit var testRunner: TestProjectRunner

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/InterruptExecutionTest.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.executor.ExecutorMessages
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class InterruptExecutionTest {
class InterruptExecutionTest : BaseTestClass() {

@Autowired
private lateinit var testRunner: TestProjectRunner
Expand Down
4 changes: 3 additions & 1 deletion src/test/kotlin/com/compiler/server/JUnitTestsRunnerTest.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.compiler.server

import com.compiler.server.base.BaseJUnitTest
import com.compiler.server.executor.ExecutorMessages
import com.compiler.server.generator.TestProjectRunner
import com.compiler.server.model.TestStatus
Expand All @@ -22,7 +23,8 @@ class JUnitTestsRunnerTest : BaseJUnitTest() {
koansUtilsFile
)
val message = test?.text
Assertions.assertTrue(message?.contains(ExecutorMessages.TOO_LONG_OUTPUT_MESSAGE) == true, "Actual: $message, Excepted: ${ExecutorMessages.TOO_LONG_OUTPUT_MESSAGE} ")
Assertions.assertTrue(message?.contains(ExecutorMessages.TOO_LONG_OUTPUT_MESSAGE) == true,
"Actual: $message, Excepted: ${ExecutorMessages.TOO_LONG_OUTPUT_MESSAGE} ")

}

Expand Down
5 changes: 2 additions & 3 deletions src/test/kotlin/com/compiler/server/JvmRunnerTest.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.compiler.server

import com.compiler.server.base.BaseTestClass
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class JvmRunnerTest {
class JvmRunnerTest : BaseTestClass() {

@Autowired
private lateinit var testRunner: TestProjectRunner
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.compiler.server

import com.compiler.server.base.BaseJUnitTest
import com.compiler.server.generator.TestProjectRunner
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
Expand Down
Loading