Skip to content

Commit b04990f

Browse files
Some pre-integration refactoring of utbot-spring-analyzer (#1970)
1 parent 5001b94 commit b04990f

File tree

12 files changed

+46
-43
lines changed

12 files changed

+46
-43
lines changed

utbot-spring-analyzer/src/main/kotlin/ApplicationRunner.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/ApplicationRunner.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
package application
1+
package org.utbot.spring
22

3-
import analyzers.SpringApplicationAnalyzer
4-
import utils.PathsUtils
3+
import org.utbot.spring.analyzers.SpringApplicationAnalyzer
4+
import org.utbot.spring.utils.PathsUtils
5+
import java.nio.file.Path
56

67
/**
78
* To run this app, arguments must be passed in the following way:
@@ -23,7 +24,7 @@ fun main(args: Array<String>) {
2324
*/
2425

2526
val springApplicationAnalyzer = SpringApplicationAnalyzer(
26-
applicationPath = args[0],
27+
applicationUrl = Path.of(args[0]).toUri().toURL(),
2728
configurationClassFqn = args[1],
2829
propertyFilesPaths = args[2].split(";").filter { it != PathsUtils.EMPTY_PATH },
2930
xmlConfigurationPaths = args[3].split(";").filter { it != PathsUtils.EMPTY_PATH },
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
1-
package analyzers
1+
package org.utbot.spring.analyzers
22

3-
import application.utils.FakeFileManager
4-
import application.configurators.PropertiesConfigurator
5-
import application.configurators.XmlFilesConfigurator
6-
import config.TestApplicationConfiguration
3+
import org.utbot.spring.utils.FakeFileManager
4+
import org.utbot.spring.configurators.PropertiesConfigurator
5+
import org.utbot.spring.configurators.XmlFilesConfigurator
6+
import org.utbot.spring.config.TestApplicationConfiguration
77
import org.springframework.boot.builder.SpringApplicationBuilder
8-
import org.springframework.context.ApplicationContextException
9-
import utils.ConfigurationManager
8+
import org.utbot.spring.postProcessors.UtBotSpringShutdownException
9+
import org.utbot.spring.utils.ConfigurationManager
1010
import java.net.URL
1111
import java.net.URLClassLoader
12-
import java.nio.file.Path
1312

1413

1514
class SpringApplicationAnalyzer(
16-
private val applicationPath: String,
15+
private val applicationUrl: URL,
1716
private val configurationClassFqn: String,
1817
private val propertyFilesPaths: List<String>,
1918
private val xmlConfigurationPaths: List<String>,
2019
) {
2120

22-
private val applicationUrl: URL
23-
get() = Path.of(applicationPath).toUri().toURL()
24-
2521
fun analyze() {
2622
val fakeFileManager = FakeFileManager(propertyFilesPaths + xmlConfigurationPaths)
27-
fakeFileManager.createFakeFiles()
23+
fakeFileManager.createTempFiles()
2824

2925
val classLoader: ClassLoader = URLClassLoader(arrayOf(applicationUrl))
3026
val userConfigurationClass = classLoader.loadClass(configurationClassFqn)
@@ -45,10 +41,10 @@ class SpringApplicationAnalyzer(
4541
try {
4642
app.build()
4743
app.run()
48-
} catch (e: ApplicationContextException) {
44+
} catch (e: UtBotSpringShutdownException) {
4945
println("Bean analysis finished successfully")
5046
}finally {
51-
fakeFileManager.deleteFakeFiles()
47+
fakeFileManager.deleteTempFiles()
5248
}
5349
}
5450
}

utbot-spring-analyzer/src/main/kotlin/config/TestApplicationConfiguration.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/config/TestApplicationConfiguration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package config
1+
package org.utbot.spring.config
22

33
import org.springframework.beans.factory.config.BeanFactoryPostProcessor
44
import org.springframework.context.annotation.Bean
55
import org.springframework.context.annotation.Configuration
6-
import post_processors.UtBotBeanFactoryPostProcessor
6+
import org.utbot.spring.postProcessors.UtBotBeanFactoryPostProcessor
77

88
@Configuration
99
open class TestApplicationConfiguration {

utbot-spring-analyzer/src/main/kotlin/configurators/PropertiesConfigurator.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/configurators/PropertiesConfigurator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package application.configurators
1+
package org.utbot.spring.configurators
22

3-
import utils.ConfigurationManager
4-
import utils.PathsUtils
3+
import org.utbot.spring.utils.ConfigurationManager
4+
import org.utbot.spring.utils.PathsUtils
55
import java.io.BufferedReader
66
import java.io.FileReader
77
import kotlin.io.path.Path

utbot-spring-analyzer/src/main/kotlin/analyzers/XmlConfigurationAnalyzer.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/configurators/XmlConfigurationParser.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package analyzers
1+
package org.utbot.spring.configurators
22

33
import org.w3c.dom.Document
44
import org.w3c.dom.Element
@@ -7,7 +7,7 @@ import javax.xml.transform.TransformerFactory
77
import javax.xml.transform.dom.DOMSource
88
import javax.xml.transform.stream.StreamResult
99

10-
class XmlConfigurationAnalyzer(private val userXmlFilePath: String, private val fakeXmlFilePath: String) {
10+
class XmlConfigurationParser(private val userXmlFilePath: String, private val fakeXmlFilePath: String) {
1111

1212
fun fillFakeApplicationXml() {
1313
val builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()

utbot-spring-analyzer/src/main/kotlin/configurators/XmlFilesConfigurator.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/configurators/XmlFilesConfigurator.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
package application.configurators
1+
package org.utbot.spring.configurators
22

3-
import analyzers.XmlConfigurationAnalyzer
4-
import application.utils.FakeFileManager
5-
import utils.ConfigurationManager
6-
import utils.PathsUtils
3+
import org.utbot.spring.utils.ConfigurationManager
4+
import org.utbot.spring.utils.PathsUtils
75
import kotlin.io.path.Path
86

97
class XmlFilesConfigurator(
@@ -17,10 +15,10 @@ class XmlFilesConfigurator(
1715
for (userXmlFilePath in userXmlFilePaths) {
1816
if(userXmlFilePath == PathsUtils.EMPTY_PATH)continue
1917

20-
val xmlConfigurationAnalyzer =
21-
XmlConfigurationAnalyzer(userXmlFilePath, PathsUtils.createFakeFilePath(userXmlFilePath))
18+
val xmlConfigurationParser =
19+
XmlConfigurationParser(userXmlFilePath, PathsUtils.createFakeFilePath(userXmlFilePath))
2220

23-
xmlConfigurationAnalyzer.fillFakeApplicationXml()
21+
xmlConfigurationParser.fillFakeApplicationXml()
2422
configurationManager.patchImportResourceAnnotation(Path(userXmlFilePath).fileName)
2523
}
2624
}

utbot-spring-analyzer/src/main/kotlin/post_processors/UtBotBeanFactoryPostProcessor.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/postProcessors/UtBotBeanFactoryPostProcessor.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package post_processors
1+
package org.utbot.spring.postProcessors
22

33
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition
44
import org.springframework.beans.factory.config.BeanFactoryPostProcessor
@@ -29,6 +29,7 @@ class UtBotBeanFactoryPostProcessor : BeanFactoryPostProcessor, PriorityOrdered
2929
destroyBeanDefinitions(beanFactory)
3030

3131
println("Finished post-processing bean factory in UtBot")
32+
throw UtBotSpringShutdownException("Finished post-processing bean factory in UtBot")
3233
}
3334

3435
private fun findBeanClassNames(beanFactory: ConfigurableListableBeanFactory): ArrayList<String> {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.utbot.spring.postProcessors
2+
3+
/**
4+
* Use this exception to shutdown this application
5+
* when all required analysis actions are completed.
6+
*/
7+
class UtBotSpringShutdownException(message: String): Exception(message)

utbot-spring-analyzer/src/main/kotlin/utils/ConfigurationManager.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/utils/ConfigurationManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package utils
1+
package org.utbot.spring.utils
22

33
import org.springframework.context.annotation.ImportResource
44
import org.springframework.context.annotation.PropertySource

utbot-spring-analyzer/src/main/kotlin/utils/FakeFileManager.kt renamed to utbot-spring-analyzer/src/main/kotlin/org/utbot/spring/utils/FakeFileManager.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package application.utils
1+
package org.utbot.spring.utils
22

3-
import utils.PathsUtils
3+
import org.utbot.spring.utils.PathsUtils
44
import java.io.File
55
import java.io.IOException
66

77
class FakeFileManager(private val fakeFilesList: List<String>) {
88

9-
fun createFakeFiles() {
9+
fun createTempFiles() {
1010
for (fileName in fakeFilesList) {
1111
val fakeXmlFileAbsolutePath = PathsUtils.createFakeFilePath(fileName)
1212

@@ -19,7 +19,7 @@ class FakeFileManager(private val fakeFilesList: List<String>) {
1919
}
2020
}
2121

22-
fun deleteFakeFiles() {
22+
fun deleteTempFiles() {
2323
for (fileName in fakeFilesList) {
2424
val fakeXmlFileAbsolutePath = PathsUtils.createFakeFilePath(fileName)
2525

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package utils
1+
package org.utbot.spring.utils
22

3+
import java.io.File
34
import kotlin.io.path.Path
45

56
object PathsUtils {
@@ -8,14 +9,13 @@ object PathsUtils {
89
fun createFakeFilePath(fileName: String): String =
910
Path(buildResourcesPath, "fake_${Path(fileName).fileName}").toString()
1011

11-
//TODO: it is better to do it without marker files
1212
private val buildResourcesPath: String
1313
get() {
1414
val resourcesMarker =
1515
this.javaClass.classLoader.getResource("resources_marker.txt")
1616
?: error("Resources marker file is not found")
1717

18-
return Path(resourcesMarker.path).parent.toString()
18+
return Path(File(resourcesMarker.toURI()).path).parent.toString()
1919
}
2020

2121
}

0 commit comments

Comments
 (0)