move setup of web application to the build() method
This commit is contained in:
parent
d3140e330e
commit
d3198ad8b7
3 changed files with 59 additions and 28 deletions
|
@ -54,6 +54,7 @@ public class WebApplicationBuilder extends BaseApplicationBuilder {
|
|||
|
||||
@Override
|
||||
public WebApplication build() {
|
||||
super.build();
|
||||
return new WebApplication(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public class BaseApplication implements Application {
|
|||
|
||||
protected BaseApplication(BaseApplicationBuilder builder) {
|
||||
this.builder = builder;
|
||||
this.sessionName = getSettings().get("session.name", "SESS");
|
||||
this.sessionName = builder.settings.get("session.name", "SESS");
|
||||
this.httpResponseRenderer = newResponseRenderer();
|
||||
this.applicationModuleList = new ArrayList<>();
|
||||
for (Map.Entry<String, Settings> entry : builder.settings.getGroups("module").entrySet()) {
|
||||
|
|
|
@ -32,6 +32,10 @@ public class BaseApplicationBuilder implements ApplicationBuilder {
|
|||
private static final Set<String> DEFAULT_SUFFIXES =
|
||||
Set.of("css", "js", "ico", "png", "jpg", "jpeg", "gif", "woff2");
|
||||
|
||||
private String name;
|
||||
|
||||
private String profile;
|
||||
|
||||
protected ClassLoader classLoader;
|
||||
|
||||
protected Path home;
|
||||
|
@ -61,34 +65,17 @@ public class BaseApplicationBuilder implements ApplicationBuilder {
|
|||
protected HttpRouter httpRouter;
|
||||
|
||||
protected BaseApplicationBuilder() {
|
||||
this.classLoader = getClass().getClassLoader();
|
||||
this.home = Paths.get(System.getProperties().containsKey("application.home") ? System.getProperty("application.home") : ".");
|
||||
this.contextPath = "/";
|
||||
this.secret = "secret";
|
||||
this.sessionsEnabled = true;
|
||||
this.locale = Locale.getDefault();
|
||||
this.zoneId = ZoneId.systemDefault();
|
||||
this.mimeTypeService = new MimeTypeService();
|
||||
String name = System.getProperty("application.name");
|
||||
if (name == null) {
|
||||
name = "application";
|
||||
}
|
||||
String profile = System.getProperty("application.profile");
|
||||
if (profile == null) {
|
||||
profile = "developer";
|
||||
}
|
||||
this.configParams = new ConfigParams()
|
||||
.withDirectoryName(name)
|
||||
.withFileNamesWithoutSuffix(profile)
|
||||
.withSystemEnvironment()
|
||||
.withSystemProperties();
|
||||
this.configLoader = ConfigLoader.getInstance()
|
||||
.withLogger(bootLogger);
|
||||
this.settings = configLoader.load(configParams);
|
||||
if (staticFileSuffixes == null) {
|
||||
staticFileSuffixes = DEFAULT_SUFFIXES;
|
||||
}
|
||||
this.executor = BaseExecutor.builder().build();
|
||||
}
|
||||
|
||||
public BaseApplicationBuilder setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BaseApplicationBuilder setProfile(String profile) {
|
||||
this.profile = profile;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BaseApplicationBuilder setSettings(Settings settings) {
|
||||
|
@ -159,6 +146,49 @@ public class BaseApplicationBuilder implements ApplicationBuilder {
|
|||
@Override
|
||||
public Application build() {
|
||||
Objects.requireNonNull(httpRouter, "http router must not be null");
|
||||
if (this.classLoader == null) {
|
||||
this.classLoader = getClass().getClassLoader();
|
||||
}
|
||||
if (this.home == null) {
|
||||
this.home = Paths.get(System.getProperty("application.home", "."));
|
||||
}
|
||||
if (this.contextPath == null) {
|
||||
this.contextPath = "/";
|
||||
}
|
||||
if (this.secret == null) {
|
||||
this.secret = "secret";
|
||||
}
|
||||
if (this.locale == null) {
|
||||
this.locale = Locale.getDefault();
|
||||
}
|
||||
if (this.zoneId == null) {
|
||||
this.zoneId = ZoneId.systemDefault();
|
||||
}
|
||||
if (name == null) {
|
||||
name = System.getProperty("application.name", "application");
|
||||
}
|
||||
if (profile == null) {
|
||||
profile = System.getProperty("application.profile", "developer");
|
||||
}
|
||||
if (this.settings == null) {
|
||||
this.configParams = new ConfigParams()
|
||||
.withDirectoryName(name)
|
||||
.withFileNamesWithoutSuffix(profile)
|
||||
.withSystemEnvironment()
|
||||
.withSystemProperties();
|
||||
this.configLoader = ConfigLoader.getInstance()
|
||||
.withLogger(bootLogger);
|
||||
this.settings = configLoader.load(configParams);
|
||||
}
|
||||
if (this.mimeTypeService == null) {
|
||||
this.mimeTypeService = new MimeTypeService();
|
||||
}
|
||||
if (this.staticFileSuffixes == null) {
|
||||
this.staticFileSuffixes = DEFAULT_SUFFIXES;
|
||||
}
|
||||
if (executor == null) {
|
||||
this.executor = BaseExecutor.builder().build();
|
||||
}
|
||||
return new BaseApplication(this);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue