Author: ivaynberg
Date: Mon Oct 12 15:39:29 2009
New Revision: 824391

URL: http://svn.apache.org/viewvc?rev=824391&view=rev
Log:
more ng migration: merged ng's pagestore into core's ipagestore

Removed:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultPageFactory.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageFactory.java
Modified:
    
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
    
wicket/trunk/wicket-quickstart/src/main/java/org/apache/wicket/quickstart/Index.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java

Modified: 
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
 (original)
+++ 
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
 Mon Oct 12 15:39:29 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.authentication.panel;
 
+import org.apache.wicket.Page;
 import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
@@ -121,9 +122,11 @@
                                        if (!continueToOriginalDestination())
                                        {
                                                // Ups, no original 
destination. Go to the home page
-                                               throw new 
RestartResponseException(getApplication().getSessionSettings()
-                                                       .getPageFactory()
-                                                       
.newPage(getApplication().getHomePage()));
+
+                                               // FIXME NG MIGRATION, 
REQUESTABLEPAGE->PAGE
+                                               throw new 
RestartResponseException(
+                                                       
(Page)getApplication().getSessionSettings().getPageFactory().newPage(
+                                                               
getApplication().getHomePage()));
                                        }
                                }
                        }
@@ -234,7 +237,8 @@
                // original destination, otherwise to the Home page
                if (!continueToOriginalDestination())
                {
-                       
setResponsePage(getApplication().getSessionSettings().getPageFactory().newPage(
+                       // FIXME NG MIGRATION, REQUESTABLEPAGE->PAGE
+                       
setResponsePage((Page)getApplication().getSessionSettings().getPageFactory().newPage(
                                getApplication().getHomePage()));
                }
        }

Modified: 
wicket/trunk/wicket-quickstart/src/main/java/org/apache/wicket/quickstart/Index.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-quickstart/src/main/java/org/apache/wicket/quickstart/Index.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket-quickstart/src/main/java/org/apache/wicket/quickstart/Index.java
 (original)
+++ 
wicket/trunk/wicket-quickstart/src/main/java/org/apache/wicket/quickstart/Index.java
 Mon Oct 12 15:39:29 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.wicket.quickstart;
 
-import org.apache.wicket.PageParameters;
+import org.apache.wicket.ng.request.component.PageParameters;
 
 /**
  * Basic bookmarkable index page.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java Mon 
Oct 12 15:39:29 2009
@@ -17,6 +17,7 @@
 package org.apache.wicket;
 
 import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.ng.request.component.RequestablePage;
 
 
 /**
@@ -46,7 +47,7 @@
         * @throws WicketRuntimeException
         *             Thrown if the page cannot be constructed
         */
-       <C extends Page> Page newPage(final Class<C> pageClass);
+       <C extends RequestablePage> RequestablePage newPage(final Class<C> 
pageClass);
 
        /**
         * Creates a new Page, passing PageParameters to the Page constructor 
if such a constructor
@@ -63,5 +64,6 @@
         * @throws WicketRuntimeException
         *             Thrown if the page cannot be constructed
         */
-       <C extends Page> Page newPage(final Class<C> pageClass, final 
PageParameters parameters);
+       <C extends RequestablePage> RequestablePage newPage(final Class<C> 
pageClass,
+               final PageParameters parameters);
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
 Mon Oct 12 15:39:29 2009
@@ -94,11 +94,13 @@
                                if (params == null)
                                {
                                        // Create page using page factory
-                                       return 
Session.get().getPageFactory().newPage(c);
+                                       // FIXME NG MIGRATION, 
REQUESTABLEPAGE->PAGE
+                                       return 
(Page)Session.get().getPageFactory().newPage(c);
                                }
                                else
                                {
-                                       return 
Session.get().getPageFactory().newPage(c, params);
+                                       // FIXME NG MIGRATION, 
REQUESTABLEPAGE->PAGE
+                                       return 
(Page)Session.get().getPageFactory().newPage(c, params);
                                }
                        }
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java Mon 
Oct 12 15:39:29 2009
@@ -20,6 +20,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.wicket.IPageFactory;
 import org.apache.wicket.application.DefaultClassResolver;
 import org.apache.wicket.application.IClassResolver;
 import org.apache.wicket.ng.page.PageManager;
@@ -31,7 +32,6 @@
 import org.apache.wicket.ng.page.persistent.disk.DiskDataStore;
 import org.apache.wicket.ng.request.Request;
 import org.apache.wicket.ng.request.RequestMapper;
