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