package org.infinispan.factories; import org.infinispan.commons.CacheException; import org.infinispan.commons.marshall.Marshaller; import org.infinispan.commons.marshall.StreamingMarshaller; import org.infinispan.factories.annotations.DefaultFactoryFor; import org.infinispan.marshall.core.GlobalMarshaller; /** * MarshallerFactory. * * @author Galder ZamarreƱo * @since 4.0 */ @DefaultFactoryFor(classes = {StreamingMarshaller.class, Marshaller.class}) public class MarshallerFactory extends EmptyConstructorFactory implements AutoInstantiableFactory { @Override public <T> T construct(Class<T> componentType) { Object comp; Marshaller configMarshaller = globalConfiguration.serialization().marshaller(); if (configMarshaller == null) { comp = new GlobalMarshaller(); } else { comp = new GlobalMarshaller(configMarshaller); } try { return componentType.cast(comp); } catch (Exception e) { throw new CacheException("Problems casting bootstrap component " + comp.getClass() + " to type " + componentType, e); } } }