From: Robert Varga Date: Sun, 5 Jan 2020 10:57:33 +0000 (+0100) Subject: Eliminate use of ByteBufWriteUtil from mvpn X-Git-Tag: release/magnesium~37 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=3dd9e93a7a140ec5a72452049361ee91ead2012a;p=bgpcep.git Eliminate use of ByteBufWriteUtil from mvpn yangtools is providing ByteBufUtils, which are up to all the jobs we really need for interacting with ByteBuf. Since we are touching OpaqueUtil, we slightly optimize its buildOpaqueValue() by reusing splitter/joiner instances. Change-Id: Ic415d50c2bc1b14098f0a30b663e9d27790c5fdd Signed-off-by: Robert Varga --- diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java index 91a4b806cd..d39f9c58dd 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.List; import javax.xml.bind.DatatypeConverter; import org.opendaylight.protocol.util.ByteArray; -import org.opendaylight.protocol.util.ByteBufWriteUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev180329.Opaque; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev180329.pmsi.tunnel.pmsi.tunnel.tunnel.identifier.mldp.p2mp.lsp.mldp.p2mp.lsp.OpaqueValue; @@ -31,7 +30,8 @@ public final class OpaqueUtil { public static final short EXTENDED_TYPE = 255; private static final Logger LOG = LoggerFactory.getLogger(OpaqueUtil.class); private static final String SEPARATOR = ":"; - private static final String EMPTY_SEPARATOR = ""; + private static final Joiner SEPARATOR_JOINER = Joiner.on(SEPARATOR); + private static final Splitter TWO_CHAR_SPLITTER = Splitter.fixedLength(2); private OpaqueUtil() { // Hidden on purpose @@ -41,11 +41,11 @@ public final class OpaqueUtil { final Uint8 type = opaque.getOpaqueType(); switch (type.toJava()) { case GENERIC_LSP_IDENTIFIER: - ByteBufWriteUtil.writeUnsignedByte(type, byteBuf); + ByteBufUtils.write(byteBuf, type); writeGeneric(opaque.getOpaque(), byteBuf); break; case EXTENDED_TYPE: - ByteBufWriteUtil.writeUnsignedByte(type, byteBuf); + ByteBufUtils.write(byteBuf, type); writeExtended(opaque.getOpaque(), opaque.getOpaqueExtendedType(), byteBuf); break; default: @@ -57,7 +57,7 @@ public final class OpaqueUtil { private static void writeExtended(final HexString opaque, final Uint16 opaqueExtendedType, final ByteBuf byteBuf) { final byte[] output = writeOpaqueValue(opaque.getValue()); - ByteBufWriteUtil.writeUnsignedShort(opaqueExtendedType, byteBuf); + ByteBufUtils.writeOrZero(byteBuf, opaqueExtendedType); byteBuf.writeShort(output.length); byteBuf.writeBytes(output); } @@ -69,8 +69,7 @@ public final class OpaqueUtil { } private static byte[] writeOpaqueValue(final String opaque) { - final String joined = opaque.replace(SEPARATOR, EMPTY_SEPARATOR); - return DatatypeConverter.parseHexBinary(joined); + return DatatypeConverter.parseHexBinary(opaque.replace(SEPARATOR, "")); } public static Opaque parseOpaque(final ByteBuf buffer) { @@ -89,8 +88,7 @@ public final class OpaqueUtil { LOG.debug("Skipping parsing of Opaque Value {}", buffer); return null; } - builder.setOpaqueType(type); - return builder.build(); + return builder.setOpaqueType(type).build(); } private static void buildExtended(final OpaqueValueBuilder builder, final ByteBuf buffer) { @@ -102,9 +100,7 @@ public final class OpaqueUtil { private static HexString buildOpaqueValue(final ByteBuf buffer) { final int length = buffer.readUnsignedShort(); final byte[] value = ByteArray.readBytes(buffer, length); - final String hexDump = ByteBufUtil.hexDump(value); - final Iterable splitted = Splitter.fixedLength(2).split(hexDump); - return new HexString(Joiner.on(SEPARATOR).join(splitted)); + return new HexString(SEPARATOR_JOINER.join(TWO_CHAR_SPLITTER.split(ByteBufUtil.hexDump(value)))); } public static List parseOpaqueList(final ByteBuf byteBuf) { diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/MldpP2mpLspParser.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/MldpP2mpLspParser.java index c6e50e0e06..7edbd760ee 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/MldpP2mpLspParser.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/MldpP2mpLspParser.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier; import static org.opendaylight.protocol.bgp.mvpn.impl.attributes.OpaqueUtil.serializeOpaqueList; @@ -19,7 +18,6 @@ import io.netty.buffer.Unpooled; import org.opendaylight.protocol.bgp.mvpn.impl.attributes.OpaqueUtil; import org.opendaylight.protocol.bgp.mvpn.spi.attributes.tunnel.identifier.AbstractTunnelIdentifier; import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry; -import org.opendaylight.protocol.util.ByteBufWriteUtil; import org.opendaylight.protocol.util.Ipv4Util; import org.opendaylight.protocol.util.Ipv6Util; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; @@ -53,12 +51,12 @@ public final class MldpP2mpLspParser extends AbstractTunnelIdentifier addressFamily) { final Integer type = this.addressFamilyRegistry.numberForClass(addressFamily); - if (type == null) { - return 0; - } - return type; + return type == null ? 0 : type; } @Override diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/RsvpTeP2MpLspParser.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/RsvpTeP2MpLspParser.java index 7910fa3957..45513cd511 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/RsvpTeP2MpLspParser.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/tunnel/identifier/RsvpTeP2MpLspParser.java @@ -12,7 +12,6 @@ import static org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifi import io.netty.buffer.ByteBuf; import org.opendaylight.protocol.bgp.mvpn.spi.attributes.tunnel.identifier.AbstractTunnelIdentifier; -import org.opendaylight.protocol.util.ByteBufWriteUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev180329.PmsiTunnelType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev180329.pmsi.tunnel.pmsi.tunnel.TunnelIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev180329.pmsi.tunnel.pmsi.tunnel.tunnel.identifier.RsvpTeP2mpLsp; @@ -32,9 +31,9 @@ public final class RsvpTeP2MpLspParser extends AbstractTunnelIdentifier