Skip to content

Commit ce05d86

Browse files
committed
feat: improved codebase
1 parent 0efefda commit ce05d86

6 files changed

Lines changed: 48 additions & 66 deletions

File tree

build.gradle.kts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ tasks {
7474
val pluginDependencies: String by project
7575

7676
manifest {
77-
attributes["Plugin-Class"] = pluginClass
78-
attributes["Plugin-Id"] = pluginId
79-
attributes["Plugin-Version"] = version
80-
attributes["Plugin-Provider"] = pluginProvider
81-
attributes["Plugin-Dependencies"] = pluginDependencies
77+
attributes["main-class"] = pluginClass
78+
attributes["id"] = pluginId
79+
attributes["version"] = version
80+
attributes["developer"] = pluginProvider
81+
attributes["dependencies"] = pluginDependencies
8282
}
8383

8484
if (version != "unspecified") {

src/main/kotlin/co/statu/rule/database/DatabaseManager.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package co.statu.rule.database
22

33
import co.statu.parsek.api.ParsekPlugin
44
import co.statu.parsek.api.config.PluginConfigManager
5-
import co.statu.rule.database.api.DatabaseHelper
65
import co.statu.rule.database.impl.SchemeVersionDaoImpl
76
import co.statu.rule.database.model.SchemeVersion
87
import io.vertx.core.Vertx
9-
import io.vertx.core.json.JsonObject
108
import io.vertx.jdbcclient.JDBCConnectOptions
119
import io.vertx.jdbcclient.JDBCPool
1210
import io.vertx.sqlclient.Pool
@@ -127,7 +125,6 @@ class DatabaseManager(
127125

128126
suspend fun initialize(
129127
plugin: ParsekPlugin,
130-
databaseHelper: DatabaseHelper? = null
131128
) {
132129
if (this.tables[plugin] == null) {
133130
this.tables[plugin] = mutableListOf()
@@ -137,8 +134,8 @@ class DatabaseManager(
137134
this.migrations[plugin] = mutableListOf()
138135
}
139136

140-
databaseHelper?.tables?.let { this.tables[plugin]!!.addAll(it) }
141-
databaseHelper?.migrations?.let { this.migrations[plugin]!!.addAll(it) }
137+
this.tables[plugin] = plugin.pluginBeanContext.getBeansOfType(Dao::class.java).values.map { it as Dao }.toMutableList()
138+
this.migrations[plugin] = plugin.pluginBeanContext.getBeansOfType(DatabaseMigration::class.java).values.map { it as DatabaseMigration }.toMutableList()
142139

143140
val jdbcPool: Pool
144141

@@ -155,7 +152,7 @@ class DatabaseManager(
155152

156153
try {
157154
lastSchemeVersion = schemeVersionDaoImpl.getLastSchemeVersion(plugin.pluginId, jdbcPool)
158-
} catch (e: BatchUpdateException) {
155+
} catch (_: BatchUpdateException) {
159156
try {
160157
if (plugin is DatabasePlugin) {
161158
logger.warn("First time installing scheme version (first time app installation)")
@@ -183,9 +180,9 @@ class DatabaseManager(
183180
checkMigration(plugin, jdbcPool, lastSchemeVersion)
184181
}
185182

186-
suspend fun migrateNewPluginId(exPluginId: String, newPluginId: String, plugin: ParsekPlugin) {
183+
suspend fun migrateNewPluginId(exPluginId: String, plugin: ParsekPlugin) {
187184
try {
188-
schemeVersionDaoImpl.renamePluginId(exPluginId, newPluginId, getConnectionPool())
185+
schemeVersionDaoImpl.renamePluginId(exPluginId, plugin.pluginId, getConnectionPool())
189186
} catch (e: Exception) {
190187
if (plugin !is DatabasePlugin) {
191188
logger.error(e.message)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,37 @@
11
package co.statu.rule.database
22

3+
import co.statu.parsek.PluginEventManager
34
import co.statu.parsek.api.ParsekPlugin
5+
import co.statu.parsek.api.config.PluginConfigManager
6+
import co.statu.rule.database.event.DatabaseEventListener
47

58
class DatabasePlugin : ParsekPlugin() {
69
companion object {
710
internal lateinit var databaseManager: DatabaseManager
811
}
12+
13+
override suspend fun onStart() {
14+
val configManager = PluginConfigManager(this, DatabaseConfig::class.java)
15+
pluginBeanContext.beanFactory.registerSingleton(PluginConfigManager::class.java.name, configManager)
16+
17+
logger.info("Initialized plugin config")
18+
19+
databaseManager =
20+
pluginBeanContext.getBean(DatabaseManager::class.java)
21+
22+
databaseManager.migrateNewPluginId(
23+
"database",
24+
this
25+
)
26+
27+
databaseManager.initialize(this)
28+
29+
registerSingletonGlobal(databaseManager)
30+
31+
val handlers = PluginEventManager.getEventListeners<DatabaseEventListener>()
32+
33+
handlers.forEach {
34+
it.onReady(databaseManager)
35+
}
36+
}
937
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package co.statu.rule.database.annotation
2+
3+
import org.springframework.stereotype.Component
4+
5+
@Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS)
6+
@Retention(AnnotationRetention.RUNTIME)
7+
@Component
8+
annotation class Dao(
9+
val value: String = ""
10+
)

src/main/kotlin/co/statu/rule/database/event/CoreEventHandler.kt

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

src/main/kotlin/co/statu/rule/database/impl/SchemeVersionDaoImpl.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package co.statu.rule.database.impl
33
import co.statu.parsek.api.ParsekPlugin
44
import co.statu.rule.database.dao.SchemeVersionDao
55
import co.statu.rule.database.model.SchemeVersion
6-
import io.vertx.jdbcclient.JDBCPool
76
import io.vertx.sqlclient.Pool
87
import io.vertx.kotlin.coroutines.*
98
import io.vertx.sqlclient.Row

0 commit comments

Comments
 (0)