Moved http server to WAContext and added initialization functions
This commit is contained in:
parent
ba3c548232
commit
9997bcd91a
9 changed files with 59 additions and 21 deletions
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
package wa.server;
|
package wa.server;
|
||||||
|
|
||||||
|
import wa.server.page.WAPage;
|
||||||
import wa.server.page.struct.WAAlert;
|
import wa.server.page.struct.WAAlert;
|
||||||
import zutil.db.DBConnection;
|
import zutil.db.DBConnection;
|
||||||
import zutil.db.DBUpgradeHandler;
|
import zutil.db.DBUpgradeHandler;
|
||||||
|
|
@ -29,6 +30,8 @@ import zutil.db.handler.SimpleSQLResult;
|
||||||
import zutil.io.file.FileUtil;
|
import zutil.io.file.FileUtil;
|
||||||
import zutil.log.LogUtil;
|
import zutil.log.LogUtil;
|
||||||
import zutil.net.http.HttpHeader;
|
import zutil.net.http.HttpHeader;
|
||||||
|
import zutil.net.http.HttpServer;
|
||||||
|
import zutil.net.http.page.HttpFilePage;
|
||||||
import zutil.plugin.PluginManager;
|
import zutil.plugin.PluginManager;
|
||||||
import zutil.ui.Navigation;
|
import zutil.ui.Navigation;
|
||||||
|
|
||||||
|
|
@ -47,6 +50,7 @@ public class WAContext {
|
||||||
private static Navigation rootNav;
|
private static Navigation rootNav;
|
||||||
private static DBConnection db;
|
private static DBConnection db;
|
||||||
private static PluginManager pluginManager;
|
private static PluginManager pluginManager;
|
||||||
|
private static HttpServer httpServer;
|
||||||
|
|
||||||
|
|
||||||
private ArrayList<WAAlert> alerts;
|
private ArrayList<WAAlert> alerts;
|
||||||
|
|
@ -112,6 +116,9 @@ public class WAContext {
|
||||||
handler.upgrade();
|
handler.upgrade();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
httpServer = new HttpServer(80);
|
||||||
|
httpServer.setDefaultPage(new HttpFilePage(FileUtil.find("WebContent/")));
|
||||||
|
httpServer.start();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.SEVERE, null, e);
|
logger.log(Level.SEVERE, null, e);
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
|
|
@ -121,6 +128,12 @@ public class WAContext {
|
||||||
public static DBConnection getDB(){
|
public static DBConnection getDB(){
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
public static HttpServer getHttpServer(){
|
||||||
|
return httpServer;
|
||||||
|
}
|
||||||
|
public static void registerWaPage(WAPage page){
|
||||||
|
httpServer.setPage(page.getPageName(), page);
|
||||||
|
}
|
||||||
public static Navigation getRootNav(){
|
public static Navigation getRootNav(){
|
||||||
return rootNav;
|
return rootNav;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package wa.server;
|
package wa.server;
|
||||||
|
|
||||||
|
import wa.server.page.ConfigPage;
|
||||||
import wa.server.page.WAPage;
|
import wa.server.page.WAPage;
|
||||||
import zutil.io.file.FileUtil;
|
import zutil.io.file.FileUtil;
|
||||||
import zutil.log.CompactLogFormatter;
|
import zutil.log.CompactLogFormatter;
|
||||||
|
|
@ -27,14 +28,8 @@ public class WebAdminServer {
|
||||||
try {
|
try {
|
||||||
WAContext.initialize();
|
WAContext.initialize();
|
||||||
|
|
||||||
HttpServer http = new HttpServer(80);
|
WAPage.initialize();
|
||||||
for (Iterator<WAPage> it = WAContext.getPluginManager().getObjectIterator(WAPage.class); it.hasNext(); ){
|
ConfigPage.initialize();
|
||||||
WAPage page = it.next();
|
|
||||||
if (page.getPageName() != null)
|
|
||||||
http.setPage(page.getPageName(), page);
|
|
||||||
}
|
|
||||||
http.setDefaultPage(new HttpFilePage(FileUtil.find("WebContent/")));
|
|
||||||
http.start();
|
|
||||||
|
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import zutil.ui.Configurator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
@ -44,7 +45,7 @@ import java.util.logging.Logger;
|
||||||
*
|
*
|
||||||
* Created by Ziver on 2015-07-27.
|
* Created by Ziver on 2015-07-27.
|
||||||
*/
|
*/
|
||||||
public abstract class ConfigPage extends WAPage {
|
public class ConfigPage extends WAPage {
|
||||||
private static final Logger log = LogUtil.getLogger();
|
private static final Logger log = LogUtil.getLogger();
|
||||||
private static final String TEMPLATE = "WebContent/page/ConfigPage.tmpl";
|
private static final String TEMPLATE = "WebContent/page/ConfigPage.tmpl";
|
||||||
|
|
||||||
|
|
@ -53,8 +54,20 @@ public abstract class ConfigPage extends WAPage {
|
||||||
|
|
||||||
|
|
||||||
public ConfigPage(Class<? extends WAConfiguration> configClass) {
|
public ConfigPage(Class<? extends WAConfiguration> configClass) {
|
||||||
|
super(getPageName(configClass));
|
||||||
this.configClass = configClass;
|
this.configClass = configClass;
|
||||||
}
|
}
|
||||||
|
private static String getPageName(Class<? extends WAConfiguration> configClass){
|
||||||
|
WAConfiguration.WAConfig params = configClass.getAnnotation(WAConfiguration.WAConfig.class);
|
||||||
|
if (params != null) {
|
||||||
|
WAContext.getRootNav()
|
||||||
|
.createSubNav(WAServicePage.PAGE_NAME)
|
||||||
|
.createSubNav(params.service())
|
||||||
|
.createSubNav(params.id(), params.name());
|
||||||
|
return WAServicePage.PAGE_NAME +"/"+ params.service() +"/"+ params.id();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -106,19 +119,28 @@ public abstract class ConfigPage extends WAPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private WAConfiguration newConfig(){
|
private static WAConfiguration newConfig(){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
private WAConfiguration getConfig(int id){
|
private static WAConfiguration getConfig(int id){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
private List<WAConfiguration> getAllConfigs(){
|
private static List<WAConfiguration> getAllConfigs(){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
private WAConfiguration saveConfig(WAConfiguration target){
|
private static WAConfiguration saveConfig(WAConfiguration target){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
private WAConfiguration deleteConfig(int id){
|
private static WAConfiguration deleteConfig(int id){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void initialize() {
|
||||||
|
for (Iterator<Class<? extends WAConfiguration>> it = WAContext.getPluginManager().getClassIterator(WAConfiguration.class); it.hasNext(); ){
|
||||||
|
Class<? extends WAConfiguration> clazz = it.next();
|
||||||
|
WAContext.registerWaPage(new ConfigPage(clazz));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ public class ServiceStatusPage extends WAPage {
|
||||||
.createSubNav(getPageName(), NAVIGATION_NAME).setWeight(-100);
|
.createSubNav(getPageName(), NAVIGATION_NAME).setWeight(-100);
|
||||||
}
|
}
|
||||||
public ServiceStatusPage(WAServiceStatus ss){
|
public ServiceStatusPage(WAServiceStatus ss){
|
||||||
|
super(WAServicePage.NAVIGATION_NAME);
|
||||||
services = new ArrayList<>();
|
services = new ArrayList<>();
|
||||||
services.add(ss);
|
services.add(ss);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import zutil.parser.json.JSONWriter;
|
||||||
import zutil.ui.Navigation;
|
import zutil.ui.Navigation;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
@ -50,9 +51,6 @@ public abstract class WAPage implements HttpPage{
|
||||||
private Templator tmpl;
|
private Templator tmpl;
|
||||||
|
|
||||||
|
|
||||||
public WAPage() {
|
|
||||||
this(null);
|
|
||||||
}
|
|
||||||
public WAPage(String pageName) {
|
public WAPage(String pageName) {
|
||||||
this.pageName = pageName;
|
this.pageName = pageName;
|
||||||
try {
|
try {
|
||||||
|
|
@ -130,4 +128,12 @@ public abstract class WAPage implements HttpPage{
|
||||||
Map<String, String> request) {
|
Map<String, String> request) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void initialize() {
|
||||||
|
for (Iterator<WAPage> it = WAContext.getPluginManager().getObjectIterator(WAPage.class); it.hasNext(); ){
|
||||||
|
WAContext.registerWaPage(it.next());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ import java.util.logging.Logger;
|
||||||
*/
|
*/
|
||||||
public abstract class WAServicePage extends WAPage {
|
public abstract class WAServicePage extends WAPage {
|
||||||
private static final Logger log = LogUtil.getLogger();
|
private static final Logger log = LogUtil.getLogger();
|
||||||
|
public static final String PAGE_NAME = "service";
|
||||||
public static final String NAVIGATION_NAME = "Services";
|
public static final String NAVIGATION_NAME = "Services";
|
||||||
private static final String TMPL_FILE = "WebContent/page/ServicePage.tmpl";
|
private static final String TMPL_FILE = "WebContent/page/ServicePage.tmpl";
|
||||||
|
|
||||||
|
|
@ -50,7 +51,7 @@ public abstract class WAServicePage extends WAPage {
|
||||||
|
|
||||||
|
|
||||||
public WAServicePage(String name, String niceName){
|
public WAServicePage(String name, String niceName){
|
||||||
super("service/"+name);
|
super(PAGE_NAME +"/"+ name);
|
||||||
|
|
||||||
WAContext.getRootNav().createSubNav(NAVIGATION_NAME).setWeight(100)
|
WAContext.getRootNav().createSubNav(NAVIGATION_NAME).setWeight(100)
|
||||||
.createSubNav(getPageName(), niceName);
|
.createSubNav(getPageName(), niceName);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package wa.server.plugin;
|
package wa.server.plugin;
|
||||||
|
|
||||||
import zutil.db.bean.DBBean;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Ziver on 2016-07-27.
|
* Created by Ziver on 2016-07-27.
|
||||||
|
|
@ -10,6 +9,7 @@ public abstract class WAConfiguration{
|
||||||
public @interface WAConfig{
|
public @interface WAConfig{
|
||||||
String id();
|
String id();
|
||||||
String name();
|
String name();
|
||||||
|
String service();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import zutil.ui.Configurator;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
|
||||||
@WAConfiguration.WAConfig(id="proxy", name="Proxy")
|
@WAConfiguration.WAConfig(service=ApacheService.PAGE_NAME, id="proxy", name="Proxy")
|
||||||
public class ApacheConfigProxy extends ApacheAbstractConfig {
|
public class ApacheConfigProxy extends ApacheAbstractConfig {
|
||||||
|
|
||||||
@Configurator.Configurable("Proxy Target")
|
@Configurator.Configurable("Proxy Target")
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import zutil.ui.Configurator;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
|
||||||
@WAConfiguration.WAConfig(id="vhost", name="VirtualHost")
|
@WAConfiguration.WAConfig(service=ApacheService.PAGE_NAME, id="vhost", name="VirtualHost")
|
||||||
public class ApacheConfigVirtualHost extends ApacheAbstractConfig {
|
public class ApacheConfigVirtualHost extends ApacheAbstractConfig {
|
||||||
|
|
||||||
@Configurator.Configurable("Document Root")
|
@Configurator.Configurable("Document Root")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue