我是否可以将Infinispan配置为在特定缓存上使用JavaSerializationMarshaller(),并在其他缓存上使用protobufs?
我正在尝试从我是否可以将Infinispan配置为在特定缓存上使用JavaSerializationMarshaller(),并在其他缓存上使用protobufs?,java,serialization,infinispan,infinispan-10,Java,Serialization,Infinispan,Infinispan 10,我正在尝试从Infinispan 8.2.11.Final升级到Infinispan 10.1.8.Final。Infinispan现在默认使用协议缓冲区。Infinispan缓存由Hibernate使用,还包含一些应用程序对象 我可以如下设置全局封送拆收器: holder.getGlobalConfigurationBuilder() .serialization() .marshaller( new JavaSerializationMarsh
Infinispan 8.2.11.Final
升级到Infinispan 10.1.8.Final
。Infinispan现在默认使用协议缓冲区。Infinispan缓存由Hibernate使用,还包含一些应用程序对象
我可以如下设置全局封送拆收器:
holder.getGlobalConfigurationBuilder()
.serialization()
.marshaller( new JavaSerializationMarshaller() )
.whiteList().addClasses( CLASSES );
但是,如果我这样做,则有必要将所有hibernate类(例如,org.hibernate.cache.internal.CacheKeyImplementation
和其他)列入白名单
是否可以在用于应用程序对象的缓存上设置封送拆收器,以便在允许Hibernate使用protobuf的同时继续对应用程序对象使用Java序列化?否。封送拆收器对所有缓存都是全局的 您可以通过执行以下操作将Hibernate包添加到白名单:
.whiteList().addRegexps("org\\.hibernate.*");
查看Infinispan文档和中的更多信息
offtopic:上一个稳定版本是11.0.1.Final。我希望限制白名单,因为Hibernate中可能会有反序列化小工具,但我认为如果不了解所有内部内容,这将非常困难。