ConfigPage continuation

This commit is contained in:
Ziver Koc 2015-09-26 21:19:24 +00:00
parent e3497c4718
commit 224372f0ad
7 changed files with 448 additions and 55 deletions

View file

@ -24,6 +24,8 @@ package wa.server.page;
import wa.server.WAContext;
import wa.server.plugin.WAServiceConfig;
import wa.server.plugin.apache.ApacheConfigVirtualHost;
import zutil.db.bean.Configurator;
import zutil.io.file.FileUtil;
import zutil.log.LogUtil;
import zutil.net.http.HttpHeaderParser;
@ -31,6 +33,8 @@ import zutil.parser.DataNode;
import zutil.parser.Templator;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -60,9 +64,19 @@ public class ConfigPage implements WAPage{
Map<String, String> cookie,
Map<String, String> request) {
try {
List<?> confObjs = config.getConfigData();
ArrayList<Configurator> confList = new ArrayList<>();
for(Object obj : confObjs){
confList.add(new Configurator(obj));
}
confList.add(new Configurator(new ApacheConfigVirtualHost.ApacheVirtualHostData()));
confList.add(new Configurator(new ApacheConfigVirtualHost.ApacheVirtualHostData()));
confList.add(new Configurator(new ApacheConfigVirtualHost.ApacheVirtualHostData()));
Templator tmpl = new Templator(FileUtil.find(TMPL_FILE));
tmpl.set("headers", null);
tmpl.set("data", null);
tmpl.set("params", Configurator.getConfiguration(
config.getConfigClass()));
tmpl.set("data", confList);
return tmpl;
} catch (IOException e) {
log.log(Level.SEVERE, null, e);

View file

@ -1,6 +1,8 @@
package wa.server.plugin;
import java.util.List;
public interface WAServiceConfig {
/**
* @return the String name of this configuration type
@ -21,4 +23,18 @@ public interface WAServiceConfig {
* Configure service with current configuration data
*/
public void configure() throws Exception;
/**
* @return a list of configuration objects, the object
* configuration can be changed with the
* {@link zutil.db.bean.Configurator} class.
*/
public List<?> getConfigData();
/**
* @return the class that contains the configuration data
*/
public Class<?> getConfigClass();
}

View file

@ -4,6 +4,7 @@ import wa.server.WAConstants;
import wa.server.plugin.WAServiceConfig;
import wa.server.util.ConfigFileUtil;
import zutil.db.DBConnection;
import zutil.db.bean.Configurator.Configurable;
import zutil.db.bean.DBBean;
import zutil.db.bean.DBBean.DBTable;
import zutil.io.IOUtil;
@ -55,12 +56,24 @@ public class ApacheConfigVirtualHost implements WAServiceConfig{
}
}
@Override
public List<?> getConfigData() {
return vhosts;
}
@Override
public Class<?> getConfigClass() {
return ApacheVirtualHostData.class;
}
@DBTable(WAConstants.DB_TABLE_PREFIX + "_apache_vhost")
public static class ApacheVirtualHostData extends DBBean{
@Configurable("Domain")
protected String domain;
protected String domain_old;
protected transient String domain_old;
@Configurable("DocRoot")
protected String path;
@Configurable("SSL")
protected boolean ssl;
@ -96,7 +109,7 @@ public class ApacheConfigVirtualHost implements WAServiceConfig{
writeConfiguration(out);
out.close();
}
public void writeConfiguration(PrintStream out){
protected void writeConfiguration(PrintStream out){
if(ssl){
out.println("<VirtualHost *:80>");
out.println(" ServerName "+ domain +":80");