FYI: I deployed Wicket 9.0.0-M5 to production an hour ago. 100k requests
served and no issues so far.

Great work!

Thomas

On Wed, Apr 8, 2020 at 3:13 PM Sven Meier <s...@meiers.net> wrote:

> Many thanks Maxim!
>
> Sven
>
> On 08.04.20 14:29, Maxim Solodovnik wrote:
> > Released :)
> >
> > On Wed, 8 Apr 2020 at 15:41, Maxim Solodovnik <solomax...@gmail.com>
> wrote:
> >> OK
> >>
> >> Will start new release process in couple of hours
> >> Please stop me if you will find any blocker :)
> >>
> >> On Wed, 8 Apr 2020 at 14:36, Thomas Heigl <tho...@umschalt.com> wrote:
> >>> Hi Maxim,
> >>>
> >>> It works for me now!
> >>>
> >>> Thomas
> >>>
> >>> On Wed, Apr 8, 2020 at 9:17 AM Maxim Solodovnik <solomax...@gmail.com>
> >>> wrote:
> >>>
> >>>> Thanks a million!
> >>>>
> >>>> On Wed, 8 Apr 2020 at 14:10, Thomas Heigl <tho...@umschalt.com>
> wrote:
> >>>>> Hi Maxim,
> >>>>>
> >>>>> I'm testing against the snapshot now. Will get back to you shortly.
> >>>>>
> >>>>> Thomas
> >>>>>
> >>>>> On Wed, Apr 8, 2020 at 2:53 AM Maxim Solodovnik <
> solomax...@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hello All,
> >>>>>>
> >>>>>> M5 seems to be broken (deploy has failed more than 10 times during
> my
> >>>>>> build attempts)
> >>>>>> I have to start another release
> >>>>>> Could you please tell when can I start?
> >>>>>>
> >>>>>> On Wed, 8 Apr 2020 at 07:01, Maxim Solodovnik <solomax...@gmail.com
> >
> >>>>>> wrote:
> >>>>>>> Hello Thomas,
> >>>>>>>
> >>>>>>> Please test M6-SNAPSHOT (so I don't have to release M5.2 :))))
> >>>>>>>
> >>>>>>> On Wed, 8 Apr 2020 at 02:39, Thomas Heigl <tho...@umschalt.com>
> >>>> wrote:
> >>>>>>>> Hi Maxim,
> >>>>>>>>
> >>>>>>>> That would be great. I want to do some more extensive testing and
> >>>> then
> >>>>>>>> deploy M5 into production. ;)
> >>>>>>>>
> >>>>>>>> Thomas
> >>>>>>>>
> >>>>>>>> On Tue, Apr 7, 2020 at 7:50 PM Maxim Solodovnik <
> >>>> solomax...@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> I can pack another release
> >>>>>>>>> later this week ...
> >>>>>>>>>
> >>>>>>>>> On Wed, 8 Apr 2020 at 00:48, Thomas Heigl <tho...@umschalt.com>
> >>>>>> wrote:
> >>>>>>>>>> Thanks Sven!
> >>>>>>>>>>
> >>>>>>>>>> Did your changes make it into the release? Or did they just
> >>>> miss
> >>>>>> it?
> >>>>>>>>>> Thomas
> >>>>>>>>>>
> >>>>>>>>>> On Tue, Apr 7, 2020 at 7:43 PM Sven Meier <s...@meiers.net>
> >>>> wrote:
> >>>>>>>>>>> Hi Thomas,
> >>>>>>>>>>>
> >>>>>>>>>>> yes, you're right:
> >>>>>>>>>>>
> >>>>>>>>>>> wicketstuff data stores missed some adjustments to the latest
> >>>>>> updates
> >>>>>>>>> in
> >>>>>>>>>>> wicket-core.
> >>>>>>>>>>>
> >>>>>>>>>>> And SessionQuotaManagingDataStore$DelegatedPage must be
> >>>>>> serializable of
> >>>>>>>>>>> course.
> >>>>>>>>>>>
> >>>>>>>>>>> I've pushed changes to wicketstuff master.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks
> >>>>>>>>>>> Sven
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> On 07.04.20 14:14, Thomas Heigl wrote:
> >>>>>>>>>>>> And one more thing. There is now a warning logged just
> >>>> before
> >>>>>>>>>>> serialization:
> >>>>>>>>>>>> WARN o.a.w.pageStore.AsynchronousPageStore    : Delegated
> >>>> page
> >>>>>> store
> >>>>>>>>>>>>> 'org.apache.wicket.pageStore.SerializingPageStore' can
> >>>> not be
> >>>>>>>>>>> asynchronous
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Tue, Apr 7, 2020 at 2:09 PM Thomas Heigl <
> >>>>>> tho...@umschalt.com>
> >>>>>>>>> wrote:
> >>>>>>>>>>>>> The cause is the following MetaData entry in the session:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> class
> >>>>
> org.wicketstuff.datastores.common.SessionQuotaManagingDataStore$1=org.wicketstuff.datastores.common.SessionQuotaManagingDataStore$SizeLimitedData@4090594a
> >>>>>>>>>>>>> On Tue, Apr 7, 2020 at 1:59 PM Thomas Heigl <
> >>>>>> tho...@umschalt.com>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>>>> Hi Sven,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I just found time to give this a try with Wicket
> >>>> 9.0.0-M5.
> >>>>>> There
> >>>>>>>>> seem
> >>>>>>>>>>> to
> >>>>>>>>>>>>>> be issues with serialization now.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> My new config:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> protected IPageStore newCachingStore(IPageStore
> >>>> pageStore) {
> >>>>>>>>>>>>>>> return new CachingPageStore(pageStore, new
> >>>>>>>>>>> InMemoryPageStore(getName(),
> >>>>>>>>>>>>>>> MAX_PAGES_CACHED_PER_SESSION));
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>> protected IPageStore newPersistentStore() {
> >>>>>>>>>>>>>>> final RedissonRedisCache redisCache = new
> >>>>>>>>>>>>>>> RedissonRedisCache(redissonClient);
> >>>>>>>>>>>>>>> final RedisDataStore redisDataStore = new
> >>>>>>>>> RedisDataStore(getName(),
> >>>>>>>>>>>>>>> redisCache, new RedisSettings());
> >>>>>>>>>>>>>>> return new SessionQuotaManagingDataStore(redisDataStore,
> >>>>>>>>>>>>>>> DATA_STORE_MAX_BYTES_PER_SESSION);
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>> This exception is logged after requests:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>> org.springframework.data.redis.serializer.SerializationException:
> >>>>>>>>>>> Cannot
> >>>>>>>>>>>>>>> serialize; nested exception is
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.core.serializer.support.SerializationFailedException:
> >>>>>>>>>>>>>>> Failed to serialize object using DefaultSerializer;
> >>>> nested
> >>>>>>>>> exception
> >>>>>>>>>>> is
> >>>>>>>>>>>>>>> java.io.NotSerializableException:
> >>>>>>>>>>>>>>>
> >>>>
> org.wicketstuff.datastores.common.SessionQuotaManagingDataStore$DelegatedPage
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.serialize(JdkSerializationRedisSerializer.java:96)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.data.redis.core.AbstractOperations.rawHashValue(AbstractOperations.java:185)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.data.redis.core.DefaultHashOperations.putAll(DefaultHashOperations.java:147)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.data.redis.core.DefaultBoundHashOperations.putAll(DefaultBoundHashOperations.java:147)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.data.redis.RedisIndexedSessionRepository$RedisSession.saveDelta(RedisIndexedSessionRepository.java:795)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.data.redis.RedisIndexedSessionRepository$RedisSession.save(RedisIndexedSessionRepository.java:783)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.data.redis.RedisIndexedSessionRepository$RedisSession.access$000(RedisIndexedSessionRepository.java:670)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.data.redis.RedisIndexedSessionRepository.save(RedisIndexedSessionRepository.java:398)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.data.redis.RedisIndexedSessionRepository.save(RedisIndexedSessionRepository.java:249)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> com.myproject.session.InstrumentedFindByIndexNameSessionRepository.save(InstrumentedFindByIndexNameSessionRepository.java:29)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>>>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> >>>>>>>>>>>>>>> Method)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>>>>>>>>>>>>> at
> >>>>>> java.base/java.lang.reflect.Method.invoke(Method.java:566)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> io.micrometer.core.aop.TimedAspect.processWithTimer(TimedAspect.java:105)
> >>>>>>>>>>>>>>> at
> >>>> io.micrometer.core.aop.TimedAspect.timedMethod(TimedAspect.java:94)
> >>>>>>>>>>>>>>> at
> >>>>>> jdk.internal.reflect.GeneratedMethodAccessor146.invoke(Unknown
> >>>>>>>>>>> Source)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>>>>>>>>>>>>> at
> >>>>>> java.base/java.lang.reflect.Method.invoke(Method.java:566)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
> >>>>>>>>>>>>>>> at com.sun.proxy.$Proxy296.save(Unknown Source)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:225)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$100(SessionRepositoryFilter.java:192)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:144)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>> org.apache.tomcat.util.net
> >>>>>>>>>>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>> org.apache.tomcat.util.net
> >>>>>>>>>>> .SocketProcessorBase.run(SocketProcessorBase.java:49)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> >>>>>>>>>>>>>>> at java.base/java.lang.Thread.run(Thread.java:834)
> >>>>>>>>>>>>>>> Caused by:
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.core.serializer.support.SerializationFailedException:
> >>>>>>>>>>>>>>> Failed to serialize object using DefaultSerializer;
> >>>> nested
> >>>>>>>>> exception
> >>>>>>>>>>> is
> >>>>>>>>>>>>>>> java.io.NotSerializableException:
> >>>>>>>>>>>>>>>
> >>>>
> org.wicketstuff.datastores.common.SessionQuotaManagingDataStore$DelegatedPage
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:68)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:35)
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>
> org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.serialize(JdkSerializationRedisSerializer.java:94)
> >>>>>>>>>>>>>>> ... 52 common frames omitted
> >>>>>>>>>>>>>>> Caused by: java.io.NotSerializableException:
> >>>>>>>>>>>>>>>
> >>>>
> org.wicketstuff.datastores.common.SessionQuotaManagingDataStore$DelegatedPage
> >>>>>>>>>>>>>> Why does Wicket 9 try to serialize the
> >>>>>>>>> SessionQuotaManagingDataStore in
> >>>>>>>>>>>>>> the session? Is this intended and does DelegatePage
> >>>> simply
> >>>>>> need to
> >>>>>>>>>>>>>> implement Serializable or shouldn't this be serialized at
> >>>>>> all? In
> >>>>>>>>>>> Wicket 8,
> >>>>>>>>>>>>>> the corresponding PageData wasn't serializable either so
> >>>> my
> >>>>>> guess
> >>>>>>>>>>> would be
> >>>>>>>>>>>>>> that this behavior is not intended.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I'm using the following config for Wicket 8 and there
> >>>> are no
> >>>>>> such
> >>>>>>>>>>> issues:
> >>>>>>>>>>>>>> protected IPageStore newPageStore(IDataStore dataStore) {
> >>>>>>>>>>>>>>> final ISerializer pageSerializer =
> >>>>>>>>>>>>>>> getFrameworkSettings().getSerializer();
> >>>>>>>>>>>>>>> return new PerSessionPageStore(pageSerializer,
> >>>> dataStore,
> >>>>>>>>>>>>>>> MAX_PAGES_CACHED_PER_SESSION);
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>> protected IDataStore newDataStore() {
> >>>>>>>>>>>>>>> final RedissonRedisCache redisCache = new
> >>>>>>>>>>>>>>> RedissonRedisCache(redissonClient.get());
> >>>>>>>>>>>>>>> final RedisDataStore redisDataStore = new
> >>>>>>>>> RedisDataStore(redisCache,
> >>>>>>>>>>> new
> >>>>>>>>>>>>>>> RedisSettings());
> >>>>>>>>>>>>>>> return new SessionQuotaManagingDataStore(redisDataStore,
> >>>>>>>>>>>>>>> DATA_STORE_MAX_BYTES_PER_SESSION);
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Thomas
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> On Sat, Mar 28, 2020 at 10:23 AM Thomas Heigl <
> >>>>>> tho...@umschalt.com
> >>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Thanks Sven!
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> That looks much better. I'll give it a try as soon as I
> >>>> can.
> >>>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Thomas
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Fri, Mar 27, 2020 at 2:23 PM Sven Meier <
> >>>> s...@meiers.net
> >>>>>>>>> wrote:
> >>>>>>>>>>>>>>>> Hi Thomas,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> your question comes at the right time.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> I was able to improve the implementation with a new
> >>>>>>>>> CachingPageStore:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>
> https://github.com/apache/wicket/blob/8df3528dc44a08b7d375c20e764a3664cd6a5f30/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java#L145
> >>>>>>>>>>>>>>>> You can now use InMemoryPageStore as a cache too.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Have fun
> >>>>>>>>>>>>>>>> Sven
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 27.03.20 09:34, Sven Meier wrote:
> >>>>>>>>>>>>>>>>> Hi Thomas,
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> I thought I covered that usecase, but I will have to
> >>>> take
> >>>>>> a
> >>>>>>>>> look.
> >>>>>>>>>>>>>>>>> Thanks for testing Wicket 9
> >>>>>>>>>>>>>>>>> Sven
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On 25.03.20 20:10, Thomas Heigl wrote:
> >>>>>>>>>>>>>>>>>> Maybe the same approach could be used as for
> >>>>>> InSessionPageStore
> >>>>>>>>>>> that
> >>>>>>>>>>>>>>>>>> can be
> >>>>>>>>>>>>>>>>>> used as cache and a store:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>
> https://github.com/apache/wicket/commit/894799e01227781be76886b2d1cdb2a424c812e0
> >>>>>>>>>>>>>>>>>> On Wed, Mar 25, 2020 at 6:35 PM Thomas Heigl <
> >>>>>>>>> tho...@umschalt.com>
> >>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Hi all,
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> I just merged our master in our Wicket 9 branch and
> >>>> I
> >>>>>> ran
> >>>>>>>>> into an
> >>>>>>>>>>>>>>>>>>> issue:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Our current configuration with Wicket 8 looks like
> >>>> this:
> >>>>>>>>>>>>>>>>>>> PageStore = PerSessionPageStore
> >>>>>>>>>>>>>>>>>>> DataStore = RedisDataStore
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> So the page store keeps the last couple of pages of
> >>>> a
> >>>>>> session
> >>>>>>>>> in
> >>>>>>>>>>>>>>>> memory
> >>>>>>>>>>>>>>>>>>> and Redis is used as a persistent store.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> I tried to recreate this behavior with Wicket 9:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> SessionStore = InMemoryPageStore
> >>>>>>>>>>>>>>>>>>> PersistentStore = RedisDataStore
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> This looks correct, but it *does not work* because
> >>>>>>>>> InMemoryPage
> >>>>>>>>>>>>>>>> store
> >>>>>>>>>>>>>>>>>>> implements AbstractPersistentPageStore and does
> >>>> *not*
> >>>>>>>>> delegate to
> >>>>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>> next store in the chain.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> So we basically lost the option to use a memory page
> >>>>>> store in
> >>>>>>>>>>> front
> >>>>>>>>>>>>>>>>>>> of a
> >>>>>>>>>>>>>>>>>>> persistent store.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> We need this functionality because we are using
> >>>> Spring
> >>>>>>>>> Session and
> >>>>>>>>>>>>>>>>>>> cannot
> >>>>>>>>>>>>>>>>>>> use the session as a page store.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Would it be possible to add an InMemory store that
> >>>>>> delegates
> >>>>>>>>> to
> >>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>> next
> >>>>>>>>>>>>>>>>>>> store in the chain? Or do I have to implement it
> >>>> myself?
> >>>>>>>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Thomas
> >>>>>>>>>>>>>>>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
> >>>>>> users-unsubscr...@wicket.apache.org
> >>>>>>>>>>>>>>>>> For additional commands, e-mail:
> >>>>>> users-h...@wicket.apache.org
> >>>> ---------------------------------------------------------------------
> >>>>>>>>>>>>>>>> To unsubscribe, e-mail:
> >>>>>> users-unsubscr...@wicket.apache.org
> >>>>>>>>>>>>>>>> For additional commands, e-mail:
> >>>>>> users-h...@wicket.apache.org
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>>>>>>>> For additional commands, e-mail:
> >>>> users-h...@wicket.apache.org
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Best regards,
> >>>>>>>>> Maxim
> >>>>>>>>>
> >>>>>>>>>
> >>>> ---------------------------------------------------------------------
> >>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Best regards,
> >>>>>>> Maxim
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Best regards,
> >>>>>> Maxim
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>> --
> >>>> Best regards,
> >>>> Maxim
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>
> >>>>
> >>
> >>
> >> --
> >> Best regards,
> >> Maxim
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to