You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/03/30 20:00:18 UTC

svn commit: r1737138 - in /webservices/axiom/trunk: axiom-api/src/main/java/org/apache/axiom/attachments/impl/ axiom-api/src/main/java/org/apache/axiom/attachments/utils/ axiom-api/src/main/java/org/apache/axiom/blob/ axiom-api/src/main/java/org/apache...

Author: veithen
Date: Wed Mar 30 18:00:18 2016
New Revision: 1737138

URL: http://svn.apache.org/viewvc?rev=1737138&view=rev
Log:
Deprecate some old code.

Added:
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java   (with props)
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java   (with props)
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java   (with props)
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java
      - copied, changed from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/IOUtil.java
    webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/
      - copied from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/impl/
    webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java
      - copied, changed from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java
    webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java
      - copied, changed from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java
    webservices/axiom/trunk/axiom-compat/src/test/java/org/apache/axiom/attachments/impl/
      - copied from r1734616, webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/attachments/impl/
    webservices/axiom/trunk/axiom-compat/src/test/java/org/apache/axiom/attachments/utils/
      - copied from r1734616, webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/attachments/utils/
Removed:
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/impl/
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/IOUtil.java
    webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/attachments/impl/
    webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/attachments/utils/
Modified:
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/OptimizationPolicyImpl.java
    webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/BufferUtils.java

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java?rev=1737138&r1=1737137&r2=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java Wed Mar 30 18:00:18 2016
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 
 import org.apache.axiom.ext.io.StreamCopyException;
