You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by as...@apache.org on 2009/11/13 15:28:30 UTC
svn commit: r835858 - in /cxf/branches/2.2.x-fixes: ./
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java
Author: asoldano
Date: Fri Nov 13 14:28:28 2009
New Revision: 835858
URL: http://svn.apache.org/viewvc?rev=835858&view=rev
Log:
[CXF-2532] Merging changes to branch 2.2.x
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 13 14:28:28 2009
@@ -1 +1 @@
-/cxf/trunk:835613-835617,835621,835633,835843
+/cxf/trunk:835613-835617,835621,835633,835843,835855
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java?rev=835858&r1=835857&r2=835858&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedMessageContext.java Fri Nov 13 14:28:28 2009
@@ -19,6 +19,8 @@
package org.apache.cxf.jaxws.context;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -38,6 +40,8 @@
import org.apache.cxf.message.Attachment;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
+import org.apache.cxf.service.model.BindingOperationInfo;
+import org.apache.cxf.service.model.EndpointInfo;
public class WrappedMessageContext implements MessageContext {
public static final String SCOPES = WrappedMessageContext.class.getName() + ".SCOPES";
@@ -252,7 +256,43 @@
if (authPolicy != null) {
ret = authPolicy.getPassword();
}
+ } else if (Message.WSDL_OPERATION.equals(key)) {
+ BindingOperationInfo boi = getBindingOperationInfo(exchange);
+ if (boi != null) {
+ 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);
@@ -260,6 +300,23 @@
}
return ret;
}
+
+ private static BindingOperationInfo getBindingOperationInfo(Exchange exchange) {
+ if (exchange != null && exchange.get(BindingOperationInfo.class) != null) {
+ return exchange.get(BindingOperationInfo.class);
+ }
+ return null;
+ }
+
+ private static EndpointInfo getEndpointInfo(Exchange exchange) {
+ if (exchange != null) {
+ Endpoint endpoint = exchange.get(Endpoint.class);
+ if (endpoint != null) {
+ return endpoint.getEndpointInfo();
+ }
+ }
+ return null;
+ }
private Message createResponseMessage() {
if (exchange == null || exchange.isOneWay()) {