Skip to content

Commit 123b98f

Browse files
committed
fix many problem
1 parent c92fb79 commit 123b98f

File tree

6 files changed

+32
-39
lines changed

6 files changed

+32
-39
lines changed

src/main/java/io/github/skydynamic/increment/storage/lib/Interface/IConfig.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@
22

33
@SuppressWarnings("unused")
44
public interface IConfig {
5-
default boolean getUseInternalDataBase() {
6-
return true;
7-
}
8-
9-
default String getMongoDBUri() {
10-
return "mongodb://localhost:27017";
11-
}
12-
135
default String getStoragePath() {
146
return "./storage/";
157
}

src/main/java/io/github/skydynamic/increment/storage/lib/Interface/IDataBaseManager.java renamed to src/main/java/io/github/skydynamic/increment/storage/lib/Interface/IDatabaseManager.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
package io.github.skydynamic.increment.storage.lib.Interface;
22

3-
import java.nio.file.Path;
43
import java.util.UUID;
54

65
@SuppressWarnings("unused")
7-
public interface IDataBaseManager {
6+
public interface IDatabaseManager {
87
void setFileName(String name);
98

10-
void setDataBasePath(Path path);
9+
void setDatabasePath(String path);
1110

1211
void setCollectionUuid(UUID uuid);
1312

1413
default String getFileName() {
1514
return "dataBase";
1615
}
1716

18-
default Path getDataBasePath() {
19-
return Path.of(".");
17+
default String getDatabasePath() {
18+
return ".";
2019
}
2120

2221
default UUID getCollectionUuid() {

src/main/java/io/github/skydynamic/increment/storage/lib/util/IndexUtil.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@
1313
import java.io.FileNotFoundException;
1414
import java.io.IOException;
1515
import java.nio.file.Path;
16-
import java.util.Comparator;
17-
import java.util.HashMap;
18-
import java.util.List;
19-
import java.util.Map;
20-
import java.util.Optional;
16+
import java.util.*;
2117
import java.util.stream.Collectors;
2218

2319
@SuppressWarnings("unused")
@@ -90,7 +86,7 @@ public static void reIndex(String name, String resolvePath) throws IOException {
9086
List<StorageInfo> storageQuery = database.getStorageInfoWithNameList(reindexStorageList);
9187

9288
for (StorageInfo storageInfo : storageQuery) {
93-
List<String> indexStorageList = storageInfo.getIndexStorage();
89+
List<String> indexStorageList = new ArrayList<>(storageInfo.getIndexStorage());
9490
indexStorageList.remove(name);
9591
if (!indexStorageList.contains(reIndexTargetName) && !reIndexTargetName.equals(storageInfo.getName())) {
9692
indexStorageList.add(reIndexTargetName);

src/main/java/io/github/skydynamic/increment/storage/lib/util/Storager.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ private String getLatestStorageName() {
138138
List<StorageInfo> infoList = database.getAllStorageInfo()
139139
.stream()
140140
.filter(StorageInfoTable::isUseIncrementalStorage)
141-
.map(StorageInfoTable::getStorageInfo)
142141
.toList();
143142
String latestBackupName = "";
144143
if (!infoList.isEmpty()) {
@@ -237,7 +236,6 @@ public void incrementalStorage(
237236

238237
IndexFile latestIndexFile = database.getIndexFile(latestBackupName);
239238
Map<String, String> latestIndexFileMap = latestIndexFile.getIndexFileMap();
240-
if (latestIndexFileMap.isEmpty()) throw new NullPointerException("%s does not exist".formatted(latestBackupName));
241239

242240
Map<String, Object> resultMap = compareGetIndexFileMap(
243241
latestBackupName,

src/main/kotlin/io/github/skydynamic/increment/storage/lib/database/Database.kt

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.github.skydynamic.increment.storage.lib.database
22

33
import com.google.gson.Gson
4-
import io.github.skydynamic.increment.storage.lib.Interface.IDataBaseManager
4+
import io.github.skydynamic.increment.storage.lib.Interface.IDatabaseManager
55
import org.jetbrains.exposed.sql.*
66
import org.jetbrains.exposed.sql.Database
77
import org.jetbrains.exposed.sql.transactions.transaction
@@ -14,9 +14,9 @@ fun String.toMap(): Map<String, String> {
1414
return if (map is Map<*, *>) map.mapKeys { it.key.toString() }.mapValues { it.value.toString() } else emptyMap()
1515
}
1616

17-
class Database(val databaseManager: IDataBaseManager) {
17+
class Database(val databaseManager: IDatabaseManager) {
1818
private val database: Database = Database.connect(
19-
url = "jdbc:h2:file:./${databaseManager.dataBasePath}/${databaseManager.fileName}",
19+
url = "jdbc:h2:file:${databaseManager.databasePath}/${databaseManager.fileName}",
2020
driver = "org.h2.Driver"
2121
)
2222

@@ -113,18 +113,27 @@ class Database(val databaseManager: IDataBaseManager) {
113113
return transaction(database) {
114114
StorageInfoTable.selectAll()
115115
.where { StorageInfoTable.collectionUuid eq databaseManager.collectionUuid }
116-
.where { StorageInfoTable.name eq name }
117116
.toList()
118-
.isNotEmpty()
117+
.any { it[StorageInfoTable.name] == name }
118+
}
119+
}
120+
121+
fun getStorageInfoWithName(name: String): StorageInfo? {
122+
return transaction(database) {
123+
StorageInfoTable.selectAll()
124+
.where { StorageInfoTable.collectionUuid eq databaseManager.collectionUuid }
125+
.toList()
126+
.firstOrNull { it[StorageInfoTable.name] == name }
127+
?.let { StorageInfoTable.getStorageInfo(it) }
119128
}
120129
}
121130

122131
fun getStorageInfoWithNameList(nameList: List<String>): List<StorageInfo> {
123132
return transaction(database) {
124133
StorageInfoTable.selectAll()
125134
.where { StorageInfoTable.collectionUuid eq databaseManager.collectionUuid }
126-
.where { StorageInfoTable.name inList nameList }
127135
.toList()
136+
.filter { it[StorageInfoTable.name] in nameList }
128137
.map { StorageInfoTable.getStorageInfo(it) }
129138
}
130139
}
@@ -139,20 +148,21 @@ class Database(val databaseManager: IDataBaseManager) {
139148
}
140149
}
141150

142-
fun getAllStorageInfo(): List<ResultRow> {
151+
fun getAllStorageInfo(): List<StorageInfo> {
143152
return transaction(database) {
144153
StorageInfoTable.selectAll()
145154
.where { StorageInfoTable.collectionUuid eq databaseManager.collectionUuid }
146155
.toList()
156+
.map { StorageInfoTable.getStorageInfo(it) }
147157
}
148158
}
149159

150160
fun getIndexFileWithNameList(nameList: List<String>): List<IndexFile> {
151161
return transaction(database) {
152162
IndexFileTable.selectAll()
153163
.where { IndexFileTable.collectionUuid eq databaseManager.collectionUuid }
154-
.where { IndexFileTable.name inList nameList }
155164
.toList()
165+
.filter { it[IndexFileTable.name] in nameList }
156166
.map { IndexFileTable.getIndexFile(it) }
157167
}
158168
}
@@ -161,9 +171,8 @@ class Database(val databaseManager: IDataBaseManager) {
161171
val map = transaction(database) {
162172
IndexFileTable.selectAll()
163173
.where { IndexFileTable.collectionUuid eq databaseManager.collectionUuid }
164-
.where { IndexFileTable.name eq name }
165174
.toList()
166-
.first()
175+
.first { it[IndexFileTable.name] == name }
167176
.let {
168177
val map = gson.fromJson(it[IndexFileTable.indexFileMap], Map::class.java)
169178
return@let if (map is Map<*, *>) map.mapKeys { it.key.toString() }.mapValues { it.value.toString() } else emptyMap()
@@ -176,9 +185,8 @@ class Database(val databaseManager: IDataBaseManager) {
176185
return transaction(database) {
177186
FileHashTable.selectAll()
178187
.where { FileHashTable.collectionUuid eq databaseManager.collectionUuid }
179-
.where { FileHashTable.name eq name }
180188
.toList()
181-
.first()
189+
.first { it[FileHashTable.name] == name }
182190
.let {
183191
val map = gson.fromJson(it[FileHashTable.fileHashMap], Map::class.java)
184192
return@let if (map is Map<*, *>) map.mapKeys { it.key.toString() }.mapValues { it.value.toString() } else emptyMap()

src/main/kotlin/io/github/skydynamic/increment/storage/lib/database/DatabaseTables.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,21 @@ data class IndexFile(
2424

2525
open class BaseTable(name: String): Table(name) {
2626
val id = integer("id").autoIncrement()
27-
val name = varchar("name", 255)
27+
val name = varchar("name", 65535)
2828
val collectionUuid = uuid("collection_uuid")
2929
}
3030

3131
object StorageInfoTable: BaseTable("storage_info") {
32-
val desc = varchar("desc", 255)
32+
val desc = varchar("desc", 65535)
3333
val timestamp = long("timestamp")
3434
val useIncrementalStorage = bool("use_incremental_storage")
35-
val indexStorage = array<String>("index_storage", 255)
35+
val indexStorage = array<String>("index_storage", 65535)
3636

3737
override val primaryKey = PrimaryKey(id, name = "ISL_SI_ID")
3838

3939
@JvmStatic
40-
fun isUseIncrementalStorage(result: ResultRow): Boolean {
41-
return result[useIncrementalStorage]
40+
fun isUseIncrementalStorage(result: StorageInfo): Boolean {
41+
return result.useIncrementalStorage
4242
}
4343

4444
@JvmStatic
@@ -68,7 +68,7 @@ object IndexFileTable: BaseTable("index_file") {
6868
}
6969

7070
object FileHashTable: BaseTable("file_hash") {
71-
val fileHashMap = varchar("hash", 255)
71+
val fileHashMap = text("file_hash_map")
7272

7373
override val primaryKey = PrimaryKey(id, name = "ISL_FH_ID")
7474
}

0 commit comments

Comments
 (0)