+import org.apache.axiom.util.io.IOUtils;
 
 /**
  * Partial implementation of the {@link WritableBlob} interface that implements
@@ -38,7 +39,7 @@ public abstract class AbstractWritableBl
             throw new StreamCopyException(StreamCopyException.WRITE, ex);
         }
         try {
-            return IOUtil.copy(in, out, -1);
+            return IOUtils.copy(in, out, -1);
         } finally {
             try {
                 out.close();
@@ -56,7 +57,7 @@ public abstract class AbstractWritableBl
             throw new StreamCopyException(StreamCopyException.READ, ex);
         }
         try {
-            IOUtil.copy(in, out, -1);
+            IOUtils.copy(in, out, -1);
         } finally {
             try {
                 in.close();

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java?rev=1737138&r1=1737137&r2=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java Wed Mar 30 18:00:18 2016
@@ -25,6 +25,7 @@ import java.io.OutputStream;
 
 import org.apache.axiom.ext.io.ReadFromSupport;
 import org.apache.axiom.ext.io.StreamCopyException;
+import org.apache.axiom.util.io.IOUtils;
 
 final class OverflowableBlobImpl implements OverflowableBlob {
     class OutputStreamImpl extends OutputStream implements ReadFromSupport {
@@ -305,7 +306,7 @@ final class OverflowableBlobImpl impleme
                     } catch (IOException ex) {
                         throw new StreamCopyException(StreamCopyException.WRITE, ex);
                     }
-                    read += IOUtil.copy(in, out, toRead);
+                    read += IOUtils.copy(in, out, toRead);
                     try {
                         out.close();
                     } catch (IOException ex) {

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java?rev=1737138&r1=1737137&r2=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java Wed Mar 30 18:00:18 2016
@@ -30,7 +30,6 @@ import javax.xml.stream.FactoryConfigura
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axiom.attachments.impl.BufferUtils;
 import org.apache.axiom.attachments.lifecycle.DataHandlerExt;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
@@ -40,6 +39,7 @@ import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.util.CommonUtils;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.om.util.XMLStreamWriterFilter;
+import org.apache.axiom.util.io.IOUtils;
 import org.apache.axiom.util.stax.XMLStreamWriterUtils;
 import org.apache.axiom.util.stax.xop.ContentIDGenerator;
 import org.apache.axiom.util.stax.xop.OptimizationPolicy;
@@ -248,7 +248,7 @@ public class MTOMXMLStreamWriter impleme
                         multipartWriter.writePart(dataHandler, contentID);
                     } else {
                         OutputStream out = multipartWriter.writePart(dataHandler.getContentType(), contentID);
-                        BufferUtils.inputStream2OutputStream(((DataHandlerExt)dataHandler).readOnce(), out);
+                        IOUtils.copy(((DataHandlerExt)dataHandler).readOnce(), out, -1);
                         out.close();
                     }
                 }

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/OptimizationPolicyImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/OptimizationPolicyImpl.java?rev=1737138&r1=1737137&r2=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/OptimizationPolicyImpl.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/OptimizationPolicyImpl.java Wed Mar 30 18:00:18 2016
@@ -23,9 +23,9 @@ import java.io.IOException;
 
 import javax.activation.DataHandler;
 
-import org.apache.axiom.attachments.impl.BufferUtils;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
 import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.util.activation.DataHandlerUtils;
 import org.apache.axiom.util.stax.xop.OptimizationPolicy;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -45,28 +45,20 @@ class OptimizationPolicyImpl implements
         this.format = format;
     }
 
-    private final static int UNSUPPORTED = -1;
-    private final static int EXCEED_LIMIT = 1;
-    
     public boolean isOptimized(DataHandler dataHandler, boolean optimize) {
         if (!optimize) {
             return false;
         }
-        
-        // TODO: this needs review and cleanup
-        // ** START **  code from MTOMXMLStreamWriter#isOptimizedThreshold
-        log.debug("Start MTOMXMLStreamWriter.isOptimizedThreshold()");
-        int optimized = UNSUPPORTED;
-        if(dataHandler!=null){
-            log.debug("DataHandler fetched, starting optimized Threshold processing");
-            optimized= BufferUtils.doesDataHandlerExceedLimit(dataHandler, format.getOptimizedThreshold());
+        int threshold = format.getOptimizedThreshold();
+        if (threshold == 0) {
+            return true;
         }
-        if(optimized == UNSUPPORTED || optimized == EXCEED_LIMIT){
-            log.debug("node should be added to binart NodeList for optimization");
+        try {
+            return DataHandlerUtils.isLargerThan(dataHandler, threshold);
+        } catch (IOException ex) {
+            log.warn("DataHandler.writeTo(OutputStream) threw IOException", ex);
             return true;
         }
-        return false;
-        // ** END **  code from MTOMXMLStreamWriter#isOptimizedThreshold
     }
 
     public boolean isOptimized(DataHandlerProvider dataHandlerProvider, boolean optimize)

Added: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java?rev=1737138&view=auto
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java (added)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java Wed Mar 30 18:00:18 2016
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.util.activation;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.activation.DataHandler;
+import javax.activation.DataSource;
+
+/**
+ * Contains utility methods to work with {@link DataHandler} objects.
+ */
+public final class DataHandlerUtils {
+    private DataHandlerUtils() {}
+
+    /**
+     * Check if the given {@link DataHandler} will produce a byte stream that is longer than a given
+     * limit. It will first attempt to determine the size using
+     * {@link DataSourceUtils#getSize(DataSource)}. If that fails, it will use
+     * {@link DataHandler#writeTo(OutputStream)} to determine if the size is larger than the limit.
+     * 
+     * @param dh
+     *            the {@link DataHandler} to check
+     * @param limit
+     *            the limit
+     * @return {@code true} if the size is larger than {@code limit}, {@code false} otherwise
+     * @throws IOException
+     *             if {@link DataHandler#writeTo(OutputStream)} produced an unexpected exception
+     */
+    public static boolean isLargerThan(DataHandler dh, long limit) throws IOException {
+        long size = DataSourceUtils.getSize(dh.getDataSource());
+        if (size != -1) {
+            return size > limit;
+        } else {
+            // In all other cases, we prefer DataHandler#writeTo over DataSource#getInputStream.
+            // The reason is that if the DataHandler was constructed from an Object rather than
+            // a DataSource, a call to DataSource#getInputStream() will start a new thread and
+            // return a PipedInputStream. This is so for Geronimo's as well as Sun's JAF
+            // implementation. The reason is that DataContentHandler only has a writeTo and no
+            // getInputStream method. Obviously starting a new thread just to check the size of
+            // the data is an overhead that we should avoid.
+            try {
+                dh.writeTo(new SizeLimitedOutputStream(limit));
+                return false;
+            } catch (SizeLimitExceededException ex) {
+                return true;
+            }
+        }
+    }
+}

Propchange: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/DataHandlerUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java?rev=1737138&view=auto
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java (added)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java Wed Mar 30 18:00:18 2016
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.util.activation;
+
+import java.io.IOException;
+
+/**
+ * Exception used by {@link SizeLimitedOutputStream} if the size limit has been exceeded.
+ */
+final class SizeLimitExceededException extends IOException {
+    private static final long serialVersionUID = 1L;
+
+    static final SizeLimitExceededException INSTANCE = new SizeLimitExceededException();
+    
+    private SizeLimitExceededException() {
+        setStackTrace(new StackTraceElement[0]);
+    }
+}
\ No newline at end of file

