THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Adding ability to set a marshaller to cache configuration:
public class CacheConfiguration { // ... public void setMarshaller(Marshaller marshaller) {...} public Marshaller getMarshaller() {...} // ... }
Public API: New Interface
/** * Abstracted binary representation of objects. */ public interface IgniteObject { /** * Gets portable object type ID. * * @return Type ID. */ public int typeId(); /** * Gets fully deserialized instance of portable object. * * @return Fully deserialized instance of portable object. */ @Nullable public <T> T deserialize() throws IgniteException; /** * Gets field value. * * @param fieldName Field name. * @return Field value. */ @Nullable public <T> T field(String fieldName); /** * Checks whether field is set. * * @param fieldName Field name. * @return {@code true} if field is set. */ public boolean hasField(String fieldName); /** * Gets the source input stream that was used to create this IgniteObject. */ public SeekableDataInput source(); }
/** * */ public interface CacheObjectFactory { /** * @param input Seekable input. * @return Cache object. */ @Nullable public IgniteObject toIgniteObject(SeekableDataInput input); /** * @param typeName Type name. * @return Type ID. */ public abstract int typeId(String typeName); /** * @param obj Object to get type ID for. * @return Type ID. */ public abstract int typeId(Object obj); }
public interface MarshallerEx extends Marshaller { public CacheObjectFactory getCacheObjectFactory(); }
public interface SeekableDataInput extends DataInput { public long position(); public void seek(long pos) throws IOException; public void ensureOnHeap(); }