Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
marius-m committed Dec 24, 2020
2 parents 92ecc19 + 5956eef commit eec040c
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 103 deletions.
47 changes: 9 additions & 38 deletions app/src/main/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,69 +4,40 @@
<Property name="WT_ROOT">${sys:user.home}</Property>
<Property name="WT_APP_PATH">wt4_debug</Property>
<Property name="WT_APP_FLAVOR">basic</Property>
<Property name="LOG_PATH">${sys:WT_ROOT}/.${sys:WT_APP_PATH}/${sys:WT_APP_FLAVOR}/logs</Property>
<Property name="LOG_PATH">${sys:WT_ROOT}/.${sys:WT_APP_PATH}-${sys:WT_APP_FLAVOR}/logs</Property>
<Property name="LOG_PATH_ARCHIVE">${LOG_PATH}/archive</Property>
<Property name="log_pattern">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${log_pattern}" />
<PatternLayout pattern="${log_pattern}"/>
</Console>
<RollingFile name="FileAllLogs"
fileName="${sys:LOG_PATH}/out.log"
filePattern="${sys:LOG_PATH_ARCHIVE}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.out_log.gz">
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>
<RollingFile name="FileAllErrors"
fileName="${sys:LOG_PATH}/errors.log"
filePattern="${sys:LOG_PATH_ARCHIVE}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.error_log.gz">
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="5" />
<DefaultRolloverStrategy max="5"/>
</RollingFile>
<RollingFile name="FileAllJira"
fileName="${sys:LOG_PATH}/jira.log"
filePattern="${sys:LOG_PATH_ARCHIVE}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.jira_log.gz">
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 KB" />
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 KB"/>
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>
<RollingFile name="FileAllDb"
fileName="${sys:LOG_PATH}/db.log"
filePattern="${sys:LOG_PATH_ARCHIVE}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.db_log.gz">
<PatternLayout pattern="${log_pattern}"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB" />
</Policies>
<DefaultRolloverStrategy max="5" />
<DefaultRolloverStrategy max="5"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="Console" />
<AppenderRef ref="Console"/>
<AppenderRef ref="FileAllLogs"/>
<AppenderRef ref="FileAllErrors"/>
</Root>
<Logger name="org.jooq.tools.LoggerListener" level="WARN">
<AppenderRef ref="FileAllDb"/>
</Logger>
<Logger name="JIRA" level="DEBUG">
<AppenderRef ref="FileAllJira"/>
</Logger>
Expand Down
8 changes: 4 additions & 4 deletions components/src/main/java/lt/markmerkk/ConfigPathProvider.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class ConfigPathProvider(
val configPathMigrator = ConfigPathMigrator(
migrations = ConfigPathMigrationFactory.create(
versionCode = versionCode,
configDirRoot = rootAppDir(),
configDirLegacy = legacyAppDir(),
configDirFull = fullAppDir()
)
)
Expand Down Expand Up @@ -58,17 +58,17 @@ class ConfigPathProvider(
* Full path of configuration
*/
private fun fullAppDir(): File {
val appDir = File("${userHome()}${File.separator}.${configDefault()}${File.separator}$appFlavor")
val appDir = File("${userHome()}${File.separator}.${configDefault()}-$appFlavor")
if (!appDir.exists()) {
appDir.mkdirs()
}
return appDir
}

/**
* Root path of configuration
* Root path legacy directory of the app
*/
private fun rootAppDir(): File {
private fun legacyAppDir(): File {
val appDir = File("${userHome()}${File.separator}.${configDefault()}")
if (!appDir.exists()) {
appDir.mkdirs()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package lt.markmerkk.migration

import org.apache.commons.io.FileUtils
import org.slf4j.Logger
import java.io.File

/**
* Migration that would move configuration by the app flavor.
* This is needed, as both flavors normally "inherit" its configuration and its changes
* thus resulting in incorrect application when both applications are launched.
*
* For instance, when both apps are launched and are using different jiras at the same time
*/
class ConfigMigration1(
private val versionCode: Int,
private val configDirLegacy: File,
private val configDirFull: File,
private val l: Logger
) : ConfigPathMigrator.ConfigMigration {

override fun isMigrationNeeded(): Boolean {
val configCountInFull = ConfigUtils.listConfigs(configDirFull)
.count()
// Only one version would trigger migration + full path should be empty
l.info("Checking if configs need migration1: [configCountInFull <= 1($configCountInFull)] " +
"/ [versionCode <= 67($versionCode)]")
return configCountInFull <= 1 && versionCode <= 67
}

override fun doMigration() {
l.info("Triggering migration1...")
ConfigUtils.listConfigs(configDirLegacy)
.filter { it != configDirFull }
.filterNot { it.isDirectory && it.name == "logs" } // ignore log directory
.forEach {
try {
FileUtils.copyToDirectory(it, configDirFull)
} catch (e: Exception) {
l.warn("Error doing migration1", e)
}
}
l.info("Migration complete!")
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package lt.markmerkk.migration

import java.io.File

object ConfigPathMigrationFactory {
fun create(
versionCode: Int,
configDirLegacy: File,
configDirFull: File
): List<ConfigPathMigrator.ConfigMigration> {
return listOf(
ConfigMigration1(versionCode, configDirLegacy, configDirFull, ConfigPathMigrator.l)
)
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package lt.markmerkk.migration

import org.apache.commons.io.FileUtils
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.io.File

/**
* Because in app version changes there were many file location migration, thus resulting in
Expand Down Expand Up @@ -34,59 +31,3 @@ class ConfigPathMigrator(
}

}

class ConfigMigration1(
private val versionCode: Int,
private val configDirRoot: File,
private val configDirFull: File,
private val l: Logger
) : ConfigPathMigrator.ConfigMigration {

override fun isMigrationNeeded(): Boolean {
val configCountInFull = ConfigUtils
.listConfigs(configDirFull)
.count()
// Only one version would trigger migration + full path should be empty
l.info("Checking if configs need migration1: [configCountInFull <= 1($configCountInFull)] " +
"/ [versionCode <= 66($versionCode)]")
return configCountInFull <= 1 && versionCode <= 66
}

override fun doMigration() {
l.info("Triggering migration1...")
ConfigUtils.listConfigs(configDirRoot)
.filter { it != configDirFull }
.filterNot { it.isDirectory && it.name == "logs" } // ignore log directory
.forEach {
try {
FileUtils.moveToDirectory(it, configDirFull, false)
} catch (e: Exception) {
l.warn("Error doing migration1", e)
}
}
l.info("Migration complete!")
}

}

object ConfigUtils {
fun listConfigs(configDir: File): List<File> {
return if (configDir.exists() && configDir.isDirectory) {
configDir.listFiles()?.asList() ?: emptyList()
} else {
emptyList()
}
}
}

object ConfigPathMigrationFactory {
fun create(
versionCode: Int,
configDirRoot: File,
configDirFull: File
): List<ConfigPathMigrator.ConfigMigration> {
return listOf(
ConfigMigration1(versionCode, configDirRoot, configDirFull, ConfigPathMigrator.l)
)
}
}
13 changes: 13 additions & 0 deletions components/src/main/java/lt/markmerkk/migration/ConfigUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package lt.markmerkk.migration

import java.io.File

object ConfigUtils {
fun listConfigs(configDir: File): List<File> {
return if (configDir.exists() && configDir.isDirectory) {
configDir.listFiles()?.asList() ?: emptyList()
} else {
emptyList()
}
}
}
4 changes: 2 additions & 2 deletions version.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
version_name=1.8.1
version_code=66
version_name=1.8.2
version_code=67

0 comments on commit eec040c

Please sign in to comment.