public class EndpointResolverRegistryImpl extends Object implements EndpointResolverRegistry
An underlying mechanism in the style of the OGSA WS-Naming specification is assumed, where an EPR maybe be fully abstract, or concrete but with sufficient information embedded to enable its renewal if necessary.
Constructor and Description |
---|
EndpointResolverRegistryImpl() |
EndpointResolverRegistryImpl(Bus b) |
Modifier and Type | Method and Description |
---|---|
protected List<EndpointResolver> |
getResolvers() |
EndpointReferenceType |
mint(EndpointReferenceType physical)
Walk the list of registered EndpointResolvers, so as to mint a new
abstract EPR for a given physical EPR.
|
EndpointReferenceType |
mint(QName serviceName)
Walk the list of registered EndpointResolvers, so as to mint a new
abstract EPR for a given service name.
|
void |
register(EndpointResolver resolver)
Register an endpoint resolver.
|
EndpointReferenceType |
renew(EndpointReferenceType logical,
EndpointReferenceType physical)
Walk the list of registered EndpointResolvers, so as to force a fresh
resolution of the given abstract EPR, discarding any previously cached
reference.
|
EndpointReferenceType |
resolve(EndpointReferenceType logical)
Walk the list of registered EndpointResolvers, so as to
retrieve a concrete EPR corresponding to the given abstract EPR,
returning a cached reference if already resolved.
|
void |
setBus(Bus b) |
void |
unregister(EndpointResolver resolver)
Unregister an endpoint resolver.
|
public EndpointResolverRegistryImpl()
public EndpointResolverRegistryImpl(Bus b)
public final void setBus(Bus b)
b
- Bus to encapsulatepublic void register(EndpointResolver resolver)
register
in interface EndpointResolverRegistry
resolver
- the EndpointResolver to add to the chain.public void unregister(EndpointResolver resolver)
unregister
in interface EndpointResolverRegistry
resolver
- the EndpointResolver to remove from the chain.public EndpointReferenceType resolve(EndpointReferenceType logical)
This API is used by any actor that requires a concrete EPR (e.g. a transport-level Conduit), and must be called each and every time the EPR content is to be accessed (e.g. before each connection establishment attempt).
resolve
in interface EndpointResolverRegistry
logical
- the abstract EPR to resolvepublic EndpointReferenceType renew(EndpointReferenceType logical, EndpointReferenceType physical)
This API may be used by say the transport-level Conduit when it detects a non-transient error on the outgoing connection, or by any other actor in the dispatch with the ability to infer server-side unavailability.
renew
in interface EndpointResolverRegistry
logical
- the previously resolved abstract EPRphysical
- the concrete EPR to refreshpublic EndpointReferenceType mint(QName serviceName)
mint
in interface EndpointResolverRegistry
serviceName
- public EndpointReferenceType mint(EndpointReferenceType physical)
mint
in interface EndpointResolverRegistry
physical
- protected List<EndpointResolver> getResolvers()
Apache CXF