From c2f8265c1db9daccd3c39e717e55c071e50132c3 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Wed, 14 Nov 2018 14:05:42 +0100 Subject: VPP-1477: Replace DatatypeConverter.printHexBinary with bytesToHex As of Java 11 javax.xml.bind.DatatypeConverter is no longer part of standard Java distribution, therefore it is replaced by equivalent method. Change-Id: I51726d0d0d02782bd3bb1dbdc54df5bd63bd8f15 Signed-off-by: Michal Cmarada (cherry picked from commit feb7092544a9e49370037b6d90b43e98c65e7a41) --- .../io/fd/vpp/jvpp/core/examples/L2AclExample.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/extras/japi/java/jvpp-core/io/fd/vpp/jvpp/core/examples/L2AclExample.java b/extras/japi/java/jvpp-core/io/fd/vpp/jvpp/core/examples/L2AclExample.java index f89043a3b0a..9a17136a6d9 100644 --- a/extras/japi/java/jvpp-core/io/fd/vpp/jvpp/core/examples/L2AclExample.java +++ b/extras/japi/java/jvpp-core/io/fd/vpp/jvpp/core/examples/L2AclExample.java @@ -34,7 +34,6 @@ import io.fd.vpp.jvpp.core.dto.ClassifyTableInfoReply; import io.fd.vpp.jvpp.core.dto.InputAclSetInterface; import io.fd.vpp.jvpp.core.dto.InputAclSetInterfaceReply; import io.fd.vpp.jvpp.core.future.FutureJVppCoreFacade; -import javax.xml.bind.DatatypeConverter; /** *

Tests L2 ACL creation and read.
Equivalent to the following vppctl commands:
@@ -50,6 +49,8 @@ import javax.xml.bind.DatatypeConverter; public class L2AclExample { private static final int LOCAL0_IFACE_ID = 0; + private static final char[] hexArray = "0123456789ABCDEF".toCharArray(); + private static ClassifyAddDelTable createClassifyTable() { ClassifyAddDelTable request = new ClassifyAddDelTable(); @@ -67,6 +68,16 @@ public class L2AclExample { return request; } + private static String bytesToHex(byte[] bytes) { + char[] hexChars = new char[bytes.length * 2]; + for ( int j = 0; j < bytes.length; j++ ) { + int v = bytes[j] & 0xFF; + hexChars[j * 2] = hexArray[v >>> 4]; + hexChars[j * 2 + 1] = hexArray[v & 0x0F]; + } + return new String(hexChars); + } + private static ClassifyTableInfo createClassifyTableInfoRequest(final int tableId) { ClassifyTableInfo request = new ClassifyTableInfo(); request.tableId = tableId; @@ -120,7 +131,7 @@ public class L2AclExample { private static void print(final ClassifyTableInfoReply reply) { System.out.println(reply); if (reply != null) { - System.out.println("Mask hex: " + DatatypeConverter.printHexBinary(reply.mask)); + System.out.println("Mask hex: " + bytesToHex(reply.mask)); } } @@ -132,7 +143,7 @@ public class L2AclExample { System.out.println(reply); reply.classifySessionDetails.forEach(detail -> { System.out.println(detail); - System.out.println("Match hex: " + DatatypeConverter.printHexBinary(detail.match)); + System.out.println("Match hex: " + bytesToHex(detail.match)); }); } -- cgit 1.2.3-korg