Repository navigation
Expand file tree
/
Copy pathExampleWebApplication.java
More file actions
54 lines (43 loc) · 1.92 KB
/
Copy pathExampleWebApplication.java
File metadata and controls
54 lines (43 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package org.example.boilerplate;
import org.example.boilerplate.controller.AuthController;
import org.example.boilerplate.model.User;
import org.example.boilerplate.responses.ExceptionResponse;
import org.javawebstack.framework.HttpController;
import org.javawebstack.framework.WebApplication;
import org.javawebstack.framework.config.Config;
import org.javawebstack.httpserver.HTTPServer;
import org.javawebstack.orm.ORM;
import org.javawebstack.orm.ORMConfig;
import org.javawebstack.orm.exception.ORMConfigurationException;
import org.javawebstack.orm.wrapper.SQL;
import org.javawebstack.templating.TemplateEngine;
import org.javawebstack.templating.gsp.GSPEngine;
import org.javawebstack.webutils.IO;
public class ExampleWebApplication extends WebApplication {
private static ExampleWebApplication instance;
private GSPEngine templatingEngine = new GSPEngine(name -> IO.readTextResource(getClass().getClassLoader(), "views/"+name));
protected void setupConfig(Config config) {
config.addEnvFile(".env");
config.addEnvFile(".env.local");
}
protected void setupModels(SQL sql) throws ORMConfigurationException {
ORMConfig config = new ORMConfig().setTablePrefix("example_");
ORM.register(User.class.getPackage(), sql, config);
ORM.autoMigrate();
}
protected void setupServer(HTTPServer httpServer) {
httpServer.exceptionHandler((exchange, throwable)-> new ExceptionResponse(throwable));
httpServer.controller(HttpController.class, AuthController.class.getPackage());
httpServer.staticResourceDirectory("/static", getClass().getClassLoader(), "static");
}
public GSPEngine getTemplatingEngine() {
return templatingEngine;
}
public static void main(String[] args) {
instance = new ExampleWebApplication();
instance.start();
}
public static ExampleWebApplication getInstance() {
return instance;
}
}