Skip to content

Commit 681ce85

Browse files
committed
Added auto-migration for jobs and schedules
1 parent 2c172f2 commit 681ce85

File tree

3 files changed

+52
-20
lines changed

3 files changed

+52
-20
lines changed

src/main/java/org/javawebstack/framework/WebApplication.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
import org.javawebstack.command.MultiCommand;
77
import org.javawebstack.framework.bind.ModelBindParamTransformer;
88
import org.javawebstack.framework.bind.ModelBindTransformer;
9-
import org.javawebstack.framework.command.*;
9+
import org.javawebstack.framework.command.ShellCommand;
10+
import org.javawebstack.framework.command.StartCommand;
1011
import org.javawebstack.framework.command.crypto.DecryptCommand;
1112
import org.javawebstack.framework.command.crypto.EncryptCommand;
12-
import org.javawebstack.framework.command.crypto.HashCommand;
1313
import org.javawebstack.framework.command.crypto.GenerateKeyCommand;
14+
import org.javawebstack.framework.command.crypto.HashCommand;
1415
import org.javawebstack.framework.command.db.MigrateCommand;
1516
import org.javawebstack.framework.command.db.SeedCommand;
1617
import org.javawebstack.framework.config.Config;
@@ -23,20 +24,22 @@
2324
import org.javawebstack.httpserver.transformer.response.JsonResponseTransformer;
2425
import org.javawebstack.injector.Injector;
2526
import org.javawebstack.injector.SimpleInjector;
27+
import org.javawebstack.orm.ORM;
28+
import org.javawebstack.orm.Repo;
2629
import org.javawebstack.orm.exception.ORMConfigurationException;
2730
import org.javawebstack.orm.wrapper.MySQL;
2831
import org.javawebstack.orm.wrapper.SQL;
2932
import org.javawebstack.orm.wrapper.SQLite;
3033
import org.javawebstack.scheduler.job.JobQueue;
31-
import org.javawebstack.scheduler.job.JobWorker;
3234
import org.javawebstack.scheduler.job.local.LocalJobQueue;
3335
import org.javawebstack.scheduler.job.redis.RedisJobQueue;
36+
import org.javawebstack.scheduler.job.sql.SQLJobModel;
3437
import org.javawebstack.scheduler.job.sql.SQLJobQueue;
3538
import org.javawebstack.scheduler.scheduler.Schedule;
36-
import org.javawebstack.scheduler.scheduler.Scheduler;
3739
import org.javawebstack.scheduler.scheduler.local.LocalSchedule;
3840
import org.javawebstack.scheduler.scheduler.redis.RedisSchedule;
3941
import org.javawebstack.scheduler.scheduler.sql.SQLSchedule;
42+
import org.javawebstack.scheduler.scheduler.sql.SQLScheduledTaskModel;
4043
import redis.clients.jedis.Jedis;
4144

4245
import java.io.IOException;
@@ -111,6 +114,8 @@ public WebApplication() {
111114

112115
switch (config.get("schedule.driver")) {
113116
case "DATABASE":
117+
Repo.get(SQLJobModel.class).autoMigrate();
118+
Repo.get(SQLScheduledTaskModel.class).autoMigrate();
114119
jobQueue = new SQLJobQueue(sql, config.get("schedule.jobs.name", "default"));
115120
schedule = new SQLSchedule(sql, config.get("schedule.jobs.name", "default"));
116121
break;
@@ -255,8 +260,13 @@ protected void setupModules() {
255260
}
256261

257262
protected abstract void setupConfig(Config config);
258-
protected void setupInjection(Injector injector){}
259-
protected void setupSeeding(){}
263+
264+
protected void setupInjection(Injector injector) {
265+
}
266+
267+
protected void setupSeeding() {
268+
}
269+
260270
protected abstract void setupModels(SQL sql) throws ORMConfigurationException;
261271

262272
protected abstract void setupServer(HTTPServer server);

src/main/java/org/javawebstack/framework/config/Config.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,15 @@ public boolean isEnabled(String key, boolean defaultValue) {
210210
return false;
211211
}
212212

213-
public String generateEnv(){
213+
public String generateEnv() {
214214
StringBuilder env = new StringBuilder();
215215
Gson escaper = new Gson();
216216
config.forEach((key, value) -> {
217217
env.append(key)
218-
.append("=")
219-
.append(escaper.toJson(value)).append("\n");
218+
.append("=")
219+
.append(escaper.toJson(value)).append("\n");
220220
});
221+
221222
return env.toString();
222223
}
223224

src/main/java/org/javawebstack/framework/module/Module.java

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,37 @@
1010

1111
public interface Module {
1212

13-
default void beforeSetupConfig(WebApplication application, Config config){}
14-
default void beforeSetupInjection(WebApplication application, Injector injector){}
15-
default void beforeSetupModels(WebApplication application, SQL sql) throws ORMConfigurationException {}
16-
default void beforeSetupServer(WebApplication application, HTTPServer server){}
17-
default void beforeSetupSeeding(WebApplication application){}
18-
default void setupConfig(WebApplication application, Config config){}
19-
default void setupInjection(WebApplication application, Injector injector){}
20-
default void setupModels(WebApplication application, SQL sql) throws ORMConfigurationException {}
21-
default void setupServer(WebApplication application, HTTPServer server){}
22-
default void setupCommands(WebApplication application, CommandSystem system){}
23-
default void setupSeeding(WebApplication application){}
13+
default void beforeSetupConfig(WebApplication application, Config config) {
14+
}
15+
16+
default void beforeSetupInjection(WebApplication application, Injector injector) {
17+
}
18+
19+
default void beforeSetupModels(WebApplication application, SQL sql) throws ORMConfigurationException {
20+
}
21+
22+
default void beforeSetupServer(WebApplication application, HTTPServer server) {
23+
}
24+
25+
default void beforeSetupSeeding(WebApplication application) {
26+
}
27+
28+
default void setupConfig(WebApplication application, Config config) {
29+
}
30+
31+
default void setupInjection(WebApplication application, Injector injector) {
32+
}
33+
34+
default void setupModels(WebApplication application, SQL sql) throws ORMConfigurationException {
35+
}
36+
37+
default void setupServer(WebApplication application, HTTPServer server) {
38+
}
39+
40+
default void setupCommands(WebApplication application, CommandSystem system) {
41+
}
42+
43+
default void setupSeeding(WebApplication application) {
44+
}
2445

2546
}

0 commit comments

Comments
 (0)