WICKET-6177 Introduce AsynchronousPageStore

Minor cleanups


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/25fb5a29
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/25fb5a29
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/25fb5a29

Branch: refs/heads/master
Commit: 25fb5a29dbe523d6ebd7dccdea639eaf5bc28618
Parents: a4e28b8
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Apr 12 23:25:05 2017 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Apr 12 23:25:05 2017 +0200

----------------------------------------------------------------------
 .../wicket/DefaultPageManagerProvider.java      |   3 +-
 .../wicket/pageStore/AsynchronousDataStore.java |  23 +-
 .../wicket/pageStore/AsynchronousPageStore.java | 100 +++----
 .../wicket/pageStore/PerSessionPageStore.java   |   1 -
 .../pageStore/AsynchronousPageStoreTest.java    | 291 +++----------------
 5 files changed, 88 insertions(+), 330 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/25fb5a29/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
index d7b0b45..4b9b130 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
@@ -73,7 +73,9 @@ public class DefaultPageManagerProvider implements 
IPageManagerProvider
                        }
                }
                else
+               {
                        pageStore = newPageStore(dataStore);
+               }
 
                return new PageStoreManager(application.getName(), pageStore, 
pageManagerContext);
 
@@ -84,7 +86,6 @@ public class DefaultPageManagerProvider implements 
IPageManagerProvider
                int inmemoryCacheSize = 
getStoreSettings().getInmemoryCacheSize();
                ISerializer pageSerializer = 
application.getFrameworkSettings().getSerializer();
                return new DefaultPageStore(pageSerializer, dataStore, 
inmemoryCacheSize);
-//             return new PerSessionPageStore(pageSerializer, dataStore, 
inmemoryCacheSize);
        }
 
        protected IDataStore newDataStore()

http://git-wip-us.apache.org/repos/asf/wicket/blob/25fb5a29/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
index e98eb64..7ccd689 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
@@ -88,18 +88,15 @@ public class AsynchronousDataStore implements IDataStore
        public AsynchronousDataStore(final IDataStore dataStore, final int 
capacity)
        {
                this.dataStore = dataStore;
-               entries = new LinkedBlockingQueue<Entry>(capacity);
-               entryMap = new ConcurrentHashMap<String, Entry>();
+               entries = new LinkedBlockingQueue<>(capacity);
+               entryMap = new ConcurrentHashMap<>();
 
                PageSavingRunnable savingRunnable = new 
PageSavingRunnable(dataStore, entries, entryMap);
-               pageSavingThread = new Thread(savingRunnable, 
"Wicket-PageSavingThread");
+               pageSavingThread = new Thread(savingRunnable, 
"Wicket-AsyncDataStore-PageSavingThread");
                pageSavingThread.setDaemon(true);
                pageSavingThread.start();
        }
 
