Compare commits

...

2 Commits

Author SHA1 Message Date
Sambo Chea 16e954101f Add exec uitils for command line with executable 2020-08-21 21:31:30 +07:00
Sambo Chea 61369fc2bf Updated swagger ui config 2020-08-21 15:57:51 +07:00
4 changed files with 88 additions and 0 deletions

View File

@ -1,11 +1,29 @@
package com.cubetiqs.demo.axon
import com.cubetiqs.demo.axon.util.ExecUtils
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.http.MediaType
import org.springframework.util.FileCopyUtils
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import javax.servlet.http.HttpServletResponse
@SpringBootApplication
class AxonApplication
fun main(args: Array<String>) {
runApplication<AxonApplication>(*args)
}
@RestController
class MyDumper {
@GetMapping("/dump")
fun dumper(
response: HttpServletResponse
) {
response.contentType = MediaType.APPLICATION_OCTET_STREAM_VALUE
val data = ExecUtils.execMySqlDump()
FileCopyUtils.copy(data ?: ByteArray(0), response.outputStream)
}
}

View File

@ -0,0 +1,17 @@
package com.cubetiqs.demo.axon.config
import org.springframework.context.annotation.Configuration
import org.springframework.web.servlet.config.annotation.EnableWebMvc
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/")
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/")
}
}

View File

@ -0,0 +1,43 @@
package com.cubetiqs.demo.axon.util
import java.io.BufferedInputStream
import java.io.ByteArrayOutputStream
object ExecUtils {
private const val MYSQLDUMP_FILE = "mysqldump"
fun execMySqlDump(): ByteArray? {
var results: ByteArray?
try {
val command: MutableList<String> = mutableListOf()
command.add(MYSQLDUMP_FILE)
command.add("--databases")
command.add("orderwebapp")
command.add("--host")
command.add("192.168.0.204")
command.add("-usombochea")
command.add("-p@Csb632612")
val builder = ProcessBuilder(*command.toTypedArray())
.redirectErrorStream(false)
val process = builder.start()
BufferedInputStream(process.inputStream).use {
ByteArrayOutputStream().use { stdout ->
while (true) {
val x = it.read()
if (x == -1) {
break
}
stdout.write(x)
}
results = stdout.toByteArray()
process.waitFor()
}
}
} catch (e: Exception) {
println(e.message)
return null
}
return results
}
}

View File

@ -0,0 +1,10 @@
import com.cubetiqs.demo.axon.util.ExecUtils
import org.junit.jupiter.api.Test
class TestExecUtils {
@Test
fun dump() {
val dump = ExecUtils.execMySqlDump()
println("Dump size: ${dump?.size}")
}
}