/** * @return If possible, convert from a SocketAddress object to an Endpoint. If not, return Unknown * Endpoint. */ static Endpoint fromSocketAddress(SocketAddress socketAddress) { if (socketAddress instanceof InetSocketAddress) { Endpoint.Builder builder = Endpoint.builder().serviceName(""); InetSocketAddress inet = (InetSocketAddress) socketAddress; builder.parseIp(inet.getAddress()); builder.port(inet.getPort()); return builder.build(); } return UNKNOWN; }
@Override public Endpoint fromJson(JsonReader reader) throws IOException { Endpoint.Builder result = Endpoint.builder().serviceName(""); reader.beginObject(); while (reader.hasNext()) { String nextName = reader.nextName(); if (reader.peek() == JsonReader.Token.NULL) { reader.skipValue(); continue; } switch (nextName) { case "serviceName": result.serviceName(reader.nextString()); break; case "ipv4": case "ipv6": result.parseIp(reader.nextString()); break; case "port": result.port(reader.nextInt()); break; default: reader.skipValue(); } } reader.endObject(); return result.build(); }
static zipkin.Endpoint toEndpoint(Endpoint input) { zipkin.Endpoint.Builder result = zipkin.Endpoint.builder() .serviceName(input.serviceName() != null ? input.serviceName() : "") .port(input.port() != null ? input.port() : 0); if (input.ipv6() != null) { result.parseIp(input.ipv6()); // parse first in case there's a mapped IP } if (input.ipv4() != null) { result.parseIp(input.ipv4()); } return result.build(); } }