You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martin Grigorov <mg...@apache.org> on 2019/01/28 11:53:42 UTC

Re: [wicket] branch WICKET-6563 updated: WICKET-6563 correct MockPageStore

Hi Sven,

On Mon, Jan 28, 2019 at 1:48 PM <sv...@apache.org> 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 <sv...@apache.org>
> 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<>();
>
>

Re: [wicket] branch WICKET-6563 updated: WICKET-6563 correct MockPageStore

Posted by Sven Meier <sv...@meiers.net>.
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 <sv...@apache.org> 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 <sv...@apache.org>
>> 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<>();
>>
>>