-       /**
-        * @see org.apache.wicket.pageStore.IDataStore#destroy()
-        */
        @Override
        public void destroy()
        {
@@ -130,9 +127,6 @@ public class AsynchronousDataStore implements IDataStore
                return entryMap.get(getKey(sessionId, id));
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IDataStore#getData(java.lang.String, int)
-        */
        @Override
        public byte[] getData(final String sessionId, final int id)
        {
@@ -152,18 +146,12 @@ public class AsynchronousDataStore implements IDataStore
                return data;
        }
 
-       /**
-        * @see org.apache.wicket.pageStore.IDataStore#isReplicated()
-        */
        @Override
        public boolean isReplicated()
        {
                return dataStore.isReplicated();
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IDataStore#removeData(java.lang.String, int)
-        */
        @Override
        public void removeData(final String sessionId, final int id)
        {
@@ -180,9 +168,6 @@ public class AsynchronousDataStore implements IDataStore
                dataStore.removeData(sessionId, id);
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IDataStore#removeData(java.lang.String)
-        */
        @Override
        public void removeData(final String sessionId)
        {
@@ -362,7 +347,7 @@ public class AsynchronousDataStore implements IDataStore
        @Override
        public final boolean canBeAsynchronous()
        {
-               // should not wrap in abother AsynchronousDataStore
+               // should not wrap in another AsynchronousDataStore
                return false;
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/25fb5a29/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
index 3c77df6..43993ba 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
@@ -1,3 +1,19 @@
+/*
+ * 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.pageStore;
 
 import java.io.Serializable;
@@ -8,7 +24,6 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.wicket.page.IManageablePage;
-import org.apache.wicket.pageStore.IPageStore;
 import org.apache.wicket.util.lang.Args;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,7 +68,7 @@ public class AsynchronousPageStore implements IPageStore
        /**
         * The wrapped {@link IPageStore} that actually stores that pages
         */
-       private final IPageStore pageStore;
+       private final IPageStore delegate;
 
        /**
         * The queue where the entries which have to be saved are temporary 
stored
@@ -69,19 +84,19 @@ public class AsynchronousPageStore implements IPageStore
        /**
         * Construct.
         * 
-        * @param pageStore
+        * @param delegate
         *            the wrapped {@link IPageStore} that actually saved the 
page
         * @param capacity
         *            the capacity of the queue that delays the saving
         */
-       public AsynchronousPageStore(final IPageStore pageStore, final int 
capacity)
+       public AsynchronousPageStore(final IPageStore delegate, final int 
capacity)
        {
-               this.pageStore = pageStore;
-               entries = new LinkedBlockingQueue<Entry>(capacity);
-               entryMap = new ConcurrentHashMap<String, Entry>();
+               this.delegate = Args.notNull(delegate, "delegate");
+               entries = new LinkedBlockingQueue<>(capacity);
+               entryMap = new ConcurrentHashMap<>();
 
-               PageSavingRunnable savingRunnable = new 
PageSavingRunnable(pageStore, entries, entryMap);
-               pageSavingThread = new Thread(savingRunnable, 
"AsyncPageStore-PageSavingThread");
+               PageSavingRunnable savingRunnable = new 
PageSavingRunnable(delegate, entries, entryMap);
+               pageSavingThread = new Thread(savingRunnable, 
"Wicket-AsyncPageStore-PageSavingThread");
                pageSavingThread.setDaemon(true);
                pageSavingThread.start();
        }
@@ -139,7 +154,7 @@ public class AsynchronousPageStore implements IPageStore
                        final int prime = 31;
                        int result = 1;
                        result = prime * result + page.getPageId();
-                       result = prime * result + ((sessionId == null) ? 0 : 
sessionId.hashCode());
+                       result = prime * result + sessionId.hashCode();
                        return result;
                }
 
@@ -155,12 +170,7 @@ public class AsynchronousPageStore implements IPageStore
                        Entry other = (Entry)obj;
                        if (page.getPageId() != other.page.getPageId())
                                return false;
-                       if (sessionId == null)
-                       {
-                               if (other.sessionId != null)
-                                       return false;
-                       }
-                       else if (!sessionId.equals(other.sessionId))
+                       if (!sessionId.equals(other.sessionId))
                                return false;
                        return true;
                }
@@ -184,12 +194,12 @@ public class AsynchronousPageStore implements IPageStore
 
                private final ConcurrentMap<String, Entry> entryMap;
 
-               private final IPageStore pageStore;
+               private final IPageStore delegate;
 
-               private PageSavingRunnable(IPageStore pageStore, 
BlockingQueue<Entry> entries,
-                       ConcurrentMap<String, Entry> entryMap)
+               private PageSavingRunnable(IPageStore delegate, 
BlockingQueue<Entry> entries,
+                                          ConcurrentMap<String, Entry> 
entryMap)
                {
-                       this.pageStore = pageStore;
+                       this.delegate = delegate;
                        this.entries = entries;
                        this.entryMap = entryMap;
                }
@@ -212,16 +222,13 @@ public class AsynchronousPageStore implements IPageStore
                                if (entry != null)
                                {
                                        log.debug("Saving asynchronously: 
{}...", entry);
-                                       pageStore.storePage(entry.sessionId, 
entry.page);
+                                       delegate.storePage(entry.sessionId, 
entry.page);
                                        entryMap.remove(getKey(entry));
                                }
                        }
                }
        }
 
-       /**
-        * @see org.apache.wicket.pageStore.IPageStore#destroy()
-        */
        @Override
        public void destroy()
        {
@@ -238,12 +245,9 @@ public class AsynchronousPageStore implements IPageStore
                        }
                }
 
