Skip to content

Commit 73d9823

Browse files
committed
Use new SQLDriverFactory
1 parent 0982c05 commit 73d9823

File tree

1 file changed

+24
-27
lines changed

1 file changed

+24
-27
lines changed

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

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
import org.javawebstack.injector.SimpleInjector;
2727
import org.javawebstack.orm.Repo;
2828
import org.javawebstack.orm.exception.ORMConfigurationException;
29-
import org.javawebstack.orm.wrapper.MySQL;
30-
import org.javawebstack.orm.wrapper.SQL;
31-
import org.javawebstack.orm.wrapper.SQLite;
29+
import org.javawebstack.orm.wrapper.*;
3230
import org.javawebstack.scheduler.job.JobQueue;
3331
import org.javawebstack.scheduler.job.local.LocalJobQueue;
3432
import org.javawebstack.scheduler.job.redis.RedisJobQueue;
@@ -48,7 +46,7 @@
4846
public abstract class WebApplication {
4947

5048
private Logger logger = Logger.getLogger("WebApp");
51-
private final SQL sql;
49+
private SQL sql;
5250
private final HTTPServer server;
5351
private final Injector injector;
5452
private final Faker faker = new Faker();
@@ -61,6 +59,7 @@ public abstract class WebApplication {
6159
private final I18N translation = new I18N();
6260
private JobQueue jobQueue;
6361
private Schedule schedule;
62+
private SQLDriverFactory sqlDriverFactory;
6463

6564
public WebApplication() {
6665
injector = new SimpleInjector();
@@ -81,29 +80,27 @@ public WebApplication() {
8180
injector.setInstance(Crypt.class, crypt);
8281

8382
modules.forEach(m -> m.setupConfig(this, config));
84-
if (config.get("database.driver", "none").equalsIgnoreCase("sqlite")) {
85-
sql = new SQLite(config.get("database.file", "db.sqlite"));
86-
} else if (config.get("database.driver", "none").equalsIgnoreCase("mysql")) {
87-
sql = new MySQL(
88-
config.get("database.host", "localhost"),
89-
config.getInt("database.port", 3306),
90-
config.get("database.name", "app"),
91-
config.get("database.user", "root"),
92-
config.get("database.password", "")
93-
);
94-
} else {
95-
sql = null;
96-
}
97-
if (sql != null) {
98-
try {
99-
for (Module m : modules)
100-
m.beforeSetupModels(this, sql);
101-
setupModels(sql);
102-
for (Module m : modules)
103-
m.setupModels(this, sql);
104-
} catch (ORMConfigurationException ex) {
105-
ex.printStackTrace();
106-
}
83+
sqlDriverFactory = new SQLDriverFactory(new HashMap<String, String>() {{
84+
put("file", config.get("database.file", "sb.sqlite"));
85+
put("host", config.get("database.host", "localhost"));
86+
put("port", config.get("database.port", "3306"));
87+
put("name", config.get("database.name", "app"));
88+
put("user", config.get("database.user", "root"));
89+
put("password", config.get("database.password", ""));
90+
}});
91+
String driverName = config.get("database.driver", "none");
92+
try {
93+
sql = sqlDriverFactory.getDriver(driverName);
94+
95+
for (Module m : modules)
96+
m.beforeSetupModels(this, sql);
97+
setupModels(sql);
98+
for (Module m : modules)
99+
m.setupModels(this, sql);
100+
} catch (ORMConfigurationException ex) {
101+
ex.printStackTrace();
102+
} catch (SQLDriverNotFoundException e) {
103+
logger.warning("[SQL] Driver " + driverName + " not found!");
107104
}
108105
modelBindParamTransformer = new ModelBindParamTransformer();
109106

0 commit comments

Comments
 (0)