You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2010/02/25 18:35:40 UTC
svn commit: r916364 - in
/wicket/trunk/wicket/src/main/java/org/apache/wicket:
markup/transformer/AbstractTransformerBehavior.java
protocol/http/BufferedWebResponse.java
Author: knopp
Date: Thu Feb 25 17:35:40 2010
New Revision: 916364
URL: http://svn.apache.org/viewvc?rev=916364&view=rev
Log:
use proper buffered web response
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/AbstractTransformerBehavior.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/AbstractTransformerBehavior.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/AbstractTransformerBehavior.java?rev=916364&r1=916363&r2=916364&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/AbstractTransformerBehavior.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/AbstractTransformerBehavior.java Thu Feb 25 17:35:40 2010
@@ -22,7 +22,8 @@
import org.apache.wicket.behavior.AbstractBehavior;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.ng.request.cycle.RequestCycle;
-import org.apache.wicket.response.StringResponse;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.WebResponse;
/**
* A IBehavior which can be added to any component. It allows to post-process (transform) the markup
@@ -36,7 +37,7 @@
{
private static final long serialVersionUID = 1L;
- private Response webResponse;
+ private WebResponse webResponse;
/**
* Construct.
@@ -49,11 +50,20 @@
* Create a new response object which is used to store the markup generated by the child
* objects.
*
+ * @param originalResponse
+ *
* @return Response object. Must not be null
*/
- protected Response newResponse()
+ protected BufferedWebResponse newResponse(final Response originalResponse)
{
- return new StringResponse();
+ return new BufferedWebResponse()
+ {
+ @Override
+ public String encodeURL(CharSequence url)
+ {
+ return originalResponse.encodeURL(url);
+ }
+ };
}
/**
@@ -77,10 +87,10 @@
final RequestCycle requestCycle = RequestCycle.get();
// Temporarily replace the web response with a String response
- webResponse = requestCycle.getResponse();
+ webResponse = (WebResponse)requestCycle.getResponse();
// Create a new response object
- final Response response = newResponse();
+ final BufferedWebResponse response = newResponse(webResponse);
if (response == null)
{
throw new IllegalStateException("newResponse() must not return null");
@@ -100,11 +110,12 @@
try
{
- Response response = requestCycle.getResponse();
+ BufferedWebResponse response = (BufferedWebResponse)requestCycle.getResponse();
// Transform the data
- CharSequence output = transform(component, response.toString());
- webResponse.write(output);
+ CharSequence output = transform(component, response.getText());
+ response.setText(output);
+ response.writeTo(webResponse);
}
catch (Exception ex)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=916364&r1=916363&r2=916364&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java Thu Feb 25 17:35:40 2010
@@ -333,6 +333,45 @@
charSequenceAction.append(sequence);
}
+ /**
+ * Returns the text already written to this response.
+ *
+ * @return text
+ */
+ public CharSequence getText()
+ {
+ if (dataAction != null)
+ {
+ throw new IllegalStateException("write(byte[]) has already been called.");
+ }
+ if (charSequenceAction != null)
+ {
+ return charSequenceAction.builder;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Replaces the text in this response
+ *
+ * @param text
+ */
+ public void setText(CharSequence text)
+ {
+ if (dataAction != null)
+ {
+ throw new IllegalStateException("write(byte[]) has already been called.");
+ }
+ if (charSequenceAction != null)
+ {
+ charSequenceAction.builder.setLength(0);
+ }
+ write(text);
+ }
+
@Override
public void write(byte[] array)
{