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
JndiResourceResolverFactoryresolves additional records for the DnsNameResolver.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classJndiResourceResolverFactory.JndiRecordFetcher(package private) static classJndiResourceResolverFactory.JndiResourceResolver(package private) static interfaceJndiResourceResolverFactory.RecordFetcher
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.ThrowableJNDI_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.ThrowableinitJndi()Returns whether the JNDI DNS resolver is available.DnsNameResolver.ResourceResolvernewResourceResolver()Creates a new resource resolver.java.lang.ThrowableunavailabilityCause()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 theDnsContextFactorymay 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.ResourceResolverFactoryCreates a new resource resolver. The return value isnulliffDnsNameResolver.ResourceResolverFactory.unavailabilityCause()is not null;- Specified by:
newResourceResolverin interfaceDnsNameResolver.ResourceResolverFactory
-
unavailabilityCause
@Nullable public java.lang.Throwable unavailabilityCause()
Description copied from interface:DnsNameResolver.ResourceResolverFactoryReturns the reason why the resource resolver cannot be created. The return value isnullifDnsNameResolver.ResourceResolverFactory.newResourceResolver()is suitable for use.- Specified by:
unavailabilityCausein interfaceDnsNameResolver.ResourceResolverFactory
-
-