Package io.grpc.internal
Class JndiResourceResolverFactory
- java.lang.Object
-
- io.grpc.internal.JndiResourceResolverFactory
-
- All Implemented Interfaces:
DnsNameResolver.ResourceResolverFactory
final class JndiResourceResolverFactory extends java.lang.Object implements DnsNameResolver.ResourceResolverFactory
JndiResourceResolverFactory
resolves additional records for the DnsNameResolver.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
JndiResourceResolverFactory.JndiRecordFetcher
(package private) static class
JndiResourceResolverFactory.JndiResourceResolver
(package private) static interface
JndiResourceResolverFactory.RecordFetcher
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.Throwable
JNDI_UNAVAILABILITY_CAUSE
-
Constructor Summary
Constructors Constructor Description JndiResourceResolverFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.Throwable
initJndi()
Returns whether the JNDI DNS resolver is available.DnsNameResolver.ResourceResolver
newResourceResolver()
Creates a new resource resolver.java.lang.Throwable
unavailabilityCause()
Returns the reason why the resource resolver cannot be created.
-
-
-
Method Detail
-
initJndi
@Nullable private static java.lang.Throwable initJndi()
Returns whether the JNDI DNS resolver is available. This is accomplished by looking up a particular class. It is believed to be the default (only?) DNS resolver that will actually be used. It is provided by the OpenJDK, but unlikely Android. Actual resolution will be done by using a service provider when a hostname query is present, so theDnsContextFactory
may not actually be used to perform the query. This is believed to be "okay."
-
newResourceResolver
@Nullable public DnsNameResolver.ResourceResolver newResourceResolver()
Description copied from interface:DnsNameResolver.ResourceResolverFactory
Creates a new resource resolver. The return value isnull
iffDnsNameResolver.ResourceResolverFactory.unavailabilityCause()
is not null;- Specified by:
newResourceResolver
in interfaceDnsNameResolver.ResourceResolverFactory
-
unavailabilityCause
@Nullable public java.lang.Throwable unavailabilityCause()
Description copied from interface:DnsNameResolver.ResourceResolverFactory
Returns the reason why the resource resolver cannot be created. The return value isnull
ifDnsNameResolver.ResourceResolverFactory.newResourceResolver()
is suitable for use.- Specified by:
unavailabilityCause
in interfaceDnsNameResolver.ResourceResolverFactory
-
-