Author: jkuhnert
Date: Sat May 19 14:15:16 2007
New Revision: 539802
URL: http://svn.apache.org/viewvc?view=rev&rev=539802
Log:
Fixes TAPESTRY-1462.
Also did some slight profiling optimizations.
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.globals.xml
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.url.xml
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/coerce/ValueConverterImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/EngineServiceLink.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/ServiceEncodingImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/html/Shell.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/QueryParameterMap.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/EngineServiceLinkTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/TestServiceEncoding.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/CookieSourceTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java
tapestry/tapestry4/trunk/tapestry-portlet/src/java/org/apache/tapestry/portlet/PortletAssetLinkFactoryImpl.java
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
(original)
+++
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
Sat May 19 14:15:16 2007
@@ -95,7 +95,7 @@
<div jwcid="@Locale" selected="ognl:currentSelected">
<p>
<a jwcid="[EMAIL PROTECTED]" listener="listener:selectLocale"
parameters="ognl:{currLocale.language, currLocale.country, currLocale.variant}"
-
updateComponents="ognl:{'localeDetail',page.components.localeList.clientId}"
stateful="ognl:false">
+
updateComponents="ognl:{'localeDetail',page.components.localeList.clientId}"
stateful="false">
<span jwcid="@Insert" value="ognl:currLocale.toString()" />
</a>
</p>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.globals.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.globals.xml?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.globals.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.globals.xml
Sat May 19 14:15:16 2007
@@ -48,7 +48,6 @@
<construct service-id="RequestGlobals" property="responseBuilder"/>
</invoke-factory>
- <interceptor service-id="hivemind.LoggingInterceptor" />
</service-point>
<service-point id="HttpServletRequest"
interface="javax.servlet.http.HttpServletRequest">
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.url.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.url.xml?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.url.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.url.xml
Sat May 19 14:15:16 2007
@@ -28,11 +28,9 @@
<set-object property="dataSqueezer"
value="infrastructure:dataSqueezer"/>
<set-configuration property="contributions"
configuration-id="ServiceEncoders"/>
<set-object property="servletPath"
value="app-property:org.apache.tapestry.servlet-path"/>
- <set-object property="contextPath" value="infrastructure:contextPath"/>
<set-object property="request" value="infrastructure:request"/>
<set-object property="requestCycle"
value="infrastructure:requestCycle"/>
- <set-service property="persistenceStrategySource"
- service-id="tapestry.persist.PropertyPersistenceStrategySource"/>
+ <set-service property="persistenceStrategySource"
service-id="tapestry.persist.PropertyPersistenceStrategySource"/>
</construct>
</invoke-factory>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
Sat May 19 14:15:16 2007
@@ -580,7 +580,7 @@
if (_components == null)
return EMPTY_MAP;
- return Collections.unmodifiableMap(_components);
+ return _components;
}
@@ -589,7 +589,7 @@
if (_assets == null)
return EMPTY_MAP;
- return Collections.unmodifiableMap(_assets);
+ return _assets;
}
public IAsset getAsset(String name)
@@ -644,9 +644,9 @@
public Map getBindings()
{
if (_bindings == null)
- return Collections.EMPTY_MAP;
+ return EMPTY_MAP;
- return Collections.unmodifiableMap(_bindings);
+ return _bindings;
}
/**
@@ -664,8 +664,7 @@
// getMessages(), etc.
if (_listeners == null)
- _listeners =
getPage().getEngine().getInfrastructure().getListenerMapSource()
- .getListenerMapForObject(this);
+ _listeners =
getPage().getEngine().getInfrastructure().getListenerMapSource().getListenerMapForObject(this);
return _listeners;
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/coerce/ValueConverterImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/coerce/ValueConverterImpl.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/coerce/ValueConverterImpl.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/coerce/ValueConverterImpl.java
Sat May 19 14:15:16 2007
@@ -14,6 +14,10 @@
package org.apache.tapestry.coerce;
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.util.ConstructorUtils;
+import org.apache.hivemind.util.Defense;
+
import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import java.util.HashMap;
@@ -21,10 +25,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.hivemind.ApplicationRuntimeException;
-import org.apache.hivemind.util.ConstructorUtils;
-import org.apache.hivemind.util.Defense;
-
/**
* Implementation of [EMAIL PROTECTED]
org.apache.tapestry.coerce.ValueConverter}. Selects an appropriate type
* converter and delegates to it.
@@ -170,8 +170,7 @@
String valueAsString = value.toString();
- return (Number) ConstructorUtils.invokeConstructor(targetType, new
Object[]
- { valueAsString });
+ return (Number) ConstructorUtils.invokeConstructor(targetType, new
Object[] { valueAsString });
}
private Class convertType(Class possiblePrimitiveType)
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/EngineServiceLink.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/EngineServiceLink.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/EngineServiceLink.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/EngineServiceLink.java
Sat May 19 14:15:16 2007
@@ -23,7 +23,6 @@
import org.apache.tapestry.web.WebRequest;
import java.io.UnsupportedEncodingException;
-import java.util.Map;
/**
* A EngineServiceLink represents a possible action within the client web
browser; either clicking a
@@ -77,7 +76,7 @@
*/
public EngineServiceLink(String servletPath, String encoding,
- URLCodec codec, WebRequest request, Map parameters, boolean
stateful)
+ URLCodec codec, WebRequest request, QueryParameterMap parameters,
boolean stateful)
{
Defense.notNull(servletPath, "servletPath");
Defense.notNull(encoding, "encoding");
@@ -90,7 +89,7 @@
_codec = codec;
_request = request;
_stateful = stateful;
- _parameters = new QueryParameterMap(parameters);
+ _parameters = parameters;
}
/**
@@ -114,7 +113,7 @@
*/
public EngineServiceLink(IRequestCycle cycle, String servletPath, String
encoding,
- URLCodec codec, WebRequest request, Map parameters, boolean
stateful)
+ URLCodec codec, WebRequest request, QueryParameterMap parameters,
boolean stateful)
{
Defense.notNull(cycle, "cycle");
Defense.notNull(servletPath, "servletPath");
@@ -129,7 +128,7 @@
_codec = codec;
_request = request;
_stateful = stateful;
- _parameters = new QueryParameterMap(parameters);
+ _parameters = parameters;
}
public String getURL()
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/ServiceEncodingImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/ServiceEncodingImpl.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/ServiceEncodingImpl.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/ServiceEncodingImpl.java
Sat May 19 14:15:16 2007
@@ -14,8 +14,6 @@
package org.apache.tapestry.engine;
-import java.util.Map;
-
import org.apache.hivemind.util.Defense;
import org.apache.tapestry.util.QueryParameterMap;
@@ -50,9 +48,9 @@
this(servletPath, null, new QueryParameterMap());
}
- public ServiceEncodingImpl(String servletPath, Map parametersMap)
+ public ServiceEncodingImpl(String servletPath, QueryParameterMap
parametersMap)
{
- this(servletPath, null, new QueryParameterMap(parametersMap));
+ this(servletPath, null, parametersMap);
}
public ServiceEncodingImpl(String servletPath, String pathInfo,
QueryParameterMap parameters)
@@ -62,7 +60,6 @@
_servletPath = servletPath;
_pathInfo = pathInfo;
-
_parameters = parameters;
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/html/Shell.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/html/Shell.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/html/Shell.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/html/Shell.java
Sat May 19 14:15:16 2007
@@ -20,6 +20,7 @@
import org.apache.tapestry.coerce.ValueConverter;
import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
+import org.apache.tapestry.services.ResponseBuilder;
import org.apache.tapestry.spec.IApplicationSpecification;
import java.util.ArrayList;
@@ -50,8 +51,9 @@
long startTime = System.currentTimeMillis();
boolean rewinding = cycle.isRewinding();
+ boolean dynamic = getBuilder().isDynamic();
- if (!rewinding)
+ if (!rewinding && !dynamic)
{
writeDocType(writer, cycle);
@@ -119,11 +121,11 @@
// Render the body, the actual page content
- IMarkupWriter nested = writer.getNestedWriter();
+ IMarkupWriter nested = !dynamic ? writer.getNestedWriter() : writer;
renderBody(nested, cycle);
- if (!rewinding)
+ if (!rewinding && !dynamic)
{
List relations = getRelations();
if (relations != null)
@@ -136,9 +138,10 @@
writer.end(); // head
}
- nested.close();
+ if (!dynamic)
+ nested.close();
- if (!rewinding)
+ if (!rewinding && !dynamic)
{
writer.end(); // html
writer.println();
@@ -310,7 +313,9 @@
public abstract boolean getRenderContentType();
public abstract boolean isDisableTapestryMeta();
-
+
+ public abstract ResponseBuilder getBuilder();
+
/** @since 4.0 */
public abstract ValueConverter getValueConverter();
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
Sat May 19 14:15:16 2007
@@ -22,6 +22,7 @@
import org.apache.tapestry.util.ScriptUtils;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -185,9 +186,11 @@
*/
protected void renderAsyncParams(IMarkupWriter writer, IRequestCycle
cycle, DirectLink link)
{
+ List comps = link.getUpdateComponents();
+
if (!link.isAsync() && !link.isJson()
- && (link.getUpdateComponents() == null
- || link.getUpdateComponents().size() <= 0))
+ && (comps == null
+ || comps.size() <= 0))
return;
if (!link.isParameterBound("onclick") &&
!link.isParameterBound("onClick")) {
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
Sat May 19 14:15:16 2007
@@ -85,11 +85,13 @@
*/
public void renderComponent(IRequestCycle cycle, IComponent component)
{
- if (cycle.isRewinding() ||
TapestryUtils.getOptionalPageRenderSupport(cycle) == null)
+ if (cycle.isRewinding())
return;
- Component icomp = Component.class.isInstance(component) ?
(Component)component : null;
- if (icomp != null && !icomp.hasEvents() &&
!IForm.class.isInstance(component))
+ if (Component.class.isInstance(component) &&
!((Component)component).hasEvents() && !IForm.class.isInstance(component))
+ return;
+
+ if (TapestryUtils.getOptionalPageRenderSupport(cycle) == null)
return;
// Don't render fields being pre-rendered, otherwise we'll render twice
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
Sat May 19 14:15:16 2007
@@ -14,10 +14,6 @@
package org.apache.tapestry.services.impl;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.apache.commons.codec.net.URLCodec;
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ErrorLog;
@@ -26,29 +22,27 @@
import org.apache.tapestry.IEngine;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
-import org.apache.tapestry.engine.EngineServiceLink;
-import org.apache.tapestry.engine.IEngineService;
-import org.apache.tapestry.engine.ILink;
-import org.apache.tapestry.engine.ServiceEncoder;
-import org.apache.tapestry.engine.ServiceEncoding;
-import org.apache.tapestry.engine.ServiceEncodingImpl;
+import org.apache.tapestry.engine.*;
import org.apache.tapestry.record.PropertyPersistenceStrategySource;
import org.apache.tapestry.services.DataSqueezer;
import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ServiceConstants;
+import org.apache.tapestry.util.QueryParameterMap;
import org.apache.tapestry.web.WebRequest;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* @author Howard M. Lewis Ship
* @since 4.0
*/
public class LinkFactoryImpl implements LinkFactory
{
-
- protected URLCodec _codec = new URLCodec();
-
- protected String _contextPath;
+ protected URLCodec _codec = new URLCodec();
+
protected PropertyPersistenceStrategySource _persistenceStrategySource;
protected IRequestCycle _requestCycle;
@@ -71,7 +65,6 @@
private final Object[] _empty = new Object[0];
-
public void initializeService()
{
Orderer orderer = new Orderer(_errorLog, "encoder");
@@ -105,25 +98,27 @@
IEngine engine = _requestCycle.getEngine();
- ServiceEncoding serviceEncoding = createServiceEncoding(parameters);
-
+ QueryParameterMap qmap = new QueryParameterMap(parameters);
+
+ ServiceEncoding serviceEncoding = createServiceEncoding(qmap);
+
// Give persistent property strategies a chance to store extra data
// into the link.
if (stateful)
_persistenceStrategySource.addParametersForPersistentProperties(serviceEncoding,
post);
- String fullServletPath = _contextPath +
serviceEncoding.getServletPath();
-
+ String fullServletPath = _request.getContextPath() +
serviceEncoding.getServletPath();
+
return new EngineServiceLink(_requestCycle, fullServletPath,
engine.getOutputEncoding(),
- _codec, _request, parameters, stateful);
+ _codec, _request, qmap, stateful);
}
protected void finalizeParameters(IEngineService service, Map parameters)
{
Defense.notNull(service, "service");
Defense.notNull(parameters, "parameters");
-
+
String serviceName = service.getName();
if (serviceName == null)
@@ -143,7 +138,7 @@
* Creates a new service encoding, and allows the encoders to modify it
before returning.
*/
- protected ServiceEncoding createServiceEncoding(Map parameters)
+ protected ServiceEncoding createServiceEncoding(QueryParameterMap
parameters)
{
ServiceEncodingImpl result = new ServiceEncodingImpl(_servletPath,
parameters);
@@ -164,10 +159,8 @@
if (serviceParameters == null)
return;
-
- String[] squeezed = squeeze(serviceParameters);
-
- parameters.put(ServiceConstants.PARAMETER, squeezed);
+
+ parameters.put(ServiceConstants.PARAMETER, squeeze(serviceParameters));
}
public Object[] extractListenerParameters(IRequestCycle cycle)
@@ -219,11 +212,6 @@
_servletPath = servletPath;
}
- public void setContextPath(String contextPath)
- {
- _contextPath = contextPath;
- }
-
public void setRequest(WebRequest request)
{
_request = request;
@@ -234,10 +222,12 @@
* want to have a hand at encoding data into URLs. If that comes to pass,
we'll need to
* implement an event coordinator/listener combo to let implementations
know about links being
* generated.
+ *
+ * @param persistenceStrategySource
+ * The persistent strategy to use.
*/
- public void setPersistenceStrategySource(
- PropertyPersistenceStrategySource persistenceStrategySource)
+ public void setPersistenceStrategySource(PropertyPersistenceStrategySource
persistenceStrategySource)
{
_persistenceStrategySource = persistenceStrategySource;
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/QueryParameterMap.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/QueryParameterMap.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/QueryParameterMap.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/QueryParameterMap.java
Sat May 19 14:15:16 2007
@@ -14,13 +14,13 @@
package org.apache.tapestry.util;
+import org.apache.hivemind.util.Defense;
+
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
-import org.apache.hivemind.util.Defense;
-
/**
* A wrapper around a Map that stores query parameter values. Map keys are
* strings. Map values can be simple strings or array of string (or null).
@@ -30,7 +30,6 @@
*/
public class QueryParameterMap
{
-
private final Map _parameters;
public QueryParameterMap()
@@ -119,10 +118,10 @@
{
int count = _parameters.size();
- String[] result = (String[]) _parameters.keySet().toArray(
- new String[count]);
+ String[] result = (String[]) _parameters.keySet().toArray(new
String[count]);
- if (!TreeMap.class.isInstance(_parameters)) Arrays.sort(result);
+ if (!TreeMap.class.isInstance(_parameters))
+ Arrays.sort(result);
return result;
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/EngineServiceLinkTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/EngineServiceLinkTest.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/EngineServiceLinkTest.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/EngineServiceLinkTest.java
Sat May 19 14:15:16 2007
@@ -14,15 +14,16 @@
package org.apache.tapestry.engine;
-import java.util.HashMap;
-import java.util.Map;
-
import org.apache.commons.codec.net.URLCodec;
import org.apache.tapestry.BaseComponentTestCase;
import org.apache.tapestry.services.ServiceConstants;
+import org.apache.tapestry.util.QueryParameterMap;
import org.apache.tapestry.web.WebRequest;
import org.testng.annotations.Test;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Tests for [EMAIL PROTECTED] org.apache.tapestry.engine.EngineServiceLink}.
*
@@ -36,14 +37,14 @@
private static final String ENCODING = "utf-8";
- private Map buildParameters(String serviceName, String[] serviceParameters)
+ private QueryParameterMap buildParameters(String serviceName, String[]
serviceParameters)
{
Map result = new HashMap();
result.put(ServiceConstants.SERVICE, serviceName);
result.put(ServiceConstants.PARAMETER, serviceParameters);
- return result;
+ return new QueryParameterMap(result);
}
/** @since 4.0 */
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/TestServiceEncoding.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/TestServiceEncoding.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/TestServiceEncoding.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/TestServiceEncoding.java
Sat May 19 14:15:16 2007
@@ -14,12 +14,13 @@
package org.apache.tapestry.engine;
-import java.util.HashMap;
-import java.util.Map;
-
import org.apache.tapestry.BaseComponentTestCase;
+import org.apache.tapestry.util.QueryParameterMap;
import org.testng.annotations.Test;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Tests for [EMAIL PROTECTED] org.apache.tapestry.engine.ServiceEncodingImpl}.
*
@@ -45,7 +46,7 @@
{
Map parameters = new HashMap();
- ServiceEncodingImpl se = new ServiceEncodingImpl("/foo", parameters);
+ ServiceEncodingImpl se = new ServiceEncodingImpl("/foo", new
QueryParameterMap(parameters));
se.setParameterValue("foo", "bar");
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java
Sat May 19 14:15:16 2007
@@ -14,17 +14,13 @@
package org.apache.tapestry.html;
+import org.apache.tapestry.*;
+import org.apache.tapestry.services.ResponseBuilder;
import static org.easymock.EasyMock.expect;
+import org.testng.annotations.Test;
import java.util.List;
-import org.apache.tapestry.BaseComponentTestCase;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.NestedMarkupWriter;
-import org.testng.annotations.Test;
-
/**
* Tests for the [EMAIL PROTECTED] org.apache.tapestry.html.Shell}
component.
*
@@ -44,17 +40,18 @@
{
IMarkupWriter writer = newWriter();
NestedMarkupWriter nested = newNestedWriter();
-
+ ResponseBuilder builder = newMock(ResponseBuilder.class);
IRequestCycle cycle = newCycle(true, writer);
IRender body = newRender();
- Shell shell = newInstance(Shell.class, null);
+ Shell shell = (Shell) newInstance(Shell.class, "builder", builder);
expect(cycle.renderStackPush(shell)).andReturn(shell);
shell.addBody(body);
trainStoreShellInCycle(cycle, shell);
+ expect(builder.isDynamic()).andReturn(false);
trainGetNestedWriter(writer, nested);
body.render(nested, cycle);
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/CookieSourceTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/CookieSourceTest.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/CookieSourceTest.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/CookieSourceTest.java
Sat May 19 14:15:16 2007
@@ -14,23 +14,18 @@
package org.apache.tapestry.services.impl;
-import static org.easymock.EasyMock.expect;
-
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.tapestry.BaseComponentTestCase;
+import static org.easymock.EasyMock.expect;
import org.testng.annotations.Test;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
/**
- * Tests for [EMAIL PROTECTED]
org.apache.tapestry.services.impl.CookieSourceImpl}.
- *
- * @author Howard Lewis Ship
- * @since 4.0
+ * Tests for [EMAIL PROTECTED]
org.apache.tapestry.services.impl.CookieSourceImpl}.
*/
@Test
public class CookieSourceTest extends BaseComponentTestCase
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java
Sat May 19 14:15:16 2007
@@ -14,15 +14,6 @@
package org.apache.tapestry.services.impl;
-import static org.easymock.EasyMock.expect;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ErrorLog;
import org.apache.tapestry.BaseComponentTestCase;
@@ -39,8 +30,12 @@
import org.apache.tapestry.services.ServiceConstants;
import org.apache.tapestry.util.io.DataSqueezerUtil;
import org.apache.tapestry.web.WebRequest;
+import static org.easymock.EasyMock.checkOrder;
+import static org.easymock.EasyMock.expect;
import org.testng.annotations.Test;
+import java.util.*;
+
/**
* Tests for [EMAIL PROTECTED]
org.apache.tapestry.services.impl.LinkFactoryImpl}.
*
@@ -112,10 +107,20 @@
expect(engine.getOutputEncoding()).andReturn(outputEncoding);
}
- public void testNoEncoders()
+ protected WebRequest newRequest(String contextPath)
{
- ErrorLog log = newErrorLog();
WebRequest request = newRequest();
+ checkOrder(request, false);
+
+ expect(request.getContextPath()).andReturn(contextPath).anyTimes();
+
+ return request;
+ }
+
+ public void test_No_Encoders()
+ {
+ ErrorLog log = newErrorLog();
+ WebRequest request = newRequest("/context");
IEngine engine = newEngine();
IRequestCycle cycle = newCycle();
IEngineService service = newService("myservice");
@@ -129,7 +134,6 @@
lf.setContributions(Collections.EMPTY_LIST);
lf.setErrorLog(log);
- lf.setContextPath("/context");
lf.setServletPath("/app");
lf.setRequest(request);
lf.setRequestCycle(cycle);
@@ -154,10 +158,10 @@
return service;
}
- public void testStatefulRequest()
+ public void test_Stateful_Request()
{
ErrorLog log = newErrorLog();
- WebRequest request = newRequest();
+ WebRequest request = newRequest("/context");
IEngine engine = newEngine();
IEngineService service = newService("myservice");
IRequestCycle cycle = newCycle();
@@ -172,7 +176,6 @@
lf.setContributions(Collections.EMPTY_LIST);
lf.setErrorLog(log);
- lf.setContextPath("/context");
lf.setServletPath("/app");
lf.setRequest(request);
lf.setPersistenceStrategySource(new MockSource());
@@ -189,9 +192,9 @@
verify();
}
- public void testNoopEncoders()
+ public void test_Noop_Encoders()
{
- WebRequest request = newRequest();
+ WebRequest request = newRequest("/context");
IRequestCycle cycle = newCycle();
ErrorLog log = newErrorLog();
IEngine engine = newEngine();
@@ -210,7 +213,6 @@
lf.setContributions(l);
lf.setErrorLog(log);
- lf.setContextPath("/context");
lf.setServletPath("/app");
lf.setRequest(request);
lf.setRequestCycle(cycle);
@@ -226,9 +228,9 @@
verify();
}
- public void testActiveEncoder()
+ public void test_Active_Encoder()
{
- WebRequest request = newRequest();
+ WebRequest request = newRequest("/context");
IRequestCycle cycle = newCycle();
ErrorLog log = newErrorLog();
IEngineService service = newService("page");
@@ -249,7 +251,6 @@
lf.setContributions(l);
lf.setErrorLog(log);
- lf.setContextPath("/context");
lf.setServletPath("/app");
lf.setRequest(request);
lf.setRequestCycle(cycle);
@@ -266,7 +267,7 @@
verify();
}
- public void testServiceNameIsNull()
+ public void test_Service_Name_Is_Null()
{
IEngineService service = newService(null);
@@ -289,9 +290,9 @@
verify();
}
- public void testWithServiceParameters()
+ public void test_With_Service_Parameters()
{
- WebRequest request = newRequest();
+ WebRequest request = newRequest("/context");
IRequestCycle cycle = newCycle();
ErrorLog log = newErrorLog();
IEngineService service = newService("external");
@@ -312,7 +313,6 @@
lf.setContributions(l);
lf.setErrorLog(log);
- lf.setContextPath("/context");
lf.setServletPath("/app");
lf.setDataSqueezer(DataSqueezerUtil.createUnitTestSqueezer());
lf.setRequest(request);
Modified:
tapestry/tapestry4/trunk/tapestry-portlet/src/java/org/apache/tapestry/portlet/PortletAssetLinkFactoryImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-portlet/src/java/org/apache/tapestry/portlet/PortletAssetLinkFactoryImpl.java?view=diff&rev=539802&r1=539801&r2=539802
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-portlet/src/java/org/apache/tapestry/portlet/PortletAssetLinkFactoryImpl.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-portlet/src/java/org/apache/tapestry/portlet/PortletAssetLinkFactoryImpl.java
Sat May 19 14:15:16 2007
@@ -13,8 +13,6 @@
// limitations under the License.
package org.apache.tapestry.portlet;
-import java.util.Map;
-
import org.apache.tapestry.IEngine;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.engine.EngineServiceLink;
@@ -22,13 +20,15 @@
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.engine.ServiceEncoding;
import org.apache.tapestry.services.impl.LinkFactoryImpl;
+import org.apache.tapestry.util.QueryParameterMap;
+
+import java.util.Map;
/**
* Creates [EMAIL PROTECTED] EngineServiceLink}s that will re-encode asset
URL's
* using [EMAIL PROTECTED] IRequestCycle#encodeURL(String)}.
*
- * @author jkuhnert
*/
public class PortletAssetLinkFactoryImpl extends LinkFactoryImpl
{
@@ -39,8 +39,10 @@
finalizeParameters(service, parameters);
IEngine engine = _requestCycle.getEngine();
-
- ServiceEncoding serviceEncoding = createServiceEncoding(parameters);
+
+ QueryParameterMap qmap = new QueryParameterMap(parameters);
+
+ ServiceEncoding serviceEncoding = createServiceEncoding(qmap);
// Give persistent property strategies a chance to store extra data
// into the link.
@@ -48,9 +50,9 @@
if (stateful)
_persistenceStrategySource.addParametersForPersistentProperties(serviceEncoding,
post);
- String fullServletPath = _contextPath +
serviceEncoding.getServletPath();
+ String fullServletPath = _request.getContextPath() +
serviceEncoding.getServletPath();
return new EngineServiceLink(_requestCycle, fullServletPath,
engine.getOutputEncoding(),
- _codec, _request, parameters, stateful);
+ _codec, _request, qmap, stateful);
}
}