Author: mgrigorov
Date: Wed Jun  8 19:15:29 2011
New Revision: 1133514

URL: http://svn.apache.org/viewvc?rev=1133514&view=rev
Log:
WICKET-3778 Add possibility to register different page serializer

Introduce ISerializer which can be used to serialize objects to byte arrays.
Default implementation is JavaSerializer which uses Java Serialization API 
(Object(Input|Output)Stream.


Added:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/
    
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/ISerializer.java
Modified:
    
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/TestApp1.java
    
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app2/TestApp2.java
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IFrameworkSettings.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java

Modified: 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/TestApp1.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/TestApp1.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/TestApp1.java
 (original)
+++ 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/TestApp1.java
 Wed Jun  8 19:15:29 2011
@@ -29,6 +29,7 @@ import org.apache.wicket.pageStore.IPage
 import org.apache.wicket.pageStore.memory.HttpSessionDataStore;
 import org.apache.wicket.pageStore.memory.PageNumberEvictionStrategy;
 import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.serialize.java.JavaSerializer;
 
 /**
  * Test application
@@ -78,7 +79,8 @@ public class TestApp1 extends WebApplica
                        {
                                IDataStore dataStore = new 
HttpSessionDataStore(pageManagerContext,
                                        new PageNumberEvictionStrategy(100));
-                               IPageStore pageStore = new 
DefaultPageStore(getName(), dataStore,
+                               IPageStore pageStore = new DefaultPageStore(
+                                       new 
JavaSerializer(getApplicationKey()), dataStore,
                                        
getStoreSettings().getInmemoryCacheSize());
                                return new PersistentPageManager(getName(), 
pageStore, pageManagerContext);
 

Modified: 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app2/TestApp2.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app2/TestApp2.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app2/TestApp2.java
 (original)
+++ 
wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app2/TestApp2.java
 Wed Jun  8 19:15:29 2011
@@ -29,6 +29,7 @@ import org.apache.wicket.pageStore.IPage
 import org.apache.wicket.pageStore.memory.HttpSessionDataStore;
 import org.apache.wicket.pageStore.memory.PageNumberEvictionStrategy;
 import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.serialize.java.JavaSerializer;
 
 /**
  * Test application
@@ -66,7 +67,8 @@ public class TestApp2 extends WebApplica
                        {
                                IDataStore dataStore = new 
HttpSessionDataStore(pageManagerContext,
                                        new PageNumberEvictionStrategy(100));
-                               IPageStore pageStore = new 
DefaultPageStore(getName(), dataStore,
+                               IPageStore pageStore = new DefaultPageStore(
+                                       new 
JavaSerializer(getApplicationKey()), dataStore,
                                        
getStoreSettings().getInmemoryCacheSize());
                                return new PersistentPageManager(getName(), 
pageStore, pageManagerContext);
 

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java 
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java 
Wed Jun  8 19:15:29 2011
@@ -1085,7 +1085,7 @@ public abstract class Application implem
                checkSettingsAvailable();
                if (frameworkSettings == null)
                {
-                       frameworkSettings = new FrameworkSettings();
+                       frameworkSettings = new FrameworkSettings(this);
                }
                return frameworkSettings;
        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
 Wed Jun  8 19:15:29 2011
@@ -25,6 +25,7 @@ import org.apache.wicket.pageStore.Defau
 import org.apache.wicket.pageStore.DiskDataStore;
 import org.apache.wicket.pageStore.IDataStore;
 import org.apache.wicket.pageStore.IPageStore;
+import org.apache.wicket.serialize.ISerializer;
 import org.apache.wicket.settings.IStoreSettings;
 import org.apache.wicket.util.lang.Bytes;
 
@@ -57,7 +58,8 @@ public class DefaultPageManagerProvider 
        protected IPageStore newPageStore(IDataStore dataStore)
        {
                int inmemoryCacheSize = 
getStoreSettings().getInmemoryCacheSize();
-               return new DefaultPageStore(application.getName(), dataStore, 
inmemoryCacheSize);
+               ISerializer pageSerializer = 
application.getFrameworkSettings().getSerializer();
+               return new DefaultPageStore(pageSerializer, dataStore, 
inmemoryCacheSize);
        }
 
        protected IDataStore newDataStore()

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
 Wed Jun  8 19:15:29 2011
@@ -23,9 +23,9 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.wicket.page.IManageablePage;
+import org.apache.wicket.serialize.ISerializer;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.Objects;
-import org.apache.wicket.util.lang.WicketObjects;
 
 /**
  * The {@link IPageStore} that converts {@link IManageablePage} instances to 
{@link SerializedPage}s
@@ -35,29 +35,33 @@ import org.apache.wicket.util.lang.Wicke
  */
 public class DefaultPageStore implements IPageStore
 {
-       private final String applicationName;
-
        private final SerializedPagesCache serializedPagesCache;
 
        private final IDataStore pageDataStore;
 
        /**
+        * The {@link ISerializer} that will be used to convert pages from/to 
byte arrays
+        */
+       private final ISerializer pageSerializer;
+
+       /**
         * Construct.
         * 
-        * @param applicationName
+        * @param pageSerializer
+        *            the {@link ISerializer} that will be used to convert 
pages from/to byte arrays
         * @param dataStore
         *            the {@link IDataStore} that actually stores the pages
         * @param cacheSize
         *            the number of pages to cache in memory before passing 
them to
         *            {@link IDataStore#storeData(String, int, byte[])}
         */
-       public DefaultPageStore(final String applicationName, final IDataStore 
dataStore,
+       public DefaultPageStore(final ISerializer pageSerializer, final 
IDataStore dataStore,
                final int cacheSize)
        {
-               Args.notNull(applicationName, "applicationName");
+               Args.notNull(pageSerializer, "pageSerializer");
                Args.notNull(dataStore, "DataStore");
 
-               this.applicationName = applicationName;
+               this.pageSerializer = pageSerializer;
                pageDataStore = dataStore;
                serializedPagesCache = new SerializedPagesCache(cacheSize);
        }
@@ -111,14 +115,6 @@ public class DefaultPageStore implements
                pageDataStore.storeData(sessionId, pageId, data);
        }
 
-       /**
-        * @return application name
-        */
-       public String getApplicationName()
-       {
-               return applicationName;
-       }
-
        public IManageablePage getPage(final String sessionId, final int id)
        {
                SerializedPage fromCache = 
serializedPagesCache.getPage(sessionId, id);
@@ -357,7 +353,7 @@ public class DefaultPageStore implements
                Args.notNull(sessionId, "sessionId");
                Args.notNull(page, "page");
 
-               byte data[] = WicketObjects.objectToByteArray(page, 
applicationName);
+               byte[] data = pageSerializer.serialize(page);
                return new SerializedPage(sessionId, page.getPageId(), data);
        }
 
@@ -366,9 +362,10 @@ public class DefaultPageStore implements
         * @param data
         * @return page data deserialized
         */
-       protected IManageablePage deserializePage(final byte data[])
+       protected IManageablePage deserializePage(final byte[] data)
        {
-               return (IManageablePage)WicketObjects.byteArrayToObject(data);
+               IManageablePage page = 
(IManageablePage)pageSerializer.deserialize(data);
+               return page;
        }
 
        /**

Added: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java?rev=1133514&view=auto
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
 (added)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
 Wed Jun  8 19:15:29 2011
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.serialize.java;
+
+import org.apache.wicket.application.IClassResolver;
+import org.apache.wicket.serialize.ISerializer;
+import org.apache.wicket.util.io.IObjectStreamFactory;
+import org.apache.wicket.util.lang.WicketObjects;
+
+/**
+ * An implementation of {@link ISerializer} based on Java Serialization 
(ObjectOutputStream,
+ * ObjectInputStream)
+ * 
+ * @see IObjectStreamFactory
+ */
+public class JavaSerializer implements ISerializer
+{
+       /**
+        * The key of the application which can be used later to find the 
proper {@link IClassResolver}
+        */
+       private final String applicationKey;
+
+       /**
+        * Construct.
+        * 
+        * @param applicationKey
+        */
+       public JavaSerializer(final String applicationKey)
+       {
+               this.applicationKey = applicationKey;
+       }
+
+       public byte[] serialize(final Object page)
+       {
+               return WicketObjects.objectToByteArray(page, applicationKey);
+       }
+
+       public Object deserialize(final byte[] data)
+       {
+               return WicketObjects.byteArrayToObject(data);
+       }
+
+}

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IFrameworkSettings.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IFrameworkSettings.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IFrameworkSettings.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IFrameworkSettings.java
 Wed Jun  8 19:15:29 2011
@@ -18,6 +18,7 @@ package org.apache.wicket.settings;
 
 import org.apache.wicket.IDetachListener;
 import org.apache.wicket.IEventDispatcher;
+import org.apache.wicket.serialize.ISerializer;
 
 /**
  * Framework settings for retrieving and configuring framework settings.
@@ -61,4 +62,17 @@ public interface IFrameworkSettings exte
         */
        public void add(IEventDispatcher dispatcher);
 
+
+       /**
+        * Sets the {@link ISerializer} that will be used to convert objects 
to/from byte arrays
+        * 
+        * @param serializer
+        *            the {@link ISerializer} to use
+        */
+       void setSerializer(ISerializer serializer);
+
+       /**
+        * @return the {@link ISerializer} that will be used to convert objects 
to/from byte arrays
+        */
+       ISerializer getSerializer();
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
 Wed Jun  8 19:15:29 2011
@@ -19,12 +19,15 @@ package org.apache.wicket.settings.def;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.wicket.Application;
 import org.apache.wicket.Component;
 import org.apache.wicket.IComponentAwareEventSink;
 import org.apache.wicket.IDetachListener;
 import org.apache.wicket.IEventDispatcher;
 import org.apache.wicket.event.IEvent;
 import org.apache.wicket.event.IEventSink;
+import org.apache.wicket.serialize.ISerializer;
+import org.apache.wicket.serialize.java.JavaSerializer;
 import org.apache.wicket.settings.IFrameworkSettings;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
@@ -42,9 +45,25 @@ import org.apache.wicket.util.string.Str
 public class FrameworkSettings implements IFrameworkSettings
 {
        private IDetachListener detachListener;
+
        private List<IEventDispatcher> eventDispatchers = null;
 
        /**
+        * The {@link ISerializer} that will be used to convert the pages 
to/from byte arrays
+        */
+       private ISerializer pageSerializer;
+
+       /**
+        * Construct.
+        * 
+        * @param application
+        */
+       public FrameworkSettings(final Application application)
+       {
+               pageSerializer = new 
JavaSerializer(application.getApplicationKey());
+       }
+
+       /**
         * @see org.apache.wicket.settings.IFrameworkSettings#getVersion()
         */
        public String getVersion()
@@ -118,4 +137,15 @@ public class FrameworkSettings implement
                        dispatcher.dispatchEvent(sink, event, component);
                }
        }
+
+
+       public void setSerializer(ISerializer pageSerializer)
+       {
+               this.pageSerializer = Args.notNull(pageSerializer, 
"pageSerializer");
+       }
+
+       public ISerializer getSerializer()
+       {
+               return pageSerializer;
+       }
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
 Wed Jun  8 19:15:29 2011
@@ -50,7 +50,7 @@ public class StoreSettings implements IS
         * 
         * @param application
         */
-       public StoreSettings(Application application)
+       public StoreSettings(final Application application)
        {
        }
 

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
 Wed Jun  8 19:15:29 2011
@@ -60,7 +60,7 @@ public class ApplicationSettingsTest
        @Test
        public void testFrameworkVersion()
        {
-               IFrameworkSettings settings = new FrameworkSettings();
+               IFrameworkSettings settings = new FrameworkSettings(new 
MockApplication());
                assertEquals("n/a", settings.getVersion());
        }
 

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/PersistentPageManagerTest.java
 Wed Jun  8 19:15:29 2011
@@ -30,6 +30,7 @@ import org.apache.wicket.pageStore.Defau
 import org.apache.wicket.pageStore.IDataStore;
 import org.apache.wicket.pageStore.IPageStore;
 import org.apache.wicket.pageStore.memory.DummyPageManagerContext;
+import org.apache.wicket.serialize.java.JavaSerializer;
 import org.apache.wicket.util.lang.WicketObjects;
 import org.apache.wicket.versioning.InMemoryPageStore;
 import org.junit.Test;
@@ -102,7 +103,7 @@ public class PersistentPageManagerTest
        private PersistentPageManager newPersistentPageManager(String appName)
        {
                IDataStore dataStore = new InMemoryPageStore();
-               IPageStore pageStore = new DefaultPageStore(appName, dataStore, 
4);
+               IPageStore pageStore = new DefaultPageStore(new 
JavaSerializer(appName), dataStore, 4);
                IPageManagerContext pageManagerContext = new 
DummyPageManagerContext();
                return new PersistentPageManager(appName, pageStore, 
pageManagerContext);
        }

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
 Wed Jun  8 19:15:29 2011
@@ -34,6 +34,7 @@ import org.apache.wicket.page.Persistent
 import org.apache.wicket.pageStore.DefaultPageStore;
 import org.apache.wicket.pageStore.IPageStore;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.serialize.java.JavaSerializer;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.WicketTester;
@@ -89,8 +90,8 @@ public class PageIdPoliticTest extends T
                                {
                                        public IPageManager 
get(IPageManagerContext pageManagerContext)
                                        {
-                                               IPageStore pageStore = new 
DefaultPageStore(application.getName(),
-                                                       dataStore, 4);
+                                               IPageStore pageStore = new 
DefaultPageStore(new JavaSerializer(
+                                                       
application.getApplicationKey()), dataStore, 4);
                                                return new 
PersistentPageManager(application.getName(), pageStore,
                                                        pageManagerContext);
                                        }

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java?rev=1133514&r1=1133513&r2=1133514&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
 Wed Jun  8 19:15:29 2011
@@ -28,6 +28,7 @@ import org.apache.wicket.pageStore.Async
 import org.apache.wicket.pageStore.DefaultPageStore;
 import org.apache.wicket.pageStore.IDataStore;
 import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.serialize.java.JavaSerializer;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.After;
 import org.junit.Before;
@@ -65,8 +66,8 @@ public class PageVersioningTest
 
                                                final IDataStore dataStore = 
new InMemoryPageStore();
                                                final AsynchronousDataStore 
asyncDS = new AsynchronousDataStore(dataStore);
-                                               final DefaultPageStore 
pageStore = new DefaultPageStore(
-                                                       application.getName(), 
asyncDS, 40);
+                                               final DefaultPageStore 
pageStore = new DefaultPageStore(new JavaSerializer(
+                                                       
application.getApplicationKey()), asyncDS, 40);
                                                return new 
PersistentPageManager(application.getName(), pageStore,
                                                        pageManagerContext);
                                        }

Added: 
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/ISerializer.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/ISerializer.java?rev=1133514&view=auto
==============================================================================
--- 
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/ISerializer.java
 (added)
+++ 
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/serialize/ISerializer.java
 Wed Jun  8 19:15:29 2011
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.serialize;
+
+/**
+ * A serializer that can be used to convert an object to byte array and back
+ */
+public interface ISerializer
+{
+
+       /**
+        * Converts the object to byte array
+        * 
+        * @param object
+        *            the object to serialize
+        * @return the serialized page as byte array
+        */
+       byte[] serialize(Object object);
+
+       /**
+        * Reconstructs the object from its serialized state
+        * 
+        * @param data
+        *            the serialized state of the object
+        * @return the object reconstructed from its serialized state
+        */
+       Object deserialize(byte[] data);
+}


Reply via email to