Hi Aki,

Thanks for fixing this issue.
As far as I recall, the written uris property was added to address
https://issues.apache.org/jira/browse/CXF-3958

I can get the test added asap just to confirm the fix you provided will also do for CXF-3958

Thanks, Sergey

On 01/03/12 17:58, a...@apache.org wrote:
Author: ay
Date: Thu Mar  1 17:58:19 2012
New Revision: 1295714

URL: http://svn.apache.org/viewvc?rev=1295714&view=rev
Log:
[CXF-4150] Transform feature's OutTransformWriter may not correctly generate 
namespace declarations

Added:
     
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRC.xml
   (with props)
     
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRCIn1.xml
   (with props)
Modified:
     
cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
     
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java
     
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java

Modified: 
cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java?rev=1295714&r1=1295713&r2=1295714&view=diff
==============================================================================
--- 
cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
 (original)
+++ 
cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
 Thu Mar  1 17:58:19 2012
@@ -20,8 +20,6 @@ package org.apache.cxf.staxutils.transfo

  import java.util.ArrayList;
  import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
@@ -43,7 +41,6 @@ public class OutTransformWriter extends
      private QNamesMap attributesMap;
      private Map<QName, ElementProperty>  appendMap = new HashMap<QName, 
ElementProperty>(5);
      private Map<String, String>  nsMap = new HashMap<String, String>(5);
-    private List<Set<String>>  writtenUris = new LinkedList<Set<String>>();

      private Set<QName>  dropElements;
      private Stack<List<ParsingEvent>>  pushedAheadEvents = new 
Stack<List<ParsingEvent>>();
@@ -96,7 +93,7 @@ public class OutTransformWriter extends

          uri = value != null ? value : uri;

-        if (writtenUris.get(0).contains(uri)) {
+        if (prefix.equals(getPrefix(uri))) {
              return;
          }

@@ -108,7 +105,6 @@ public class OutTransformWriter extends
              }
              super.writeNamespace(prefix, uri);
          }
-        writtenUris.get(0).add(uri);
      }

      @Override
@@ -117,13 +113,6 @@ public class OutTransformWriter extends
          if (matchesDropped(false)) {
              return;
          }
-        Set<String>  s;
-        if (writtenUris.isEmpty()) {
-            s = new HashSet<String>();
-        } else {
-            s = new HashSet<String>(writtenUris.get(0));
-        }
-        writtenUris.add(0, s);

          final QName theName = new QName(uri, local, prefix);
          final ElementProperty appendProp = appendMap.remove(theName);
@@ -243,9 +232,7 @@ public class OutTransformWriter extends
          } else if (dropDepth>  0) {
              dropDepth = 0;
          }
-        if (!writtenUris.isEmpty()) {
-            writtenUris.remove(0);
-        }
+
          QName theName = elementsStack.pop();
          final boolean dropped = dropElements.contains(theName);
          if (!dropped) {

Added: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRC.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRC.xml?rev=1295714&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRC.xml
------------------------------------------------------------------------------
     svn:mime-type = application/xml

Added: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRCIn1.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRCIn1.xml?rev=1295714&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/resources/wstrustReqSTRCIn1.xml
------------------------------------------------------------------------------
     svn:mime-type = application/xml

Modified: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java?rev=1295714&r1=1295713&r2=1295714&view=diff
==============================================================================
--- 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java
 (original)
+++ 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java
 Thu Mar  1 17:58:19 2012
@@ -424,4 +424,18 @@ public class InTransformReaderTest exten

      }

+    @Test
+    public void testOldSTSTransform() throws Exception {
+        Map<String, String>  transformElements = new HashMap<String, String>();
+
+        
transformElements.put("{http://docs.oasis-open.org/ws-sx/ws-trust/200512}*";,
+                              
"{http://schemas.xmlsoap.org/ws/2005/02/trust}*";);
+
+
+        
TransformTestUtils.transformInStreamAndCompare("../resources/wstrustReqSTRCIn1.xml",
+                                                     
"../resources/wstrustReqSTRC.xml",
+                                  transformElements, null, null, null, null);
+
+    }
+
  }

Modified: 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java?rev=1295714&r1=1295713&r2=1295714&view=diff
==============================================================================
--- 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java
 (original)
+++ 
cxf/trunk/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java
 Thu Mar  1 17:58:19 2012
@@ -396,4 +396,14 @@ public class OutTransformWriterTest exte

      }

+    @Test
+    public void testOldSTSTransform() throws Exception {
+        Map<String, String>  transformElements = new HashMap<String, String>();
+        
transformElements.put("{http://docs.oasis-open.org/ws-sx/ws-trust/200512}*";,
+                              
"{http://schemas.xmlsoap.org/ws/2005/02/trust}*";);
+
+        
TransformTestUtils.transformOutStreamAndCompare("../resources/wstrustReqSTRCIn1.xml",
+                                                     
"../resources/wstrustReqSTRC.xml",
+                                  transformElements, null, null, null, null);
+    }
  }


Reply via email to