Skip to content

Commit 6c9a366

Browse files
committed
Finished with default cluster codec
1 parent c4c05c0 commit 6c9a366

File tree

6 files changed

+63
-16
lines changed

6 files changed

+63
-16
lines changed

cluster/src/main/java/io/scalecube/cluster/membership/MembershipProtocolImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,10 @@ private void schedulePeriodicSync() {
493493
private Message prepareSyncDataMsg(String qualifier, String cid) {
494494
List<MembershipRecord> membershipRecords = new ArrayList<>(membershipTable.values());
495495
SyncData syncData = new SyncData(membershipRecords, membershipConfig.syncGroup());
496-
return Message.withData(syncData).qualifier(qualifier).correlationId(cid).build();
496+
return Message.withData(syncData)
497+
.qualifier(qualifier)
498+
.correlationId(Optional.ofNullable(cid).orElse("null"))
499+
.build();
497500
}
498501

499502
private Mono<Void> syncMembership(SyncData syncData, boolean onStart) {

cluster/src/main/java/io/scalecube/cluster/membership/SyncData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundExcept
6363
membership.add((MembershipRecord) in.readObject());
6464
}
6565
// syncGroup
66-
syncGroup = (String) in.readObject();
66+
syncGroup = in.readUTF();
6767
}
6868

6969
@Override

cluster/src/main/java/io/scalecube/cluster/metadata/GetMetadataRequest.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package io.scalecube.cluster.metadata;
22

33
import io.scalecube.cluster.Member;
4+
import java.io.Externalizable;
5+
import java.io.IOException;
6+
import java.io.ObjectInput;
7+
import java.io.ObjectOutput;
48
import java.util.Objects;
59
import java.util.StringJoiner;
610

711
/** DTO class. Stands for remote request on getting metadata in remote MetadataStore. */
8-
final class GetMetadataRequest {
12+
final class GetMetadataRequest implements Externalizable {
13+
14+
private static final long serialVersionUID = 1L;
915

1016
/** Target member. */
1117
private Member member;
1218

13-
/** Instantiates empty GetMetadataRequest for deserialization purpose. */
14-
GetMetadataRequest() {}
19+
public GetMetadataRequest() {}
1520

1621
GetMetadataRequest(Member member) {
1722
this.member = Objects.requireNonNull(member);
@@ -21,6 +26,18 @@ public Member getMember() {
2126
return member;
2227
}
2328

29+
@Override
30+
public void writeExternal(ObjectOutput out) throws IOException {
31+
// member
32+
out.writeObject(member);
33+
}
34+
35+
@Override
36+
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
37+
// member
38+
member = (Member) in.readObject();
39+
}
40+
2441
@Override
2542
public String toString() {
2643
return new StringJoiner(", ", GetMetadataRequest.class.getSimpleName() + "[", "]")

cluster/src/main/java/io/scalecube/cluster/metadata/GetMetadataResponse.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
package io.scalecube.cluster.metadata;
22

33
import io.scalecube.cluster.Member;
4+
import java.io.Externalizable;
5+
import java.io.IOException;
6+
import java.io.ObjectInput;
7+
import java.io.ObjectOutput;
48
import java.nio.ByteBuffer;
59
import java.util.StringJoiner;
610

711
/**
812
* DTO class. Stands for response for preceding remote request on getting metadata in remote
913
* MetadataStore.
1014
*/
11-
final class GetMetadataResponse {
15+
final class GetMetadataResponse implements Externalizable {
16+
17+
private static final long serialVersionUID = 1L;
1218

1319
/** Target member with metadata. */
1420
private Member member;
1521

1622
/** Cluster member metadata. */
1723
private ByteBuffer metadata;
1824

19-
/** Instantiates empty GetMetadataResponse for deserialization purpose. */
20-
GetMetadataResponse() {}
25+
public GetMetadataResponse() {}
2126

2227
GetMetadataResponse(Member member, ByteBuffer metadata) {
2328
this.member = member;
@@ -32,6 +37,27 @@ ByteBuffer getMetadata() {
3237
return metadata;
3338
}
3439

40+
@Override
41+
public void writeExternal(ObjectOutput out) throws IOException {
42+
// member
43+
out.writeObject(member);
44+
// metadata
45+
byte[] bytes = metadata.array();
46+
out.writeInt(bytes.length);
47+
out.write(bytes);
48+
}
49+
50+
@Override
51+
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
52+
// member
53+
member = (Member) in.readObject();
54+
// metadata
55+
int size = in.readInt();
56+
byte[] bytes = new byte[size];
57+
in.read(bytes);
58+
metadata = ByteBuffer.wrap(bytes);
59+
}
60+
3561
@Override
3662
public String toString() {
3763
return new StringJoiner(", ", GetMetadataResponse.class.getSimpleName() + "[", "]")

cluster/src/test/java/io/scalecube/cluster/gossip/GossipRequestTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.scalecube.net.Address;
1212
import java.io.ByteArrayInputStream;
1313
import java.io.ByteArrayOutputStream;
14+
import java.io.Serializable;
1415
import java.util.ArrayList;
1516
import java.util.HashMap;
1617
import java.util.List;
@@ -76,11 +77,13 @@ private List<Gossip> getGossips() {
7677
return gossips;
7778
}
7879

79-
private static class TestData {
80+
private static class TestData implements Serializable {
81+
82+
private static final long serialVersionUID = 1L;
8083

8184
private Map<String, String> properties;
8285

83-
TestData() {}
86+
public TestData() {}
8487

8588
public Map<String, String> getProperties() {
8689
return properties;

transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/Message.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public static Builder with(Message message) {
134134
* @return new builder
135135
*/
136136
public static Builder builder() {
137-
return Builder.getInstance();
137+
return new Builder();
138138
}
139139

140140
/**
@@ -235,10 +235,6 @@ public static class Builder {
235235

236236
private Builder() {}
237237

238-
static Builder getInstance() {
239-
return new Builder();
240-
}
241-
242238
private Object data() {
243239
return this.data;
244240
}
@@ -253,11 +249,13 @@ private Map<String, String> headers() {
253249
}
254250

255251
public Builder headers(Map<String, String> headers) {
256-
this.headers.putAll(headers);
252+
headers.forEach(this::header);
257253
return this;
258254
}
259255

260256
public Builder header(String key, String value) {
257+
Objects.requireNonNull(key);
258+
Objects.requireNonNull(value);
261259
headers.put(key, value);
262260
return this;
263261
}

0 commit comments

Comments
 (0)