String willMessage = payload.willMessage(); byte[] willMessageBytes = willMessage != null ? encodeStringUtf8(willMessage) : EmptyArrays.EMPTY_BYTES; if (variableHeader.willFlag()) { payloadBufferSize += 2 + willTopicBytes.length; payloadBufferSize += 2 + willMessageBytes.length; if (variableHeader.willFlag()) { buf.writeShort(willTopicBytes.length); buf.writeBytes(willTopicBytes, 0, willTopicBytes.length);
private static int getConnVariableHeaderFlag(MqttConnectVariableHeader variableHeader) { int flagByte = 0; if (variableHeader.userNameFlag()) { flagByte |= 0x80; } if (variableHeader.passwordFlag()) { flagByte |= 0x40; } if (variableHeader.willRetain()) { flagByte |= 0x20; } flagByte |= (variableHeader.willQos().value() & 0x03) << 3; if (variableHeader.willFlag()) { flagByte |= 0x04; } if (variableHeader.cleanSession()) { flagByte |= 0x02; } return flagByte; }
if (msg.variableHeader().willFlag() && StringUtils.isNotEmpty(willTopic) && this.validator.isTopicNameValid(willTopic) && StringUtils.isNotEmpty(willMessage)) {
if (mqttConnectVariableHeader.willFlag()) { decodedWillTopic = decodeString(buffer, 0, 32767); numberOfBytesConsumed += decodedWillTopic.numberOfBytesConsumed;
private static void validateConnectVariableHeader( MqttConnectVariableHeader expected, MqttConnectVariableHeader actual) { assertEquals("MqttConnectVariableHeader ProtocolName mismatch ", expected.protocolName(), actual.protocolName()); assertEquals( "MqttConnectVariableHeader KeepAlive mismatch ", expected.keepAlive(), actual.keepAlive()); assertEquals("MqttConnectVariableHeader ProtocolLevel mismatch ", expected.protocolLevel(), actual.protocolLevel()); assertEquals("MqttConnectVariableHeader WillQos mismatch ", expected.willQos(), actual.willQos()); assertEquals("MqttConnectVariableHeader UserNameFlag mismatch ", expected.userNameFlag(), actual.userNameFlag()); assertEquals("MqttConnectVariableHeader PasswordFlag mismatch ", expected.passwordFlag(), actual.passwordFlag()); assertEquals( "MqttConnectVariableHeader CleanSession mismatch ", expected.cleanSession(), actual.cleanSession()); assertEquals("MqttConnectVariableHeader WillFlag mismatch ", expected.willFlag(), actual.willFlag()); assertEquals( "MqttConnectVariableHeader WillRetain mismatch ", expected.willRetain(), actual.willRetain()); }