On Fri, Apr 10, 2020 at 4:01 PM Thomas Heigl <tho...@umschalt.com> wrote:

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

Awesome!
Thank you for testing it!


>
> 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