Skip to content
This repository was archived by the owner on Dec 20, 2023. It is now read-only.

Commit 18a5861

Browse files
committed
Remove references to java.xml.bind.DataTypeConverter
java.xml.bind.DataTypeConverter has been deprecated in Java 9 and removed in Java 11. Our usage was minimal and limited to test code, so we replace two methods from the DataTypeConverter -- `printHexString` and `parseHexString` -- with naiive implementations. Base64 decoding has been replaced with the standard (as of Java 8) java.util.Base64.
1 parent 5dfb14b commit 18a5861

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

src/device-manager/java/src/nl/Weave/DeviceManager/TestMain.java

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import java.text.SimpleDateFormat;
2222
import java.util.EnumSet;
23-
import javax.xml.bind.DatatypeConverter;
2423
import java.math.BigInteger;
2524

2625
public class TestMain implements WeaveDeviceManager.CompletionHandler
@@ -33,6 +32,33 @@ public TestFailedException(String testName)
3332
}
3433
}
3534

35+
protected byte [] parseHexBinary(String s)
36+
{
37+
byte [] retval = new byte[s.length()/2];
38+
try {
39+
for (int i = 0; i < s.length(); i += 2)
40+
{
41+
retval[i/2] = (byte) Integer.parseInt(s.substring(i, i + 2), 16);
42+
}
43+
}
44+
catch (NumberFormatException nfe)
45+
{
46+
retval = null;
47+
}
48+
49+
return retval;
50+
}
51+
52+
protected String printHexBinary(byte [] inArray)
53+
{
54+
StringBuilder sb = new StringBuilder(inArray.length * 2);
55+
for (byte b: inArray)
56+
{
57+
sb.append(String.format("%02x", b));
58+
}
59+
return sb.toString();
60+
}
61+
3662
public static void main(String[] args)
3763
{
3864
TestMain mainObj = new TestMain();
@@ -48,7 +74,7 @@ public static void main(String[] args)
4874
String TestResult = null;
4975
WeaveDeviceManager DeviceMgr;
5076
long AddNetworkId = -1;
51-
byte[] TestDeviceDescriptor = DatatypeConverter.parseHexBinary(
77+
byte[] TestDeviceDescriptor = parseHexBinary(
5278
"95010024002A24010124020125033245" +
5379
"2C041030354241303141433033313330" +
5480
"30334730050818B43000000A91B33006" +
@@ -178,7 +204,7 @@ void RunUnitTests()
178204
System.out.println("AddNetwork Test");
179205
System.out.println(" Adding new Thread network...");
180206
networkInfo = NetworkInfo.MakeThread("Thread-Test",
181-
DatatypeConverter.parseHexBinary("0102030405060708"),
207+
parseHexBinary("0102030405060708"),
182208
"akey".getBytes(),
183209
0x1234,
184210
(byte)21);
@@ -524,9 +550,9 @@ public void print(WeaveDeviceDescriptor deviceDesc, String prefix)
524550
if (deviceDesc.manufacturingDate != null)
525551
System.out.format("%sManufacturing Date: %s%n", prefix, new SimpleDateFormat("yyyy/MM/dd").format(deviceDesc.manufacturingDate.getTime()));
526552
if (deviceDesc.primary802154MACAddress != null)
527-
System.out.format("%sPrimary 802.15.4 MAC Address: %s%n", prefix, DatatypeConverter.printHexBinary(deviceDesc.primary802154MACAddress));
553+
System.out.format("%sPrimary 802.15.4 MAC Address: %s%n", prefix, printHexBinary(deviceDesc.primary802154MACAddress));
528554
if (deviceDesc.primaryWiFiMACAddress != null)
529-
System.out.format("%sPrimary WiFi MAC Address: %s%n", prefix, DatatypeConverter.printHexBinary(deviceDesc.primaryWiFiMACAddress));
555+
System.out.format("%sPrimary WiFi MAC Address: %s%n", prefix, printHexBinary(deviceDesc.primaryWiFiMACAddress));
530556
if (deviceDesc.rendezvousWiFiESSID != null)
531557
System.out.format("%sRendezvous WiFi ESSID: %s%n", prefix, deviceDesc.rendezvousWiFiESSID);
532558
if (deviceDesc.pairingCode != null)
@@ -557,13 +583,13 @@ public void print(NetworkInfo[] networks, String indent)
557583
if (n.WiFiSecurityType != WiFiSecurityType.NotSpecified)
558584
System.out.format("%s WiFi Security Type: %s%n", indent, n.WiFiSecurityType.name());
559585
if (n.WiFiKey != null)
560-
System.out.format("%s WiFi Key: %s%n", indent, DatatypeConverter.printHexBinary(n.WiFiKey));
586+
System.out.format("%s WiFi Key: %s%n", indent, printHexBinary(n.WiFiKey));
561587
if (n.ThreadNetworkName != null)
562588
System.out.format("%s Thread Network Name: \"%s\"%n", indent, n.ThreadNetworkName);
563589
if (n.ThreadExtendedPANId != null)
564-
System.out.format("%s Thread Extended PAN Id: %s%n", indent, DatatypeConverter.printHexBinary(n.ThreadExtendedPANId));
590+
System.out.format("%s Thread Extended PAN Id: %s%n", indent, printHexBinary(n.ThreadExtendedPANId));
565591
if (n.ThreadNetworkKey != null)
566-
System.out.format("%s Thread Network Key: %s%n", indent, DatatypeConverter.printHexBinary(n.ThreadNetworkKey));
592+
System.out.format("%s Thread Network Key: %s%n", indent, printHexBinary(n.ThreadNetworkKey));
567593
if (n.WirelessSignalStrength != Short.MIN_VALUE)
568594
System.out.format("%s Wireless Signal Strength: %d%n", indent, n.WirelessSignalStrength);
569595
i++;

src/test-apps/wrapper-tests/jni/src/WeaveKeyExportClientTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.nestlabs.weave.security.WeaveKeyExportClient;
2020
import com.nestlabs.weave.security.WeaveKeyExportSupport;
2121
import com.nestlabs.weave.security.WeaveKeyId;
22+
import java.util.Base64;
2223

2324
public class WeaveKeyExportClientTest extends SimpleTest {
2425

@@ -133,7 +134,7 @@ public void testKeyExport_SHA1DeviceCert() throws Exception
133134
0x98, 0xc2, 0x8d, 0x9c, 0xec, 0x3e, 0xfe, 0x04, 0xb9, 0xf4, 0xa0, 0x67, 0x8b, 0x28, 0xc7, 0xa5,
134135
});
135136

136-
private static final byte[] accessToken = javax.xml.bind.DatatypeConverter.parseBase64Binary(
137+
private static final byte[] accessToken = Base64.getDecoder().decode(
137138
"1QAABAAJADUBMAEITi8yS0HXOtskAgQ3AyyBEERVTU1ZLUFDQ09VTlQtSUQYJgTLqPobJgVLNU9C" +
138139
"NwYsgRBEVU1NWS1BQ0NPVU5ULUlEGCQHAiYIJQBaIzAKOQQr2dtaYu+6sVMqD5ljt4owxYpBKaUZ" +
139140
"TksL837axemzNfB1GG1JXYbERCUHQbTTqe/utCrWCl2d4DWDKQEYNYIpASQCBRg1hCkBNgIEAgQB" +

0 commit comments

Comments
 (0)