-               pageStore.destroy();
+               delegate.destroy();
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#getPage(java.lang.String, int)
-        */
        @Override
        public IManageablePage getPage(String sessionId, int pageId)
        {
@@ -255,7 +259,7 @@ public class AsynchronousPageStore implements IPageStore
                                sessionId, pageId);
                        return entry.page;
                }
-               IManageablePage page = pageStore.getPage(sessionId, pageId);
+               IManageablePage page = delegate.getPage(sessionId, pageId);
 
                log.debug("Returning the page of a stored entry with session id 
'{}' and page id '{}'",
                        sessionId, pageId);
@@ -263,9 +267,6 @@ public class AsynchronousPageStore implements IPageStore
                return page;
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#removePage(java.lang.String, int)
-        */
        @Override
        public void removePage(String sessionId, int pageId)
        {
@@ -279,14 +280,9 @@ public class AsynchronousPageStore implements IPageStore
                        }
                }
 
-               pageStore.removePage(sessionId, pageId);
-
+               delegate.removePage(sessionId, pageId);
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#storePage(java.lang.String,
-        *      org.apache.wicket.page.IManageablePage)
-        */
        @Override
        public void storePage(String sessionId, IManageablePage page)
        {
@@ -306,59 +302,45 @@ public class AsynchronousPageStore implements IPageStore
                                log.debug("Storing synchronously page with id 
'{}' in session '{}'",
                                        page.getPageId(), sessionId);
                                entryMap.remove(key);
-                               pageStore.storePage(sessionId, page);
+                               delegate.storePage(sessionId, page);
                        }
                }
                catch (InterruptedException e)
                {
                        log.error(e.getMessage(), e);
                        entryMap.remove(key);
-                       pageStore.storePage(sessionId, page);
+                       delegate.storePage(sessionId, page);
                }
-
        }
 
-       /**
-        * @see org.apache.wicket.pageStore.IPageStore#unbind(java.lang.String)
-        */
        @Override
        public void unbind(String sessionId)
        {
-               pageStore.unbind(sessionId);
+               delegate.unbind(sessionId);
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#prepareForSerialization(java.lang. 
String,
-        *      java.io.Serializable)
-        */
        @Override
        public Serializable prepareForSerialization(String sessionId, 
Serializable page)
        {
-               return pageStore.prepareForSerialization(sessionId, page);
+               return delegate.prepareForSerialization(sessionId, page);
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#restoreAfterSerialization(java.io. 
Serializable)
-        */
        @Override
        public Object restoreAfterSerialization(Serializable serializable)
        {
-               return pageStore.restoreAfterSerialization(serializable);
+               return delegate.restoreAfterSerialization(serializable);
        }
 
-       /**
-        * @see 
org.apache.wicket.pageStore.IPageStore#convertToPage(java.lang.Object)
-        */
        @Override
        public IManageablePage convertToPage(Object page)
        {
-               return pageStore.convertToPage(page);
+               return delegate.convertToPage(page);
        }
 
        @Override
        public boolean canBeAsynchronous()
        {
+               // should not wrap in another AsynchronousPageStore
                return false;
        }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/25fb5a29/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
index abef0c9..4a21f4c 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
@@ -323,7 +323,6 @@ public class PerSessionPageStore extends 
AbstractCachingPageStore<IManageablePag
                        cache.clear();
                }
        }
-       
 
        @Override
        public boolean canBeAsynchronous()

