Rewrite POSSIBLE_ENDS and POSSIBLE_STARTS 99/5199/3
authorRobert Varga <rovarga@cisco.com>
Sat, 8 Feb 2014 02:45:52 +0000 (03:45 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 11 Feb 2014 00:09:20 +0000 (00:09 +0000)
These two are really simple byte arrays, initialized them as such
withouth going through strings/UTF8.

Change-Id: Id80151d9ff57df4b7a5595f76f30a379d89af3dd
Signed-off-by: Robert Varga <rovarga@cisco.com>
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfXMLToMessageDecoder.java

index 62a06e6e2077b677780a50f30bc62e05122efd45..2eefb917245e152ee0cb59e7eb84f8867a5edfa3 100644 (file)
@@ -33,11 +33,13 @@ import com.google.common.collect.ImmutableList;
 public final class NetconfXMLToMessageDecoder extends ByteToMessageDecoder {
     private static final Logger LOG = LoggerFactory.getLogger(NetconfXMLToMessageDecoder.class);
 
-    // FIXME: this is funky way of creating arrays
     private static final List<byte[]> POSSIBLE_ENDS = ImmutableList.of(
-            "]\n".getBytes(Charsets.UTF_8), "]\r\n".getBytes(Charsets.UTF_8));
+            new byte[] { ']', '\n' },
+            new byte[] { ']', '\r', '\n' });
     private static final List<byte[]> POSSIBLE_STARTS = ImmutableList.of(
-            "[".getBytes(Charsets.UTF_8), "\r\n[".getBytes(Charsets.UTF_8), "\n[".getBytes(Charsets.UTF_8));
+            new byte[] { '[' },
+            new byte[] { '\r', '\n', '[' },
+            new byte[] { '\n', '[' });
 
     @Override
     @VisibleForTesting
@@ -57,6 +59,10 @@ public final class NetconfXMLToMessageDecoder extends ByteToMessageDecoder {
 
             String additionalHeader = null;
 
+            // FIXME: this has to be moved into the negotiator and explained as to what the heck
+            // is going on. This is definitely not specified in NETCONF and has no place here. It
+            // requires reading all data and incurs inefficiency by being unable to pipe the ByteBuf
+            // directly into the XML decoder.
             if (startsWithAdditionalHeader(bytes)) {
                 // Auth information containing username, ip address... extracted for monitoring
                 int endOfAuthHeader = getAdditionalHeaderEndIndex(bytes);