public void toDataPre_GEODE_1_9_0_0(DataOutput out, SerializationContext context)
      throws IOException {
    // Make sure we are initialized before we serialize.
    initialize();
    out.writeShort(VERSION);
    out.writeInt(action);
    out.writeInt(numberOfParts);
    // out.writeUTF(this._id);
    context.getSerializer().writeObject(id, out);
    DataSerializer.writeString(regionPath, out);
    out.writeByte(valueIsObject);
    serializeKey(out, context);
    DataSerializer.writeByteArray(getSerializedValue(), out);
    context.getSerializer().writeObject(callbackArgument, out);
    out.writeBoolean(possibleDuplicate);
    out.writeLong(creationTime);
    out.writeInt(bucketId);
    out.writeLong(shadowKey);
    out.writeLong(getVersionTimeStamp());
  }
If the value owned of this event is just bytes return that byte array; otherwise serialize the
value object and return the serialized bytes. Use {@link #getValueIsObject()} to determine if
the result is raw or serialized bytes.
geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java