http://git-wip-us.apache.org/repos/asf/wicket/blob/25fb5a29/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
index 7ade857..4b17f69 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
@@ -1,3 +1,19 @@
+/*
+ * 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.pageStore;
 
 import static org.junit.Assert.assertEquals;
@@ -8,44 +24,34 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import com.google.common.base.Stopwatch;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.serialize.ISerializer;
 import org.apache.wicket.serialize.java.DeflatedJavaSerializer;
+import org.apache.wicket.util.SlowTests;
 import org.apache.wicket.util.file.File;
 import org.apache.wicket.util.lang.Bytes;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Stopwatch;
-
 
 /**
  * AsynchronousPageStoreTest
- * 
- * @author manuelbarzi
  *
+ * @author manuelbarzi
  */
+@Category(SlowTests.class)
 public class AsynchronousPageStoreTest
 {
-
        /** Log for reporting. */
        private static final Logger log = 
LoggerFactory.getLogger(AsynchronousPageStoreTest.class);
 
@@ -96,7 +102,7 @@ public class AsynchronousPageStoreTest
                private void writeObject(java.io.ObjectOutputStream s) throws 
IOException
                {
                        log.debug("serializing page {} for {}ms (session {})", 
getPageId(), writeMillis,
-                               sessionId);
+                                       sessionId);
                        try
                        {
                                Thread.sleep(writeMillis);
@@ -113,10 +119,10 @@ public class AsynchronousPageStoreTest
                }
 
                private void readObject(java.io.ObjectInputStream s)
-                       throws IOException, ClassNotFoundException
+                               throws IOException, ClassNotFoundException
                {
                        log.debug("deserializing page {} for {}ms (session 
{})", getPageId(), writeMillis,
-                               sessionId);
+                                       sessionId);
                        try
                        {
                                Thread.sleep(readMillis);
@@ -135,15 +141,15 @@ public class AsynchronousPageStoreTest
                public String toString()
                {
                        return "DummyPage[pageId = " + pageId + ", writeMillis 
= " + writeMillis +
-                               ", readMillis = " + readMillis + ", sessionId = 
" + sessionId + ", hashCode = " +
-                               hashCode() + "]";
+                                       ", readMillis = " + readMillis + ", 
sessionId = " + sessionId + ", hashCode = " +
+                                       hashCode() + "]";
                }
        }
 
        /**
         * Store returns the same page instance from queue when there is a 
close request for it back
         * again.
-        * 
+        *
         * @throws InterruptedException
         */
        @Test
@@ -154,7 +160,7 @@ public class AsynchronousPageStoreTest
                // ISerializer serializer = new DummySerializer();
 
                IDataStore dataStore = new DiskDataStore("applicationName", new 
File("./target"),
-                       Bytes.bytes(10000l));
+                               Bytes.bytes(10000l));
 
                // IPageStore pageStore = new DummyPageStore(new 
File("target/store"));
                IPageStore pageStore = spy(new DefaultPageStore(serializer, 
dataStore, 0));
@@ -179,7 +185,7 @@ public class AsynchronousPageStoreTest
        /**
         * Store returns the restored page instance from wrapped store when 
there is a distant request
         * for it back again.
-        * 
+        *
         * @throws InterruptedException
         */
        @Test
@@ -190,7 +196,7 @@ public class AsynchronousPageStoreTest
                // ISerializer serializer = new DummySerializer();
 
                IDataStore dataStore = new DiskDataStore("applicationName", new 
File("./target"),
-                       Bytes.bytes(10000l));
+                               Bytes.bytes(10000l));
 
                // IPageStore pageStore = new DummyPageStore(new 
File("target/store"));
                IPageStore pageStore = spy(new DefaultPageStore(serializer, 
dataStore, 0));
@@ -215,7 +221,7 @@ public class AsynchronousPageStoreTest
        /**
         * Store works fully asynchronous when number of pages handled never 
exceeds the
         * asynchronous-storage capacity.
-        * 
+        *
         * @throws InterruptedException
         */
        @Test
