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;