Skip to content

Commit 5474a4b

Browse files
committed
refactor(injector): simplify component processor registration
1 parent 8f1e899 commit 5474a4b

25 files changed

+537
-324
lines changed

playtime-core/src/main/java/com/github/imdmk/playtime/core/PlayTimeCore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ final class PlayTimeCore {
4444
this.publisher = new LocalPublisher(injector);
4545

4646
ComponentManager componentManager = new ComponentManager(injector, BASE_PACKAGE)
47-
.addProcessors(ComponentProcessors.defaults(plugin))
47+
.addProcessors(ComponentProcessors.defaults())
4848
.addPostProcessor((instance, context) -> this.publisher.subscribe(instance));
4949

5050
componentManager.scanAll();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.imdmk.playtime.core.database;
2+
3+
import com.j256.ormlite.support.ConnectionSource;
4+
5+
import java.sql.SQLException;
6+
7+
public interface DatabaseManager {
8+
9+
void start() throws SQLException;
10+
11+
ConnectionSource getConnectionSource();
12+
}

playtime-core/src/main/java/com/github/imdmk/playtime/core/database/DatabaseBootstrap.java renamed to playtime-core/src/main/java/com/github/imdmk/playtime/core/database/DatabaseManagerImpl.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
import java.sql.SQLException;
1515

1616
@Database
17-
public final class DatabaseBootstrap {
17+
public final class DatabaseManagerImpl implements DatabaseManager {
1818

1919
private final File dataFolder;
2020
private final DatabaseConfig config;
2121

2222
private final DataSourceConnector dataConnector;
2323

2424
@Inject
25-
public DatabaseBootstrap(
25+
public DatabaseManagerImpl(
2626
File dataFolder,
2727
PluginLogger logger,
2828
DatabaseConfig config
@@ -35,16 +35,14 @@ public DatabaseBootstrap(
3535
this.dataConnector = new DataSourceConnector(logger, factory, configurer);
3636
}
3737

38-
public void start() {
39-
try {
40-
dataConnector.connect(config, dataFolder);
41-
} catch (SQLException e) {
42-
throw new RuntimeException(e);
43-
}
38+
@Override
39+
public void start() throws SQLException {
40+
dataConnector.connect(config, dataFolder);
4441
}
4542

43+
@Override
4644
@Nullable
47-
public ConnectionSource getConnection() {
45+
public ConnectionSource getConnectionSource() {
4846
return dataConnector.getConnectionSource();
4947
}
5048

playtime-core/src/main/java/com/github/imdmk/playtime/core/database/repository/ormlite/OrmLiteRepository.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.github.imdmk.playtime.core.database.repository.ormlite;
22

3-
import com.github.imdmk.playtime.core.database.DatabaseBootstrap;
3+
import com.github.imdmk.playtime.core.database.DatabaseManager;
44
import com.github.imdmk.playtime.core.database.repository.RepositoryBootstrap;
55
import com.github.imdmk.playtime.core.database.repository.RepositoryInitializationException;
66
import com.github.imdmk.playtime.core.platform.logger.PluginLogger;
@@ -29,17 +29,17 @@ public abstract class OrmLiteRepository<T, ID>
2929
protected final TaskScheduler scheduler;
3030
protected volatile Dao<T, ID> dao;
3131

32-
private final DatabaseBootstrap databaseBootstrap;
32+
private final DatabaseManager databaseManager;
3333

3434
@Inject
3535
protected OrmLiteRepository(
3636
PluginLogger logger,
3737
TaskScheduler scheduler,
38-
DatabaseBootstrap databaseBootstrap
38+
DatabaseManager databaseManager
3939
) {
4040
this.logger = logger;
4141
this.scheduler = scheduler;
42-
this.databaseBootstrap = databaseBootstrap;
42+
this.databaseManager = databaseManager;
4343
configureOrmLiteLogger();
4444
}
4545

@@ -51,7 +51,7 @@ protected List<Class<?>> entitySubClasses() {
5151

5252
@Override
5353
public void start() throws RepositoryInitializationException {
54-
ConnectionSource connection = databaseBootstrap.getConnection();
54+
ConnectionSource connection = databaseManager.getConnectionSource();
5555
if (connection == null) {
5656
throw new IllegalStateException("DatabaseBootstrap not started before repository initialization");
5757
}

playtime-core/src/main/java/com/github/imdmk/playtime/core/feature/playtime/PlayTimeListener.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
package com.github.imdmk.playtime.core.feature.playtime;
22

33
import com.github.imdmk.playtime.api.PlayTime;
4-
import com.github.imdmk.playtime.core.injector.annotations.Controller;
4+
import com.github.imdmk.playtime.core.injector.annotations.PluginListener;
55
import com.github.imdmk.playtime.core.injector.subscriber.Subscribe;
66
import com.github.imdmk.playtime.core.injector.subscriber.event.PlayTimeShutdownEvent;
77
import com.github.imdmk.playtime.core.platform.logger.PluginLogger;
88
import com.github.imdmk.playtime.core.platform.playtime.PlayTimeAdapter;
99
import org.bukkit.Server;
10-
import org.bukkit.entity.Player;
1110
import org.bukkit.event.EventHandler;
12-
import org.bukkit.event.Listener;
1311
import org.bukkit.event.player.PlayerJoinEvent;
1412
import org.bukkit.event.player.PlayerQuitEvent;
1513
import org.bukkit.event.server.ServerLoadEvent;
@@ -18,8 +16,8 @@
1816
import java.util.UUID;
1917
import java.util.concurrent.CompletableFuture;
2018

21-
@Controller
22-
final class PlayTimeListener implements Listener {
19+
@PluginListener
20+
final class PlayTimeListener implements org.bukkit.event.Listener {
2321

2422
private final Server server;
2523
private final PluginLogger logger;

playtime-core/src/main/java/com/github/imdmk/playtime/core/feature/playtime/placeholder/PlayTimePlaceholder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.github.imdmk.playtime.core.feature.playtime.PlayTimeUser;
44
import com.github.imdmk.playtime.core.feature.playtime.PlayTimeUserService;
5-
import com.github.imdmk.playtime.core.injector.annotations.placeholderapi.Placeholder;
5+
import com.github.imdmk.playtime.core.injector.annotations.placeholder.Placeholder;
66
import com.github.imdmk.playtime.core.platform.placeholder.PluginPlaceholder;
77
import com.github.imdmk.playtime.core.time.DurationService;
88
import org.bukkit.entity.Player;

playtime-core/src/main/java/com/github/imdmk/playtime/core/feature/playtime/repository/PlayTimeUserRepositoryOrmLite.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.github.imdmk.playtime.core.feature.playtime.repository;
22

3-
import com.github.imdmk.playtime.core.database.DatabaseBootstrap;
3+
import com.github.imdmk.playtime.core.database.DatabaseManager;
44
import com.github.imdmk.playtime.core.database.repository.ormlite.OrmLiteRepository;
55
import com.github.imdmk.playtime.core.feature.playtime.PlayTimeUser;
66
import com.github.imdmk.playtime.core.injector.annotations.Repository;
@@ -24,9 +24,9 @@ final class PlayTimeUserRepositoryOrmLite
2424
PlayTimeUserRepositoryOrmLite(
2525
PluginLogger logger,
2626
TaskScheduler taskScheduler,
27-
DatabaseBootstrap databaseBootstrap
27+
DatabaseManager databaseManager
2828
) {
29-
super(logger, taskScheduler, databaseBootstrap);
29+
super(logger, taskScheduler, databaseManager);
3030
}
3131

3232
@Override

playtime-core/src/main/java/com/github/imdmk/playtime/core/feature/playtime/top/gui/PlayTimeTopGui.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.github.imdmk.playtime.core.feature.playtime.top.gui;
22

33
import com.github.imdmk.playtime.core.feature.playtime.PlayTimeUser;
4-
import com.github.imdmk.playtime.core.injector.annotations.Gui;
4+
import com.github.imdmk.playtime.core.injector.annotations.gui.Gui;
55
import com.github.imdmk.playtime.core.platform.adventure.AdventureFormatter;
66
import com.github.imdmk.playtime.core.platform.adventure.AdventurePlaceholders;
77
import com.github.imdmk.playtime.core.platform.gui.GuiType;

playtime-core/src/main/java/com/github/imdmk/playtime/core/injector/annotations/Controller.java renamed to playtime-core/src/main/java/com/github/imdmk/playtime/core/injector/annotations/PluginListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
@Retention(RetentionPolicy.RUNTIME)
1111
@Target(ElementType.TYPE)
12-
public @interface Controller {
12+
public @interface PluginListener {
1313

1414
ComponentPriority priority() default ComponentPriority.HIGHEST;
1515

playtime-core/src/main/java/com/github/imdmk/playtime/core/injector/annotations/Gui.java renamed to playtime-core/src/main/java/com/github/imdmk/playtime/core/injector/annotations/gui/Gui.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.imdmk.playtime.core.injector.annotations;
1+
package com.github.imdmk.playtime.core.injector.annotations.gui;
22

33
import com.github.imdmk.playtime.core.injector.ComponentPriority;
44

0 commit comments

Comments
 (0)