src/share/jaxws_classes/com/sun/xml/internal/ws/addressing/WsaTube.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -28,12 +28,12 @@
 import com.sun.istack.internal.NotNull;
 import com.sun.xml.internal.ws.addressing.model.InvalidAddressingHeaderException;
 import com.sun.xml.internal.ws.addressing.model.MissingAddressingHeaderException;
 import com.sun.xml.internal.ws.api.SOAPVersion;
 import com.sun.xml.internal.ws.api.WSBinding;
-import com.sun.xml.internal.ws.api.server.WSEndpoint;
 import com.sun.xml.internal.ws.api.addressing.AddressingVersion;
+import com.sun.xml.internal.ws.api.message.AddressingUtils;
 import com.sun.xml.internal.ws.api.message.Header;
 import com.sun.xml.internal.ws.api.message.Message;
 import com.sun.xml.internal.ws.api.message.Messages;
 import com.sun.xml.internal.ws.api.message.Packet;
 import com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation;

@@ -41,25 +41,20 @@
 import com.sun.xml.internal.ws.api.pipe.NextAction;
 import com.sun.xml.internal.ws.api.pipe.Tube;
 import com.sun.xml.internal.ws.api.pipe.TubeCloner;
 import com.sun.xml.internal.ws.api.pipe.helper.AbstractFilterTubeImpl;
 import com.sun.xml.internal.ws.developer.MemberSubmissionAddressingFeature;
-import com.sun.xml.internal.ws.developer.WSBindingProvider;
 import com.sun.xml.internal.ws.message.FaultDetailHeader;
 import com.sun.xml.internal.ws.resources.AddressingMessages;
-import com.sun.xml.internal.ws.binding.BindingImpl;
 
 import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPFault;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.ws.WebServiceException;
-import javax.xml.ws.Binding;
 import javax.xml.ws.soap.AddressingFeature;
 import javax.xml.ws.soap.SOAPBinding;
 import java.util.Iterator;
-import java.util.Set;
-import java.util.Arrays;
 import java.util.logging.Logger;
 import java.util.logging.Level;
 
 /**
  * WS-Addressing processing code shared between client and server.

@@ -105,20 +100,19 @@
         soapVersion = that.soapVersion;
         addressingRequired = that.addressingRequired;
     }
 
     private void addKnownHeadersToBinding(WSBinding binding) {
-        Set<QName> headerQNames = binding.getKnownHeaders();
         for (AddressingVersion addrVersion: AddressingVersion.values()) {
-          headerQNames.add(addrVersion.actionTag);
-          headerQNames.add(addrVersion.faultDetailTag);
-          headerQNames.add(addrVersion.faultToTag);
-          headerQNames.add(addrVersion.fromTag);
-          headerQNames.add(addrVersion.messageIDTag);
-          headerQNames.add(addrVersion.relatesToTag);
-          headerQNames.add(addrVersion.replyToTag);
-          headerQNames.add(addrVersion.toTag);
+          binding.addKnownHeader(addrVersion.actionTag);
+          binding.addKnownHeader(addrVersion.faultDetailTag);
+          binding.addKnownHeader(addrVersion.faultToTag);
+          binding.addKnownHeader(addrVersion.fromTag);
+          binding.addKnownHeader(addrVersion.messageIDTag);
+          binding.addKnownHeader(addrVersion.relatesToTag);
+          binding.addKnownHeader(addrVersion.replyToTag);
+          binding.addKnownHeader(addrVersion.toTag);
         }
     }
 
     @Override
     public @NotNull NextAction processException(Throwable t) {

@@ -204,11 +198,13 @@
             return false;
 
         if (packet.getMessage().getHeaders() != null)
             return false;
 
-        String action = packet.getMessage().getHeaders().getAction(addressingVersion, soapVersion);
+        String action = AddressingUtils.getAction(
+                packet.getMessage().getHeaders(),
+                addressingVersion, soapVersion);
         if (action == null)
             return true;
 
         return true;
     }

@@ -368,11 +364,13 @@
             return wsdlPort.getBinding().get(opName);
         return null;
     }
 
     protected void validateSOAPAction(Packet packet) {
-        String gotA = packet.getMessage().getHeaders().getAction(addressingVersion, soapVersion);
+        String gotA = AddressingUtils.getAction(
+                packet.getMessage().getHeaders(),
+                addressingVersion, soapVersion);
         if (gotA == null)
             throw new WebServiceException(AddressingMessages.VALIDATION_SERVER_NULL_ACTION());
         if(packet.soapAction != null && !packet.soapAction.equals("\"\"") && !packet.soapAction.equals("\""+gotA+"\"")) {
             throw new InvalidAddressingHeaderException(addressingVersion.actionTag, addressingVersion.actionMismatchTag);
         }