public XAValueHolder(XAValueHolder<V> valueHolder, V value) { super(-1, valueHolder.creationTime(), valueHolder.expirationTime()); this.value = value; this.valueSerialized = null; }
private XAValueHolder(XAValueHolder<V> valueHolder, ByteBuffer serializedValue) { super(-1, valueHolder.creationTime(), valueHolder.expirationTime()); this.value = null; this.valueSerialized = new byte[serializedValue.remaining()]; serializedValue.get(this.valueSerialized); }
private Object writeReplace() { return new SerializedXAValueHolder<>(getId(), creationTime(), lastAccessTime(), expirationTime(), get(), valueSerialized); }
@Test public void testSerialization() throws Exception { long now = System.currentTimeMillis(); XAValueHolder<String> valueHolder = new XAValueHolder<>("value", now - 1000); valueHolder.accessed(now, Duration.ofSeconds(100)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream outputStream = new ObjectOutputStream(baos); outputStream.writeObject(valueHolder); outputStream.close(); @SuppressWarnings("unchecked") XAValueHolder<String> result = (XAValueHolder<String>) new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())).readObject(); assertThat(result.getId(), is(valueHolder.getId())); assertThat(result.creationTime(), is(valueHolder.creationTime())); assertThat(result.lastAccessTime(), is(valueHolder.lastAccessTime())); assertThat(result.expirationTime(), is(valueHolder.expirationTime())); assertThat(result.get(), is(valueHolder.get())); } }
public XAValueHolder(XAValueHolder<V> valueHolder, V value) { super(-1, valueHolder.creationTime(TimeUnit.MILLISECONDS), valueHolder.expirationTime(TimeUnit.MILLISECONDS)); this.value = value; this.valueSerialized = null; }
private XAValueHolder(XAValueHolder<V> valueHolder, ByteBuffer serializedValue) { super(-1, valueHolder.creationTime(TimeUnit.MILLISECONDS), valueHolder.expirationTime(TimeUnit.MILLISECONDS)); this.value = null; this.valueSerialized = new byte[serializedValue.remaining()]; serializedValue.get(this.valueSerialized); }
private Object writeReplace() { return new SerializedXAValueHolder<>(getId(), creationTime(NATIVE_TIME_UNIT), lastAccessTime(NATIVE_TIME_UNIT), expirationTime(NATIVE_TIME_UNIT), get(), valueSerialized); }