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 {