Apache CXF API

org.apache.cxf.endpoint
Interface EndpointResolverRegistry

All Known Implementing Classes:
EndpointResolverRegistryImpl

public interface EndpointResolverRegistry

Implementations of this interface are responsible for mediating access to registered EndpointResolvers, which themselves map between abstract and concrete endpoint references, and/or facilitate renewal of stale references.

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.


Method Summary
 EndpointReferenceType mint(EndpointReferenceType physical)
          Walk the list of registered EndpointResolvers, so as to mint a new abstract EPR for a gievn 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 unregister(EndpointResolver resolver)
          Unregister an endpoint resolver.
 

Method Detail

register

void register(EndpointResolver resolver)
Register an endpoint resolver.

Parameters:
resolver - the EndpointResolver to add to the chain.

unregister

void unregister(EndpointResolver resolver)
Unregister an endpoint resolver.

Parameters:
resolver - the EndpointResolver to remove from the chain.

resolve

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.

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).

Parameters:
logical - the abstract EPR to resolve

renew

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.

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.

Parameters:
logical - the previously resolved abstract EPR
physical - the concrete EPR to refresh
Returns:
the renewed concrete EPR if appropriate, null otherwise

mint

EndpointReferenceType mint(QName serviceName)
Walk the list of registered EndpointResolvers, so as to mint a new abstract EPR for a given service name.

Parameters:
serviceName -
Returns:
the newly minted EPR if appropriate, null otherwise

mint

EndpointReferenceType mint(EndpointReferenceType physical)
Walk the list of registered EndpointResolvers, so as to mint a new abstract EPR for a gievn physical EPR.

Parameters:
physical -
Returns:
the newly minted EPR if appropriate, null otherwise

Apache CXF API

Apache CXF