*/
package org.opendaylight.netconf.nettyutil.handler;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-import org.opendaylight.netconf.util.messages.NetconfMessageConstants;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CodingErrorAction;
+import java.nio.charset.StandardCharsets;
+import org.opendaylight.netconf.util.messages.FramingMechanism;
/**
* netconf message part constants as bytes.
* @author Thomas Pantelis
*/
final class MessageParts {
- static final byte[] END_OF_MESSAGE = NetconfMessageConstants.END_OF_MESSAGE.getBytes(UTF_8);
- static final byte[] START_OF_CHUNK = NetconfMessageConstants.START_OF_CHUNK.getBytes(UTF_8);
- static final byte[] END_OF_CHUNK = NetconfMessageConstants.END_OF_CHUNK.getBytes(UTF_8);
+ 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;
+ }
}