Apache CXF API

org.apache.cxf.bus.managers
Class EndpointResolverRegistryImpl

java.lang.Object
  extended by org.apache.cxf.bus.managers.EndpointResolverRegistryImpl
All Implemented Interfaces:
EndpointResolverRegistry

public class EndpointResolverRegistryImpl
extends Object
implements EndpointResolverRegistry

This implementation class is 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.


Constructor Summary
EndpointResolverRegistryImpl()
           
EndpointResolverRegistryImpl(Bus b)
           
 
Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EndpointResolverRegistryImpl

public EndpointResolverRegistryImpl()

EndpointResolverRegistryImpl

public EndpointResolverRegistryImpl(Bus b)
Method Detail

setBus

public final void setBus(Bus b)
Parameters:
b - Bus to encapsulate

register

public void register(EndpointResolver resolver)
Register an endpoint resolver.

Specified by:
register in interface EndpointResolverRegistry
Parameters:
resolver - the EndpointResolver to add to the chain.

unregister

public void unregister(EndpointResolver resolver)
Unregister an endpoint resolver.

Specified by:
unregister in interface EndpointResolverRegistry
Parameters:
resolver - the EndpointResolver to remove from the chain.

resolve

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

Specified by:
resolve in interface EndpointResolverRegistry
Parameters:
logical - the abstract EPR to resolve
Returns:
the resolved concrete EPR if appropriate, null otherwise

renew

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

Specified by:
renew in interface EndpointResolverRegistry
Parameters:
logical - the previously resolved abstract EPR
physical - the concrete EPR to refresh
Returns:
the renewed concrete EPR if appropriate, null otherwise

mint

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

Specified by:
mint in interface EndpointResolverRegistry
Parameters:
serviceName -
Returns:
the newly minted EPR if appropriate, null otherwise

mint

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

Specified by:
mint in interface EndpointResolverRegistry
Parameters:
physical -
Returns:
the newly minted EPR if appropriate, null otherwise

getResolvers

protected List<EndpointResolver> getResolvers()
Returns:
the encapsulated list of registered resolvers

Apache CXF API

Apache CXF