in rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java [203:311]
public Object get(Object key) {
String mappedkey = mapKey((String)key);
Object ret = message.get(mappedkey);
if (MessageContext.HTTP_REQUEST_METHOD.equals(key) && isRequestor()) {
return null;
}
if (ret == null) {
if (Message.class.getName().equals(mappedkey)) {
return message;
}
if (exchange != null) {
ret = exchange.get(mappedkey);
if (ret != null) {
return ret;
}
}
if (MessageContext.INBOUND_MESSAGE_ATTACHMENTS.equals(key)) {
if (isRequestor() && isOutbound()) {
ret = null;
} else if (isOutbound()) {
ret = createAttachments(reqMessage,
MessageContext.INBOUND_MESSAGE_ATTACHMENTS);
} else {
ret = createAttachments(message,
MessageContext.INBOUND_MESSAGE_ATTACHMENTS);
}
} else if (MessageContext.OUTBOUND_MESSAGE_ATTACHMENTS.equals(key)) {
if (isRequestor() && !isOutbound()) {
ret = createAttachments(reqMessage, MessageContext.OUTBOUND_MESSAGE_ATTACHMENTS);
} else {
ret = createAttachments(isRequestor() ? getWrappedMessage() : createResponseMessage(),
MessageContext.OUTBOUND_MESSAGE_ATTACHMENTS);
}
} else if (MessageContext.MESSAGE_OUTBOUND_PROPERTY.equals(key)) {
ret = isOutbound();
} else if (MessageContext.HTTP_REQUEST_HEADERS.equals(key)) {
if (!isResponse()) {
ret = message.get(Message.PROTOCOL_HEADERS);
} else if (reqMessage != null && !isRequestor()) {
ret = reqMessage.get(Message.PROTOCOL_HEADERS);
}
} else if (MessageContext.HTTP_RESPONSE_HEADERS.equals(key)) {
Map<?, ?> mp = null;
if (isResponse()) {
mp = (Map<?, ?>)message.get(Message.PROTOCOL_HEADERS);
} else if (exchange != null) {
//may have to create the out message and add the headers
Message tmp = createResponseMessage();
if (tmp != null) {
mp = (Map<?, ?>)tmp.get(Message.PROTOCOL_HEADERS);
}
}
ret = mp;
} else if (BindingProvider.USERNAME_PROPERTY.equals(key)) {
AuthorizationPolicy authPolicy =
(AuthorizationPolicy)message.get(AuthorizationPolicy.class.getName());
if (authPolicy != null) {
ret = authPolicy.getUserName();
}
} else if (BindingProvider.PASSWORD_PROPERTY.equals(key)) {
AuthorizationPolicy authPolicy =
(AuthorizationPolicy)message.get(AuthorizationPolicy.class.getName());
if (authPolicy != null) {
ret = authPolicy.getPassword();
}
} else if (Message.WSDL_OPERATION.equals(key)) {
BindingOperationInfo boi = getBindingOperationInfo(exchange);
if (boi != null && !Boolean.TRUE.equals(boi.getProperty("operation.is.synthetic"))) {
ret = boi.getName();
}
} else if (Message.WSDL_SERVICE.equals(key)) {
BindingOperationInfo boi = getBindingOperationInfo(exchange);
if (boi != null) {
ret = boi.getBinding().getService().getName();
}
} else if (Message.WSDL_INTERFACE.equals(key)) {
BindingOperationInfo boi = getBindingOperationInfo(exchange);
if (boi != null) {
ret = boi.getBinding().getService().getInterface().getName();
}
} else if (Message.WSDL_PORT.equals(key)) {
EndpointInfo endpointInfo = getEndpointInfo(exchange);
if (endpointInfo != null) {
ret = endpointInfo.getName();
}
} else if (Message.WSDL_DESCRIPTION.equals(key)) {
EndpointInfo endpointInfo = getEndpointInfo(exchange);
if (endpointInfo != null) {
URI wsdlDescription = endpointInfo.getProperty("URI", URI.class);
if (wsdlDescription == null) {
String address = endpointInfo.getAddress();
try {
wsdlDescription = new URI(address + "?wsdl");
} catch (URISyntaxException e) {
// do nothing
}
endpointInfo.setProperty("URI", wsdlDescription);
}
ret = wsdlDescription;
}
}
if (ret == null && reqMessage != null) {
ret = reqMessage.get(mappedkey);
}
}
return ret;
}