Author: hlship
Date: Wed Nov 30 19:24:06 2005
New Revision: 350126

URL: http://svn.apache.org/viewcvs?rev=350126&view=rev
Log:
TAPESTRY-776: URLs for portlet links and forms are null

Modified:
    
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
    
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLink.java
    
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java
    
jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletLink.java
    jakarta/tapestry/trunk/status.xml

Modified: 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java?rev=350126&r1=350125&r2=350126&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
 (original)
+++ 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
 Wed Nov 30 19:24:06 2005
@@ -100,17 +100,7 @@
     public ILink constructLink(IEngineService service, boolean post, Map 
parameters,
             boolean stateful)
     {
-        Defense.notNull(service, "service");
-        Defense.notNull(parameters, "parameters");
-
-        String serviceName = service.getName();
-
-        if (serviceName == null)
-            throw new 
ApplicationRuntimeException(ImplMessages.serviceNameIsNull());
-
-        parameters.put(ServiceConstants.SERVICE, serviceName);
-
-        squeezeServiceParameters(parameters);
+        finalizeParameters(service, parameters);
 
         IEngine engine = _requestCycle.getEngine();
 
@@ -126,6 +116,21 @@
 
         return new EngineServiceLink(_requestCycle, fullServletPath, 
engine.getOutputEncoding(),
                 _codec, _request, parameters, stateful);
+    }
+
+    protected void finalizeParameters(IEngineService service, Map parameters)
+    {
+        Defense.notNull(service, "service");
+        Defense.notNull(parameters, "parameters");
+
+        String serviceName = service.getName();
+
+        if (serviceName == null)
+            throw new 
ApplicationRuntimeException(ImplMessages.serviceNameIsNull());
+
+        parameters.put(ServiceConstants.SERVICE, serviceName);
+
+        squeezeServiceParameters(parameters);
     }
 
     public ServiceEncoder[] getServiceEncoders()

Modified: 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLink.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLink.java?rev=350126&r1=350125&r2=350126&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLink.java
 (original)
+++ 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLink.java
 Wed Nov 30 19:24:06 2005
@@ -118,10 +118,12 @@
         }
     }
 
-    public String getURL(String scheme, String server, int port, String 
anchor, boolean includeParameters)
+    public String getURL(String scheme, String server, int port, String anchor,
+            boolean includeParameters)
     {
-        // TODO Auto-generated method stub
-        return null;
+        // Ignore scheme, server and port ... those are under the control of 
the portlet container.
+
+        return getURL(anchor, includeParameters);
     }
 
     public String getAbsoluteURL()

Modified: 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java?rev=350126&r1=350125&r2=350126&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java
 (original)
+++ 
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java
 Wed Nov 30 19:24:06 2005
@@ -44,11 +44,10 @@
         _renderResponse = renderResponse;
     }
 
-    public ILink constructLink(IEngineService service, boolean post, Map 
parameters, boolean stateful)
+    public ILink constructLink(IEngineService service, boolean post, Map 
parameters,
+            boolean stateful)
     {
-        Defense.notNull(parameters, "parameters");
-
-        squeezeServiceParameters(parameters);
+        finalizeParameters(service, parameters);
 
         PortletURL url = _renderResponse.createActionURL();
 

Modified: 
jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletLink.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletLink.java?rev=350126&r1=350125&r2=350126&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletLink.java
 (original)
+++ 
jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletLink.java
 Wed Nov 30 19:24:06 2005
@@ -190,17 +190,48 @@
 
         verifyControls();
     }
-    
+
+    public void testGetURLLongForm()
+    {
+        IRequestCycle cycle = newCycle();
+        PortletURL url = newPortletURL();
+
+        QueryParameterMap parameters = (QueryParameterMap) 
newMock(QueryParameterMap.class);
+
+        parameters.getParameterNames();
+        setReturnValue(parameters, new String[]
+        { "page" });
+
+        parameters.getParameterValues("page");
+        String[] values = new String[]
+        { "View" };
+        setReturnValue(parameters, values);
+
+        url.setParameter("page", values);
+
+        replayControls();
+
+        ILink link = new PortletLink(cycle, url, parameters, false);
+
+        assertEquals("EasyMock for interface javax.portlet.PortletURL#anchor", 
link.getURL(
+                "scheme",
+                "server",
+                99,
+                "anchor",
+                true));
+
+        verifyControls();
+    }
+
     public void testGetURLUnencoding()
     {
         IRequestCycle cycle = newCycle();
         PortletURL url = new PortletURLFixture("this=foo&that=bar");
 
-        MockControl control = newControl(QueryParameterMap.class);
-        QueryParameterMap parameters = (QueryParameterMap) control.getMock();
+        QueryParameterMap parameters = (QueryParameterMap) 
newMock(QueryParameterMap.class);
 
         parameters.getParameterNames();
-        control.setReturnValue(new String[0]);
+        setReturnValue(parameters, new String[0]);
 
         replayControls();
 
@@ -209,7 +240,7 @@
         assertEquals("this=foo&that=bar", link.getURL());
 
         verifyControls();
-    }    
+    }
 
     public void testGetURLIncludeParameters()
     {

Modified: jakarta/tapestry/trunk/status.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=350126&r1=350125&r2=350126&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Wed Nov 30 19:24:06 2005
@@ -69,6 +69,7 @@
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-275" due-to="Igor 
Grimaylo">Single quotes in a localization of DatePicker strings causes a 
failure</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-701">NPE creating a 
link from pageValidate() when there are client-persistent properties with page 
scope</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-607">Output encoding 
problem with some versions of Tomcat 5</action>
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-776">URLs for portlet 
links and forms are null</action>
     </release>
     <release version="4.0-beta-13" date="Nov 12 2005">
       <action type="update" dev="HLS">Switch to HiveMind 1.1 (final)</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to