Skip to content

poblish/wire-message-contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

wire-message-contracts

Using only the following protobuf message file:

syntax = "proto2";

package org.hiatusuk.messages;

message MyMessage {
  required int64 id = 1;
  required string email = 2;
  required string userExternalReference = 3;

  enum UserRole {
      MASTER = 1;
      SERVANT = 2;
  }

  optional UserRole role = 4;
  optional string correlationId = 5;
}

The Maven plugin from square/wire generates code to allow the following Test:

@Test
public void testSerDeserEqualsAndHashcode() throws IOException {
    final MyMessage original = new MyMessage.Builder()
            .id(1981L)
            .role(UserRole.SERVANT)
            .userExternalReference("system7")
            .email("[email protected]")
            .correlationId("453454-435345-111-323")
            .build();

    System.out.println("Created: " + original);

    final byte[] bytes = MyMessage.ADAPTER.encode(original).clone();
    final MyMessage decoded = MyMessage.ADAPTER.decode(bytes);

    // Test equality, every way we can
    EqHash.testEqualsHashcode(original, decoded);
}

that demonstrates serialisation and deserialisation, with fully working equals() and hashCode() implementations.

About

Demo for square/wire's protobuf message contracts

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages