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]