@@ -228,7 +234,7 @@ public class AsynchronousPageStoreTest
                int asyncPageStoreCapacity = pages * sessions;
 
                List<Metrics> results = runTest(sessions, pages, writeMillis, 
readMillis,
-                       asyncPageStoreCapacity);
+                               asyncPageStoreCapacity);
 
                for (Metrics metrics : results)
                        System.out.println(metrics);
@@ -244,7 +250,7 @@ public class AsynchronousPageStoreTest
        /**
         * Store behaves sync from when number of pages handled exceeds the 
given asynchronous-storage
         * capacity. It works asynchronous until the number of pages reaches 
the limit (capacity).
-        * 
+        *
         * @throws InterruptedException
         */
        @Test
@@ -255,10 +261,10 @@ public class AsynchronousPageStoreTest
                long writeMillis = 2000;
                long readMillis = 1500;
                int asyncPageStoreCapacity = pages; // only up to the first 
round of
-                                                                               
        // pages
+               // pages
 
                List<Metrics> results = runTest(sessions, pages, writeMillis, 
readMillis,
-                       asyncPageStoreCapacity);
+                               asyncPageStoreCapacity);
 
                for (Metrics metrics : results)
                        System.out.println(metrics);
@@ -294,12 +300,12 @@ public class AsynchronousPageStoreTest
                public String toString()
                {
                        return "Metrics[storedPage = " + storedPage + ", 
storingMillis = " + storingMillis +
-                               ", restoredPage = " + restoredPage + ", 
restoringMillis = " + restoringMillis + "]";
+                                       ", restoredPage = " + restoredPage + ", 
restoringMillis = " + restoringMillis + "]";
                }
        }
 
        private List<Metrics> runTest(int sessions, int pages, long 
writeMillis, long readMillis,
-               int asyncPageStoreCapacity) throws InterruptedException
+                                     int asyncPageStoreCapacity) throws 
InterruptedException
        {
 
                List<Metrics> results = new ArrayList<>();
@@ -310,7 +316,7 @@ public class AsynchronousPageStoreTest
                ISerializer serializer = new 
DeflatedJavaSerializer("applicationKey");
 
                IDataStore dataStore = new DiskDataStore("applicationName", new 
File("./target"),
-                       Bytes.bytes(10000l));
+                               Bytes.bytes(10000l));
 
                // IPageStore pageStore = new DummyPageStore(new 
File("target/store")) {
                IPageStore pageStore = new DefaultPageStore(serializer, 
dataStore, 0)
@@ -339,7 +345,7 @@ public class AsynchronousPageStoreTest
 
                                stopwatch.reset();
                                DummyPage page = new DummyPage(pageId, 
around(writeMillis), around(readMillis),
-                                       sessionId);
+                                               sessionId);
                                stopwatch.start();
                                asyncPageStore.storePage(sessionId, page);
                                metrics.storedPage = page;
@@ -348,7 +354,7 @@ public class AsynchronousPageStoreTest
                                stopwatch.reset();
                                stopwatch.start();
                                metrics.restoredPage = DummyPage.class
-                                       .cast(asyncPageStore.getPage(sessionId, 
pageId));
+                                               
.cast(asyncPageStore.getPage(sessionId, pageId));
                                metrics.restoringMillis = 
stopwatch.elapsed(TimeUnit.MILLISECONDS);
 
                                results.add(metrics);
@@ -364,219 +370,4 @@ public class AsynchronousPageStoreTest
        {
                return RandomUtils.nextLong((long)(target * .9), (long)(target 
* 1.1));
        }
