package org.infinispan.query.remote; import org.infinispan.factories.annotations.Inject; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.protostream.SerializationContext; import org.infinispan.query.remote.client.BaseProtoStreamMarshaller; import org.infinispan.query.remote.impl.ProtobufMetadataManagerImpl; /** * A per {@link EmbeddedCacheManager} marshaller that should be used as compatibility mode marshaller (see {@link * org.infinispan.interceptors.compat.TypeConverterInterceptor}) in server. An instance cannot be shared between * multiple cache managers. * * @author anistor@redhat.com * @since 6.0 */ public class CompatibilityProtoStreamMarshaller extends BaseProtoStreamMarshaller { protected EmbeddedCacheManager cacheManager; public CompatibilityProtoStreamMarshaller() { } @Inject @SuppressWarnings("unused") protected void injectDependencies(EmbeddedCacheManager cacheManager) { this.cacheManager = cacheManager; } @Override protected SerializationContext getSerializationContext() { if (cacheManager == null) { throw new IllegalStateException("cacheManager not set"); } return ProtobufMetadataManagerImpl.getSerializationContextInternal(cacheManager); } }