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

Reply via email to