-import org.apache.wicket.ng.request.component.PageFactory;
 import org.apache.wicket.ng.request.component.PageParameters;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
@@ -47,6 +47,7 @@
 import org.apache.wicket.ng.session.SessionStore.UnboundListener;
 import org.apache.wicket.ng.settings.ApplicationSettings;
 import org.apache.wicket.ng.settings.RequestCycleSettings;
+import org.apache.wicket.session.DefaultPageFactory;
 import org.apache.wicket.util.lang.Checks;
 
 /**
@@ -506,14 +507,14 @@
                return resourceReferenceRegistry;
        }
 
-       private PageFactory pageFactory;
+       private IPageFactory pageFactory;
 
        /**
         * Override to create custom {...@link PageFactory}
         * 
         * @return new {...@link PageFactory} instance.
         */
-       protected PageFactory newPageFactory()
+       protected IPageFactory newPageFactory()
        {
                return new DefaultPageFactory();
        }
@@ -523,7 +524,7 @@
         * 
         * @return
         */
-       public final PageFactory getPageFactory()
+       public final IPageFactory getPageFactory()
        {
                return pageFactory;
        }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
 Mon Oct 12 15:39:29 2009
@@ -28,47 +28,50 @@
 public interface RequestablePage extends RequestableComponent, ManageablePage
 {
 
-    /**
-     * Renders the page
-     */
-    public void renderPage();
-
-    /**
-     * Bookmarkable page can be instantiated using a bookmarkable URL.
-     * 
-     * @return Returns true if the page is bookmarkable.
-     */
-    public boolean isBookmarkable();
-
-    /**
-     * Returns the number of times this page has been rendered. The number 
will be appended to
-     * listener interface links in order to prevent invoking listeners from 
staled page version.
-     * <p>
-     * For example a same page might have been rendered in two separate tabs. 
Page render doesn't
-     * change page id but it can modify component hierarchy. Listener 
interface links on such page
-     * should only work in tab where the page was rendered most recently.
-     * 
-     * @return render count
-     */
-    public int getRenderCount();
-
-    /**
-     * Returns whether the page instance was created by a bookmarkable URL. 
Non mounted pages have
-     * to be created using bookmarkable URL in order to have hybrid URLs 
later. Otherwise it would
-     * be a potential security risk.
-     * 
-     * @return <code>true</code> if this page has been created by a 
bookmarkable URL,
-     *         <code>false</code> otherwise.
-     */
-    public boolean wasCreatedBookmarkable();
-
-
-    /**
-     * Returns the {...@link PageParameters} for the page. Each bookmarkable 
page instance should have
-     * {...@link PageParameters} associated with it. The page parameters are 
initialized from URL when
-     * page is created and are updated on every page render request.
-     * 
-     * @return page parameters or <code>null</code>
-     */
-    public PageParameters getPageParameters();
+       /**
+        * Renders the page
+        */
+       public void renderPage();
+
+       /**
+        * Bookmarkable page can be instantiated using a bookmarkable URL.
+        * 
+        * @return Returns true if the page is bookmarkable.
+        */
+       public boolean isBookmarkable();
+
+       /**
+        * Returns the number of times this page has been rendered. The number 
will be appended to
+        * listener interface links in order to prevent invoking listeners from 
staled page version.
+        * <p>
+        * For example a same page might have been rendered in two separate 
tabs. Page render doesn't
+        * change page id but it can modify component hierarchy. Listener 
interface links on such page
+        * should only work in tab where the page was rendered most recently.
+        * 
+        * @return render count
+        */
+       public int getRenderCount();
+
+       /**
+        * Returns whether the page instance was created by a bookmarkable URL. 
Non mounted pages have
+        * to be created using bookmarkable URL in order to have hybrid URLs 
later. Otherwise it would
+        * be a potential security risk.
+        * 
+        * @return <code>true</code> if this page has been created by a 
bookmarkable URL,
+        *         <code>false</code> otherwise.
+        */
+       public boolean wasCreatedBookmarkable();
+
+
+       /**
+        * Returns the {...@link PageParameters} for the page. Each 
bookmarkable page instance should have
+        * {...@link PageParameters} associated with it. The page parameters 
are initialized from URL when
+        * page is created and are updated on every page render request.
+        * 
+        * @return page parameters or <code>null</code>
+        */
+       public PageParameters getPageParameters();
+
+       /** TODO javadoc */
+       public void setWasCreatedBookmarkable(boolean b);
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
 Mon Oct 12 15:39:29 2009
@@ -595,13 +595,15 @@
                                        PageParameters parameters = 
pageClassRequestTarget.getPageParameters();
                                        if (parameters == null || 
parameters.size() == 0)
                                        {
-                                               newLastRenderedPage = 
application.getSessionSettings()
+                                               // FIXME NG MIGRATION, 
REQUESTABLEPAGE->PAGE
+                                               newLastRenderedPage = 
(Page)application.getSessionSettings()
                                                        .getPageFactory()
                                                        .newPage(pageClass);
                                        }
                                        else
                                        {
-                                               newLastRenderedPage = 
application.getSessionSettings()
+                                               // FIXME NG MIGRATION, 
REQUESTABLEPAGE->PAGE
+                                               newLastRenderedPage = 
(Page)application.getSessionSettings()
                                                        .getPageFactory()
                                                        .newPage(pageClass, 
parameters);
                                        }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
 Mon Oct 12 15:39:29 2009
@@ -296,14 +296,14 @@
 
                if (pageParameters == null || pageParameters.size() == 0)
                {
-                       return pageFactory.newPage(pageClass);
+                       return (Page)pageFactory.newPage(pageClass);
                }
                else
                {
                        // Add bookmarkable params in for WICKET-400.
                        final Map<String, String[]> requestMap = 
requestCycle.getRequest().getParameterMap();
                        requestMap.putAll(pageParameters.toRequestParameters());
-                       return pageFactory.newPage(pageClass, pageParameters);
+                       return (Page)pageFactory.newPage(pageClass, 
pageParameters);
                }
        }
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
 Mon Oct 12 15:39:29 2009
