-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Start working on new database system * Add ParcelWrapper class, add ORMLite repository implementation * Fix immutable list modification, apply codestyle changes * Implement Locker ORMLite repository * Add ItemStorage ORMLite repository implementation * Add User ORMLite implementation * Add ParcelContent ORMLite implementation * Use CompletableFuture#runAsync instead of scheduler one. Delete legacy database classes * Set more DatabaseManager properties * Fix integration tests * Update TODO * Update version in Gradle * Fix cache and rename getInstance to getSingleton in persister classes * Bump spigot-api to 1.21.4 * Disable ORMLite logs * Tick TODO * Apply suggestion * Apply CodeRabbit suggestion regarding remove() method in ParcelRepositoryOrmLite * Add TestScheduler * Revert "Use CompletableFuture#runAsync instead of scheduler one. This *partially* reverts commit 953942a * Use ConcurrentHashMaps in caches * Fix unit tests build * Update src/main/java/com/eternalcode/parcellockers/database/DatabaseManager.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Revert version check * Update src/main/java/com/eternalcode/parcellockers/locker/repository/LockerRepositoryOrmLite.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Correct order of CRUD operations * Correct isAsync method * Make locker positions unique * Rename warp to entity * Update MC version in artifact name * Apply Rollczi's suggestions * Update src/test/java/com/eternalcode/parcellockers/TestScheduler.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Refactor caching system * Update src/main/java/com/eternalcode/parcellockers/parcel/repository/ParcelWrapper.java Co-authored-by: DMK <[email protected]> * Update src/main/java/com/eternalcode/parcellockers/parcel/repository/ParcelWrapper.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update src/main/java/com/eternalcode/parcellockers/ParcelLockers.java Co-authored-by: DMK <[email protected]> * Update src/main/java/com/eternalcode/parcellockers/database/persister/PositionPersister.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update src/main/java/com/eternalcode/parcellockers/database/persister/PositionPersister.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update src/main/java/com/eternalcode/parcellockers/content/repository/ParcelContentRepositoryOrmLite.java Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Apply CodeRabbit suggestions * Fix build * Fail-fast if table creation does not succeed * [ci skip] Assign databaseManager field --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: DMK <[email protected]>
- Loading branch information
1 parent
5743cb4
commit 989315d
Showing
48 changed files
with
1,303 additions
and
955 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 0 additions & 61 deletions
61
...in/java/com/eternalcode/parcellockers/content/repository/ParcelContentRepositoryImpl.java
This file was deleted.
Oops, something went wrong.
42 changes: 42 additions & 0 deletions
42
...java/com/eternalcode/parcellockers/content/repository/ParcelContentRepositoryOrmLite.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.eternalcode.parcellockers.content.repository; | ||
|
||
import com.eternalcode.commons.scheduler.Scheduler; | ||
import com.eternalcode.parcellockers.content.ParcelContent; | ||
import com.eternalcode.parcellockers.database.DatabaseManager; | ||
import com.eternalcode.parcellockers.database.wrapper.AbstractRepositoryOrmLite; | ||
import com.j256.ormlite.table.TableUtils; | ||
import io.sentry.Sentry; | ||
|
||
import java.sql.SQLException; | ||
import java.util.Optional; | ||
import java.util.UUID; | ||
import java.util.concurrent.CompletableFuture; | ||
|
||
public class ParcelContentRepositoryOrmLite extends AbstractRepositoryOrmLite implements ParcelContentRepository { | ||
|
||
public ParcelContentRepositoryOrmLite(DatabaseManager databaseManager, Scheduler scheduler) { | ||
super(databaseManager, scheduler); | ||
|
||
try { | ||
TableUtils.createTableIfNotExists(databaseManager.connectionSource(), ParcelContentWrapper.class); | ||
} catch (SQLException exception) { | ||
Sentry.captureException(exception); | ||
throw new RuntimeException("Failed to create ParcelContent table", exception); | ||
} | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Void> save(ParcelContent parcelContent) { | ||
return this.saveIfNotExist(ParcelContentWrapper.class, ParcelContentWrapper.from(parcelContent)).thenApply(dao -> null); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Integer> remove(UUID uniqueId) { | ||
return this.deleteById(ParcelContentWrapper.class, uniqueId); | ||
} | ||
|
||
@Override | ||
public CompletableFuture<Optional<ParcelContent>> find(UUID uniqueId) { | ||
return this.select(ParcelContentWrapper.class, uniqueId).thenApply(parcelContentWrapper -> Optional.ofNullable(parcelContentWrapper.toParcelContent())); | ||
} | ||
} |
36 changes: 36 additions & 0 deletions
36
src/main/java/com/eternalcode/parcellockers/content/repository/ParcelContentWrapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package com.eternalcode.parcellockers.content.repository; | ||
|
||
import com.eternalcode.parcellockers.content.ParcelContent; | ||
import com.eternalcode.parcellockers.database.persister.ItemStackPersister; | ||
import com.j256.ormlite.field.DatabaseField; | ||
import com.j256.ormlite.table.DatabaseTable; | ||
import org.bukkit.inventory.ItemStack; | ||
|
||
import java.util.List; | ||
import java.util.UUID; | ||
|
||
@DatabaseTable(tableName = "parcel_content") | ||
class ParcelContentWrapper { | ||
|
||
@DatabaseField(id = true) | ||
private UUID uniqueId; | ||
|
||
@DatabaseField(persisterClass = ItemStackPersister.class) | ||
private List<ItemStack> content; | ||
|
||
ParcelContentWrapper() { | ||
} | ||
|
||
ParcelContentWrapper(UUID uniqueId, List<ItemStack> content) { | ||
this.uniqueId = uniqueId; | ||
this.content = content; | ||
} | ||
|
||
static ParcelContentWrapper from(ParcelContent parcelContent) { | ||
return new ParcelContentWrapper(parcelContent.uniqueId(), parcelContent.items()); | ||
} | ||
|
||
ParcelContent toParcelContent() { | ||
return new ParcelContent(this.uniqueId, this.content); | ||
} | ||
} |
Oops, something went wrong.