-
-       // other aux dummy impls for testing
-
-       private class DummySerializer implements ISerializer
-       {
-
-               @Override
-               public byte[] serialize(Object obj)
-               {
-                       ByteArrayOutputStream bos = null;
-                       ObjectOutput out = null;
-                       try
-                       {
-                               bos = new ByteArrayOutputStream();
-                               out = new ObjectOutputStream(bos);
-                               out.writeObject(obj);
-                               return bos.toByteArray();
-                       }
-                       catch (FileNotFoundException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       catch (IOException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       finally
-                       {
-                               try
-                               {
-                                       if (bos != null)
-                                               bos.close();
-                                       if (out != null)
-                                               out.close();
-                               }
-                               catch (IOException e)
-                               {
-                                       throw new RuntimeException(e);
-                               }
-                       }
-               }
-
-               @Override
-               public Object deserialize(byte[] bytes)
-               {
-                       ByteArrayInputStream bis = null;
-                       ObjectInput in = null;
-                       try
-                       {
-                               bis = new ByteArrayInputStream(bytes);
-                               in = new ObjectInputStream(bis);
-                               return in.readObject();
-                       }
-                       catch (IOException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       catch (ClassNotFoundException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       finally
-                       {
-                               try
-                               {
-                                       if (bis != null)
-                                               bis.close();
-                                       if (in != null)
-                                               in.close();
-                               }
-                               catch (IOException e)
-                               {
-                                       throw new RuntimeException(e);
-                               }
-                       }
-               }
-
-       }
-
-       private class DummyPageStore implements IPageStore
-       {
-
-               private File folder;
-
-               private DummyPageStore(File folder)
-               {
-                       folder.mkdirs();
-                       this.folder = folder;
-               }
-
-               private File getPageFile(String sessionId, int pageId)
-               {
-                       return new File(folder.getAbsolutePath() + "/" + 
sessionId + "-" + pageId + ".page");
-               }
-
-               private void toFile(Object obj, File file)
-               {
-                       FileOutputStream fos = null;
-                       ObjectOutput oo = null;
-                       try
-                       {
-                               fos = new FileOutputStream(file);
-                               oo = new ObjectOutputStream(fos);
-                               oo.writeObject(obj);
-                       }
-                       catch (FileNotFoundException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       catch (IOException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       finally
-                       {
-                               try
-                               {
-                                       if (fos != null)
-                                               fos.close();
-                                       if (oo != null)
-                                               oo.close();
-                               }
-                               catch (IOException e)
-                               {
-                                       throw new RuntimeException(e);
-                               }
-                       }
-               }
-
-               private Object fromFile(File file)
-               {
-                       FileInputStream fis = null;
-                       ObjectInput oi = null;
-                       try
-                       {
-                               fis = new FileInputStream(file);
-                               oi = new ObjectInputStream(fis);
-                               return oi.readObject();
-                       }
-                       catch (IOException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       catch (ClassNotFoundException e)
-                       {
-                               throw new RuntimeException(e);
-                       }
-                       finally
-                       {
-                               try
-                               {
-                                       if (fis != null)
-                                               fis.close();
-                                       if (oi != null)
-                                               oi.close();
-                               }
-                               catch (IOException e)
-                               {
-                                       throw new RuntimeException(e);
-                               }
-                       }
-               }
-
-               @Override
-               public void destroy()
-               {
-               }
-
-               @Override
-               public IManageablePage getPage(String sessionId, int pageId)
-               {
-                       return (IManageablePage)fromFile(getPageFile(sessionId, 
pageId));
-               }
-
-               @Override
-               public void removePage(String sessionId, int pageId)
-               {
-               }
-
-               @Override
-               public void storePage(String sessionId, IManageablePage page)
-               {
-                       toFile(page, getPageFile(sessionId, page.getPageId()));
-               }
-
-               @Override
-               public void unbind(String sessionId)
-               {
-               }
-
-               @Override
-               public Serializable prepareForSerialization(String sessionId, 
Serializable page)
-               {
-                       return null;
-               }
-
-               @Override
-               public Object restoreAfterSerialization(Serializable 
serializable)
-               {
-                       return null;
-               }
-
-               @Override
-               public IManageablePage convertToPage(Object page)
-               {
-                       return null;
-               }
-
-               @Override
-               public boolean canBeAsynchronous()
-               {
-                       return false;
-               }
-       }
-
-}
\ No newline at end of file
+}

Reply via email to