Some work on services
This commit is contained in:
parent
fc093b3ab8
commit
8532b681ca
14 changed files with 152 additions and 131 deletions
2
resources/WebContent/css/magic-bootstrap.css
Normal file → Executable file
2
resources/WebContent/css/magic-bootstrap.css
Normal file → Executable file
|
|
@ -4296,7 +4296,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.breadcrumb > li + li:before {
|
.breadcrumb > li + li:before {
|
||||||
content: "\00a0";
|
content: "/\00a0";
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
color: #cccccc;
|
color: #cccccc;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
resources/WebContent/page/Log.tmpl
Executable file
13
resources/WebContent/page/Log.tmpl
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<div class="col-md-12"><div class="panel panel-default">
|
||||||
|
<div class="panel-heading">Log</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<table class="table hdd-detail">
|
||||||
|
<thead><tr>
|
||||||
|
<th data-field="timestamp">Timestamp</th>
|
||||||
|
<th data-field="level">Level</th>
|
||||||
|
<th data-field="log" >Log</th>
|
||||||
|
</tr></thead>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
|
@ -48,7 +48,7 @@ import java.util.logging.Logger;
|
||||||
*/
|
*/
|
||||||
public class WAAbstractPage implements HttpPage{
|
public class WAAbstractPage implements HttpPage{
|
||||||
private static final Logger log = LogUtil.getLogger();
|
private static final Logger log = LogUtil.getLogger();
|
||||||
private static final String TMPL_FILE = "WebContent/page/index.tmpl";
|
private static final String TMPL_FILE = "WebContent/page/Index.tmpl";
|
||||||
|
|
||||||
private List<WAPage> pages;
|
private List<WAPage> pages;
|
||||||
private Templator tmpl;
|
private Templator tmpl;
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ import java.io.File;
|
||||||
|
|
||||||
public class WAConstants {
|
public class WAConstants {
|
||||||
|
|
||||||
public static final String DB_FILE_NAME = "webadmin.db";
|
public static final String DB_FILE = "webadmin.db";
|
||||||
|
public static final String DB_DEFAULT_FILE = "webadmin_default.db";
|
||||||
public static final String DB_TABLE_PREFIX = "wa";
|
public static final String DB_TABLE_PREFIX = "wa";
|
||||||
public static DBConnection db;
|
|
||||||
|
|
||||||
public static final String WA_ROOT_PATH_LINUX = "/";
|
public static final String WA_ROOT_PATH_LINUX = "/";
|
||||||
public static final String WA_ROOT_PATH_WINDOWS = "C:\\webadmin\\";
|
public static final String WA_ROOT_PATH_WINDOWS = "C:\\webadmin\\";
|
||||||
|
|
@ -35,15 +35,6 @@ public class WAConstants {
|
||||||
else {
|
else {
|
||||||
configPath = null;
|
configPath = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(configPath != null){
|
|
||||||
try {
|
|
||||||
db = new DBConnection(DBConnection.DBMS.SQLite, configPath.getAbsolutePath() + DB_FILE_NAME);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -51,7 +42,4 @@ public class WAConstants {
|
||||||
return new File(configPath, name);
|
return new File(configPath, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DBConnection getDB(){
|
|
||||||
return db;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,20 +22,36 @@
|
||||||
|
|
||||||
package wa.server;
|
package wa.server;
|
||||||
|
|
||||||
|
import com.sun.beans.editors.IntegerEditor;
|
||||||
import wa.server.page.struct.WAAlert;
|
import wa.server.page.struct.WAAlert;
|
||||||
import wa.server.page.struct.WANavigation;
|
import wa.server.page.struct.WANavigation;
|
||||||
|
import zutil.db.DBConnection;
|
||||||
|
import zutil.db.DBUpgradeHandler;
|
||||||
|
import zutil.db.SQLResultHandler;
|
||||||
|
import zutil.db.handler.SimpleSQLResult;
|
||||||
|
import zutil.io.file.FileUtil;
|
||||||
|
import zutil.log.LogUtil;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
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.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Ziver on 2015-04-06.
|
* Created by Ziver on 2015-04-06.
|
||||||
*/
|
*/
|
||||||
public class WAContext {
|
public class WAContext {
|
||||||
private static WANavigation rootNav = WANavigation.createRootNav();
|
private static final Logger logger = LogUtil.getLogger();
|
||||||
|
private static WANavigation rootNav;
|
||||||
|
public static DBConnection db;
|
||||||
|
|
||||||
private ArrayList<WAAlert> alerts;
|
private ArrayList<WAAlert> alerts;
|
||||||
|
// Navigation
|
||||||
private WANavigation.NavInstance navInstance;
|
private WANavigation.NavInstance navInstance;
|
||||||
private List<WANavigation> breadcrumb;
|
private List<WANavigation> breadcrumb;
|
||||||
|
|
||||||
|
|
@ -43,7 +59,6 @@ public class WAContext {
|
||||||
public WAContext(Map<String, String> request){
|
public WAContext(Map<String, String> request){
|
||||||
// Navigation
|
// Navigation
|
||||||
navInstance = rootNav.createNavInstance(request);
|
navInstance = rootNav.createNavInstance(request);
|
||||||
|
|
||||||
// Breadcrumb
|
// Breadcrumb
|
||||||
breadcrumb = WANavigation.getBreadcrumb(request);
|
breadcrumb = WANavigation.getBreadcrumb(request);
|
||||||
if(!breadcrumb.isEmpty())
|
if(!breadcrumb.isEmpty())
|
||||||
|
|
@ -63,7 +78,50 @@ public class WAContext {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected static void initialize(){
|
||||||
|
try {
|
||||||
|
rootNav = WANavigation.createRootNav();
|
||||||
|
|
||||||
|
|
||||||
|
// Setup DB
|
||||||
|
File dbFile = WAConstants.getConfigFile(WAConstants.DB_FILE);
|
||||||
|
File defDbFile = WAConstants.getConfigFile(WAConstants.DB_DEFAULT_FILE);
|
||||||
|
db = new DBConnection(DBConnection.DBMS.SQLite, dbFile.getAbsolutePath());
|
||||||
|
DBConnection defaultDB = new DBConnection(DBConnection.DBMS.SQLite, defDbFile.getAbsolutePath());
|
||||||
|
int defaultDBVersion = Integer.parseInt(defaultDB.exec(
|
||||||
|
"SELECT value FROM "+WAConstants.DB_TABLE_PREFIX+"_config WHERE key=='db_version'",
|
||||||
|
new SimpleSQLResult<String>()));
|
||||||
|
int dbVersion = Integer.parseInt(db.exec(
|
||||||
|
"SELECT value FROM "+WAConstants.DB_TABLE_PREFIX+"_config WHERE key=='db_version'",
|
||||||
|
new SimpleSQLResult<String>()));
|
||||||
|
logger.info("DB version: "+ dbVersion);
|
||||||
|
if(defaultDBVersion > dbVersion ) {
|
||||||
|
logger.info("Starting DB upgrade...");
|
||||||
|
if (dbFile != null) {
|
||||||
|
File backupDB = FileUtil.getNextFile(dbFile);
|
||||||
|
logger.fine("Backing up DB to: " + backupDB);
|
||||||
|
FileUtil.copy(dbFile, backupDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.fine(String.format("Upgrading DB (from: v%s, to: v%s)...", dbVersion, defaultDBVersion));
|
||||||
|
DBUpgradeHandler handler = new DBUpgradeHandler(defaultDB);
|
||||||
|
handler.addIgnoredTable("sqlite_sequence"); //sqlite internal
|
||||||
|
handler.setTargetDB(db);
|
||||||
|
handler.upgrade();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.log(Level.SEVERE, null, e);
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DBConnection getDB(){
|
||||||
|
return db;
|
||||||
|
}
|
||||||
public static WANavigation getRootNav(){
|
public static WANavigation getRootNav(){
|
||||||
return rootNav;
|
return rootNav;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ public class WebAdminServer {
|
||||||
|
|
||||||
public WebAdminServer(){
|
public WebAdminServer(){
|
||||||
try {
|
try {
|
||||||
|
WAContext.initialize();
|
||||||
pluginManager = new PluginManager();
|
pluginManager = new PluginManager();
|
||||||
|
|
||||||
HttpServer http = new HttpServer(80);
|
HttpServer http = new HttpServer(80);
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,14 @@
|
||||||
|
|
||||||
package wa.server.page;
|
package wa.server.page;
|
||||||
|
|
||||||
|
import wa.server.WAContext;
|
||||||
import wa.server.plugin.WALog;
|
import wa.server.plugin.WALog;
|
||||||
|
import zutil.io.file.FileUtil;
|
||||||
import zutil.net.http.HttpHeader;
|
import zutil.net.http.HttpHeader;
|
||||||
import zutil.net.http.HttpPage;
|
import zutil.net.http.HttpPage;
|
||||||
import zutil.net.http.HttpPrintStream;
|
import zutil.net.http.HttpPrintStream;
|
||||||
import zutil.parser.DataNode;
|
import zutil.parser.DataNode;
|
||||||
|
import zutil.parser.Templator;
|
||||||
import zutil.parser.json.JSONWriter;
|
import zutil.parser.json.JSONWriter;
|
||||||
import zutil.struct.CircularBuffer;
|
import zutil.struct.CircularBuffer;
|
||||||
|
|
||||||
|
|
@ -39,7 +42,9 @@ import java.util.logging.LogRecord;
|
||||||
/**
|
/**
|
||||||
* Created by Ziver on 2015-09-22.
|
* Created by Ziver on 2015-09-22.
|
||||||
*/
|
*/
|
||||||
public class LogPage extends Handler implements HttpPage {
|
public class LogPage extends Handler implements HttpPage, WAPage {
|
||||||
|
private static final String TMPL_FILE = "WebContent/page/Log.tmpl";
|
||||||
|
|
||||||
private CircularBuffer<LogRecord> logBuffer;
|
private CircularBuffer<LogRecord> logBuffer;
|
||||||
private WALog log;
|
private WALog log;
|
||||||
|
|
||||||
|
|
@ -64,6 +69,18 @@ public class LogPage extends Handler implements HttpPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Templator htmlResponse(WAContext context, HttpHeader client_info, Map<String, Object> session, Map<String, String> cookie, Map<String, String> request) {
|
||||||
|
try {
|
||||||
|
return new Templator(FileUtil.find(TMPL_FILE));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void respond(HttpPrintStream out,
|
public void respond(HttpPrintStream out,
|
||||||
HttpHeader client_info,
|
HttpHeader client_info,
|
||||||
|
|
@ -71,6 +88,15 @@ public class LogPage extends Handler implements HttpPage {
|
||||||
Map<String, String> cookie,
|
Map<String, String> cookie,
|
||||||
Map<String, String> request) throws IOException {
|
Map<String, String> request) throws IOException {
|
||||||
|
|
||||||
|
JSONWriter writer = new JSONWriter(out);
|
||||||
|
writer.write(jsonResponse());
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public DataNode jsonResponse(WAContext context, HttpHeader client_info, Map<String, Object> session, Map<String, String> cookie, Map<String, String> request) {
|
||||||
|
return jsonResponse();
|
||||||
|
}
|
||||||
|
public DataNode jsonResponse() {
|
||||||
DataNode logNode = new DataNode(DataNode.DataType.List);
|
DataNode logNode = new DataNode(DataNode.DataType.List);
|
||||||
Iterator<LogRecord> it = logBuffer.iterator();
|
Iterator<LogRecord> it = logBuffer.iterator();
|
||||||
for(int i=0; i<20 && it.hasNext(); ++i){
|
for(int i=0; i<20 && it.hasNext(); ++i){
|
||||||
|
|
@ -84,8 +110,6 @@ public class LogPage extends Handler implements HttpPage {
|
||||||
|
|
||||||
DataNode root = new DataNode(DataNode.DataType.Map);
|
DataNode root = new DataNode(DataNode.DataType.Map);
|
||||||
root.add(logNode);
|
root.add(logNode);
|
||||||
JSONWriter writer = new JSONWriter(out);
|
return root;
|
||||||
writer.write(root);
|
|
||||||
writer.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,7 @@ public class ServicePage implements WAPage {
|
||||||
statusPage.htmlResponse(context, client_info, session, cookie, request));
|
statusPage.htmlResponse(context, client_info, session, cookie, request));
|
||||||
if(logPage != null)
|
if(logPage != null)
|
||||||
tmpl.set("service_logs",
|
tmpl.set("service_logs",
|
||||||
statusPage.htmlResponse(context, client_info, session, cookie, request));
|
logPage.htmlResponse(context, client_info, session, cookie, request));
|
||||||
return tmpl;
|
return tmpl;
|
||||||
}
|
}
|
||||||
else{ // root page
|
else{ // root page
|
||||||
|
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2015 ezivkoc
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package wa.server.page;
|
|
||||||
|
|
||||||
import zutil.net.http.HttpHeader;
|
|
||||||
import zutil.net.http.HttpHeaderParser;
|
|
||||||
import zutil.net.http.HttpPage;
|
|
||||||
import zutil.net.http.HttpPrintStream;
|
|
||||||
import zutil.parser.DataNode;
|
|
||||||
import zutil.parser.json.JSONWriter;
|
|
||||||
import zutil.struct.CircularBuffer;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Handler;
|
|
||||||
import java.util.logging.LogRecord;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Ziver on 2015-09-22.
|
|
||||||
*/
|
|
||||||
public class WALogPage extends Handler implements HttpPage {
|
|
||||||
private CircularBuffer<LogRecord> logBuffer;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void publish(LogRecord record) {
|
|
||||||
if(super.isLoggable(record)){
|
|
||||||
logBuffer.add(record);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void flush() {}
|
|
||||||
@Override
|
|
||||||
public void close() throws SecurityException {
|
|
||||||
throw new UnsupportedOperationException ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void respond(HttpPrintStream out,
|
|
||||||
HttpHeader client_info,
|
|
||||||
Map<String, Object> session,
|
|
||||||
Map<String, String> cookie,
|
|
||||||
Map<String, String> request) throws IOException {
|
|
||||||
|
|
||||||
DataNode logNode = new DataNode(DataNode.DataType.List);
|
|
||||||
Iterator<LogRecord> it = logBuffer.iterator();
|
|
||||||
for(int i=0; i<20 && it.hasNext(); ++i){
|
|
||||||
LogRecord record = it.next();
|
|
||||||
DataNode node = new DataNode(DataNode.DataType.Map);
|
|
||||||
node.set("timestamp", record.getMillis());
|
|
||||||
node.set("source", record.getLoggerName());
|
|
||||||
node.set("msg", record.getMessage());
|
|
||||||
logNode.add(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
DataNode root = new DataNode(DataNode.DataType.Map);
|
|
||||||
root.add(logNode);
|
|
||||||
JSONWriter writer = new JSONWriter(out);
|
|
||||||
writer.write(root);
|
|
||||||
writer.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -66,6 +66,7 @@ public class WANavigation implements Iterable{
|
||||||
nav = new WANavigation(name);
|
nav = new WANavigation(name);
|
||||||
nav.setParentNav(this);
|
nav.setParentNav(this);
|
||||||
subNav.add(nav);
|
subNav.add(nav);
|
||||||
|
sortSubNavs();
|
||||||
return nav;
|
return nav;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|
@ -82,6 +83,8 @@ public class WANavigation implements Iterable{
|
||||||
Collections.sort(subNav, new Comparator<WANavigation>() {
|
Collections.sort(subNav, new Comparator<WANavigation>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(WANavigation o1, WANavigation o2) {
|
public int compare(WANavigation o1, WANavigation o2) {
|
||||||
|
if (o1.weight == o2.weight)
|
||||||
|
return o1.name.compareToIgnoreCase(o2.name);
|
||||||
return o1.weight - o2.weight;
|
return o1.weight - o2.weight;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -147,22 +150,7 @@ public class WANavigation implements Iterable{
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param request A map of all url parameters sent from client
|
|
||||||
* @return a List of WANavigation objects depicting the navigation hierarchy for the
|
|
||||||
* requested page from the client. First entry will be the root navigation object.
|
|
||||||
*/
|
|
||||||
public static List<WANavigation> getBreadcrumb(Map<String, String> request) {
|
|
||||||
LinkedList list = new LinkedList();
|
|
||||||
if(request.containsKey(NAVIGATION_URL_KEY)){
|
|
||||||
WANavigation current = navMap.get(Integer.parseInt(request.get(NAVIGATION_URL_KEY)));
|
|
||||||
while(current != null){
|
|
||||||
list.addFirst(current);
|
|
||||||
current = current.parentNav;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static WANavigation createRootNav(){
|
public static WANavigation createRootNav(){
|
||||||
return new WANavigation(null);
|
return new WANavigation(null);
|
||||||
|
|
@ -174,6 +162,33 @@ public class WANavigation implements Iterable{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the specific WANavigation object requested by client
|
||||||
|
*/
|
||||||
|
public static WANavigation getNavigation(Map<String, String> request) {
|
||||||
|
if(request.containsKey(NAVIGATION_URL_KEY))
|
||||||
|
return navMap.get(Integer.parseInt(request.get(NAVIGATION_URL_KEY)));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param request A map of all url parameters sent from client
|
||||||
|
* @return a List of WANavigation objects depicting the navigation hierarchy for the
|
||||||
|
* requested page from the client. First entry will be the root navigation object.
|
||||||
|
*/
|
||||||
|
public static List<WANavigation> getBreadcrumb(Map<String, String> request) {
|
||||||
|
LinkedList list = new LinkedList();
|
||||||
|
WANavigation current = getNavigation(request);
|
||||||
|
if (current != null){
|
||||||
|
while(current != null){
|
||||||
|
list.addFirst(current);
|
||||||
|
current = current.parentNav;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static class NavInstance{
|
public static class NavInstance{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package wa.server.plugin.apache;
|
package wa.server.plugin.apache;
|
||||||
|
|
||||||
import wa.server.WAConstants;
|
import wa.server.WAConstants;
|
||||||
|
import wa.server.WAContext;
|
||||||
import wa.server.plugin.WAConfigEntry;
|
import wa.server.plugin.WAConfigEntry;
|
||||||
import wa.server.plugin.WAServiceConfig;
|
import wa.server.plugin.WAServiceConfig;
|
||||||
import wa.server.util.ConfigFileUtil;
|
import wa.server.util.ConfigFileUtil;
|
||||||
|
|
@ -13,6 +14,7 @@ import zutil.ui.Configurator;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -26,9 +28,8 @@ public class ApacheConfigVirtualHost implements WAServiceConfig{
|
||||||
private List<ApacheVirtualHostEntry> vhosts = new ArrayList<>();
|
private List<ApacheVirtualHostEntry> vhosts = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public ApacheConfigVirtualHost() throws Exception {
|
public ApacheConfigVirtualHost() throws SQLException {
|
||||||
DBConnection db = WAConstants.getDB();
|
vhosts = DBBean.load(WAContext.getDB(), ApacheVirtualHostEntry.class);
|
||||||
vhosts = DBBean.load(db, ApacheVirtualHostEntry.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -25,13 +25,15 @@ package wa.server.plugin.apache;
|
||||||
import wa.server.plugin.*;
|
import wa.server.plugin.*;
|
||||||
import zutil.log.LogUtil;
|
import zutil.log.LogUtil;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Ziver on 2014-12-23.
|
* Created by Ziver on 2014-12-23.
|
||||||
*/
|
*/
|
||||||
public class ApacheService implements WAService {
|
public class ApacheService implements WAService {
|
||||||
private static Logger log = LogUtil.getLogger();
|
private static Logger logger = LogUtil.getLogger();
|
||||||
public static final String SERVICE_NAME = "Apache2";
|
public static final String SERVICE_NAME = "Apache2";
|
||||||
|
|
||||||
private ApacheStatus status;
|
private ApacheStatus status;
|
||||||
|
|
@ -65,9 +67,13 @@ public class ApacheService implements WAService {
|
||||||
@Override
|
@Override
|
||||||
public WAServiceConfig[] getConfigurations() {
|
public WAServiceConfig[] getConfigurations() {
|
||||||
if(config == null)
|
if(config == null)
|
||||||
config = new WAServiceConfig[]{
|
try {
|
||||||
//new ApacheConfigVirtualHost()
|
config = new WAServiceConfig[]{
|
||||||
};
|
new ApacheConfigVirtualHost()
|
||||||
|
};
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.log(Level.SEVERE, null, e);
|
||||||
|
}
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
webadmin.db
Executable file
BIN
webadmin.db
Executable file
Binary file not shown.
BIN
webadmin_default.db
Executable file
BIN
webadmin_default.db
Executable file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue