-interface MessageParts {
- byte[] END_OF_MESSAGE = NetconfMessageConstants.END_OF_MESSAGE.getBytes(UTF_8);
- byte[] START_OF_CHUNK = NetconfMessageConstants.START_OF_CHUNK.getBytes(UTF_8);
- byte[] END_OF_CHUNK = NetconfMessageConstants.END_OF_CHUNK.getBytes(UTF_8);
+final class MessageParts {
+ static final byte[] END_OF_MESSAGE = asciiBytes(FramingMechanism.EOM_STR);
+ static final byte[] START_OF_CHUNK = asciiBytes(FramingMechanism.CHUNK_START_STR);
+ static final byte[] END_OF_CHUNK = asciiBytes(FramingMechanism.CHUNK_END_STR);
+
+ private MessageParts() {
+ // Hidden on purpose
+ }
+
+ private static byte[] asciiBytes(final String str) {
+ final ByteBuffer buf;
+ try {
+ buf = StandardCharsets.US_ASCII.newEncoder()
+ .onMalformedInput(CodingErrorAction.REPORT)
+ .onUnmappableCharacter(CodingErrorAction.REPORT)
+ .encode(CharBuffer.wrap(str));
+ } catch (CharacterCodingException e) {
+ throw new ExceptionInInitializerError(e);
+ }
+
+ final byte[] ret = new byte[buf.remaining()];
+ buf.get(ret);
+ return ret;
+ }