Skip to content

Commit 68c3f01

Browse files
Updated configurations
1 parent 6cae79a commit 68c3f01

14 files changed

Lines changed: 205 additions & 214 deletions

File tree

Demos/Ktor/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ repositories {
1818
}
1919

2020
application {
21-
mainClass.set("io.ktor.server.netty.EngineMain")
21+
mainClass.set("com.groupdocs.ui.ApplicationKt")
2222

2323
val isDevelopment: Boolean = project.ext.has("development")
2424
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/Application.kt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.groupdocs.ui
22

33
import com.groupdocs.comparison.license.License
44
import com.groupdocs.ui.config.ApplicationConfig
5-
import com.groupdocs.ui.config.ServerConfig
5+
import com.groupdocs.ui.config.ComparerConfig
66
import com.groupdocs.ui.di.ModulesInjection
77
import com.typesafe.config.ConfigFactory
88
import io.ktor.server.application.*
@@ -26,7 +26,7 @@ import java.nio.file.Paths
2626
fun main(args: Array<String>) {
2727
val environment = System.getenv()["ENVIRONMENT"] ?: handleDefaultEnvironment()
2828
val applicationConfig = extractApplicationConfig(environment)
29-
val comparisonConfig by lazy { extractComparisonConfig() }
29+
val comparerConfig by lazy { extractComparerConfig() }
3030

3131
embeddedServer(Netty, port = applicationConfig.port) {
3232
println("Starting instance in ${applicationConfig.host}:${applicationConfig.port}")
@@ -36,7 +36,7 @@ fun main(args: Array<String>) {
3636
modules(
3737
module {
3838
single { applicationConfig }
39-
single { comparisonConfig }
39+
single { comparerConfig }
4040
},
4141
ModulesInjection.controllerBeans,
4242
ModulesInjection.usecaseBeans,
@@ -46,9 +46,7 @@ fun main(args: Array<String>) {
4646
main()
4747
}
4848

49-
comparisonConfig.application.licensePathOrNull?.let { path ->
50-
setGroupdocsLicense(path)
51-
}
49+
setGroupdocsLicense(comparerConfig.licensePathOrDefault)
5250
}.start(wait = true)
5351
}
5452

@@ -61,29 +59,29 @@ fun Application.main() {
6159
module()
6260
}
6361

64-
fun extractApplicationConfig(environment: String): ServerConfig {
65-
val hoconConfig = HoconApplicationConfig(ConfigFactory.load("server.conf"))
62+
fun extractApplicationConfig(environment: String): ApplicationConfig {
63+
val hoconConfig = HoconApplicationConfig(ConfigFactory.load("application.conf"))
6664
val hoconEnvironment = hoconConfig.config("ktor.deployment.$environment")
6765

68-
return ServerConfig(
66+
return ApplicationConfig(
6967
hoconEnvironment.property("host").getString(),
7068
Integer.parseInt(hoconEnvironment.property("port").getString())
7169
)
7270
}
7371

7472
@OptIn(ExperimentalSerializationApi::class)
75-
fun extractComparisonConfig(): ApplicationConfig {
73+
fun extractComparerConfig(): ComparerConfig {
7674
val hocon = Hocon {
7775
useConfigNamingConvention = false
7876
}
79-
return hocon.decodeFromConfig(ApplicationConfig.serializer(), ConfigFactory.load("application.conf"))
77+
return hocon.decodeFromConfig(ComparerConfig.serializer(), ConfigFactory.load("comparer.conf"))
8078
}
8179

8280
fun Application.setGroupdocsLicense(licensePath: String) {
8381
try {
8482
log.debug("Setting Groupdocs license...")
8583

86-
val licenseExtension = Defaults.Application.DEFAULT_LICENSE_EXTENSION
84+
val licenseExtension = Defaults.DEFAULT_LICENSE_EXTENSION
8785
val license = License()
8886
if (licensePath.startsWith("http://") || licensePath.startsWith("https://")) {
8987
val url = URL(licensePath)

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/Defaults.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package com.groupdocs.ui
22

33

44
interface Defaults {
5-
interface Application {
6-
companion object {
7-
const val DEFAULT_LICENSE_PATH = "Licenses"
8-
const val DEFAULT_LICENSE_EXTENSION = ".lic"
9-
}
5+
companion object {
6+
const val DEFAULT_LICENSE_PATH = "Licenses"
7+
const val DEFAULT_LICENSE_EXTENSION = ".lic"
108
}
119

1210
interface Comparison {
Lines changed: 3 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,7 @@
11
package com.groupdocs.ui.config
22

3-
import com.groupdocs.ui.Defaults
4-
import java.nio.file.Path
5-
6-
@kotlinx.serialization.Serializable
7-
data class ApplicationConfig(
8-
val application: Application = Application(),
9-
val common: Common = Common(),
10-
val comparison: Comparison = Comparison(),
11-
val local: Local = Local(),
12-
)
13-
14-
@kotlinx.serialization.Serializable
15-
data class Application(
16-
private val licensePath: String = ""
17-
) {
18-
val licensePathOrNull: String
19-
get() = licensePath.ifBlank { Defaults.Application.DEFAULT_LICENSE_PATH }
20-
}
21-
22-
@kotlinx.serialization.Serializable
23-
data class Common(
24-
val pageSelector: Boolean = false,
25-
val download: Boolean = false,
26-
val upload: Boolean = false,
27-
val print: Boolean = false,
28-
val browse: Boolean = false,
29-
val rewrite: Boolean = false,
30-
val enableRightClick: Boolean = false
3+
class ApplicationConfig(
4+
val host: String,
5+
val port: Int
316
)
327

33-
@kotlinx.serialization.Serializable
34-
data class Comparison(
35-
private val filesProviderType: String = "",
36-
val preloadResultPageCount: Int = 0,
37-
private val previewPageWidth: Int = 0,
38-
private val previewPageRatio: Float = 0f,
39-
private val cacheDirectory: String = "",
40-
private val tempDirectory: String = "",
41-
) {
42-
val filesProviderTypeOrDefault: Defaults.Comparison.FilesProviderType
43-
get() =
44-
when (filesProviderType.uppercase()) {
45-
in Defaults.Comparison.FilesProviderType.values()
46-
.map { it.name.uppercase() } -> Defaults.Comparison.FilesProviderType.valueOf(filesProviderType.uppercase())
47-
else -> Defaults.Comparison.DEFAULT_FILES_PROVIDER_TYPE
48-
}
49-
val tempDirectoryOrDefault: String
50-
get() = tempDirectory.ifBlank { Defaults.Comparison.DEFAULT_TEMP_DIRECTORY } ?: throw IllegalStateException("Can't get temp directory!")
51-
val previewPageWidthOrDefault: Int
52-
get() = if (previewPageWidth == 0) Defaults.Comparison.DEFAULT_PREVIEW_PAGE_WIDTH else previewPageWidth
53-
val previewPageRatioOrDefault: Float
54-
get() = if (previewPageRatio == 0f) Defaults.Comparison.DEFAULT_PREVIEW_PAGE_RATIO else previewPageRatio
55-
}
56-
57-
@kotlinx.serialization.Serializable
58-
data class Local(
59-
private val filesDirectory: String = "",
60-
private val resultDirectory: String = "",
61-
) {
62-
63-
val filesDirectoryOrDefault: Path
64-
get() = Path.of(filesDirectory.ifBlank { Defaults.Local.DEFAULT_FILES_DIRECTORY })
65-
66-
val resultDirectoryOrDefault: Path
67-
get() = Path.of(resultDirectory.ifBlank { Defaults.Local.DEFAULT_RESULT_DIRECTORY })
68-
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.groupdocs.ui.config
2+
3+
import com.groupdocs.ui.Defaults
4+
import java.nio.file.Path
5+
6+
@kotlinx.serialization.Serializable
7+
data class ComparerConfig(
8+
val common: Common = Common(),
9+
val comparison: Comparison = Comparison(),
10+
val local: Local = Local(),
11+
private val licensePath: String = ""
12+
) {
13+
val licensePathOrDefault: String
14+
get() = licensePath.ifBlank { Defaults.DEFAULT_LICENSE_PATH }
15+
}
16+
17+
@kotlinx.serialization.Serializable
18+
data class Common(
19+
val pageSelector: Boolean = false,
20+
val download: Boolean = false,
21+
val upload: Boolean = false,
22+
val print: Boolean = false,
23+
val browse: Boolean = false,
24+
val rewrite: Boolean = false,
25+
val enableRightClick: Boolean = false
26+
)
27+
28+
@kotlinx.serialization.Serializable
29+
data class Comparison(
30+
private val filesProviderType: String = "",
31+
val preloadResultPageCount: Int = 0,
32+
private val previewPageWidth: Int = 0,
33+
private val previewPageRatio: Float = 0f,
34+
private val cacheDirectory: String = "",
35+
private val tempDirectory: String = "",
36+
) {
37+
val filesProviderTypeOrDefault: Defaults.Comparison.FilesProviderType
38+
get() =
39+
when (filesProviderType.uppercase()) {
40+
in Defaults.Comparison.FilesProviderType.values()
41+
.map { it.name.uppercase() } -> Defaults.Comparison.FilesProviderType.valueOf(filesProviderType.uppercase())
42+
else -> Defaults.Comparison.DEFAULT_FILES_PROVIDER_TYPE
43+
}
44+
val tempDirectoryOrDefault: String
45+
get() = tempDirectory.ifBlank { Defaults.Comparison.DEFAULT_TEMP_DIRECTORY }
46+
?: throw IllegalStateException("Can't get temp directory!")
47+
val previewPageWidthOrDefault: Int
48+
get() = if (previewPageWidth == 0) Defaults.Comparison.DEFAULT_PREVIEW_PAGE_WIDTH else previewPageWidth
49+
val previewPageRatioOrDefault: Float
50+
get() = if (previewPageRatio == 0f) Defaults.Comparison.DEFAULT_PREVIEW_PAGE_RATIO else previewPageRatio
51+
}
52+
53+
@kotlinx.serialization.Serializable
54+
data class Local(
55+
private val filesDirectory: String = "",
56+
private val resultDirectory: String = "",
57+
) {
58+
59+
val filesDirectoryOrDefault: Path
60+
get() = Path.of(filesDirectory.ifBlank { Defaults.Local.DEFAULT_FILES_DIRECTORY })
61+
62+
val resultDirectoryOrDefault: Path
63+
get() = Path.of(resultDirectory.ifBlank { Defaults.Local.DEFAULT_RESULT_DIRECTORY })
64+
}

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/config/ServerConfig.kt

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

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/manager/PathManager.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import kotlin.math.min
1515
* Does not create or check is any directory exist
1616
*/
1717
class PathManagerImpl(
18-
private val applicationConfig: com.groupdocs.ui.config.ApplicationConfig
18+
private val comparerConfig: com.groupdocs.ui.config.ComparerConfig
1919
) : PathManager, KoinComponent {
2020
private val isLocalProvider: Boolean by lazy {
21-
applicationConfig.comparison.filesProviderTypeOrDefault == Defaults.Comparison.FilesProviderType.LOCAL
21+
comparerConfig.comparison.filesProviderTypeOrDefault == Defaults.Comparison.FilesProviderType.LOCAL
2222
}
2323

2424
override val tempDirectory: Path by lazy {
25-
val absoluteOrRelativeTempDirectory = Paths.get(applicationConfig.comparison.tempDirectoryOrDefault)
25+
val absoluteOrRelativeTempDirectory = Paths.get(comparerConfig.comparison.tempDirectoryOrDefault)
2626
if (absoluteOrRelativeTempDirectory.isAbsolute) {
2727
absoluteOrRelativeTempDirectory
2828
} else if (isLocalProvider) {
@@ -36,7 +36,7 @@ class PathManagerImpl(
3636
if (!isLocalProvider) {
3737
throw InternalServerException("Access to result directory is impossible, because local provider is not enabled")
3838
}
39-
val absoluteOrRelativeResultDirectory = applicationConfig.local.resultDirectoryOrDefault
39+
val absoluteOrRelativeResultDirectory = comparerConfig.local.resultDirectoryOrDefault
4040
if (absoluteOrRelativeResultDirectory.isAbsolute) {
4141
absoluteOrRelativeResultDirectory
4242
} else {
@@ -48,7 +48,7 @@ class PathManagerImpl(
4848
if (!isLocalProvider) {
4949
throw InternalServerException("Access to files directory is impossible, because local provider is not enabled")
5050
}
51-
val absoluteOrRelativeFilesDirectory = applicationConfig.local.filesDirectoryOrDefault
51+
val absoluteOrRelativeFilesDirectory = comparerConfig.local.filesDirectoryOrDefault
5252
absoluteOrRelativeFilesDirectory.toAbsolutePath().normalize()
5353
}
5454

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.groupdocs.ui.modules
22

3-
import com.groupdocs.ui.config.ApplicationConfig
3+
import com.groupdocs.ui.config.ComparerConfig
44
import org.koin.java.KoinJavaComponent.inject
55

66
open class BaseController {
77

8-
protected val applicationConfig by inject<ApplicationConfig>(ApplicationConfig::class.java)
8+
protected val comparerConfig by inject<ComparerConfig>(ComparerConfig::class.java)
99
}

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/modules/compare/CompareController.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ class CompareControllerImpl(
6161
}
6262
val pages = withContext(Dispatchers.IO) {
6363
val pages = mutableListOf<ComparePage>()
64-
val previewPageWidth = applicationConfig.comparison.previewPageWidthOrDefault
65-
val previewPageRatio = applicationConfig.comparison.previewPageRatioOrDefault
64+
val previewPageWidth = comparerConfig.comparison.previewPageWidthOrDefault
65+
val previewPageRatio = comparerConfig.comparison.previewPageRatioOrDefault
6666

6767
BufferedInputStream(FileInputStream(resultPath.toFile())).use { inputStream ->
6868
retrieveLocalFilePagesStream(

Demos/Ktor/src/main/kotlin/com/groupdocs/ui/modules/config/ConfigController.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ class ConfigControllerImpl : BaseController(), ConfigController, KoinComponent {
88

99
override suspend fun config(): ConfigResponse {
1010
return ConfigResponse(
11-
browse = applicationConfig.common.browse,
12-
download = applicationConfig.common.download,
13-
enableRightClick = applicationConfig.common.enableRightClick,
14-
pageSelector = applicationConfig.common.pageSelector,
15-
preloadResultPageCount = applicationConfig.comparison.preloadResultPageCount,
16-
print = applicationConfig.common.print,
17-
rewrite = applicationConfig.common.rewrite,
18-
upload = applicationConfig.common.upload,
11+
browse = comparerConfig.common.browse,
12+
download = comparerConfig.common.download,
13+
enableRightClick = comparerConfig.common.enableRightClick,
14+
pageSelector = comparerConfig.common.pageSelector,
15+
preloadResultPageCount = comparerConfig.comparison.preloadResultPageCount,
16+
print = comparerConfig.common.print,
17+
rewrite = comparerConfig.common.rewrite,
18+
upload = comparerConfig.common.upload,
1919
)
2020
}
2121

0 commit comments

Comments
 (0)