Propchange: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitExceededException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java?rev=1737138&view=auto
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java (added)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java Wed Mar 30 18:00:18 2016
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.util.activation;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * An output stream that counts the number of bytes written to it and throws an exception when the
+ * size exceeds a given limit.
+ */
+final class SizeLimitedOutputStream extends OutputStream {
+    private final long maxSize;
+    private long size;
+    
+    SizeLimitedOutputStream(long maxSize) {
+        this.maxSize = maxSize;
+    }
+
+    public void write(byte[] b, int off, int len) throws IOException {
+        size += len;
+        checkSize();
+    }
+
+    public void write(byte[] b) throws IOException {
+        size += b.length;
+        checkSize();
+    }
+
+    public void write(int b) throws IOException {
+        size++;
+        checkSize();
+    }
+    
+    private void checkSize() throws SizeLimitExceededException {
+        if (size > maxSize) {
+            // Throw a cached exception instance to avoid the overhead of building the
+            // stack trace.
+            throw SizeLimitExceededException.INSTANCE;
+        }
+    }
+}
\ No newline at end of file

Propchange: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/activation/SizeLimitedOutputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java (from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/IOUtil.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java?p2=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/IOUtil.java&r1=1734616&r2=1737138&rev=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/blob/IOUtil.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java Wed Mar 30 18:00:18 2016
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.blob;
+package org.apache.axiom.util.io;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -25,10 +26,24 @@ import java.io.OutputStream;
 import org.apache.axiom.ext.io.ReadFromSupport;
 import org.apache.axiom.ext.io.StreamCopyException;
 
-final class IOUtil {
-    private IOUtil() {}
+public final class IOUtils {
+    private IOUtils() {}
     
-    static long copy(InputStream in, OutputStream out, long length) throws StreamCopyException {
+    /**
+     * Copy bytes between streams. This method supports the {@link ReadFromSupport} interface. It
+     * will not call {@link Closeable#close()} on either of the two streams.
+     * 
+     * @param in
+     *            the stream to read bytes from
+     * @param out
+     *            the stream to write bytes to
+     * @param length
+     *            the maximum number of bytes to copy, or -1 to copy an unlimited number of bytes
+     * @return the number of bytes copied
+     * @throws StreamCopyException
+     *             if a read/write operation on one of the streams triggered an {@link IOException}
+     */
+    public static long copy(InputStream in, OutputStream out, long length) throws StreamCopyException {
         if (out instanceof ReadFromSupport) {
             return ((ReadFromSupport)out).readFrom(in, length);
         } else {

Modified: webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/BufferUtils.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/BufferUtils.java?rev=1737138&r1=1734616&r2=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/BufferUtils.java (original)
+++ webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/impl/BufferUtils.java Wed Mar 30 18:00:18 2016
@@ -38,6 +38,8 @@ import org.apache.commons.logging.LogFac
  * Attachment processing uses a lot of buffers.
  * The BufferUtils class attempts to reuse buffers to prevent 
  * excessive GarbageCollection
+ * 
+ * @deprecated
  */
 public class BufferUtils {
     private static final Log log = LogFactory.getLog(BufferUtils.class);

Copied: webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java (from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java?p2=webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java&r1=1734616&r2=1737138&rev=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java (original)
+++ webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAInputStream.java Wed Mar 30 18:00:18 2016
@@ -31,6 +31,8 @@ import java.util.ArrayList;
  * BAAInputStream stores the backing data in a Array of 
  * byte[].  Using several non-contiguous chunks reduces 
  * memory copy and resizing.
+ * 
+ * @deprecated
  */
 public class BAAInputStream extends InputStream {
 

Copied: webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java (from r1734616, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java?p2=webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java&r1=1734616&r2=1737138&rev=1737138&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java (original)
+++ webservices/axiom/trunk/axiom-compat/src/main/java/org/apache/axiom/attachments/utils/BAAOutputStream.java Wed Mar 30 18:00:18 2016
@@ -33,6 +33,8 @@ import java.util.ArrayList;
  * BAAOutputStream stores the backing data in a Array of 
  * byte[].  Using several non-contiguous chunks reduces 
  * memory copy and resizing.
+ * 
+ * @deprecated
  */
 public class BAAOutputStream extends OutputStream implements ReadFromSupport {