Hi Martin,
many thanks for keeping track!
Why this change has been made ?
Now the name "AbstractPersistentPageStore" is probably not good, because it
is not "persistent" anymore.
For wicketstuff-shiro's SessionPageStore I wanted to extends from
AbstractPersistentPageStore, i.e. keeping a stable session identifier
while persisting the actual pages into JSecurity's session.
But IPersistentPageStore forced some additional methods which cannot be
implemented, since the store doesn't have access to all persisted session.
So I just dropped the interface. It seems the class names
(IPersistentPageStore, AbstractPersistentPageStore) aren't right
currently. I'll try to improve.
Have fun
Sven
Am 28.01.19 um 12:53 schrieb Martin Grigorov:
Hi Sven,
On Mon, Jan 28, 2019 at 1:48 PM <[email protected]> wrote:
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch WICKET-6563
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/WICKET-6563 by this push:
new e47c3be WICKET-6563 correct MockPageStore
e47c3be is described below
commit e47c3be5883f3ade700c1a69bf2f9600530a9f6d
Author: Sven Meier <[email protected]>
AuthorDate: Mon Jan 28 12:35:35 2019 +0100
WICKET-6563 correct MockPageStore
and allow extending AbstractPersistentPageStore without implementing
IPersistentPageStore
---
.../src/main/java/org/apache/wicket/mock/MockPageStore.java | 11
+++++++++--
.../apache/wicket/pageStore/AbstractPersistentPageStore.java | 3 +--
.../main/java/org/apache/wicket/pageStore/DiskPageStore.java | 3 +--
.../main/java/org/apache/wicket/pageStore/FilePageStore.java | 2 +-
.../java/org/apache/wicket/pageStore/InMemoryPageStore.java | 2 +-
5 files changed, 13 insertions(+), 8 deletions(-)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
index 449c3e7..ec9c52c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageStore.java
@@ -49,7 +49,7 @@ public class MockPageStore implements IPageStore
public IManageablePage getPage(IPageContext context, int id)
{
for (IManageablePage page : pages) {
- if (page .getPageId() == id) {
+ if (page.getPageId() == id) {
return page;
}
}
@@ -59,7 +59,12 @@ public class MockPageStore implements IPageStore
@Override
public void removePage(IPageContext context, final IManageablePage
page)
{
- pages.remove(page);
+ for (IManageablePage candidate : pages) {
+ if (candidate.getPageId() == page.getPageId()) {
+ pages.remove(candidate);
+ return;
+ }
+ }
}
@Override
@@ -77,6 +82,8 @@ public class MockPageStore implements IPageStore
@Override
public void addPage(IPageContext context, IManageablePage page)
{
+ removePage(context, page);
+
pages.addLast(page);
}
}
\ No newline at end of file
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
index 918e8c1..de35467 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AbstractPersistentPageStore.java
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
*
* @see #getSessionIdentifier(IPageContext, boolean)
*/
-public abstract class AbstractPersistentPageStore implements
IPersistentPageStore
+public abstract class AbstractPersistentPageStore implements IPageStore
Why this change has been made ?
Now the name "AbstractPersistentPageStore" is probably not good, because it
is not "persistent" anymore.
{
private static final String KEY = "wicket:persistentPageStore";
@@ -219,7 +219,6 @@ public abstract class AbstractPersistentPageStore
implements IPersistentPageStor
}
- @Override
public String getSessionIdentifier(IPageContext context)
{
return getSessionIdentifier(context, true);
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
index 3fdaa55..f291dd2 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskPageStore.java
@@ -47,7 +47,6 @@ import org.apache.wicket.util.file.Files;
import org.apache.wicket.util.io.IOUtils;
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.lang.Bytes;
-import org.apache.wicket.util.lang.Classes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -64,7 +63,7 @@ import org.slf4j.LoggerFactory;
* This leads to pages with identical id superfluously kept in the file,
while older pages are prematurely expelled.
* Any following request to these older pages will then fail with {@link
PageExpiredException}.
*/
-public class DiskPageStore extends AbstractPersistentPageStore
+public class DiskPageStore extends AbstractPersistentPageStore implements
IPersistentPageStore
{
private static final Logger log =
LoggerFactory.getLogger(DiskPageStore.class);
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
index 8ebd85c..5c5390a 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/FilePageStore.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
* in its own file. This improves on a {@link DiskPageStore disadvantage
of DiskPageStore} surfacing
* with alternating Ajax requests from different browser tabs.
*/
-public class FilePageStore extends AbstractPersistentPageStore
+public class FilePageStore extends AbstractPersistentPageStore implements
IPersistentPageStore
{
private static final String ATTRIBUTE_PAGE_TYPE =
"user.wicket_page_type";
diff --git
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
index 9ea6476..1de3214 100644
---
a/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
+++
b/wicket-core/src/main/java/org/apache/wicket/pageStore/InMemoryPageStore.java
@@ -38,7 +38,7 @@ import org.apache.wicket.util.lang.Classes;
/**
* A storage of pages in memory.
*/
-public class InMemoryPageStore extends AbstractPersistentPageStore
+public class InMemoryPageStore extends AbstractPersistentPageStore
implements IPersistentPageStore
{
private final Map<String, MemoryData> datas = new
ConcurrentHashMap<>();