TcpCodecs factory Sonar polishing
- also some magic numbers in the deserializers
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2017-2018 the original author or authors.
|
||||
* Copyright 2017-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -34,6 +34,8 @@ import org.springframework.util.StreamUtils;
|
||||
*/
|
||||
public class ByteArrayElasticRawDeserializer implements Deserializer<byte[]> {
|
||||
|
||||
private static final int DEFAULT_INITIAL_SIZE = 32;
|
||||
|
||||
private final int initialBufferSize;
|
||||
|
||||
/**
|
||||
@@ -41,7 +43,7 @@ public class ByteArrayElasticRawDeserializer implements Deserializer<byte[]> {
|
||||
* buffer size of 32;
|
||||
*/
|
||||
public ByteArrayElasticRawDeserializer() {
|
||||
this(32);
|
||||
this(DEFAULT_INITIAL_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,21 +45,24 @@ import org.apache.commons.logging.LogFactory;
|
||||
*/
|
||||
public class ByteArrayLengthHeaderSerializer extends AbstractByteArraySerializer {
|
||||
|
||||
|
||||
/**
|
||||
* Default length-header field, allows for data up to 2**31-1 bytes.
|
||||
*/
|
||||
public static final int HEADER_SIZE_INT = 4; // default
|
||||
|
||||
/**
|
||||
* A single unsigned byte, for data up to 255 bytes.
|
||||
*/
|
||||
public static final int HEADER_SIZE_UNSIGNED_BYTE = 1;
|
||||
public static final int HEADER_SIZE_INT = Integer.BYTES; // default
|
||||
|
||||
/**
|
||||
* An unsigned short, for data up to 2**16 bytes.
|
||||
*/
|
||||
public static final int HEADER_SIZE_UNSIGNED_SHORT = 2;
|
||||
public static final int HEADER_SIZE_UNSIGNED_SHORT = Short.BYTES;
|
||||
|
||||
/**
|
||||
* A single unsigned byte, for data up to 255 bytes.
|
||||
*/
|
||||
public static final int HEADER_SIZE_UNSIGNED_BYTE = Byte.BYTES;
|
||||
|
||||
private static final int MAX_UNSIGNED_SHORT = 0xffff;
|
||||
|
||||
private static final int MAX_UNSIGNED_BYTE = 0xff;
|
||||
|
||||
private final int headerSize;
|
||||
|
||||
@@ -183,7 +186,7 @@ public class ByteArrayLengthHeaderSerializer extends AbstractByteArraySerializer
|
||||
lengthPart.putInt(length);
|
||||
break;
|
||||
case HEADER_SIZE_UNSIGNED_BYTE:
|
||||
if (length > 0xff) {
|
||||
if (length > MAX_UNSIGNED_BYTE) {
|
||||
throw new IllegalArgumentException("Length header:"
|
||||
+ this.headerSize
|
||||
+ " too short to accommodate message length:" + length);
|
||||
@@ -191,7 +194,7 @@ public class ByteArrayLengthHeaderSerializer extends AbstractByteArraySerializer
|
||||
lengthPart.put((byte) length);
|
||||
break;
|
||||
case HEADER_SIZE_UNSIGNED_SHORT:
|
||||
if (length > 0xffff) {
|
||||
if (length > MAX_UNSIGNED_SHORT) {
|
||||
throw new IllegalArgumentException("Length header:"
|
||||
+ this.headerSize
|
||||
+ " too short to accommodate message length:" + length);
|
||||
@@ -231,10 +234,10 @@ public class ByteArrayLengthHeaderSerializer extends AbstractByteArraySerializer
|
||||
}
|
||||
break;
|
||||
case HEADER_SIZE_UNSIGNED_BYTE:
|
||||
messageLength = ByteBuffer.wrap(lengthPart).get() & 0xff;
|
||||
messageLength = ByteBuffer.wrap(lengthPart).get() & MAX_UNSIGNED_BYTE;
|
||||
break;
|
||||
case HEADER_SIZE_UNSIGNED_SHORT:
|
||||
messageLength = ByteBuffer.wrap(lengthPart).getShort() & 0xffff;
|
||||
messageLength = ByteBuffer.wrap(lengthPart).getShort() & MAX_UNSIGNED_SHORT;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Bad header size:" + this.headerSize);
|
||||
|
||||
@@ -29,7 +29,7 @@ public class ByteArrayLfSerializer extends ByteArraySingleTerminatorSerializer {
|
||||
public static final ByteArrayLfSerializer INSTANCE = new ByteArrayLfSerializer();
|
||||
|
||||
public ByteArrayLfSerializer() {
|
||||
super((byte) 0x0a);
|
||||
super((byte) '\n');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public final class TcpCodecs {
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader1() {
|
||||
if (oneByteLHS == null) {
|
||||
oneByteLHS = new ByteArrayLengthHeaderSerializer(1);
|
||||
oneByteLHS = new ByteArrayLengthHeaderSerializer(ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_BYTE);
|
||||
}
|
||||
return oneByteLHS;
|
||||
}
|
||||
@@ -111,7 +111,8 @@ public final class TcpCodecs {
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader2() {
|
||||
if (twoByteLHS == null) {
|
||||
twoByteLHS = new ByteArrayLengthHeaderSerializer(2);
|
||||
twoByteLHS = new ByteArrayLengthHeaderSerializer(
|
||||
ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_SHORT);
|
||||
}
|
||||
return twoByteLHS;
|
||||
}
|
||||
@@ -123,7 +124,7 @@ public final class TcpCodecs {
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader4() {
|
||||
if (fourByteLHS == null) {
|
||||
fourByteLHS = new ByteArrayLengthHeaderSerializer(4);
|
||||
fourByteLHS = new ByteArrayLengthHeaderSerializer(ByteArrayLengthHeaderSerializer.HEADER_SIZE_INT);
|
||||
}
|
||||
return fourByteLHS;
|
||||
}
|
||||
@@ -136,11 +137,11 @@ public final class TcpCodecs {
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader(int bytes) {
|
||||
switch (bytes) {
|
||||
case 1:
|
||||
case ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_BYTE:
|
||||
return lengthHeader1();
|
||||
case 2:
|
||||
case ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_SHORT:
|
||||
return lengthHeader2();
|
||||
case 4:
|
||||
case ByteArrayLengthHeaderSerializer.HEADER_SIZE_INT:
|
||||
return lengthHeader4();
|
||||
default:
|
||||
throw new IllegalArgumentException("Only 1, 2 or 4 byte headers are supported");
|
||||
@@ -216,7 +217,8 @@ public final class TcpCodecs {
|
||||
* @since 5.1.3
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader1(int maxMessageSize) {
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(1);
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(
|
||||
ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_BYTE);
|
||||
codec.setMaxMessageSize(maxMessageSize);
|
||||
return codec;
|
||||
}
|
||||
@@ -228,7 +230,8 @@ public final class TcpCodecs {
|
||||
* @since 5.1.3
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader2(int maxMessageSize) {
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(2);
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(
|
||||
ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_SHORT);
|
||||
codec.setMaxMessageSize(maxMessageSize);
|
||||
return codec;
|
||||
}
|
||||
@@ -240,7 +243,8 @@ public final class TcpCodecs {
|
||||
* @since 5.1.3
|
||||
*/
|
||||
public static ByteArrayLengthHeaderSerializer lengthHeader4(int maxMessageSize) {
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(4);
|
||||
ByteArrayLengthHeaderSerializer codec = new ByteArrayLengthHeaderSerializer(
|
||||
ByteArrayLengthHeaderSerializer.HEADER_SIZE_INT);
|
||||
codec.setMaxMessageSize(maxMessageSize);
|
||||
return codec;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user