Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit abb6268

Browse files
Add utbot-spring-commons-shadow.jar to engine process utContext (#2543)
1 parent dce7039 commit abb6268

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

‎utbot-framework/build.gradle‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44

55
configurations {
66
fetchSpringAnalyzerJar
7+
fetchSpringCommonsJar
78
fetchInstrumentationJar
89
}
910

@@ -51,6 +52,7 @@ dependencies {
5152
implementation project(':utbot-spring-commons-api')
5253
implementation project(':utbot-spring-analyzer')
5354
fetchSpringAnalyzerJar project(path: ':utbot-spring-analyzer', configuration: 'springAnalyzerJar')
55+
fetchSpringCommonsJar project(path: ':utbot-spring-commons', configuration: 'springCommonsJar')
5456
}
5557

5658
processResources {
@@ -61,4 +63,8 @@ processResources {
6163
from(configurations.fetchSpringAnalyzerJar) {
6264
into "lib"
6365
}
66+
67+
from(configurations.fetchSpringCommonsJar) {
68+
into "lib"
69+
}
6470
}

‎utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/instrumentation/spring/SpringUtExecutionInstrumentation.kt‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.utbot.instrumentation.instrumentation.execution.context.Instrumentati
2222
import org.utbot.instrumentation.instrumentation.execution.phases.ExecutionPhaseFailingOnAnyException
2323
import org.utbot.instrumentation.instrumentation.execution.phases.PhasesController
2424
import org.utbot.spring.api.SpringApi
25+
import java.io.File
2526
import java.net.URL
2627
import java.net.URLClassLoader
2728
import java.security.ProtectionDomain
@@ -50,6 +51,14 @@ class SpringUtExecutionInstrumentation(
5051
companion object {
5152
private val logger = getLogger<SpringUtExecutionInstrumentation>()
5253
private const val SPRING_COMMONS_JAR_FILENAME = "utbot-spring-commons-shadow.jar"
54+
55+
val springCommonsJar: File by lazy {
56+
JarUtils.extractJarFileFromResources(
57+
jarFileName = SPRING_COMMONS_JAR_FILENAME,
58+
jarResourcePath = "lib/$SPRING_COMMONS_JAR_FILENAME",
59+
targetDirectoryName = "spring-commons"
60+
)
61+
}
5362
}
5463

5564
fun tryLoadingSpringContext(): ConcreteContextLoadingResult {
@@ -147,11 +156,7 @@ class SpringUtExecutionInstrumentation(
147156
private val buildDirs: Array<URL>,
148157
) : UtExecutionInstrumentation.Factory<SpringUtExecutionInstrumentation> {
149158
override val additionalRuntimeClasspath: Set<String>
150-
get() = super.additionalRuntimeClasspath + JarUtils.extractJarFileFromResources(
151-
jarFileName = SPRING_COMMONS_JAR_FILENAME,
152-
jarResourcePath = "lib/$SPRING_COMMONS_JAR_FILENAME",
153-
targetDirectoryName = "spring-commons"
154-
).path
159+
get() = super.additionalRuntimeClasspath + springCommonsJar.path
155160

156161
// TODO may be we can use some alternative sandbox that has more permissions
157162
// (at the very least we need `ReflectPermission("suppressAccessChecks")`

‎utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import org.utbot.framework.plugin.api.util.LockFile
5959
import org.utbot.framework.plugin.api.util.withStaticsSubstitutionRequired
6060
import org.utbot.framework.plugin.services.JdkInfoService
6161
import org.utbot.framework.plugin.services.WorkingDirService
62+
import org.utbot.instrumentation.instrumentation.spring.SpringUtExecutionInstrumentation
6263
import org.utbot.intellij.plugin.generator.CodeGenerationController.generateTests
6364
import org.utbot.intellij.plugin.models.GenerateTestsModel
6465
import org.utbot.intellij.plugin.process.EngineProcess
@@ -263,7 +264,11 @@ object UtTestsDialogProcessor {
263264
updateIndicator(indicator, ProgressRange.INITIALIZATION, fraction = 0.2)
264265

265266
process.terminateOnException { _ ->
266-
val classpathForClassLoader = buildDirs + classpathList
267+
val classpathForClassLoader = buildDirs + classpathList + when (model.projectType) {
268+
Spring -> listOf(SpringUtExecutionInstrumentation.springCommonsJar.path)
269+
else -> emptyList<String>()
270+
}
271+
267272
process.setupUtContext(classpathForClassLoader)
268273
val simpleApplicationContext = SimpleApplicationContext(
269274
SimpleMockerContext(mockFrameworkInstalled, staticMockingConfigured)

‎utbot-spring-commons/build.gradle.kts‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,16 @@ java {
1919

2020
dependencies {
2121
implementation(project(":utbot-spring-commons-api"))
22-
implementation(project(":utbot-core"))
2322

24-
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot
23+
24+
// these dependencies are compilieOnly, because they should
25+
// already be present on the classpath in all utbot processes
26+
compileOnly(project(":utbot-core"))
27+
compileOnly("com.jetbrains.rd:rd-core:$rdVersion") { exclude(group = "org.slf4j", module = "slf4j-api") }
28+
29+
30+
// these dependencies are compilieOnly, because they should
31+
// be picked up from user classpath if they are present there
2532
compileOnly("org.springframework.boot:spring-boot:$springBootVersion")
2633
compileOnly("org.springframework.boot:spring-boot-test-autoconfigure:$springBootVersion")
2734
compileOnly("org.springframework:spring-test:$springVersion")
@@ -32,8 +39,6 @@ dependencies {
3239

3340
compileOnly("javax.persistence:javax.persistence-api:$javaxVersion")
3441
compileOnly("jakarta.persistence:jakarta.persistence-api:$jakartaVersion")
35-
36-
implementation("com.jetbrains.rd:rd-core:$rdVersion") { exclude(group = "org.slf4j", module = "slf4j-api") }
3742
}
3843

3944
tasks.shadowJar {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /