public abstract class AbstractMapBasedEndpointMapping extends AbstractEndpointMapping
Map. Provides mappings of application
context beans as well as a settable map.
Subclasses determine the exact nature of the key in the enpoint map; this can be a qualified name, a SOAP Header, the result of a XPath validation. The values are always endpoint objects, or bean names of endpoint objects.
| Constructor and Description |
|---|
AbstractMapBasedEndpointMapping() |
| Modifier and Type | Method and Description |
|---|---|
protected Object |
getEndpointInternal(MessageContext messageContext)
Lookup an endpoint for the given message.
|
protected abstract String |
getLookupKeyForMessage(MessageContext messageContext)
Returns the endpoint key for the given message context.
|
protected void |
initApplicationContext()
Registers annd checks the set endpoints.
|
protected Object |
lookupEndpoint(String key)
Looks up an endpoint instance for the given keys.
|
protected void |
registerEndpoint(String key,
Object endpoint)
Register the given endpoint instance under the registration key.
|
void |
setEndpointMap(Map<String,Object> endpointMap)
Sets a Map with keys and endpoint beans as values.
|
void |
setLazyInitEndpoints(boolean lazyInitEndpoints)
Set whether to lazily initialize endpoints.
|
void |
setMappings(Properties mappings)
Maps keys to endpoint bean names.
|
void |
setRegisterBeanNames(boolean registerBeanNames)
Set whether to register bean names found in the application context.
|
protected abstract boolean |
validateLookupKey(String key)
Validates the given endpoint key.
|
createEndpointInvocationChain, getDefaultEndpoint, getEndpoint, getInterceptors, getOrder, initInterceptors, resolveStringEndpoint, setDefaultEndpoint, setInterceptors, setOrderpublic void setLazyInitEndpoints(boolean lazyInitEndpoints)
false, as eager initialization allows for more efficiency through
referencing the controller objects directly.
If you want to allow your endpoints to be lazily initialized, make them "lazy-init" and set this flag to
true. Just making them "lazy-init" will not work, as they are initialized through the references
from the endpoint mapping in this case.
public final void setRegisterBeanNames(boolean registerBeanNames)
true will
register all beans found in the application context under their name. Default is false.public final void setEndpointMap(Map<String,Object> endpointMap)
IllegalArgumentException - if the endpoint is invalidpublic void setMappings(Properties mappings)
protected abstract boolean validateLookupKey(String key)
true is the given string is valid.protected abstract String getLookupKeyForMessage(MessageContext messageContext) throws Exception
null if a key cannot be found.nullExceptionprotected final Object getEndpointInternal(MessageContext messageContext) throws Exception
getEndpointInternal in class AbstractEndpointMappingnullException - if there is an errorprotected Object lookupEndpoint(String key)
key - key the beans are mapped tonull if not foundprotected void registerEndpoint(String key, Object endpoint) throws org.springframework.beans.BeansException
key - the string representation of the registration keyendpoint - the endpoint instanceorg.springframework.beans.BeansException - if the endpoint could not be registeredprotected final void initApplicationContext()
throws org.springframework.beans.BeansException
setEndpointMap and
setMappings, and registers the bean names found in the application context, if
registerBeanNames is set to true.initApplicationContext in class AbstractEndpointMappingorg.springframework.context.ApplicationContextException - if either of the endpoints defined via setEndpointMap or
setMappings is invalidorg.springframework.beans.BeansExceptionsetEndpointMap(java.util.Map),
setMappings(java.util.Properties),
setRegisterBeanNames(boolean)Copyright © 2020 Pivotal Software. All rights reserved.