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
-- Best regards, Maxim --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org