You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by so...@apache.org on 2010/01/06 20:26:30 UTC
svn commit: r896630 - in /myfaces/core/trunk/impl/src:
main/java/org/apache/myfaces/application/
main/java/org/apache/myfaces/application/jsp/
main/java/org/apache/myfaces/lifecycle/
main/java/org/apache/myfaces/taglib/core/ main/java/org/apache/myface...
Author: sobryan
Date: Wed Jan 6 19:26:29 2010
New Revision: 896630
URL: http://svn.apache.org/viewvc?rev=896630&view=rev
Log:
MYFACES-2467: Move ViewDeclarationLanguage base classes and JSP implementations to shared
* Moved several impl classes to shared
* Removed many unnecessary references to the native servlet objects and instead changed them to use ExternalContext
Removed:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultViewHandlerSupport.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/InvalidViewIdException.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerSupport.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/ViewResponseWrapper.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/ViewDeclarationLanguageBase.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/DefaultViewHandlerSupportTest.java
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/SubviewTag.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/jsp/JspViewDeclarationLanguage.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/jsp/JspViewHandlerImplTest.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/FaceletTestCase.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java Wed Jan 6 19:26:29 2010
@@ -23,11 +23,11 @@
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
-import org.apache.myfaces.application.DefaultViewHandlerSupport.FacesServletMapping;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
import org.apache.myfaces.resource.ClassLoaderResourceLoader;
import org.apache.myfaces.resource.ExternalContextResourceLoader;
import org.apache.myfaces.resource.ResourceLoader;
+import org.apache.myfaces.shared_impl.application.FacesServletMapping;
/**
* A ResourceHandlerSupport implementation for use with standard Java Servlet engines,
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java Wed Jan 6 19:26:29 2010
@@ -44,6 +44,9 @@
import javax.faces.view.ViewMetadata;
import javax.servlet.http.HttpServletResponse;
+import org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport;
+import org.apache.myfaces.shared_impl.application.InvalidViewIdException;
+import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
import org.apache.myfaces.shared_impl.config.MyfacesConfig;
import org.apache.myfaces.shared_impl.renderkit.html.util.JavascriptUtils;
import org.apache.myfaces.view.facelets.StateWriter;
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java Wed Jan 6 19:26:29 2010
@@ -45,9 +45,9 @@
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.jstl.core.Config;
-import org.apache.myfaces.application.DefaultViewHandlerSupport;
-import org.apache.myfaces.application.InvalidViewIdException;
-import org.apache.myfaces.application.ViewHandlerSupport;
+import org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport;
+import org.apache.myfaces.shared_impl.application.InvalidViewIdException;
+import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
import org.apache.myfaces.shared_impl.config.MyfacesConfig;
import org.apache.myfaces.shared_impl.renderkit.html.util.JavascriptUtils;
@@ -406,7 +406,7 @@
// Final step - we output any content in the wrappedResponse response from above to the response,
// removing the wrappedResponse response from the request, we don't need it anymore
- ViewResponseWrapper afterViewTagResponse = (ViewResponseWrapper) externalContext.getRequestMap().get(
+ ServletViewResponseWrapper afterViewTagResponse = (ServletViewResponseWrapper) externalContext.getRequestMap().get(
AFTER_VIEW_TAG_CONTENT_PARAM);
externalContext.getRequestMap().remove(AFTER_VIEW_TAG_CONTENT_PARAM);
@@ -486,7 +486,7 @@
* @throws IOException
*/
private boolean buildView(ServletResponse response, ExternalContext externalContext, String viewId) throws IOException {
- ViewResponseWrapper wrappedResponse = new ViewResponseWrapper((HttpServletResponse) response);
+ ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response);
externalContext.setResponse(wrappedResponse);
try
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java Wed Jan 6 19:26:29 2010
@@ -34,7 +34,7 @@
import javax.faces.event.PostRestoreStateEvent;
import javax.faces.render.ResponseStateManager;
-import org.apache.myfaces.application.InvalidViewIdException;
+import org.apache.myfaces.shared_impl.application.InvalidViewIdException;
import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
import org.apache.myfaces.shared_impl.util.Assert;
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/SubviewTag.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/SubviewTag.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/SubviewTag.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/SubviewTag.java Wed Jan 6 19:26:29 2010
@@ -24,7 +24,7 @@
import javax.faces.context.FacesContext;
import javax.faces.webapp.UIComponentELTag;
-import org.apache.myfaces.application.jsp.ViewResponseWrapper;
+import org.apache.myfaces.application.jsp.ServletViewResponseWrapper;
/**
* @author Thomas Spiegl (latest modification by $Author$)
@@ -65,9 +65,9 @@
Object response = facesContext.getExternalContext().getResponse();
String wrappedOutput;
- if (response instanceof ViewResponseWrapper)
+ if (response instanceof ServletViewResponseWrapper)
{
- ViewResponseWrapper wrappedResponse = (ViewResponseWrapper)response;
+ ServletViewResponseWrapper wrappedResponse = (ServletViewResponseWrapper)response;
wrappedOutput = wrappedResponse.toString();
if (wrappedOutput != null && wrappedOutput.length() > 0)
{
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/taglib/core/ViewTag.java Wed Jan 6 19:26:29 2010
@@ -35,7 +35,7 @@
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.jstl.core.Config;
-import org.apache.myfaces.application.jsp.ViewResponseWrapper;
+import org.apache.myfaces.application.jsp.ServletViewResponseWrapper;
import org.apache.myfaces.shared_impl.util.LocaleUtils;
/**
@@ -94,12 +94,12 @@
FacesContext facesContext = FacesContext.getCurrentInstance();
Object response = facesContext.getExternalContext().getResponse();
- if (response instanceof ViewResponseWrapper)
+ if (response instanceof ServletViewResponseWrapper)
{
try
{
pageContext.getOut().flush();
- ((ViewResponseWrapper)response).flushToWrappedResponse();
+ ((ServletViewResponseWrapper)response).flushToWrappedResponse();
}
catch (IOException e)
{
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java Wed Jan 6 19:26:29 2010
@@ -76,13 +76,13 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
-import org.apache.myfaces.application.DefaultViewHandlerSupport;
-import org.apache.myfaces.application.ViewHandlerSupport;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
import org.apache.myfaces.config.RuntimeConfig;
+import org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport;
+import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
import org.apache.myfaces.shared_impl.util.ClassUtils;
import org.apache.myfaces.shared_impl.util.StringUtils;
-import org.apache.myfaces.view.ViewDeclarationLanguageBase;
+import org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase;
import org.apache.myfaces.view.ViewMetadataBase;
import org.apache.myfaces.view.facelets.FaceletViewHandler.NullWriter;
import org.apache.myfaces.view.facelets.compiler.Compiler;
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/jsp/JspViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/jsp/JspViewDeclarationLanguage.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/jsp/JspViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/jsp/JspViewDeclarationLanguage.java Wed Jan 6 19:26:29 2010
@@ -18,40 +18,22 @@
*/
package org.apache.myfaces.view.jsp;
-import java.beans.BeanInfo;
import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.FacesException;
-import javax.faces.FactoryFinder;
-import javax.faces.application.Resource;
-import javax.faces.application.StateManager;
-import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.render.RenderKit;
-import javax.faces.render.RenderKitFactory;
-import javax.faces.view.StateManagementStrategy;
-import javax.faces.view.ViewMetadata;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import javax.servlet.jsp.jstl.core.Config;
-import org.apache.myfaces.application.DefaultViewHandlerSupport;
-import org.apache.myfaces.application.ViewHandlerSupport;
-import org.apache.myfaces.application.jsp.ViewResponseWrapper;
-import org.apache.myfaces.shared_impl.config.MyfacesConfig;
-import org.apache.myfaces.shared_impl.renderkit.html.util.JavascriptUtils;
-import org.apache.myfaces.view.ViewDeclarationLanguageBase;
+import org.apache.myfaces.application.jsp.ServletViewResponseWrapper;
+import org.apache.myfaces.shared_impl.view.JspViewDeclarationLanguageBase;
/**
* @author Simon Lessard (latest modification by $Author: slessard $)
@@ -59,18 +41,10 @@
*
* @since 2.0
*/
-public class JspViewDeclarationLanguage extends ViewDeclarationLanguageBase
+public class JspViewDeclarationLanguage extends JspViewDeclarationLanguageBase
{
//private static final Log log = LogFactory.getLog(JspViewDeclarationLanguage.class);
- private static final Logger log = Logger.getLogger(JspViewDeclarationLanguage.class.getName());
- public static final String FORM_STATE_MARKER = "<!-...@-->";
- public static final int FORM_STATE_MARKER_LEN = FORM_STATE_MARKER.length();
-
- private static final String AFTER_VIEW_TAG_CONTENT_PARAM = JspViewDeclarationLanguage.class
- + ".AFTER_VIEW_TAG_CONTENT";
-
- private ViewHandlerSupport _cachedViewHandlerSupport;
-
+ public static final Logger log = Logger.getLogger(JspViewDeclarationLanguage.class.getName());
/**
*
*/
@@ -95,7 +69,7 @@
Config.set(request, Config.FMT_LOCALE, context.getViewRoot().getLocale());
String viewId = view.getViewId();
- ViewResponseWrapper wrappedResponse = new ViewResponseWrapper((HttpServletResponse) response);
+ ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response);
externalContext.setResponse(wrappedResponse);
try
@@ -115,157 +89,7 @@
}
// store the wrapped response in the request, so it is thread-safe
- externalContext.getRequestMap().put(AFTER_VIEW_TAG_CONTENT_PARAM, wrappedResponse);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public BeanInfo getComponentMetadata(FacesContext context, Resource componentResource)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Resource getScriptComponentResource(FacesContext context, Resource componentResource)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ViewMetadata getViewMetadata(FacesContext context, String viewId)
- {
- // Not necessary given that this method always returns null, but staying true to
- // the spec.
-
- checkNull(context, "context");
- //checkNull(viewId, "viewId");
-
- // JSP impl must return null.
-
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void renderView(FacesContext context, UIViewRoot view) throws IOException
- {
- checkNull(context, "context");
- checkNull(view, "view");
-
- // do not render the view if the rendered attribute for the view is false
- if (!view.isRendered())
- {
- if (log.isLoggable(Level.FINEST))
- log.finest("View is not rendered");
- return;
- }
-
- ExternalContext externalContext = context.getExternalContext();
-
- String viewId = context.getViewRoot().getViewId();
-
- if (log.isLoggable(Level.FINEST))
- log.finest("Rendering JSP view: " + viewId);
-
- // Called on render response phase
- //buildView(context, view);
- ServletResponse response = (ServletResponse) externalContext.getResponse();
- ServletRequest request = (ServletRequest) externalContext.getRequest();
-
- // handle character encoding as of section 2.5.2.2 of JSF 1.1
- if (externalContext.getRequest() instanceof HttpServletRequest)
- {
- HttpServletRequest httpServletRequest = (HttpServletRequest) externalContext.getRequest();
- HttpSession session = httpServletRequest.getSession(false);
-
- if (session != null)
- {
- session.setAttribute(ViewHandler.CHARACTER_ENCODING_KEY, response.getCharacterEncoding());
- }
- }
-
- // render the view in this method (since JSF 1.2)
- RenderKitFactory renderFactory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
- RenderKit renderKit = renderFactory.getRenderKit(context, view.getRenderKitId());
-
- ResponseWriter responseWriter = context.getResponseWriter();
- if (responseWriter == null)
- {
- responseWriter = renderKit.createResponseWriter(response.getWriter(), null,
- ((HttpServletRequest) externalContext.getRequest())
- .getCharacterEncoding());
- context.setResponseWriter(responseWriter);
- }
-
- ResponseWriter oldResponseWriter = responseWriter;
- StateMarkerAwareWriter stateAwareWriter = null;
-
- StateManager stateManager = context.getApplication().getStateManager();
- if (stateManager.isSavingStateInClient(context))
- {
- stateAwareWriter = new StateMarkerAwareWriter();
-
- // Create a new response-writer using as an underlying writer the stateAwareWriter
- // Effectively, all output will be buffered in the stateAwareWriter so that later
- // this writer can replace the state-markers with the actual state.
- responseWriter = oldResponseWriter.cloneWithWriter(stateAwareWriter);
- context.setResponseWriter(responseWriter);
- }
-
- actuallyRenderView(context, view);
-
- if(oldResponseWriter != null)
- {
- context.setResponseWriter(oldResponseWriter);
- }
-
-
- // We're done with the document - now we can write all content
- // to the response, properly replacing the state-markers on the way out
- // by using the stateAwareWriter
- if (stateManager.isSavingStateInClient(context))
- {
- stateAwareWriter.flushToWriter(response.getWriter());
- }
- else
- {
- stateManager.saveView(context);
- }
-
- // Final step - we output any content in the wrappedResponse response from above to the response,
- // removing the wrappedResponse response from the request, we don't need it anymore
- ViewResponseWrapper afterViewTagResponse = (ViewResponseWrapper) externalContext.getRequestMap()
- .get(AFTER_VIEW_TAG_CONTENT_PARAM);
- externalContext.getRequestMap().remove(AFTER_VIEW_TAG_CONTENT_PARAM);
-
- if (afterViewTagResponse != null)
- {
- afterViewTagResponse.flushToWriter(response.getWriter(), context.getExternalContext()
- .getResponseCharacterEncoding());
- }
-
- response.flushBuffer();
- }
-
- @Override
- protected String calculateViewId(FacesContext context, String viewId)
- {
- if (_cachedViewHandlerSupport == null)
- {
- _cachedViewHandlerSupport = new DefaultViewHandlerSupport();
- }
-
- return _cachedViewHandlerSupport.calculateViewId(context, viewId);
+ setAfterViewTagResponseWrapper(externalContext, wrappedResponse);
}
@Override
@@ -283,154 +107,4 @@
}
}
- @Override
- public StateManagementStrategy getStateManagementStrategy(FacesContext context, String viewId)
- {
- return null;
- }
-
- /**
- * Render the view now - properly setting and resetting the response writer
- */
- private void actuallyRenderView(FacesContext facesContext, UIViewRoot viewToRender) throws IOException
- {
- // Set the new ResponseWriter into the FacesContext, saving the old one aside.
- ResponseWriter responseWriter = facesContext.getResponseWriter();
-
- // Now we actually render the document
- // Call startDocument() on the ResponseWriter.
- responseWriter.startDocument();
-
- // Call encodeAll() on the UIViewRoot
- viewToRender.encodeAll(facesContext);
-
- // Call endDocument() on the ResponseWriter
- responseWriter.endDocument();
-
- responseWriter.flush();
- }
-
- /**
- * Writes the response and replaces the state marker tags with the state information for the current context
- */
- private static class StateMarkerAwareWriter extends Writer
- {
- private StringBuilder buf;
-
- public StateMarkerAwareWriter()
- {
- this.buf = new StringBuilder();
- }
-
- @Override
- public void close() throws IOException
- {
- }
-
- @Override
- public void flush() throws IOException
- {
- }
-
- @Override
- public void write(char[] cbuf, int off, int len) throws IOException
- {
- if ((off < 0) || (off > cbuf.length) || (len < 0) || ((off + len) > cbuf.length) || ((off + len) < 0))
- {
- throw new IndexOutOfBoundsException();
- }
- else if (len == 0)
- {
- return;
- }
- buf.append(cbuf, off, len);
- }
-
- public StringBuilder getStringBuilder()
- {
- return buf;
- }
-
- public void flushToWriter(Writer writer) throws IOException
- {
- FacesContext facesContext = FacesContext.getCurrentInstance();
- StateManager stateManager = facesContext.getApplication().getStateManager();
-
- StringWriter stateWriter = new StringWriter();
- ResponseWriter realWriter = facesContext.getResponseWriter();
- facesContext.setResponseWriter(realWriter.cloneWithWriter(stateWriter));
-
- Object serializedView = stateManager.saveView(facesContext);
-
- stateManager.writeState(facesContext, serializedView);
- facesContext.setResponseWriter(realWriter);
-
- StringBuilder contentBuffer = getStringBuilder();
- String state = stateWriter.getBuffer().toString();
-
- ExternalContext extContext = facesContext.getExternalContext();
- if (JavascriptUtils.isJavascriptAllowed(extContext)
- && MyfacesConfig.getCurrentInstance(extContext).isViewStateJavascript())
- {
- // If javascript viewstate is enabled no state markers were written
- write(contentBuffer, 0, contentBuffer.length(), writer);
- writer.write(state);
- }
- else
- {
- // If javascript viewstate is disabled state markers must be replaced
- int lastFormMarkerPos = 0;
- int formMarkerPos = 0;
- // Find all state markers and write out actual state instead
- while ((formMarkerPos = contentBuffer.indexOf(FORM_STATE_MARKER, formMarkerPos)) > -1)
- {
- // Write content before state marker
- write(contentBuffer, lastFormMarkerPos, formMarkerPos, writer);
- // Write state and move position in buffer after marker
- writer.write(state);
- formMarkerPos += FORM_STATE_MARKER_LEN;
- lastFormMarkerPos = formMarkerPos;
- }
- // Write content after last state marker
- if (lastFormMarkerPos < contentBuffer.length())
- {
- write(contentBuffer, lastFormMarkerPos, contentBuffer.length(), writer);
- }
- }
-
- }
-
- /**
- * Writes the content of the specified StringBuffer from index <code>beginIndex</code> to index
- * <code>endIndex - 1</code>.
- *
- * @param contentBuffer
- * the <code>StringBuffer</code> to copy content from
- * @param beginIndex
- * the beginning index, inclusive.
- * @param endIndex
- * the ending index, exclusive
- * @param writer
- * the <code>Writer</code> to write to
- * @throws IOException
- * if an error occurs writing to specified <code>Writer</code>
- */
- private void write(StringBuilder contentBuffer, int beginIndex, int endIndex, Writer writer) throws IOException
- {
- int index = beginIndex;
- int bufferSize = 2048;
- char[] bufToWrite = new char[bufferSize];
-
- while (index < endIndex)
- {
- int maxSize = Math.min(bufferSize, endIndex - index);
-
- contentBuffer.getChars(index, index + maxSize, bufToWrite, 0);
- writer.write(bufToWrite, 0, maxSize);
-
- index += bufferSize;
- }
- }
- }
-
}
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/jsp/JspViewHandlerImplTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/jsp/JspViewHandlerImplTest.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/jsp/JspViewHandlerImplTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/jsp/JspViewHandlerImplTest.java Wed Jan 6 19:26:29 2010
@@ -21,8 +21,9 @@
import static org.apache.myfaces.Assert.assertException;
import org.apache.myfaces.FacesTestCase;
import org.apache.myfaces.TestRunner;
-import org.apache.myfaces.application.InvalidViewIdException;
-import org.apache.myfaces.application.ViewHandlerSupport;
+import org.apache.myfaces.shared_impl.application.InvalidViewIdException;
+import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
+
import static org.easymock.EasyMock.*;
import org.easymock.IAnswer;
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/FaceletTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/FaceletTestCase.java?rev=896630&r1=896629&r2=896630&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/FaceletTestCase.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/FaceletTestCase.java Wed Jan 6 19:26:29 2010
@@ -42,7 +42,6 @@
import org.apache.myfaces.application.ApplicationImpl;
import org.apache.myfaces.application.ResourceHandlerImpl;
import org.apache.myfaces.application.ViewHandlerImpl;
-import org.apache.myfaces.application.ViewHandlerSupport;
import org.apache.myfaces.config.FacesConfigDispenser;
import org.apache.myfaces.config.FacesConfigUnmarshaller;
import org.apache.myfaces.config.RuntimeConfig;
@@ -52,6 +51,7 @@
import org.apache.myfaces.config.impl.digester.elements.FacesConfig;
import org.apache.myfaces.context.PartialViewContextFactoryImpl;
import org.apache.myfaces.renderkit.html.HtmlResponseStateManager;
+import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
import org.apache.myfaces.shared_impl.util.ClassUtils;
import org.apache.myfaces.shared_impl.util.StateUtils;
import org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory;