Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Message#writeTo, Message#readFrom logic is depends on a remote IgniteProductVersion.
  2. Message#writeTo, Message#readFrom is auto-generated and stored separately from Message DTO classes.
  3. Message fields contain:
    1. primitive classes
    2. known collections
    3. POJO - that are other Message
    4. Users classes and java functions (e.g. ComputeJob), that will be serialized with JdkMarshaller
    5. byte[] fields (objects serialized externally) must be avoided as much as possible, because their compatibility can't be guaranteed
  4. Add @Since, @Until  annotations for Message classes and fields.

JavaSerialization 

  1. Code generator must inject JdkMarshaller into Message and use it during serialization if JavaSerialization annotation is used. 

Version check

  1. Ignite CI must notify for IF-clauses with condition based on IgniteVersion older than (curVer - 1).
  2. Ignite CI must forbid code changes if Message DTO changed without corresponding @Since, @Until annotations.
  3. Ignite CI must forbid code changes if Message DTO contains byte[] fields.

...