@@ -22,11 +22,11 @@
 
 import org.apache.wicket.AbortException;
 import org.apache.wicket.IPageFactory;
-import org.apache.wicket.Page;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.authorization.AuthorizationException;
 import org.apache.wicket.markup.MarkupException;
 import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.util.lang.Generics;
 
 
@@ -38,19 +38,21 @@
  * 
  * @author Juergen Donnerstag
  * @author Jonathan Locke
+ * @author Matej Knopp
+ * @author Igor Vaynberg
  */
 public final class DefaultPageFactory implements IPageFactory
 {
        /** Map of Constructors for Page subclasses */
-       private final Map<Class<? extends Page>, Constructor<? extends Page>> 
constructorForClass = Generics.newConcurrentHashMap();
+       private final Map<Class<? extends RequestablePage>, Constructor<? 
extends RequestablePage>> constructorForClass = Generics.newConcurrentHashMap();
 
        /**
         * @see IPageFactory#newPage(Class)
         */
-       public final <C extends Page> Page newPage(final Class<C> pageClass)
+       public final <C extends RequestablePage> RequestablePage newPage(final 
Class<C> pageClass)
        {
                // Try default constructor if one exists
-               Constructor<? extends Page> constructor = 
constructor(pageClass);
+               Constructor<? extends RequestablePage> constructor = 
constructor(pageClass);
                if (constructor != null)
                {
                        // return new Page()
@@ -72,7 +74,8 @@
        /**
         * @see IPageFactory#newPage(Class, PageParameters)
         */
-       public final <C extends Page> Page newPage(final Class<C> pageClass, 
PageParameters parameters)
+       public final <C extends RequestablePage> RequestablePage newPage(final 
Class<C> pageClass,
+               PageParameters parameters)
        {
                // If no parameters are provided, try the default constructor 
first, than the PageParameter
                // constructor with empty parameter list.
@@ -82,7 +85,8 @@
                }
 
                // If parameters not null, than try to get constructor that 
takes PageParameters
-               Constructor<? extends Page> constructor = 
constructor(pageClass, PageParameters.class);
+               Constructor<? extends RequestablePage> constructor = 
constructor(pageClass,
+                       PageParameters.class);
                if (constructor != null)
                {
                        // return new Page(parameters)
@@ -111,7 +115,8 @@
         * @return The page constructor, or null if no one-arg constructor can 
be found taking the given
         *         argument type.
         */
-       private final <C extends Page> Constructor<? extends Page> 
constructor(final Class<C> pageClass)
+       private final <C extends RequestablePage> Constructor<? extends 
RequestablePage> constructor(
+               final Class<C> pageClass)
        {
                try
                {
@@ -138,11 +143,11 @@
         * @return The page constructor, or null if no one-arg constructor can 
be found taking the given
         *         argument type.
         */
-       private final <C extends Page> Constructor<? extends Page> constructor(
+       private final <C extends RequestablePage> Constructor<? extends 
RequestablePage> constructor(
                final Class<C> pageClass, final Class<PageParameters> 
argumentType)
        {
                // Get constructor for page class from cache
-               Constructor<? extends Page> constructor = 
constructorForClass.get(pageClass);
+               Constructor<? extends RequestablePage> constructor = 
constructorForClass.get(pageClass);
 
                // Need to look up?
                if (constructor == null)
@@ -178,19 +183,33 @@
         *             Thrown if the Page cannot be instantiated using the 
given constructor and
         *             argument.
         */
-       private final Page createPage(final Constructor<? extends Page> 
constructor,
-               final PageParameters argument)
+       private final RequestablePage createPage(
+               final Constructor<? extends RequestablePage> constructor, final 
PageParameters argument)
        {
+               final RequestablePage instance;
                try
                {
                        if (argument != null)
                        {
-                               return constructor.newInstance(new Object[] { 
argument });
+                               instance = constructor.newInstance(new Object[] 
{ argument });
                        }
                        else
                        {
-                               return constructor.newInstance();
+                               instance = constructor.newInstance();
                        }
+
+                       // the page might have not propagate page parameters 
from constructor. if that's the
+                       // case
+                       // we force the parameters
+                       if (argument != null && instance.getPageParameters() != 
argument)
+                       {
+                               instance.getPageParameters().assign(argument);
+                       }
+
+                       instance.setWasCreatedBookmarkable(true);
+
+                       return instance;
+
                }
                catch (InstantiationException e)
                {
@@ -219,7 +238,7 @@
         * @param argument
         * @return description
         */
-       private String createDescription(Constructor<? extends Page> 
constructor,
+       private String createDescription(Constructor<? extends RequestablePage> 
constructor,
                PageParameters argument)
        {
                if (argument != null)

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java?rev=824391&r1=824390&r2=824391&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java 
(original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java Mon 
Oct 12 15:39:29 2009
@@ -26,11 +26,11 @@
  */
 public class MockPage extends MockComponent implements RequestablePage
 {
-       
+
        private static final long serialVersionUID = 1L;
-       
+
        private int pageId;
-       
+
        /**
         * Construct.
         * 
@@ -41,9 +41,10 @@
                setPath("");
        }
 
-       
+
        /**
         * Construct.
+        * 
         * @param pageId
         * @param pageVersion
         * @param pageMapName
@@ -52,9 +53,10 @@
        {
                setPageId(pageId);
        }
-       
+
        /**
         * Sets the page id
+        * 
         * @param pageId
         * @return <code>this</code>
         */
@@ -63,7 +65,7 @@
                this.pageId = pageId;
                return this;
        }
-       
+
        @Override
        public RequestablePage getPage()
        {
@@ -73,22 +75,22 @@
        public int getPageId()
        {
                return pageId;
-       }       
-       
-       private PageParameters pageParameters = new PageParameters();
+       }
+
+       private final PageParameters pageParameters = new PageParameters();
 
        public PageParameters getPageParameters()
        {
                return pageParameters;
-       }               
+       }
 
        private boolean bookmarkable;
-       
+
        public boolean isBookmarkable()
        {
                return bookmarkable;
        }
-       
+
        /**
         * Sets the bookmarkable flags
         * 
@@ -102,7 +104,7 @@
        }
 
        private boolean stateless = false;
-       
+
        /**
         * Sets the stateless flag
         * 
@@ -114,7 +116,7 @@
                this.stateless = stateless;
                return this;
        }
-       
+
        public boolean isPageStateless()
        {
                return stateless;
@@ -123,14 +125,14 @@
        public void renderPage()
        {
        }
-       
+
        private boolean createBookmarkable;
 
        public boolean wasCreatedBookmarkable()
        {
                return createBookmarkable;
        }
-       
+
        /**
         * Sets the createdBookmarkable flag.
         * 
@@ -141,23 +143,32 @@
         */
        public MockPage setCreatedBookmarkable(boolean createdBookmarkable)
        {
-               this.createBookmarkable = createdBookmarkable;
+               createBookmarkable = createdBookmarkable;
                return this;
        }
 
        private int renderCount;
-       
+
        public int getRenderCount()
        {
                return renderCount;
        }
-       
+
        /**
         * Sets the render count
+        * 
         * @param renderCount
         */
        public void setRenderCount(int renderCount)
        {
                this.renderCount = renderCount;
        }
+
+       /**
+        * TODO javadoc
+        */
+       public void setWasCreatedBookmarkable(boolean b)
+       {
+               createBookmarkable = b;
+       }
 }


Reply via email to