diff --git a/src/zutil/db/bean/DBBean.java b/src/zutil/db/bean/DBBean.java index d486cd9..015a7f7 100644 --- a/src/zutil/db/bean/DBBean.java +++ b/src/zutil/db/bean/DBBean.java @@ -456,12 +456,13 @@ public abstract class DBBean { * This is a workaround if the field is not visible to other classes * * @param field is the field + * @return the value of the field */ protected void setFieldValue(Field field, Object o){ try { if( !Modifier.isPublic( field.getModifiers())) field.setAccessible(true); - + // Set basic datatype if( o == null && !Object.class.isAssignableFrom( field.getType() ) ){ logger.fine("Trying to set primitive data type to null!"); diff --git a/src/zutil/net/http/HttpHeaderParser.java b/src/zutil/net/http/HttpHeaderParser.java index 9d39d04..d78a550 100644 --- a/src/zutil/net/http/HttpHeaderParser.java +++ b/src/zutil/net/http/HttpHeaderParser.java @@ -70,7 +70,7 @@ public class HttpHeaderParser { /** * Parses the HTTP header information from an String * - * @param in is the string + * @param in is the string */ public HttpHeaderParser(String in){ url_attr = new HashMap(); @@ -94,8 +94,7 @@ public class HttpHeaderParser { * Parses the first header line and ads the values to * the map and returns the file name and path * - * @param header The header String - * @param map The HashMap to put the variables to + * @param line The header String * @return The path and file name as a String */ protected void parseStatusLine(String line){ diff --git a/src/zutil/net/http/HttpPage.java b/src/zutil/net/http/HttpPage.java index 0f582ea..d728251 100644 --- a/src/zutil/net/http/HttpPage.java +++ b/src/zutil/net/http/HttpPage.java @@ -35,15 +35,14 @@ public interface HttpPage{ * This method has to be implemented for every page. * This method is called when a client wants a response * from this specific page. - * - * @param out is the PrintStream to the client - * @param client_info is information about the client - * @param session is session values for the client - * @param cookie is cookie information from the client - * @param request is POST and GET requests from the client - */ + * @param out is the PrintStream to the client + * @param client_info is information about the client + * @param session is session values for the client + * @param cookie is cookie information from the client + * @param request is POST and GET requests from the client + */ public abstract void respond(HttpPrintStream out, - Map client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request); diff --git a/src/zutil/net/http/HttpServer.java b/src/zutil/net/http/HttpServer.java index 2a3a46f..1e322a7 100644 --- a/src/zutil/net/http/HttpServer.java +++ b/src/zutil/net/http/HttpServer.java @@ -64,8 +64,8 @@ public class HttpServer extends ThreadedTCPNetworkServer{ /** * Creates a new instance of the sever * - * @param url The address to the server - * @param port The port that the server should listen to + * @param url The address to the server + * @param port The port that the server should listen to */ public HttpServer(String url, int port){ this(url, port, null, null); @@ -75,10 +75,10 @@ public class HttpServer extends ThreadedTCPNetworkServer{ /** * Creates a new instance of the sever * - * @param url The address to the server - * @param port The port that the server should listen to - * @param sslCert If this is not null then the server will use SSL connection with this keyStore file path - * @param sslCert If this is not null then the server will use a SSL connection with the given certificate + * @param url The address to the server + * @param port The port that the server should listen to + * @param keyStore If this is not null then the server will use SSL connection with this keyStore file path + * @param keyStorePass If this is not null then the server will use a SSL connection with the given certificate */ public HttpServer(String url, int port, File keyStore, String keyStorePass){ super( port, keyStore, keyStorePass ); @@ -119,8 +119,8 @@ public class HttpServer extends ThreadedTCPNetworkServer{ /** * Add a HttpPage to a specific URL * - * @param name The URL or name of the page - * @param page The page itself + * @param name The URL or name of the page + * @param page The page itself */ public void setPage(String name, HttpPage page){ if(name.charAt(0) != '/') @@ -132,7 +132,7 @@ public class HttpServer extends ThreadedTCPNetworkServer{ * This is a default page that will be shown * if there is no other matching page, * - * @param page The HttpPage that will be shown + * @param page The HttpPage that will be shown */ public void setDefaultPage(HttpPage page){ defaultPage = page; @@ -168,7 +168,6 @@ public class HttpServer extends ThreadedTCPNetworkServer{ public void run(){ String tmp = null; - HashMap client_info = new HashMap(); HashMap cookie = new HashMap(); HashMap request = new HashMap(); @@ -178,7 +177,6 @@ public class HttpServer extends ThreadedTCPNetworkServer{ HttpHeaderParser parser = new HttpHeaderParser(in); logger.finest(parser.toString()); - client_info = parser.getHeaders(); request = parser.getURLAttributes(); cookie = parser.getCookies(); @@ -238,9 +236,8 @@ public class HttpServer extends ThreadedTCPNetworkServer{ // Debug if(logger.isLoggable(Level.FINE)){ logger.finest( "# page_url: "+parser.getRequestURL() ); + logger.finest( "# client_session: "+client_session ); logger.finest( "# cookie: "+cookie ); - logger.finest( "# client_session: "+client_session ); - logger.finest( "# client_info: "+client_info ); logger.finest( "# request: "+request ); } //**************************** RESPONSE ************************************ @@ -251,10 +248,10 @@ public class HttpServer extends ThreadedTCPNetworkServer{ out.setCookie( "session_id", ""+client_session.get("session_id") ); if( !parser.getRequestURL().isEmpty() && pages.containsKey(parser.getRequestURL()) ){ - pages.get(parser.getRequestURL()).respond(out, client_info, client_session, cookie, request); + pages.get(parser.getRequestURL()).respond(out, parser, client_session, cookie, request); } else if( defaultPage != null ){ - defaultPage.respond(out, client_info, client_session, cookie, request); + defaultPage.respond(out, parser, client_session, cookie, request); } else{ out.setStatusCode( 404 ); @@ -279,7 +276,7 @@ public class HttpServer extends ThreadedTCPNetworkServer{ } try{ - logger.fine("Conection Closed!!!"); + logger.fine("Connection Closed!!!"); out.close(); in.close(); socket.close(); diff --git a/src/zutil/net/upnp/UPnPMediaServer.java b/src/zutil/net/upnp/UPnPMediaServer.java index 683eb34..b140bcd 100644 --- a/src/zutil/net/upnp/UPnPMediaServer.java +++ b/src/zutil/net/upnp/UPnPMediaServer.java @@ -25,6 +25,7 @@ package zutil.net.upnp; import java.util.Map; import java.util.UUID; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPrintStream; /** @@ -43,7 +44,7 @@ public class UPnPMediaServer extends UPnPRootDevice{ url = location; } - public void respond(HttpPrintStream out, Map clientInfo, + public void respond(HttpPrintStream out, HttpHeaderParser clientInfo, Map session, Map cookie, Map request) { diff --git a/src/zutil/net/upnp/services/UPnPContentDirectory.java b/src/zutil/net/upnp/services/UPnPContentDirectory.java index 5b0a8f7..bf12188 100644 --- a/src/zutil/net/upnp/services/UPnPContentDirectory.java +++ b/src/zutil/net/upnp/services/UPnPContentDirectory.java @@ -30,6 +30,7 @@ import java.util.Map; import org.dom4j.DocumentException; import zutil.io.file.FileUtil; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPage; import zutil.net.http.HttpPrintStream; import zutil.net.upnp.UPnPService; @@ -151,7 +152,7 @@ public class UPnPContentDirectory implements UPnPService, HttpPage, WSInterface @WSDisabled - public void respond(HttpPrintStream out, Map clientInfo, + public void respond(HttpPrintStream out, HttpHeaderParser clientInfo, Map session, Map cookie, Map request) { diff --git a/src/zutil/net/ws/rest/RestHttpPage.java b/src/zutil/net/ws/rest/RestHttpPage.java index 6851f8b..ee68495 100644 --- a/src/zutil/net/ws/rest/RestHttpPage.java +++ b/src/zutil/net/ws/rest/RestHttpPage.java @@ -22,8 +22,15 @@ package zutil.net.ws.rest; +import zutil.converters.Converter; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPage; import zutil.net.http.HttpPrintStream; +import zutil.net.http.HttpURL; +import zutil.net.ws.WSInterface; +import zutil.net.ws.WSMethodDef; +import zutil.net.ws.WSParameterDef; +import zutil.net.ws.WebServiceDef; import java.util.Map; @@ -31,12 +38,49 @@ import java.util.Map; * User: Ziver */ public class RestHttpPage implements HttpPage { + + /** The object that the functions will be invoked from **/ + private WebServiceDef wsDef; + /** This instance of the web service class is used if session is disabled **/ + private WSInterface ws; + + + public RestHttpPage( WSInterface wsObject ){ + this.ws = wsObject; + this.wsDef = new WebServiceDef(ws.getClass()); + } + + @Override public void respond(HttpPrintStream out, - Map client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request) { + execute(request); + } + + + private void execute(Map input){ + + } + + private Object[] prepareInputParams(WSMethodDef method, Map input){ + Object[] inputParams = new Object[method.getInputCount()]; + + // Get the parameter values + for(int i=0; i client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request) { diff --git a/src/zutil/parser/wsdl/WSDLHttpPage.java b/src/zutil/parser/wsdl/WSDLHttpPage.java index b70322d..314a8c4 100644 --- a/src/zutil/parser/wsdl/WSDLHttpPage.java +++ b/src/zutil/parser/wsdl/WSDLHttpPage.java @@ -22,6 +22,7 @@ package zutil.parser.wsdl; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPage; import zutil.net.http.HttpPrintStream; import zutil.net.ws.WebServiceDef; @@ -40,7 +41,7 @@ public class WSDLHttpPage implements HttpPage { } public void respond(HttpPrintStream out, - Map client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request) { diff --git a/src/zutil/test/HTTPGuessTheNumber.java b/src/zutil/test/HTTPGuessTheNumber.java index 6834d86..abd2e85 100644 --- a/src/zutil/test/HTTPGuessTheNumber.java +++ b/src/zutil/test/HTTPGuessTheNumber.java @@ -25,6 +25,7 @@ package zutil.test; import java.io.IOException; import java.util.Map; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPage; import zutil.net.http.HttpPrintStream; import zutil.net.http.HttpServer; @@ -40,7 +41,7 @@ public class HTTPGuessTheNumber implements HttpPage{ } public void respond(HttpPrintStream out, - Map client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request) { diff --git a/src/zutil/test/HTTPUploaderTest.java b/src/zutil/test/HTTPUploaderTest.java index 324f509..ed0f718 100644 --- a/src/zutil/test/HTTPUploaderTest.java +++ b/src/zutil/test/HTTPUploaderTest.java @@ -25,6 +25,7 @@ package zutil.test; import java.io.IOException; import java.util.Map; +import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpPage; import zutil.net.http.HttpPrintStream; import zutil.net.http.HttpServer; @@ -40,7 +41,7 @@ public class HTTPUploaderTest implements HttpPage{ } public void respond(HttpPrintStream out, - Map client_info, + HttpHeaderParser client_info, Map session, Map cookie, Map request) {