Author: knopp
Date: Mon Mar 30 00:29:39 2009
New Revision: 759804

URL: http://svn.apache.org/viewvc?rev=759804&view=rev
Log:
i hope I'm not smoking crack

Added:
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
   (with props)
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
   (with props)
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java
   (with props)
Modified:
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/AbstractPageManager.java
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/AbstractPageManager.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/AbstractPageManager.java?rev=759804&r1=759803&r2=759804&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/AbstractPageManager.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/AbstractPageManager.java
 Mon Mar 30 00:29:39 2009
@@ -136,14 +136,14 @@
                List<IPage> pages = new ArrayList<IPage>();
        };
 
-       protected abstract RequestAdapter newRequestAdater();
+       protected abstract RequestAdapter newRequestAdater(Context context);
 
        protected RequestAdapter getRequestAdapter(Context context)
        {
                RequestAdapter adapter = (RequestAdapter) 
context.getRequestData();
                if (adapter == null)
                {
-                       adapter = newRequestAdater();
+                       adapter = newRequestAdater(context);
                        context.setRequestData(adapter);
                }
                return adapter;

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java?rev=759804&r1=759803&r2=759804&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java
 Mon Mar 30 00:29:39 2009
@@ -76,6 +76,11 @@
        public void sessionExpired(String sesionId);
 
        /**
+        * Destroy the page manager.
+        */
+       public void destroy();
+       
+       /**
         * Context object for {...@link PageManager}. This decouples the 
{...@link PageManager} from request
         * cycle and session.
         * 

Added: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java?rev=759804&view=auto
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
 (added)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
 Mon Mar 30 00:29:39 2009
@@ -0,0 +1,46 @@
+package org.apache.wicket.page.persistent;
+
+import org.apache.wicket.IPage;
+
+public interface PageStore
+{
+       /**
+        * Destroy the store.
+        */
+       void destroy();
+
+       /**
+        * Restores a page from the persistent layer.
+        * 
+        * @param sessionId
+        * @param id
+        * @return The page
+        */
+       IPage getPage(String sessionId, int id);
+
+       /**
+        * Removes a page from the persistent layer.
+        * 
+        * @param sessionId
+        *            The session of the page that must be removed
+        * @param id
+        *            The id of the page.
+        */
+       void removePage(String sessionId, int id);
+
+       /**
+        * Stores the page to a persistent layer. The page should be stored 
under the id and the
+        * version number.
+        * 
+        * @param sessionId
+        * @param page
+        */
+       void storePage(String sessionId, IPage page);
+
+       /**
+        * The pagestore should cleanup all the pages for that sessionid.
+        * 
+        * @param sessionId
+        */
+       void unbind(String sessionId);
+}

Propchange: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java?rev=759804&view=auto
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
 (added)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
 Mon Mar 30 00:29:39 2009
@@ -0,0 +1,65 @@
+package org.apache.wicket.page.persistent;
+
+import java.util.List;
+
+import org.apache.wicket.IPage;
+import org.apache.wicket.page.AbstractPageManager;
+
+public class PersistentPageManager extends AbstractPageManager
+{
+       public PersistentPageManager()
+       {
+       }
+
+       protected class PersitentRequestAdapter extends RequestAdapter
+       {
+               public PersitentRequestAdapter(Context context)
+               {
+                       super(context);
+               }
+               
+               @Override
+               protected IPage getPage(int id)
+               {
+                       // TODO Auto-generated method stub
+                       return null;
+               }
+               @Override
+               protected void newSessionCreated()
+               {
+                       // TODO Auto-generated method stub
+                       
+               }
+               @Override
+               protected void storeTouchedPages(List<IPage> touchedPages)
+               {
+                       // TODO Auto-generated method stub
+                       
+               }
+       };
+       
+       @Override
+       protected RequestAdapter newRequestAdater(Context context)
+       {
+               return new PersitentRequestAdapter(context);
+       }
+
+       @Override
+       public boolean supportsVersioning()
+       {
+               return true;
+       }
+
+       public void sessionExpired(String sesionId)
+       {
+               // TODO Auto-generated method stub
+
+       }
+       
+       public void destroy()
+       {
+               // TODO Auto-generated method stub
+               
+       }
+
+}

Propchange: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java?rev=759804&view=auto
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java
 (added)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java
 Mon Mar 30 00:29:39 2009
@@ -0,0 +1,43 @@
+package org.apache.wicket.page.persistent;
+
+import java.io.Serializable;
+
+import org.apache.wicket.Page;
+
+/**
+ * Some PageStores might want to preprocess page before serialization. For 
example if the
+ * PageStore serializes page, it might keep the serialized page faster the 
request. So when the
+ * pagemap gets serialized (for session replication) in the request thread, 
the pagestore can
+ * provide the already serialized data.
+ * 
+ * @author Matej Knopp
+ */
+public interface SerializationAwarePageStore extends PageStore
+{
+       /**
+        * Process the page before the it gets serialized. The page can be 
either real page instance
+        * of object returned by {...@link 
#restoreAfterSerialization(Serializable)}.
+        * 
+        * @param sessionId
+        * @param page
+        * @return The Page itself or a SerializedContainer for that page
+        */
+       public Serializable prepareForSerialization(String sessionId, Object 
page);
+
+       /**
+        * This method should restore the serialized page to intermediate 
object that can be
+        * converted to real page instance using {...@link 
#convertToPage(Object)}.
+        * 
+        * @param sessionId
+        * @param serializable
+        * @return Page
+        */
+       public Object restoreAfterSerialization(Serializable serializable);
+
+       /**
+        * 
+        * @param page
+        * @return page
+        */
+       public Page convertToPage(Object page);
+}

Propchange: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/SerializationAwarePageStore.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to