Skip to content

Commit 208559b

Browse files
tepa46EgorkaKulikov
authored andcommitted
SpringAnalysis rewritten on kotlin
1 parent 4cd39cf commit 208559b

14 files changed

+269
-291
lines changed

utbot-spring-analyzer/src/main/java/analyzers/PropertiesAnalyzer.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/analyzers/XmlConfigurationAnalyzer.java

Lines changed: 0 additions & 61 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/application/SpringAnalysisRunner.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/application/TestApplicationConfiguration.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/post_processors/UtBotBeanFactoryPostProcessor.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/utils/ConfigurationManager.java

Lines changed: 0 additions & 53 deletions
This file was deleted.

utbot-spring-analyzer/src/main/java/utils/ResourceNames.java

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package analyzers
2+
3+
import java.io.BufferedReader
4+
import java.io.FileReader
5+
import java.io.IOException
6+
7+
class PropertiesAnalyzer(private val propertiesFilePath: String) {
8+
9+
@Throws(IOException::class)
10+
fun readProperties(): ArrayList<String> {
11+
val props = ArrayList<String>()
12+
13+
val reader = BufferedReader(FileReader(propertiesFilePath))
14+
var line = reader.readLine()
15+
while (line != null) {
16+
props.add(line)
17+
line = reader.readLine()
18+
}
19+
20+
reader.close()
21+
22+
return props
23+
}
24+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package analyzers
2+
3+
import org.w3c.dom.Document
4+
import org.w3c.dom.Element
5+
import utils.ResourceNames
6+
import javax.xml.parsers.DocumentBuilderFactory
7+
import javax.xml.transform.Result
8+
import javax.xml.transform.Source
9+
import javax.xml.transform.TransformerException
10+
import javax.xml.transform.TransformerFactory
11+
import javax.xml.transform.dom.DOMSource
12+
import javax.xml.transform.stream.StreamResult
13+
14+
class XmlConfigurationAnalyzer(private val userXmlFilePath: String) {
15+
private val fakeXmlFilePath = this.javaClass.classLoader.getResource(ResourceNames.fakeApplicationXmlFileName)?.path
16+
?: error("The path must exist")
17+
18+
@Throws(Exception::class)
19+
fun fillFakeApplicationXml() {
20+
val builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
21+
val doc = builder.parse(userXmlFilePath)
22+
23+
// Property placeholders may contain file names relative to user project,
24+
// they will not be found in ours. We import all properties using another approach.
25+
deletePropertyPlaceholders(doc)
26+
writeXmlFile(doc)
27+
}
28+
29+
private fun deletePropertyPlaceholders(doc: Document) {
30+
val elements = doc.getElementsByTagName("context:property-placeholder")
31+
val elementsCount = elements.length
32+
33+
// Xml file may contain several property placeholders:
34+
// see https://stackoverflow.com/questions/26618400/how-to-use-multiple-property-placeholder-in-a-spring-xml-file
35+
for (i in 0 until elementsCount) {
36+
val element = elements.item(i) as Element
37+
element.parentNode.removeChild(element)
38+
}
39+
40+
doc.normalize()
41+
}
42+
43+
@Throws(TransformerException::class)
44+
private fun writeXmlFile(doc: Document) {
45+
val tFormer = TransformerFactory.newInstance().newTransformer()
46+
val source: Source = DOMSource(doc)
47+
val dest: Result = StreamResult(fakeXmlFilePath)
48+
49+
tFormer.transform(source, dest)
50+
}
51+
}

0 commit comments

Comments
 (0)