Author: adrianc
Date: Wed Oct 23 19:35:17 2013
New Revision: 1535129

URL: http://svn.apache.org/r1535129
Log:
The RequestHandler.makeLink method uses the new URL generation classes.

I tried to preserve the complicated boolean logic in the replaced block of 
code, but if I got something wrong, just leave a message on the dev mailing 
list.

Modified:
    
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java

Modified: 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1535129&r1=1535128&r2=1535129&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java 
(original)
+++ 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java 
Wed Oct 23 19:35:17 2013
@@ -20,6 +20,7 @@ package org.ofbiz.webapp.control;
 
 import static org.ofbiz.base.util.UtilGenerics.checkMap;
 
+import java.io.IOException;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.net.URL;
@@ -49,6 +50,7 @@ import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
+import org.ofbiz.webapp.OfbizUrlBuilder;
 import org.ofbiz.webapp.event.EventFactory;
 import org.ofbiz.webapp.event.EventHandler;
 import org.ofbiz.webapp.event.EventHandlerException;
@@ -57,7 +59,6 @@ import org.ofbiz.webapp.view.ViewFactory
 import org.ofbiz.webapp.view.ViewHandler;
 import org.ofbiz.webapp.view.ViewHandlerException;
 import org.ofbiz.webapp.website.WebSiteWorker;
-import org.ofbiz.webapp.website.WebSiteProperties;
 import org.owasp.esapi.errors.EncodingException;
 
 /**
@@ -1112,55 +1113,40 @@ public class RequestHandler {
     }
 
     public String makeLink(HttpServletRequest request, HttpServletResponse 
response, String url, boolean fullPath, boolean secure, boolean encode) {
-        WebSiteProperties webSiteProps = (WebSiteProperties) 
request.getAttribute("_WEBSITE_PROPS_");
-        if (webSiteProps == null) {
+        OfbizUrlBuilder builder = (OfbizUrlBuilder) 
request.getAttribute("_OFBIZ_URL_BUILDER_");
+        if (builder == null) {
             try {
-                webSiteProps = WebSiteProperties.from(request);
-                request.setAttribute("_WEBSITE_PROPS_", webSiteProps);
+                builder = OfbizUrlBuilder.from(request);
+                request.setAttribute("_OFBIZ_URL_BUILDER_", builder);
             } catch (GenericEntityException e) {
                 // If the entity engine is throwing exceptions, then there is 
no point in continuing.
                 Debug.logError(e, "Exception thrown while getting web site 
properties: ", module);
                 return null;
-            }
-        }
-        String requestUri = RequestHandler.getRequestUri(url);
-        ConfigXMLReader.RequestMap requestMap = null;
-        if (requestUri != null) {
-            try {
-                requestMap = 
getControllerConfig().getRequestMapMap().get(requestUri);
             } catch (WebAppConfigurationException e) {
                 // If we can't read the controller.xml file, then there is no 
point in continuing.
                 Debug.logError(e, "Exception thrown while parsing 
controller.xml file: ", module);
                 return null;
             }
         }
-        StringBuilder newURL = new StringBuilder();
         boolean didFullSecure = false;
         boolean didFullStandard = false;
-        if (requestMap != null && (webSiteProps.getEnableHttps() || fullPath 
|| secure)) {
-            if (Debug.verboseOn()) Debug.logVerbose("In makeLink requestUri=" 
+ requestUri, module);
-            if (secure || (webSiteProps.getEnableHttps() && 
requestMap.securityHttps && !request.isSecure())) {
-                String server = webSiteProps.getHttpsHost();
-                if (server.isEmpty()) {
-                    server = request.getServerName();
-                }
-                newURL.append("https://";);
-                newURL.append(server);
-                if (!webSiteProps.getHttpsPort().isEmpty()) {
-                    newURL.append(":").append(webSiteProps.getHttpsPort());
-                }
-                didFullSecure = true;
-            } else if (fullPath || (webSiteProps.getEnableHttps() && 
!requestMap.securityHttps && request.isSecure())) {
-                String server = webSiteProps.getHttpHost();
-                if (server.isEmpty()) {
-                    server = request.getServerName();
-                }
-                newURL.append("http://";);
-                newURL.append(server);
-                if (!webSiteProps.getHttpPort().isEmpty()) {
-                    newURL.append(":").append(webSiteProps.getHttpPort());
+        StringBuilder newURL = new StringBuilder(250);
+        if (fullPath) {
+            try {
+                boolean usesHttps = builder.buildHostPart(newURL, url, secure);
+                if (usesHttps) {
+                    didFullSecure = true;
+                } else {
+                    didFullStandard = true;
                 }
-                didFullStandard = true;
+            } catch (WebAppConfigurationException e) {
+                // If we can't read the controller.xml file, then there is no 
point in continuing.
+                Debug.logError(e, "Exception thrown while parsing 
controller.xml file: ", module);
+                return null;
+            } catch (IOException e) {
+                // If we can't write to the buffer, then there is no point in 
continuing.
+                Debug.logError(e, "Exception thrown while appending to 
StringBuilder: ", module);
+                return null;
             }
         }
         // create the path to the control servlet


Reply via email to