You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by mu...@apache.org on 2007/10/04 15:46:19 UTC

svn commit: r581901 - in /xml/security/trunk/src/org/apache/xml/security/utils: Base64.java ElementProxy.java XMLUtils.java

Author: mullan
Date: Thu Oct  4 06:46:18 2007
New Revision: 581901

URL: http://svn.apache.org/viewvc?rev=581901&view=rev
Log:
Fixed Bug 42061: Method to disable XMLUtils.addReturnToElement

Modified:
    xml/security/trunk/src/org/apache/xml/security/utils/Base64.java
    xml/security/trunk/src/org/apache/xml/security/utils/ElementProxy.java
    xml/security/trunk/src/org/apache/xml/security/utils/XMLUtils.java

Modified: xml/security/trunk/src/org/apache/xml/security/utils/Base64.java
URL: http://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/Base64.java?rev=581901&r1=581900&r2=581901&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/utils/Base64.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/utils/Base64.java Thu Oct  4 06:46:18 2007
@@ -264,13 +264,16 @@
 
 
    /**
-    * Encode a byte array and fold lines at the standard 76th character.
+    * Encode a byte array and fold lines at the standard 76th character unless 
+    * ignore line breaks property is set.
     *
     * @param binaryData <code>byte[]<code> to be base64 encoded
     * @return the <code>String<code> with encoded data
     */
    public static final String encode(byte[] binaryData) {
-        return encode(binaryData,BASE64DEFAULTLENGTH);
+      return XMLUtils.ignoreLineBreaks 
+         ? encode(binaryData, Integer.MAX_VALUE) 
+	 : encode(binaryData, BASE64DEFAULTLENGTH);
    }
    
    /**

Modified: xml/security/trunk/src/org/apache/xml/security/utils/ElementProxy.java
URL: http://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/ElementProxy.java?rev=581901&r1=581900&r2=581901&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/utils/ElementProxy.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/utils/ElementProxy.java Thu Oct  4 06:46:18 2007
@@ -320,7 +320,7 @@
          Element e = Base64.encodeToElement(this._doc, localname, bytes);
 
          this._constructionElement.appendChild(e);
-         this._constructionElement.appendChild(this._doc.createTextNode("\n"));
+	 XMLUtils.addReturnToElement(this._constructionElement);
       }
    }
 
@@ -348,9 +348,11 @@
    public void addBase64Text(byte[] bytes) {
 
       if (bytes != null) {
-         Text t = this._doc.createTextNode("\n" + Base64.encode(bytes) + "\n");
+	 XMLUtils.addReturnToElement(this._constructionElement);
+         Text t = this._doc.createTextNode(Base64.encode(bytes));
 
          this._constructionElement.appendChild(t);
+	 XMLUtils.addReturnToElement(this._constructionElement);
       }
    }
 

Modified: xml/security/trunk/src/org/apache/xml/security/utils/XMLUtils.java
URL: http://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/XMLUtils.java?rev=581901&r1=581900&r2=581901&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/utils/XMLUtils.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/utils/XMLUtils.java Thu Oct  4 06:46:18 2007
@@ -47,6 +47,16 @@
  */
 public class XMLUtils {
 
+   static boolean ignoreLineBreaks = false;
+   static {
+      try {
+         ignoreLineBreaks = Boolean.getBoolean
+	    ("org.apache.xml.security.ignoreLineBreaks");
+      } catch (Exception e) {
+         // ignore exceptions
+      }
+   }
+	
    /**
     * Constructor XMLUtils
     *
@@ -398,9 +408,24 @@
     */
    public static void addReturnToElement(Element e) {
 
-      Document doc = e.getOwnerDocument();
+      if (!ignoreLineBreaks) {
+         Document doc = e.getOwnerDocument();
+         e.appendChild(doc.createTextNode("\n"));
+      }
+   }
+
+   public static void addReturnToElement(Document doc, HelperNodeList nl) {
 
-      e.appendChild(doc.createTextNode("\n"));
+      if (!ignoreLineBreaks) {
+         nl.appendChild(doc.createTextNode("\n"));
+      }
+   }
+
+   public static void addReturnBeforeChild(Element e, Node child) {
+      if (!ignoreLineBreaks) {
+         Document doc = e.getOwnerDocument();
+         e.insertBefore(doc.createTextNode("\n"), child);
+      }
    }
 
    /**