You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2003/05/07 15:49:25 UTC

cvs commit: xml-axis/java/test/saaj TestHeaders.java

dims        2003/05/07 06:49:25

  Modified:    java/src/org/apache/axis/message MessageElement.java
               java/test/saaj TestHeaders.java
  Log:
  Fix and test case for Bug 19728 - [SAAJ] Newly added SOAP Headers are not serialized
  
  Notes:
  The recorder was kicking in...set the dirty flag to indicate that we should not use the recorded information since the envelope contents have changed.
  
  Revision  Changes    Path
  1.152     +1 -0      xml-axis/java/src/org/apache/axis/message/MessageElement.java
  
  Index: MessageElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
  retrieving revision 1.151
  retrieving revision 1.152
  diff -u -r1.151 -r1.152
  --- MessageElement.java	22 Apr 2003 19:35:15 -0000	1.151
  +++ MessageElement.java	7 May 2003 13:49:24 -0000	1.152
  @@ -661,6 +661,7 @@
   
       public void setEnvelope(SOAPEnvelope env)
       {
  +        env.setDirty(true);
           message = env;
       }
       public SOAPEnvelope getEnvelope()
  
  
  
  1.2       +39 -0     xml-axis/java/test/saaj/TestHeaders.java
  
  Index: TestHeaders.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/saaj/TestHeaders.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestHeaders.java	20 Mar 2003 13:30:45 -0000	1.1
  +++ TestHeaders.java	7 May 2003 13:49:25 -0000	1.2
  @@ -1,9 +1,13 @@
   package test.saaj;
   
   import javax.xml.soap.MessageFactory;
  +import javax.xml.soap.MimeHeaders;
  +import javax.xml.soap.Name;
   import javax.xml.soap.SOAPEnvelope;
   import javax.xml.soap.SOAPHeader;
  +import javax.xml.soap.SOAPHeaderElement;
   import javax.xml.soap.SOAPMessage;
  +import java.io.ByteArrayInputStream;
   import java.io.ByteArrayOutputStream;
   
   public class TestHeaders extends junit.framework.TestCase {
  @@ -21,5 +25,40 @@
           soapMessage.writeTo(baos);
           String xml = new String(baos.toByteArray());
           assertTrue(xml.indexOf("ebxmlms") != -1);
  +    }
  +
  +    
  +    private final String actor = "ACTOR#1";
  +    private final String localName = "Local1";
  +    private final String namespace = "http://ws.apache.org";
  +    private final String prefix = "P1";
  +    
  +    String xmlString =
  +            "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
  +            "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
  +            "                   xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" +
  +            "                   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
  +            " <soapenv:Body>\n" +
  +            "  <shw:Address xmlns:shw=\"http://www.jcommerce.net/soap/ns/SOAPHelloWorld\">\n" +
  +            "    <shw:City>GENT</shw:City>\n" +
  +            "  </shw:Address>\n" +
  +            " </soapenv:Body>\n" +
  +            "</soapenv:Envelope>";    
  +    
  +    public void testAddingHeaderElements2() throws Exception {
  +        MessageFactory mf = MessageFactory.newInstance();
  +        SOAPMessage soapMessage = mf.createMessage(new MimeHeaders(), new ByteArrayInputStream(xmlString.getBytes()));
  +        SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope();
  +        SOAPHeader header = soapEnv.getHeader();
  +
  +        Name headerName = soapEnv.createName(localName, prefix, prefix);
  +        SOAPHeaderElement he = header.addHeaderElement(headerName);
  +        he.setActor(actor);
  +
  +        ByteArrayOutputStream baos = new ByteArrayOutputStream();
  +        soapMessage.writeTo(baos);
  +        
  +        String xml = new String(baos.toByteArray());
  +        assertTrue(xml.indexOf(localName) != -1);
       }
   }