From: <sf...@us...> - 2008-03-27 09:28:34
|
Revision: 6252 http://smartfrog.svn.sourceforge.net/smartfrog/?rev=6252&view=rev Author: sfrits Date: 2008-03-27 02:28:27 -0700 (Thu, 27 Mar 2008) Log Message: ----------- HTTPRequest url was not properly parsed to extract SmartFrog specific rest information. Fixed to take care of that. Modified Paths: -------------- trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java Modified: trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java =================================================================== --- trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java 2008-03-27 09:24:03 UTC (rev 6251) +++ trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java 2008-03-27 09:28:27 UTC (rev 6252) @@ -126,6 +126,8 @@ // Extract smartfrog-specific rest information from the incoming request + String[] context = contextPath.replaceAll("(^/|/$)", "").split("/"); + // remove leading/trailing slashes from URI and explode on "/" String[] raw = requestURI.replaceAll("(^/|/$)", "").split("/"); @@ -133,30 +135,66 @@ if (raw.length < 2) throw new InvalidURIException("Insufficient information was supplied in the URI provided."); - targetHost = raw[0]; + if (context.length == 0) { + targetHost = raw[0]; + try { + targetPort = Integer.parseInt(raw[1]); + } + catch (NumberFormatException nfe) + { + throw new InvalidURIException("The port specified (" + raw[1] + ") could not be parsed as an integer."); + } + } else { + targetHost = raw[context.length]; + try { + targetPort = Integer.parseInt(raw[context.length+1]); + } + catch (NumberFormatException nfe) + { + throw new InvalidURIException("The port specified (" + raw[1] + ") could not be parsed as an integer."); + } + } - try + /*try { targetPort = Integer.parseInt(raw[1]); } catch (NumberFormatException nfe) { throw new InvalidURIException("The port specified (" + raw[1] + ") could not be parsed as an integer."); - } + }*/ + if (context.length == 0) { + // 2 parts means they're requesting the root context (i.e. an empty resource path) - if (raw.length == 2) - { - resourcePath = new String[]{}; - } - else - { - resourcePath = new String[raw.length - 2]; + if (raw.length == 2) + { + resourcePath = new String[]{}; + } + else + { + resourcePath = new String[raw.length - 2]; - for (int i = 2; i < raw.length; i++) + for (int i = 2; i < raw.length; i++) + { + resourcePath[i - 2] = raw[i]; + } + } + + } else { + if ((raw.length - context.length) == 2) { - resourcePath[i - 2] = raw[i]; + resourcePath = new String[]{}; } + else + { + resourcePath = new String[raw.length - (context.length + 2)]; + + for (int i = (context.length + 2) ; i < raw.length ; i++) + { + resourcePath[i - (context.length + 2)] = raw[i]; + } + } } // expand - Option to force recursion into a components description when @@ -534,8 +572,9 @@ Reference reference = new Reference(); - for (int i = 0; i < depth; i++) + for (int i = 0; i < depth; i++) { reference.addElement(ReferencePart.attrib(path[i])); + } return reference; } @@ -568,5 +607,5 @@ private final boolean followReferences; private final String targetHost; private final int targetPort; - private final String[] resourcePath; -} \ No newline at end of file + private String[] resourcePath = new String[]{}; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sf...@us...> - 2008-04-10 08:12:10
|
Revision: 6319 http://smartfrog.svn.sourceforge.net/smartfrog/?rev=6319&view=rev Author: sfrits Date: 2008-04-10 01:12:07 -0700 (Thu, 10 Apr 2008) Log Message: ----------- SFOS-768: Based on the responseType parameter from HTTPRequest url, response is in HTML fromat or XML. Modified Paths: -------------- trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java Modified: trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java =================================================================== --- trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java 2008-04-09 17:30:00 UTC (rev 6318) +++ trunk/core/components/rest/src/org/smartfrog/services/rest/servlets/HttpRestRequest.java 2008-04-10 08:12:07 UTC (rev 6319) @@ -205,6 +205,7 @@ // followReferences, for GET requests, should we transparently resolve through references param = servletRequest.getParameter("followReferences"); followReferences = ((param == null) || (param.length()==0)) || Boolean.valueOf(param).booleanValue(); + responseType = servletRequest.getParameter("responseType"); } /** @@ -439,6 +440,17 @@ } /** + * Ascertains whether the response should be in HTML format or XML format. + * Associated with the 'responseType' request parameter. + * + * @return <code>HTML</code> if HTML fromat is desired, <code>XML</code> if XML format is desired. + */ + public String getresponseType() + { + return responseType; + } + + /** * Returns the host name of the target SmartFrog Daemon specified in this request * * @return A string containing the name of the SmartFrog Daemon targetted by this request. @@ -605,6 +617,7 @@ // members for SmartFrog REST information private final boolean expandAll; private final boolean followReferences; + private String responseType = null; private final String targetHost; private final int targetPort; private String[] resourcePath = new String[]{}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |