Skip to content

Commit d00b595

Browse files
committed
BAEL-8055, Packed Repeated Fields in Protobuf in Java
1 parent 2fb0457 commit d00b595

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

grpc/src/main/java/com/baeldung/grpc/repeated/OrderService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ public class OrderService extends OrderServiceGrpc.OrderServiceImplBase {
1212
private static final Logger logger = LoggerFactory.getLogger(OrderService.class);
1313

1414
@Override
15-
public void createOrder(UnPackedOrder unpackedOrder, StreamObserver<UnPackedOrder> responseObserver) {
15+
public void createOrder(UnpackedOrder unpackedOrder, StreamObserver<UnpackedOrder> responseObserver) {
1616
List<Integer> productIds = unpackedOrder.getProductIdsList();
1717
if(validateProducts(productIds)) {
1818
int orderID = insertOrder(unpackedOrder);
1919
logger.info("Order {} created successfully", orderID);
20-
UnPackedOrder createdUnPackedOrder = UnPackedOrder.newBuilder(unpackedOrder)
20+
UnpackedOrder createdUnpackedOrder = UnpackedOrder.newBuilder(unpackedOrder)
2121
.setOrderId(orderID)
2222
.build();
23-
responseObserver.onNext(createdUnPackedOrder);
23+
responseObserver.onNext(createdUnpackedOrder);
2424
responseObserver.onCompleted();
2525
}
2626
}
2727

28-
private int insertOrder(UnPackedOrder unpackedOrder) {
28+
private int insertOrder(UnpackedOrder unpackedOrder) {
2929
return new Random().nextInt(100);
3030
}
3131

grpc/src/main/proto/repeated.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ message PackedOrder {
88
repeated int32 productIds = 2 [packed = true];
99
}
1010

11-
message UnPackedOrder {
11+
message UnpackedOrder {
1212
int32 orderId = 1;
1313
repeated int32 productIds = 2 [packed = false];
1414
}
1515

1616
service OrderService {
17-
rpc createOrder(UnPackedOrder) returns (UnPackedOrder){}
17+
rpc createOrder(UnpackedOrder) returns (UnpackedOrder){}
1818
}

grpc/src/test/java/com/baeldung/grpc/repeated/ProtobufPackedFieldUnitTest.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public class ProtobufPackedFieldUnitTest {
3737
@AfterAll
3838
static void clean() {
3939
File packedFile = new File(FOLDER_TO_WRITE_OBJECTS + "packed_order.bin");
40-
File unPackedFile = new File(FOLDER_TO_WRITE_OBJECTS + "unpacked_order.bin");
41-
if (packedFile.delete() && unPackedFile.delete()) {
40+
File unpackedFile = new File(FOLDER_TO_WRITE_OBJECTS + "unpacked_order.bin");
41+
if (packedFile.delete() && unpackedFile.delete()) {
4242
logger.info("files {} and {} deleted successfully", "packed_order.bin", "unpacked_order.bin");
4343
}
4444
}
@@ -64,26 +64,26 @@ void setup() throws IOException {
6464
}
6565

6666
@Test
67-
void whenUnPackedRepeatedProductIds_thenCreateUnPackedOrderAndInvokeRPC() {
68-
UnPackedOrder.Builder unPackedOrderBuilder = UnPackedOrder.newBuilder();
69-
unPackedOrderBuilder.setOrderId(1);
70-
Arrays.stream(fetchProductIds()).forEach(unPackedOrderBuilder::addProductIds);
71-
UnPackedOrder unPackedOrderRequest = unPackedOrderBuilder.build();
67+
void whenUnpackedRepeatedProductIds_thenCreateUnpackedOrderAndInvokeRPC() {
68+
UnpackedOrder.Builder unpackedOrderBuilder = UnpackedOrder.newBuilder();
69+
unpackedOrderBuilder.setOrderId(1);
70+
Arrays.stream(fetchProductIds()).forEach(unpackedOrderBuilder::addProductIds);
71+
UnpackedOrder unpackedOrderRequest = unpackedOrderBuilder.build();
7272

73-
UnPackedOrder unPackedOrderResponse = orderClientStub.createOrder(unPackedOrderRequest);
73+
UnpackedOrder unpackedOrderResponse = orderClientStub.createOrder(unpackedOrderRequest);
7474

75-
assertInstanceOf(Integer.class, unPackedOrderResponse.getOrderId());
75+
assertInstanceOf(Integer.class, unpackedOrderResponse.getOrderId());
7676
}
7777

7878
@Test
79-
void whenSerializeUnPackedOrderAndPackedOrderObject_thenSizeofPackedOrderObjectIsLess() throws IOException {
80-
UnPackedOrder.Builder unPackedOrderBuilder = UnPackedOrder.newBuilder();
81-
unPackedOrderBuilder.setOrderId(1);
82-
Arrays.stream(fetchProductIds()).forEach(unPackedOrderBuilder::addProductIds);
83-
UnPackedOrder unPackedOrder = unPackedOrderBuilder.build();
84-
String unPackedOrderObjFileName = FOLDER_TO_WRITE_OBJECTS + "unpacked_order.bin";
79+
void whenSerializeUnpackedOrderAndPackedOrderObject_thenSizeofPackedOrderObjectIsLess() throws IOException {
80+
UnpackedOrder.Builder unpackedOrderBuilder = UnpackedOrder.newBuilder();
81+
unpackedOrderBuilder.setOrderId(1);
82+
Arrays.stream(fetchProductIds()).forEach(unpackedOrderBuilder::addProductIds);
83+
UnpackedOrder unpackedOrder = unpackedOrderBuilder.build();
84+
String unpackedOrderObjFileName = FOLDER_TO_WRITE_OBJECTS + "unpacked_order.bin";
8585

86-
serializeObject(unPackedOrderObjFileName, unPackedOrder);
86+
serializeObject(unpackedOrderObjFileName, unpackedOrder);
8787

8888
PackedOrder.Builder packedOrderBuilder = PackedOrder.newBuilder();
8989
packedOrderBuilder.setOrderId(1);
@@ -93,7 +93,7 @@ void whenSerializeUnPackedOrderAndPackedOrderObject_thenSizeofPackedOrderObjectI
9393

9494
serializeObject(packedOrderObjFileName, packedOrder);
9595

96-
long sizeOfUnpackedOrderObjectFile = getFileSize(unPackedOrderObjFileName);
96+
long sizeOfUnpackedOrderObjectFile = getFileSize(unpackedOrderObjFileName);
9797
long sizeOfPackedOrderObjectFile = getFileSize(packedOrderObjFileName);
9898
long sizeReductionPercentage = (sizeOfUnpackedOrderObjectFile - sizeOfPackedOrderObjectFile) * 100/sizeOfUnpackedOrderObjectFile;
9999
logger.info("Packed field saved {}% over unpacked field", sizeReductionPercentage);

0 commit comments

Comments
 (0)